Notes on the plan 9tm 3rd edition kernel source

Notes on the plan 9tm 3rd edition kernel source

  • Auteur: Ballesteros, F.J.
  • Éditeur: Dykinson
  • Collection: CC. Experimentales
  • ISBN: 9788498490886
  • eISBN Pdf: 9788498496390
  • Lieu de publication:  Madrid , Spain
  • Année de publication: 2007
  • Pages: 312

1. Introduction 2. System source 3. Starting up 4. Processes 5. Files 6. Memory management

  • Title page
  • Copyright page
  • Contents
  • Trademarks
  • Preface
  • Chapter 1. Introduction
    • 1.1. How to read this document
      • 1.1.1. Coming up next
    • 1.2. Other documentation
      • 1.2.1. Manual pages
      • 1.2.2. Papers
    • 1.3. Introduction to Plan 9
    • 1.4. Source code
      • 1.4.1. Notes on C
      • 1.4.2. mk
    • 1.5. PC hardware facilities
      • 1.5.1. Registers
      • 1.5.2.Instructions and addressing modes
      • 1.5.3. Memory
      • 1.5.4. Interrupts and exceptions
  • Chapter 2. System source
    • 2.1. Quick tour to th source
      • 2.1.1. Interesting include files
      • 2.1.2. Interesting source files
    • 2.2. System structures
  • Chapter 3. Starting up
    • 3.1. Introduction
    • 3.2. Running the loader
      • 3.2.1 Preparing for loading
      • 3.2.2. Loading the kernel
    • 3.3. Booting the kernel
    • 3.4. Processors and system configuration
    • 3.5. I/O ports
      • 3.5.1. Port allocation
      • 3.5.2. Back to I/O initialization
    • 3.6. Memory allocation
    • 3.7. Architecture initialization
      • 3.7.1. Traps and interrupts
      • 3.7.2. Virtual Memory
      • 3.7.3. Traps and interrupts (continued)
    • 3.8. Setting up I/O
    • 3.9. Preparing to have processes
    • 3.10. Devices
    • 3.11. Files and Channels
      • 3.11.1. Using local files
      • 3.11.2. Starting to serve files
      • 3.11.3. Setting up the environment
    • 3.12. Memory pages
    • 3.13. The first process
      • 3.13.1. Hand-crafting the first process:The data structures
      • 3.13.2. Hand-crafting the first process:The state
      • 3.13.3. Starting the process
  • Chapter 4. Processes
    • 4.1. Trap handling continued
    • 4.2. System calls
    • 4.3. Error handling
      • 4.3.1. Exceptions in C
      • 4.3.2. Error messages
    • 4.4. Clock, alarms, and time handling
      • 4.4.1. Clock handling
      • 4.4.2. Time handling
      • 4.4.3. Alarm handling
    • 4.5. Scheduling
      • 4.5.1. Context switching
      • 4.5.2. Context switching
      • 4.5.3. FPU context switch
      • 4.5.4. The scheduler
    • 4.6. Locking
      • 4.6.1. Disabling interrupts
      • 4.6.2. Test and set locks
      • 4.6.3. Queuing locks
      • 4.6.4. Read/write locks
    • 4.7. Synchronization
      • 4.7.1. Rendezvous
      • 4.7.2. Sleep and wakeup
    • 4.8. Notes
      • 4.8.1. Posting notes
      • 4.8.2. Notifying notes
      • 4.8.3. Terminating the handler
    • 4.9. Rfork
    • 4.10. Exec
      • 4.10.1. Locating the program
      • 4.10.2. Executing the program
    • 4.11. Dead processes
      • 4.11.1. Exiting and aborting
      • 4.11.2. Waiting for children
    • 4.12. The proc device
      • 4.12.1. Overview
      • 4.12.2. Reading under /proc
      • 4.12.3. Writing under /proc
      • 4.12.4. A system call? A file operation? Or what?
  • Chapter 5. Files
    • 5.1. Files for users
    • 5.2. Name spaces
      • 5.2.1. Path resolution
      • 5.2.2. Adjusting the name space
    • 5.3. File I/O
      • 5.3.1. Read
      • 5.3.2. Write
      • 5.3.3. Seeking
      • 5.3.4. Metadata I/O
    • 5.4. Other system calls
      • 5.4.1. Current directory
      • 5.4.2. Pipes
    • 5.5. Device operations
      • 5.5.1. The pipe device
      • 5.5.2. Remote files
    • 5.6. Caching
      • 5.6.1. Caching a new file
      • 5.6.2. Using the cached file
    • 5.7. I/O
      • 5.7.1. Creating a queue
      • 5.7.2. Read
      • 5.7.3. Other read procedures
      • 5.7.4. Write
      • 5.7.5. Other write procedures
      • 5.7.6. Terminating queues
      • 5.7.7. Other queue procedures
      • 5.7.8. Block handling
      • 5.7.9. Block allocation
    • 5.8. Protection
      • 5.8.1. Your local kernel
      • 5.8.2. Remote files
  • Chapter 6. Memory Management
    • 6.1. Processes and segments
      • 6.1.1. New segments
      • 6.1.2. New text segments
    • 6.2. Page faults or giving pages to segments
      • 6.2.1. Anonymous memory pages
      • 6.2.2. Text and data memory pages
      • 6.2.3. Physical segments
      • 6.2.4. Hand made pages
    • 6.3. Page allocation and paging
      • 6.3.1. Allocation and caching
      • 6.3.2. Paging out
      • 6.3.3. Configuring a swap file
      • 6.3.4. Paging in
      • 6.3.5. Weird paging code?
    • 6.4. Duplicating segments
    • 6.5. Terminating segments
    • 6.6. Segment system calls
      • 6.6.1. Attaching segments
      • 6.6.2. Detaching segments
      • 6.6.3. Resizing segments
      • 6.6.4. Flushing segments
      • 6.6.5. Segment profiling
    • 6.7. Intel MMU handling
      • 6.7.1. Flushing entries
      • 6.7.2. Adding entries
      • 6.7.3. Adding and looking up entries
  • Epilogue. And now what?
  • Bibliography

Sujets

SUBSCRIBE TO OUR NEWSLETTER

By subscribing, you accept our Privacy Policy