Understanding the Linux Kernel

 Daniel P. Bovet and Marco Cesati £28 approximately
 19 Chapters and three appendices in 627 Pages.

Contents

        Preface

Chapters

        1    Introduction
        2    Memory Addressing
        3    Processes
        4    Interrupts and Exceptions
        5    Timing Measurements
        6    Memory Management
        7    Process Address Space
        8    System Calls
        9    Signals
        10  Process Scheduling
        11  Kernel Synchonisation
        12  The Virtual Filesystem
        13  Managing I/O Devices
        14  Disk Caches
        15  Accessing Regular Files
        16  Swapping: Methods for Freeing Memory
        17  The EXT2 Filesystem
        18  Process Communication
        19  Program Execution
 

        Appendix A
        System Startup
        Appendix B:
        Modules
        Appendix C
        Source Code Structure

        Bibliography
        Source Code Index
 
 

      Synopsis

Kernel code is only understandable to those people who know what to do with it.  Most of us - like myself - haven't a clue what it means.  Understanding the Linux Kernel gives a useful introduction to the 2.2 kernel and signposts us towards the newly released 2.4 kernel.

       Review

If you have reached the point where you have learned a few simple ideas about programming in Linux and you would like to know more about kernels then this book is probably for you.   Each chapter finishes with a section which is called "Anticipating  Linux 2.4".   So, it's not much use for 2.4 kernels but if you do want to know more you could start with this and build up to the new kernel as you go along.

There are some very helpful features throughout the book which you may not find elsewhere.  Of course, there are several other books on this subject which may be of more use for the kind of thing you are doing just now ?  On the front cover it says "From I/O ports to process management".  The introduction starts by giving you a Linux v Other Unix-like kernels argument.   Useful for those of us who only know Linux or MS Windows.  After the first thirty-odd pages chapter two goes into memory addressing and paging.   At chapter three the main onslaught into eternity begins when processes are introduced.  Chapter four goes into interrupts and exceptions and Chapter five goes into timing measurement.  Memory management at chapter six looks like the kind of completely innocent thing that you might not need to know about.  In fact memory management keeps more than a few Linux programmers tied up in argument with each other for years on end.   So it's much more important than you might think.

Process address space is all about the ins and outs of ins and outs.  System calls starts out with POSIX APIs and System Calls.  It's a short section.  You might need to read more from somewhere else ?  Chapter nine is also a very short chapter which goes on about signals.  The rest of the chapters provided not too many surprises except for chapter 17 which explains EXT2.  This is pretty much out of date now since EXT3 and Reiser FS are quickly replacing the old standards.

As always the various appendices provide invaluable help with things that aren't normally found anywhere else.

O'Reilly like to explain that they like to breathe new life into dry old subjects.  They certainly do try to do that with their books.
 

Colophon

" The cover image of a man with a bubble is adapted from the 19th century engraving from the Dover Pictorial Archive.  Edie Freeman designed the front cover.  Emma Colby produced the cover with QuarkXPress 4.1, using the ITC Garamond Condensed font.  David Futato designed the interior layout based on a series design by Alicia Cech.  Chapter opener images are taken from the Dover Pictorial Archive, the books Marvels in the New West: A Vivid Portrayal of the Stupendous Marvels in the Vast Wonderland West of the Missouri River (bu William M. Thayer, The Henry Bill Publishing Company, Norwich, CT, 1888), and The Pioneer History of America: A Popular Account of the Heroes and Adventures (by Augustus Lynch Mason, A.M., The Jones Brothers Publishing Company, Cincinnati, OH, 1884).  Mike Sierra implemented the design in Framemaker 5.5.6."
 

Review by Richard Ibbotson