Back

en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard ah, now I know the name for the way the filesystem is organized. This always seemed like a user-hostile mess. The /usr subdirectory has no user files, /dev and /proc and /sys aren't even real files, /media is just a mount point even though we already have /dev for devices and there's a /mnt which seems completely redundant. User-space software exists in /bin but also /sbin but also /usr/bin and /usr/sbin (is it for the user or the system? which is it guys?) and finally also /opt.

Disappointingly this book doesn't cover signals: SIGINT, SIGTERM, SIGUSR1, SIGABORT. It shows how to "trap" (set up a signal handler) from a shell script, but not in a program, where it is significantly more complex and unintuitive (signal masks, per-thread signals versus per-process ones, etc.). There's the use of "kill" to send a signal, which is a poor name: what about signals that don't kill? What's the difference between a STOP signal and a TSTP? The latter is Terminal SToP, it's what you send when you hit CTRL-Z and immediately have no idea how to get your long-running task back.

In fact, nothing about IPC at all in this book, I guess it's considered a programmer topic.

Another section that could've been useful is how background scheduled tasks work nowadays. The book says it's the cron daemon and that anyone can list or edit those tasks with crontab. The truth is, now that's the barest of hooks to run another tool called Anacron and it has no tool to list or manage its tasks. The text files all point to more text files and it's your typical mess of indirections and state you have to keep in your head, as you would be required to guess when the "weekly" tasks would run next, what has run recently, or even what any of these tasks are for, because distribution maintainers don't comment their anacrontab entries. Anacron is by no means too new to mention in this book: it is a quarter century old already.