4 ms·
Either they mean something you can learn by reading "Advanced Programming in the Unix Environment" or something you can learn by reading "Linux Device Drivers".
by dyingkneepad 6y ago
Either they mean something you can learn by reading "Advanced Programming in the Unix Environment" or something you can learn by reading "Linux Device Drivers".
In the first case, I'd suggest trying to write a daemon that opens a socket and/or a fifo or pipe, sends some data, forks, execs, reacts to SIGUSR2, gets started by systemd, etc.
In the second case, implement a /dev/reversestring or whatever. Perhaps make your daemon use it :).
https://lwn.net/Kernel/LDD3/ https://lwn.net/Kernel/LDD3/
- brudgers 6y agoTo me, the place to start is Bach's Design of the Unix Operating System because provides the right context for Advanced Programming in the Unix Environment. Advanced Programming sort of presumes familiarity with its concepts and reading it first is probably faster than not reading it first. YMMV. Of course there are implementation differences between Unix and Linux, but I wouldn't be surprised if Torvaldes wasn't reading Bach when he started.
- dyingkneepad 6y agoYou may be right. I didn't read the book you mention, and when I used APUE I was already very familiar with the Unix world, so I used it mostly as a reference, a way to learn what was not exactly in the man pages.
- brudgers 6y agoIt is very well written. A technical book. Not a textbook. Well written in the way Bell Labs could produce to bring its cadre of technical staff up to speed...written to create competence not differentiate for the purpose of assigning grades. You can probably find a pdf online or a used copy from a bookseller.