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