How to make /dev/ttyACM0 (and friends) exclusive?
valdis.kletnieks at vt.edu
valdis.kletnieks at vt.edu
Sun Mar 3 00:55:50 EST 2019
On Sat, 02 Mar 2019 14:36:12 -0500, Jeffrey Walton said:
> I feel like I am missing something... Does Linux consider the modem a
> shared resource instead of an exclusive resource? What use cases
> support two different programs sending commands to the modem at the
> same time?
The Linux kernel has exactly zero clue what a "modem" is. It's talking to a
serial port, and doesn't care where the other end of the serial cable is. If
you have a onboard modem, that cable may be all of 2 mm long and consist of a
bunch of traces between two chips on a PCB, or even internal connections
between two sides of a chip, but it's still there.
So the correct question is "what use cases have two programs talking to the
same serial port"?
And the answer is: A lot. For a long time, there were these things called
"terminals", that the younger folk may not have encountered. And a very common
use case was to login via a terminal. At that point, you usually had a login
shell like bash or similar running and often doing I/O to the terminal - and if
you ran any sub-processes, they also would do I/O to the terminal. So consider
the following bash one-liner:
% for i in `seq 1 10`; do echo "Loop number $i"; date; sleep 1; done
How and why does this work? (Hint 1: 'echo' is a bash builtin, Hint 2:
think about how a shell handles stdin/out for child processes)
More information about the Kernelnewbies
mailing list