Register your product to gain access to bonus material or receive a coupon.
*comprehensive updated material - approx 40% of material updated
*covers the latest version of Linux 2.4
Preface.
Preface to the 3rd Edition.
Preface to the 1st Edition.
Torvalds' Preface to the 1st Edition.
Acknowledgments.
1. linux — the Operating System.
Main Characteristics.
Linux Distributions.
Where is Everything?
Compiling.
Additional Configuration Facilities.
Important Data Structures.
The Task Structure.
The Process Table.
Files and Inodes.
Dynamic Memory Management.
Queues and Semaphores.
System Time and Timers.
Main Algorithms.
Signals.
Hardware Interrupts.
Software Interrupts.
Booting the System.
Timer Interrupts.
The Scheduler.
Implementation of System Calls.
How Do System Calls Actually Work?
Examples of Simple System Calls.
Examples of More Complex System Calls.
The Architecture-Independent Memory Model.
Pages of Memory.
Virtual Address Space.
Converting the Linear Address.
Page Directories.
The Page Table.
The Virtual Address Space of a Process.
The User Segment.
Virtual Memory Areas.
The System Call BRK.
Mapping Functions.
The Kernel Segment.
Memory Allocation in the Kernel Segment During Booting.
Dynamic Memory Management in the Kernel Segment.
Block Device Caching.
Block Buffering.
Bdflush and Kupdate.
List Structures for the Buffer Cache.
Using the Buffer Cache.
Paging Under Linux.
Memory Management and the Memory Cache.
Reserving a Page of Memory.
Optimization of Memory Page Management Via Kernel Threads.
Those who do not have access to e-mail can write to us at: linux-Team
Humboldt-Universität zu Berlin
Institut für Informatik
10099 Berlin
Creating an operating system has been (and still is) an exciting project, and has been made even more rewarding through the extensive (and almost uniformly positive) feedback from users and developers alike.
One of the problems for people wanting to get to know the kernel internals better has been the lack of documentation, and fledgling kernel hackers have had to resort to reading the actual source code of the system for most of the details. While I think that is still a good idea, I'm happy that there is now more documentation like this which explains the use of linux and its internals.
I hope you enjoy linux and this book.
Linus Torvalds
Helsinki, 28. 4. 1994
This book would not have been possible without the work of several other people.
First we would like to thank all the linux hackers in the world, and of course Linus Torvalds. A further thank you goes to the Free Software Foundation (also known as GNU). Without GNU software, linux would not be what it is today.
We would also like to thank the employees and students at the Institute of Computer Science of the Humboldt-University of Berlin and the Faculty of Computer Science at Furtwangen Technical College who have supported us in our work.
Finally we would like to thank the innumerable copy editors, first of all Ralf Kühnel; the meticulous corrections were a great help to us.
Martin von Löwis also deserves to be mentioned, as he gave constructive criticism and supported us in the implementation of the Windows NT file system for linux.
Have a good time reading and working with linux!
Michael Beck,
Ulrich Kunitz, Harald Böhme,
Robert Magnus, Mirko Dziadzka, Dirk Verworner
Berlin/Furtwangen, 1. 5. 94