by Kurt Wall, Mark Watson, Mark Whitis et al.
Sam's Publishing, Unleashed series; 818 pages, softback, includes CD with Mandrake OS and examples
This book is a large collection of largely seperate tutorials on a lot of different subjects related to Linux/OSS. Most of these tutorials will transfer to *BSD, Solaris, or whatever, though some are Linux-specific.
I've had this book for two years, and have hardly looked at it since I bought it. A few days ago, though, I was scrabbling around for a good Xlib tutorial; I hunted around the engineering library for some time to unwittingly come home with a book on Xt and Motif. Then I remembered that this book had brief introductions to Xlib, Xt, Motif, and so much other stuff it just isn't right. In short, if you're trying to pick up some particular programming skill, this book might not be a bad place to start.
The book assumes that you are familiar with C; knowledge of C++ is a good thing, and there is a bit of Java. You will be tought everything else you need to know. If you are completely new to Unix/Linux, you will need to check out the sections on gcc, emacs and make. As befits the title, this book is completely worthless if you're not going to use Linux or some other Unix-like OS.
List of subjects, largely read from overview:
- Setting up a development system - Hardware support (Probably outdated)
- Basic development tools - gcc, make, RCS, diff/patch, emacs, Bash programming, gdb
- System Programming - I/O, File manipulation, device drivers
- IPC - pipes, message queues, shared memory, semaphores, sockets
- Networking - TCP/IP, UDP, multicast sockets
- Terminal control - termios, terminfo, ncurses
- X11/GUI - Xlib, Xt, Athena, Motif, GTK+, QT, Java (awt and Swing...), OpenGL using mesa
- Others - package management, secure programming, documentation, licensing
There are a lot of things that I feel are missing from this book. First, the only programming languages used are C and C++, and a tiny bit of Java; no space is given to other languages except for a few pages on Lisp in the midst of the emacs chapter. Besides that, I would have expected at least basic coverage of lex and yacc, and either a better explanation of the text editor wars or a few pages on vi. (I use vi, but then I don't do a lot of editing these days.) Of course, the content of the book already fills 800 pages; the book would become unwieldy toward catapult-worthiness if much more was added.
/msg me with info, errors, or updates. Information is taken from the 1999 edition; if you have a fresher copy, feel free to note any changes or additions.