Delphi Clinic C++Builder Gate JBuilder Machine Delphi 5 Clinic
Dr.Bob's Kylix Kicks
 Book Review: Linux Programming Unleashed
See Also: Dr.Bob's Programming Books for Delphi & C++Builder books co-authored by Bob Swart
Linux Programming Unleashed
Kurt Wall, Mark Watson and Mark Whitis et alia.
817 pages (no CD-ROM)

Every now and again a really practical book comes along that you really wanted to have for a couple of years. This is one of them. In fact, I wish I had this book in 1994 when I was involved in a software project that used Linux as the underlying operating system. Being without this book I effecctively had to find out everything for myself from FAQs, sometimes partly obsolete electronic documentation and the source itself. It was a great time. Activities ranged from trying to learn emacs, gcc, ncurses and gdb at the same time, not to mention learning how to configure the kernel and all sorts of server processes, sometimes even having to hack a Linux kernel in order to be able to set more record locks than possible in a time that the kernel only had a fixed size locktable. The best thing in Linux however is that it is always possible to try and grok the working of a system call by sifting through the source of the gcc runtime libraries and the operating system. By the way, in the end I had a development machine that had been running for nine months without turning it off once…

Linux Programming Unleashed is written by Kurt Wall, Mark Watson and Mark Whitis et alia. It is published by Sams Publishing. ISBN 0-672-31607-2. Kurt Wall is a fulltime Linux author, consultant and enthusiast and tries to avoid real work by writing books. Mark Watson is an AI software engineer at Intelligenesis. Mark Whitis is a self-educated consulting computer engineer running his own company, Free Electron Labs.

If you visit the pages of the authors, you will see references to 'the case of the missing CD-ROM'. Originally the plan was to include a CD-ROM with the book as well as a Redhat distribution. The book does not contain any CD-ROMs at all, hence the mentioned case. Furthermore, the latest and greatest Linux distributions can be bought for a very low price in a number of places, for example Redhat itself or Linux Central. Really, $4 for a fully functional operating system is not very much.

If you have a good look at the information URL for the source code accompanying the book, you will conclude that it is constructed from the ISBN number. You might be able to find information about other books of this publisher in a similar manner. I tried it with the ISBNs of C++Builder 4 Unleashed and Delphi 4 Unleashed and sure enough, the correct information popped up.

The authors of the book think that it is a book for people that already know how to program in C or C++. They are correct. A lot of code is in C, C++ and Java. The book contains six parts:

  1. The Linux Programming Toolkit
  2. System Programming
  3. Interprocess Communication and Network Programming
  4. Programming the User Interface
  5. Special Programming Techniques
  6. Finishing Touches
The first part leads you through setting up a development environment and then proceeds with familiarizing you with gcc, make, autoconf, diff and related utilities, RCS and emacs. Part two leads you through system programming and discusses I/O routines, file manipulation, process control. the proc filesystem and getting information from your system, handling errors and memory management. Part three discusses IPC using pipes, message queues, shared memory, semaphores, TCP/IP and socket programming, UDP, multicast sockets, non-blocking socket I/O, discusses a C++ library for TCP sockets. It then proceeds on how to use libraries and ends with how to create device drivers. Part four discusses terminal I/O and terminfo, ncurses, X Window programming, using the Athena and Motif widgets, GTK and Qt, two systems for making X programs, GUI programming in Java. It concludes with a chapter on OpenGL/Mesa Graphics programming. Part five discusses special programming techniques. It handles shell programming in bash, secure programming and debugging using gdb. The last part applies the finishing touches and discusses package management, documentation and licensing. It also includes a discussion of a symbol table library.

Although the book isn't perfect because of the references to the non-existent CD-ROMs, it is definitively a lifesaver for people who want to get into Linux development fast. If you combine this book with a good book on Linux system administration, you probably will be up and running from scratch in about two weeks. I wish I had this kind of book back in 1994.

More Book Reviews

This webpage © 2001 by webmaster drs. Robert E. Swart (aka Dr.Bob - All Rights Reserved