New Book: The Heart of Linux 2.6 - From I/O Ports to Process Management

19 Jan 11:47

O'Reilly has released "Understanding the Linux Kernel, Third Edition".

If you look at the anatomy of a Linux system, the only part you actually can identify as "Linux" is the kernel, the software program that sits at the very core. The rest of the operating system is generally composed of Unix applications, such as filesystem utilities, text editors, compilers, and so on. Yet, that small piece of software at the center has enabled Linux to turn the IT industry on its head.

"All people curious about how Linux works, why it is so efficient, and why it works so well on a variety of systems will find the answers there," says Daniel Bovet, coauthor of the bestseller "Understanding the Linux Kernel", now available in a new third edition. "Our book might be considered a guided tour of the Linux kernel. Most of the significant data structures, and many algorithms and programming tricks used in the kernel are discussed."

Bovet and Marco Cesati, who wrote the widely acclaimed first edition of "Understanding the Linux Kernel" five years ago to cover Linux 2.2 (and then a second edition to cover Linux 2.4), have updated the book for Linux 2.6, which has seen significant changes to nearly every kernel subsystem. "After reading this book, users will find their way through the many thousands of lines of code, distinguishing between crucial data structures and secondary ones," Cesati asserts. "In short, they'll become true Linux hackers."

The book is not specifically for system administrators or programmers, but for anyone who wants to understand how things really work inside the machine. "It explains the theoretical underpinnings for why Linux, and many other operating systems, do things the way they do," Cesati explains. "We try to go beyond superficial features and offer a background, such as the history of major features and why they were used."

"Understanding the Linux Kernel" differs from other books on Linux internals by discussing the kernel in relation to a specific hardware platform. "Efficient kernels take advantage of most available hardware features, such as addressing techniques, caches, processor exceptions, special instructions, processor control registers, and so on," Bovet points out. "If we want to convince readers that the kernel indeed does quite a good job in performing a specific task, we must first tell what kind of support comes from the hardware."

Appropriately, the authors decided to concentrate on the popular and cheap IBM-compatible PCs with 80x86 microprocessors, which include the entire Intel Pentium line. Although Linux now runs on several kinds of PCs and workstations, Linus Torvalds designed Linux in 1991 to run on a PC using an Intel 80386 system with 4 MB of RAM. "Linux systems are very fast, because they fully exploit the features of the hardware components," Bovet says. "The main goal of Linux is efficiency, and indeed many design choices of commercial Unix variants have been rejected by Linus Torvalds because of their implied performance penalty."

By including hardware details, the book takes a bottom-up approach in studying Linux components, starting with topics that are hardware-dependent and progressing toward those that are totally hardware-independent. Among the topics the book describes are process and memory management, the Virtual Filesystem layer and the second and third extended filesystems, process creation and scheduling, essential interfaces to device drivers, Interprocess Communication (IPC), program execution, and more.

"This is much more than an academic exercise," Cesati remarks. "One of the more appealing benefits to Linux is that its source code is open and available to anyone to study. Our book shows readers the conditions that bring out Linux's best performance, and how the operating system meets the challenge of providing good system response during process scheduling, file access, and memory management in a wide variety of environments."

[The earlier editions of this book were excellent and can be recommended. Publishers Coriolis used to publish a full listing of the kernel code annotated by Scott Maxwell. In case they have done this to version 2.6 I recommend using the two books together. --Ed].

Related links: (Open in a new window.)
www.oreilly.com/catalog/understandlk/

Taken from Information Security Bulletin.