To thoroughly understand what makes Linux tick and why it's so efficient, you need to delve deep into the heart of the operating system--into the Linux kernel itself. The kernel is Linux--in the case of the Linux operating system, it's the only bit of software to which the term "Linux" applies. The kernel handles all the requests or completed I/O operations and determines which programs will share its processing time, and in what order. Responsible for the sophisticated memory management of the whole system, the Linux kernel is the force behind the legendary Linux efficiency.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, support for 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:
Le informazioni nella sezione "Riassunto" possono far riferimento a edizioni diverse di questo titolo.
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).Contenuti:
Preface; The Audience for This Book; Organization of the Material; Overview of the Book; Background Information; Conventions in This Book; How to Contact Us; Acknowledgments; Chapter 1: Introduction; 1.1 Linux Versus Other Unix-Like Kernels; 1.2 Hardware Dependency; 1.3 Linux Versions; 1.4 Basic Operating System Concepts; 1.5 An Overview of the Unix Filesystem; 1.6 An Overview of Unix Kernels; Chapter 2: Memory Addressing; 2.1 Memory Addresses; 2.2 Segmentation in Hardware; 2.3 Segmentation in Linux; 2.4 Paging in Hardware; 2.5 Paging in Linux; Chapter 3: Processes; 3.1 Processes, Lightweight Processes, and Threads; 3.2 Process Descriptor; 3.3 Process Switch; 3.4 Creating Processes; 3.5 Destroying Processes; Chapter 4: Interrupts and Exceptions; 4.1 The Role of Interrupt Signals; 4.2 Interrupts and Exceptions; 4.3 Nested Execution of Exception and Interrupt Handlers; 4.4 Initializing the Interrupt Descriptor Table; 4.5 Exception Handling; 4.6 Interrupt Handling; 4.7 Softirqs, Tasklets, and Bottom Halves; 4.8 Returning from Interrupts and Exceptions; Chapter 5: Kernel Synchronization; 5.1 Kernel Control Paths; 5.2 When Synchronization Is Not Necessary; 5.3 Synchronization Primitives; 5.4 Synchronizing Accesses to Kernel Data Structures; 5.5 Examples of Race Condition Prevention; Chapter 6: Timing Measurements; 6.1 Hardware Clocks; 6.2 The Linux Timekeeping Architecture; 6.3 CPU’s Time Sharing; 6.4 Updating the Time and Date; 6.5 Updating System Statistics; 6.6 Software Timers; 6.7 System Calls Related to Timing Measurements; Chapter 7: Memory Management; 7.1 Page Frame Management; 7.2 Memory Area Management; 7.3 Noncontiguous Memory Area Management; Chapter 8: Process Address Space; 8.1 The Process’s Address Space; 8.2 The Memory Descriptor; 8.3 Memory Regions; 8.4 Page Fault Exception Handler; 8.5 Creating and Deleting a Process Address Space; 8.6 Managing the Heap; Chapter 9: System Calls; 9.1 POSIX APIs and System Calls; 9.2 System Call Handler and Service Routines; 9.3 Kernel Wrapper Routines; Chapter 10: Signals; 10.1 The Role of Signals; 10.2 Generating a Signal; 10.3 Delivering a Signal; 10.4 System Calls Related to Signal Handling; Chapter 11: Process Scheduling; 11.1 Scheduling Policy; 11.2 The Scheduling Algorithm; 11.3 System Calls Related to Scheduling; Chapter 12: The Virtual Filesystem; 12.1 The Role of the Virtual Filesystem (VFS); 12.2 VFS Data Structures; 12.3 Filesystem Types; 12.4 Filesystem Mounting; 12.5 Pathname Lookup; 12.6 Implementations of VFS System Calls; 12.7 File Locking; Chapter 13: Managing I/O Devices; 13.1 I/O Architecture; 13.2 Device Files; 13.3 Device Drivers; 13.4 Block Device Drivers; 13.5 Character Device Drivers; Chapter 14: Disk Caches; 14.1 The Page Cache; 14.2 The Buffer Cache; Chapter 15: Accessing Files; 15.1 Reading and Writing a File; 15.2 Memory Mapping; 15.3 Direct I/O Transfers; Chapter 16: Swapping: Methods for Freeing Memory; 16.1 What Is Swapping?; 16.2 Swap Area; 16.3 The Swap Cache; 16.4 Transferring Swap Pages; 16.5 Swapping Out Pages; 16.6 Swapping in Pages; 16.7 Reclaiming Page Frame; Chapter 17: The Ext2 and Ext3 Filesystems; 17.1 General Characteristics of Ext2; 17.2 Ext2 Disk Data Structures; 17.3 Ext2 Memory Data Structures; 17.4 Creating the Ext2 Filesystem; 17.5 Ext2 Methods; 17.6 Managing Ext2 Disk Space; 17.7 The Ext3 Filesystem; Chapter 18: Networking; 18.1 Main Networking Data Structures; 18.2 System Calls Related to Networking; 18.3 Sending Packets to the Network Card; 18.4 Receiving Packets from the Network Card; Chapter 19: Process Communication; 19.1 Pipes; 19.2 FIFOs; 19.3 System V IPC; Chapter 20: Program Execution; 20.1 Executable Files; 20.2 Executable Formats; 20.3 Execution Domains; 20.4 The exec Functions; System Startup; Prehistoric Age: The BIOS; Ancient Age: The Boot Loader; Middle Ages: The setup( ) Function; Renaissance: The startup_32( ) Functions; Modern Age: The start_kernel( ) Function; Modules; To Be (a Module) or Not to Be?; Module Implementation; Linking and Unlinking Modules; Linking Modules on Demand; Source Code Structure; Chapter 21: Bibliography; 21.1 Books on Unix Kernels; 21.2 Books on the Linux Kernel; 21.3 Books on PC Architecture and Technical Manuals on Intel Microprocessors; 21.4 Other Online Documentation Sources; Colophon;
Le informazioni nella sezione "Su questo libro" possono far riferimento a edizioni diverse di questo titolo.
Descrizione libro O'Reilly Media. PAPERBACK. Condizione libro: New. 0596002130 100% satisfaction money back guarantee. Codice libro della libreria 6003179
Descrizione libro Paperback. Condizione libro: BRAND NEW. BRAND NEW. Fast Shipping. Prompt Customer Service. Satisfaction guaranteed. Codice libro della libreria 0596002130BNA
Descrizione libro Condizione libro: Brand New. Book Condition: Brand New. Codice libro della libreria 97805960021381.0
Descrizione libro O'Reilly Media, 2002. Paperback. Condizione libro: New. Second Edition. Codice libro della libreria DADAX0596002130
Descrizione libro O'Reilly Media, 2002. Paperback. Condizione libro: New. book. Codice libro della libreria 0596002130
Descrizione libro O'Reilly Media, 2002. Paperback. Condizione libro: New. Codice libro della libreria P110596002130
Descrizione libro O'Reilly Media, Incorporated. Condizione libro: New. pp. 784. Codice libro della libreria 5797139