UNIX/Linux System Programming in C.
This is an advanced training program targeting programmers well-versed in C Programming Language. It covers in-depth UNIX and Linux OS architecture, file-system architecture and hierarchy, pseudo-file-systems (/proc, /dev, /sys), kernel API mechanisms on UNIX and Linux (/dev and /proc, system calls, IOCTL), various system calls and library functions that cover file management, file-system and directory management, process management, memory management, signals, pipes, FIFO, message queues, semaphores, time and date handling, resource limiting, network programming using sockets, advanced string manipulation and regular expressions, creating shared libraries and using them by dynamic loading, database manipulation, interacting with hardware using direct I/O and IOCTL interfaces, and GNU libc library functions. It also covers GNU tool-chain for developers that include GCC, GNU Make, GNU Autoconf, diff and patch utilities, using CVS and Subversion. Debugging techniques using GDB, Valgrind, dmalloc, libsafe and mcheck are also covered.