Sebastopol, CA--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 (O'Reilly, US $49.95), 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."
Praise for the previous edition:
"So, taking it as a given that a book about Linux internals is a good thing, how good is this one? Happily, it's very good--better than any previous such book that I've seen. The authors have cracked open a large collection of code that's currently very relevant. If they are in for the long haul and release revised books in a timely way, then this will likely become and remain the definitive explanation of Linux internals."
--John Regehr, Slashdot.org
"O'Reilly continues its tradition of exhaustive and thoroughly lucid guides to all things technical with this thick guided tour of the Linux kernel. What makes this book stand out among other guides to the Linux operating system is that it takes the time to explain why certain features of the kernal are good or bad for specific applications. It's only a matter of time before this becomes a textbook for advanced college course on operating systems. Highly recommended for serious programmers and application developers."
Daniel P. Bovet and Marco Cesati
ISBN: 0-596-00565-2, 923 pages, $49.95 US
O’Reilly Media spreads the knowledge of innovators through its books, online services, magazines, and conferences. Since 1978, O’Reilly Media has been a chronicler and catalyst of cutting-edge development, homing in on the technology trends that really matter and spurring their adoption by amplifying “faint signals” from the alpha geeks who are creating the future. An active participant in the technology community, the company has a long history of advocacy, meme-making, and evangelism.