Understanding the Linux kernel
In order to thoroughly understand what makes Linux tick and why it works so well on a wide variety of systems, you need to delve deep into the heart of the kernel. The kernel handles all interactions between the CPU and the external world, and determines which programs will share processor time, in...
Otros Autores: | , |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Sebastopol, California :
O'Reilly Media
[2006]
|
Edición: | Third edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009626898106719 |
Tabla de Contenidos:
- Understanding the Linux Kernel, 3rd Edition; Organization of the Material; Level of Description; Overview of the Book; Background Information; Conventions in This Book; How to Contact Us; Safari® Enabled; Acknowledgments; 1. Introduction; 1.2. Hardware Dependency; 1.3. Linux Versions; 1.4. Basic Operating System Concepts; 1.4.2. Users and Groups; 1.4.3. Processes; 1.4.4. Kernel Architecture; 1.5. An Overview of the Unix Filesystem; 1.5.2. Hard and Soft Links; 1.5.3. File Types; 1.5.4. File Descriptor and Inode; 1.5.5. Access Rights and File Mode; 1.5.6. File-Handling System Calls
- 1.5.6.2. Accessing an opened file1.5.6.3. Closing a file; 1.5.6.4. Renaming and deleting a file; 1.6. An Overview of Unix Kernels; 1.6.2. Process Implementation; 1.6.3. Reentrant Kernels; 1.6.4. Process Address Space; 1.6.5. Synchronization and Critical Regions; 1.6.5.2. Interrupt disabling; 1.6.5.3. Semaphores; 1.6.5.4. Spin locks; 1.6.5.5. Avoiding deadlocks; 1.6.6. Signals and Interprocess Communication; 1.6.7. Process Management; 1.6.7.2. Process groups and login sessions; 1.6.8. Memory Management; 1.6.8.2. Random access memory usage; 1.6.8.3. Kernel Memory Allocator
- 1.6.8.4. Process virtual address space handling1.6.8.5. Caching; 1.6.9. Device Drivers; 2. Memory Addressing; 2.2. Segmentation in Hardware; 2.2.2. Segment Descriptors; 2.2.3. Fast Access to Segment Descriptors; 2.2.4. Segmentation Unit; 2.3. Segmentation in Linux; 2.3.2. The Linux LDTs; 2.4. Paging in Hardware; 2.4.2. Extended Paging; 2.4.3. Hardware Protection Scheme; 2.4.4. An Example of Regular Paging; 2.4.5. The Physical Address Extension (PAE) Paging Mechanism; 2.4.6. Paging for 64-bit Architectures; 2.4.7. Hardware Cache; 2.4.8. Translation Lookaside Buffers (TLB); 2.5. Paging in Linux
- 2.5.2. Page Table Handling2.5.3. Physical Memory Layout; 2.5.4. Process Page Tables; 2.5.5. Kernel Page Tables; 2.5.5.2. Final kernel Page Table when RAM size is less than 896 MB; 2.5.5.3. Final kernel Page Table when RAM size is between 896 MB and 4096 MB; 2.5.5.4. Final kernel Page Table when RAM size is more than 4096 MB; 2.5.6. Fix-Mapped Linear Addresses; 2.5.7. Handling the Hardware Cache and the TLB; 2.5.7.2. Handling the TLB; 3. Processes; 3.2. Process Descriptor; 3.2.2. Identifying a Process; 3.2.2.2. Identifying the current process; 3.2.2.3. Doubly linked lists
- 3.2.2.4. The process list3.2.2.5. The lists of TASK_RUNNING processes; 3.2.3. Relationships Among Processes; 3.2.4. How Processes Are Organized; 3.2.4.2. Handling wait queues; 3.2.5. Process Resource Limits; 3.3. Process Switch; 3.3.2. Task State Segment; 3.3.3. Performing the Process Switch; 3.3.3.2. The _ _switch_to ( ) function; 3.3.4. Saving and Loading the FPU, MMX, and XMM Registers; 3.3.4.2. Loading the FPU registers; 3.3.4.3. Using the FPU, MMX, and SSE/SSE2 units in Kernel Mode; 3.4. Creating Processes; 3.4.1.2. The copy_process( ) function; 3.4.2. Kernel Threads; 3.4.2.2. Process 0
- 3.4.2.3. Process 1