Understanding the Linux Kernel

Buch | Softcover
765 Seiten
2003 | 2nd Revised edition
O'Reilly Media (Verlag)
978-0-596-00213-8 (ISBN)

Lese- und Medienproben

Understanding the Linux Kernel - Daniel P. Bovet, Marco Cesati
39,85 inkl. MwSt
zur Neuauflage
  • Titel gebraucht verfügbar
  • Artikel merken
Studibuch Logo

...gebraucht verfügbar!

Zu diesem Artikel existiert eine Nachauflage
This text allows the reader to understand when Linux performs best and how it meets the challenge of different environments that assign varying importance to the system's responsiveness in process scheduling, file access and memory management.
The new edition of "Understanding the Linux Kernel" takes you on a guided tour through the most significant data structures, many algorithms, and programming tricks used in the kernel. Probing beyond the superficial features, the authors offer valuable insights to people who want to know how things really work inside their machine. Relevant segments of code are dissected and discussed line by line. The book covers more than just the functioning of the code, it explains the theoretical underpinnings for why Linux does things the way it does. The new edition of the book has been updated to cover version 2.4 of the kernel, which is quite different from version 2.2: the virtual memory system is entirely new, supportfor multiprocessor systems is improved, and whole new classes of hardware devices have been added. The authors explore each new feature in detail.
Other topics in the book include: Memory management including file buffering, process swapping, and Direct memory Access (DMA) The Virtual Filesystem and the Second Extended Filesystem; Process creation and scheduling; Signals, interrupts, and the essential interfaces to device drivers; Timing; Synchronization in the kernel; Interprocess Communication (IPC); and Program execution. "Understanding the Linux Kernel", Second Edition will acquaint you with all the inner workings of Linux, but is more than just an academic exercise. You'll learn what conditions bring out Linux's best performance, and you'll see how it meets the challenge of providing good system response during process scheduling, file access, and memory management in a wide variety of environments. If knowledge is power, then this book will help you make the most of your Linux system.

Daniel P. Bovet got a Ph.D. in computer science at UCLA in 1968 and is now full Professor at the University of Rome, "Tor Vergata," Italy. He had to wait over 25 years before being able to teach an operating system course in a proper manner because of the lack of source code for modern, well-designed systems. Now, thanks to cheap PCs and to Linux, Marco and Dan are able to cover all the facets of an operating system from booting to tuning and are able to hand out tough, satisfying homework to their students. (These young guys working at home on their PCs are really spoiled; they never had to fight with punched cards.) In fact, Dan was so fascinated by the accomplishments of Linus Torvalds and his followers that he spent the last few years trying to unravel some of Linux's mysteries. It seemed natural, after all that work, to write a book about what he found. Marco Cesati received a degree in mathematics in 1992 and a Ph.D. in computer science (University of Rome, "La Sapienza") in 1995. He is now a research assistant in the computer science department of the School of Engineering (University of Rome, "Tor Vergata"). In the past, he served as system administrator and Unix programmer for the university (as a Ph.D. student) and for several institutions (as a consultant).

Preface 1. Introduction Linux Versus Other Unix-Like Kernels Hardware Dependency Linux Versions Basic Operating System Concepts An Overview of the Unix Filesystem An Overview of Unix Kernels 2. Memory Addressing Memory Addresses Segmentation in Hardware Segmentation in Linux Paging in Hardware Paging in Linux 3. Processes Processes, Lightweight Processes, and Threads Process Descriptor Process Switch Creating Processes Destroying Processes 4. Interrupts and Exceptions The Role of Interrupt Signals Interrupts and Exceptions Nested Execution of Exception and Interrupt Handlers Initializing the Interrupt Descriptor Table Exception Handling Interrupt Handling Softirqs, Tasklets, and Bottom Halves Returning from Interrupts and Exceptions 5. Kernel Synchronization Kernel Control Paths When Synchronization Is Not Necessary Synchronization Primitives Synchronizing Accesses to Kernel Data Structures Examples of Race Condition Prevention 6. Timing Measurements Hardware Clocks The Linux Timekeeping Architecture CPU's Time Sharing Updating the Time and Date Updating System Statistics Software Timers System Calls Related to Timing Measurements 7. Memory Management Page Frame Management Memory Area Management Noncontiguous Memory Area Management 8. Process Address Space The Process's Address Space The Memory Descriptor Memory Regions Page Fault Exception Handler Creating and Deleting a Proces Address Space Managing the Heap 9. System Calls POSIX APIs and System Calls System Call Handler and Service Routines Kernel Wrapper Routines 10. Signals The Role of Signals Generating a Signal Delivering a Signal System Calls Related to Signal Handling 11. Process Scheduling Scheduling Policy The Scheduling Algorithm System Calls Related to Scheduling 12. The Virtual Filesystem The Role of the Virtual Filesystem (VFS) VFS Data Structures Filesystem Types Filesystem Mounting Pathname Lookup Implementations of VFS System Calls File Locking 13. Managing I/O Devices I/O Architecture Device Files Device Drivers Block Device Drivers Character Device Drivers 14. Disk Caches The Page Cache The Buffer Cache 15. Accessing Files Reading and Writing a File Memory Mapping Direct I/O Transfers 16. Swapping: Methods for Freeing Memory What Is Swapping? Swap Area The Swap Cache Transferring Swap Pages Swapping Out Pages Swapping in Pages Reclaiming Page Frame 17. The Ext2 and Ext3 Filesystems General Characteristics of Ext2 Ext2 Disk Data Structures Ext2 Memory Data Structures Creating the Ext2 Filesystem Ext2 Methods Managing Ext2 Disk Space The Ext3 Filesystem 18. Networking Main Networking Data Structures System Calls Related to Networking Sending Packets to the Network Card Receiving Packets from the Network Card 19. Process Communication Pipes FIFOs System V IPC 20. Program Execution Executable Files Executable Formats Execution Domains The exec Functions A. System Startup B. Modules C. Source Code Structure Bibliography Source Code Index Index

Erscheint lt. Verlag 21.1.2003
Zusatzinfo index
Verlagsort Sebastopol
Sprache englisch
Maße 179 x 233 mm
Gewicht 1076 g
Einbandart kartoniert
Themenwelt Informatik Betriebssysteme / Server Unix / Linux
ISBN-10 0-596-00213-0 / 0596002130
ISBN-13 978-0-596-00213-8 / 9780596002138
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich