Operating Systems: the tiny textbook

by: burt rosenberg
at: univ of miami


 
Dave, my mind is going.
I can feel it. I can feel it ...
 
... I am a HAL 9000 computer. I became
operational at the H.A.L. plant in Urbana,
Illinois on the 12th of January 1992.
My instructor was Mr. Langley,
and he taught me to sing a song.
  1. Introduction
    1. What is an operating system?
    2. What is a kernel?
    3. Syscalls and stack frames.
    4. A brief history
  2. Process and Context
    1. A new theory of processes
    2. The process and its life cycle
    3. Thread abstraction and physical threads
    4. Virtual Memory
    5. Pages and page frames
    6. Demand paging and eviction
    7. Frame management and the swap cache
  3. Scheduling and Synchronization
    1. Context switching
    2. Thread resource simulation and scheduling
    3. Synchronization: Principles and properties
    4. Synchronization: Algorithms
    5. Semaphores and Monitors
    6. Hardware interrupts
    7. Deferred work and software interrupts
    8. Signals and interprocess communication
  4. Core services
    1. Kernel memory management (regions)
    2. User memory management
    3. Overview
    4. An example
    5. Libraries and dynamic loading
  5. Persistence and Consistency
    1. Block devices
    2. relational databases
    3. A tale of three file systems
    4. Deep dive into the unix filesystem
    5. Deep dive part 2
    6. Extensions in the "ext" filesystem
    7. memcache, RAM disks, etc
  6. Appendix
    1. The software engineering process
    2. The mythical man-month
    3. The cathedral and the bazaar
    4. Linux and FreeBSD Release engineering and updates
    5. C Language

Creative Commons License
Operating Systems: the tiny textbook is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.
First Release: 21 nov 2012
Revised: 8 sep 2015