42. Linux Kernel, 2nd Edition

    Author: Myanmar Ebook Store Genre: »
    Rating

    Chapter 1. Introduction
    Section 1.1. Linux Versus Other Unix-Like Kernels
    Section 1.2. Hardware Dependency
    Section 1.3. Linux Versions
    Section 1.4. Basic Operating System Concepts
    Section 1.5. An Overview of the Unix Filesystem
    Section 1.6. An Overview of Unix Kernels

    Chapter 2. Memory Addressing
    Section 2.1. Memory Addresses
    Section 2.2. Segmentation in Hardware
    Section 2.3. Segmentation in Linux
    Section 2.4. Paging in Hardware
    Section 2.5. Paging in Linux

    Chapter 3. Processes
    Section 3.1. Processes, Lightweight Processes, and Threads
    Section 3.2. Process Descriptor
    Section 3.3. Process Switch
    Section 3.4. Creating Processes
    Section 3.5. Destroying Processes

    Chapter 4. Interrupts and Exceptions
    Section 4.1. The Role of Interrupt Signals
    Section 4.2. Interrupts and Exceptions
    Section 4.3. Nested Execution of Exception and Interrupt Handlers
    Section 4.4. Initializing the Interrupt Descriptor Table
    Section 4.5. Exception Handling
    Section 4.6. Interrupt Handling
    Section 4.7. Softirqs, Tasklets, and Bottom Halves
    Section 4.8. Returning from Interrupts and Exceptions

    Chapter 5. Kernel Synchronization
    Section 5.1. Kernel Control Paths
    Section 5.2. When Synchronization Is Not Necessary
    Section 5.3. Synchronization Primitives
    Section 5.4. Synchronizing Accesses to Kernel Data Structures
    Section 5.5. Examples of Race Condition Prevention

    Chapter 6. Timing Measurements
    Section 6.1. Hardware Clocks
    Section 6.2. The Linux Timekeeping Architecture
    Section 6.3. CPU's Time Sharing
    Section 6.4. Updating the Time and Date
    Section 6.5. Updating System Statistics
    Section 6.6. Software Timers
    Section 6.7. System Calls Related to Timing Measurements

    Chapter 7. Memory Management
    Section 7.1. Page Frame Management
    Section 7.2. Memory Area Management
    Section 7.3. Noncontiguous Memory Area Management

    Chapter 8. Process Address Space
    Section 8.1. The Process's Address Space
    Section 8.2. The Memory Descriptor
    Section 8.3. Memory Regions
    Section 8.4. Page Fault Exception Handler
    Section 8.5. Creating and Deleting a Process Address Space
    Section 8.6. Managing the Heap

    Chapter 9. System Calls
    Section 9.1. POSIX APIs and System Calls
    Section 9.2. System Call Handler and Service Routines
    Section 9.3. Kernel Wrapper Routines

    Chapter 10. Signals
    Section 10.1. The Role of Signals
    Section 10.2. Generating a Signal
    Section 10.3. Delivering a Signal
    Section 10.4. System Calls Related to Signal Handling

    Chapter 11. Process Scheduling
    Section 11.1. Scheduling Policy
    Section 11.2. The Scheduling Algorithm
    Section 11.3. System Calls Related to Scheduling

    Chapter 12. The Virtual Filesystem
    Section 12.1. The Role of the Virtual Filesystem (VFS)
    Section 12.2. VFS Data Structures
    Section 12.3. Filesystem Types
    Section 12.4. Filesystem Mounting
    Section 12.5. Pathname Lookup
    Section 12.6. Implementations of VFS System Calls
    Section 12.7. File Locking

    Chapter 13. Managing I/O Devices
    Section 13.1. I/O Architecture
    Section 13.2. Device Files
    Section 13.3. Device Drivers
    Section 13.4. Block Device Drivers
    Section 13.5. Character Device Drivers

    Chapter 14. Disk Caches
    Section 14.1. The Page Cache
    Section 14.2. The Buffer Cache

    Chapter 15. Accessing Files
    Section 15.1. Reading and Writing a File
    Section 15.2. Memory Mapping
    Section 15.3. Direct I/O Transfers

    Chapter 16. Swapping: Methods for Freeing Memory
    Section 16.1. What Is Swapping?
    Section 16.2. Swap Area
    Section 16.3. The Swap Cache
    Section 16.4. Transferring Swap Pages
    Section 16.5. Swapping Out Pages
    Section 16.6. Swapping in Pages
    Section 16.7. Reclaiming Page Frame

    Chapter 17. The Ext2 and Ext3 Filesystems
    Section 17.1. General Characteristics of Ext2
    Section 17.2. Ext2 Disk Data Structures
    Section 17.3. Ext2 Memory Data Structures
    Section 17.4. Creating the Ext2 Filesystem
    Section 17.5. Ext2 Methods
    Section 17.6. Managing Ext2 Disk Space
    Section 17.7. The Ext3 Filesystem

    Chapter 18. Networking
    Section 18.1. Main Networking Data Structures
    Section 18.2. System Calls Related to Networking
    Section 18.3. Sending Packets to the Network Card
    Section 18.4. Receiving Packets from the Network Card

    Chapter 19. Process Communication
    Section 19.1. Pipes
    Section 19.2. FIFOs
    Section 19.3. System V IPC

    Chapter 20. Program Execution
    Section 20.1. Executable Files
    Section 20.2. Executable Formats
    Section 20.3. Execution Domains
    Section 20.4. The exec Functions

    Appendix A. System Startup
    Section A.1. Prehistoric Age: The BIOS
    Section A.2. Ancient Age: The Boot Loader
    Section A.3. Middle Ages: The setup( ) Function
    Section A.4. Renaissance: The startup_32( ) Functions
    Section A.5. Modern Age: The start_kernel( ) Function
    Appendix B. Modules
    Section B.1. To Be (a Module) or Not to Be?
    Section B.2. Module Implementation
    Section B.3. Linking and Unlinking Modules
    Section B.4. Linking Modules on Demand
    Appendix C. Source Code Structure

    Leave a Reply

    Blogger templates

    Blogger news

    Blogroll