Skip to content
Search

Operating Systems

lastmod 2026-08-23created 2014-02-1128 edits

Subfields of operating systems

An operating system (OS) is system software that not only manages system hardware but also provides a hardware abstraction platform and common system services for running application software. Recently, thanks to advances in virtualization technology, it may also run on a hypervisor rather than on actual hardware.

For hardware functions such as input/output and memory allocation, the operating system acts as an intermediary between application programs and the computer hardware. However, application code is generally executed directly by the hardware. Operating systems are found on almost any device that contains a computer, from mobile phones and game consoles to supercomputers and web servers. An operating system is a two-sided platform that can bring consumers on one side and program developers on the other together into a single market. Well-known modern PC operating systems include Microsoft Windows, Mac OS X, and Linux. Other PC operating systems such as BSD and Unix also exist.

The operating system lets running applications use resources such as memory, the CPU, and input/output devices, and abstracts them to provide services such as file systems. When multitasking is supported, while several applications are running, the operating system schedules all of these processes so that they appear to run at the same time. Operating systems are also a research field of computer science.

Operating system and kernel

An operating system is a special kind of program that runs a computer. The operating system has a part that can be called its core, which is called the kernel. The kernel controls the computer system: it manages memory, reads and writes data on disk, runs programs, and manages hardware devices such as network cards, sound cards, and graphics cards.

From an academic point of view, the operating system refers to this kernel itself. For example, the Linux operating system means the Linux kernel. However, there is not much you can do with the kernel alone. Only when other essential programs such as a shell and administrator management tools sit on top of the kernel is there an environment in which you can control the computer. For this reason, in common usage, kernel + essential programs together are called the operating system.

Categories

List of OS

Implementing an operating system in 1,000 lines

Getting started

  • We will implement basic context switching, paging, user mode, a command-line shell, a disk device driver, and file read/write operations in C
  • All of this is possible in 1,000 lines of code
  • The hardest part of building your own OS is debugging
  • You can't use printf debugging until you implement it, and you have to learn various debugging techniques and skills that you never needed in application development
  • Especially when starting "from scratch", you will run into hard parts such as the boot process and paging
  • But don't worry! You will also learn how to debug an OS
  • The harder the debugging, the greater the satisfaction when you succeed
  • Let's dive into the exciting world of OS development!

Other information

  • Implementation examples can be downloaded from GitHub.
  • The book is provided under the CC BY 4.0 license, and the implementation examples and source code are under the MIT license
  • You should be familiar with C and UNIX-like environments; if you can run gcc hello.c && ./a.out, you're ready
  • The book was originally written as an appendix to the book "Design and Implementation of Microkernels", written in Japanese
  • Happy OS hacking!

Table of contents of the book

  • Intro
  • Getting Started
  • RISC-V 101
  • Overview
  • Boot
  • Hello World!
  • C Standard Library
  • Kernel Panic
  • Exception
  • Memory Allocation
  • Process
  • Page Table
  • Application
  • User Mode
  • System Call
  • Disk I/O
  • File System
  • Outro

Operating System Concepts (dinosaur book) table of contents

Chapter 1. Introduction

  • What operating systems do
  • Computer-system organization
  • Computer-system architecture
  • Operating-system operations
  • Resource management
  • Security and protection
  • Virtualization
  • Distributed systems
  • Kernel data structures
  • Computing environments
  • Free and open-source operating systems
  • Summary

Chapter 2. Operating-System Structures

  • Operating-system services
  • User and operating-system interface
  • System calls
  • System services
  • Linkers and loaders
  • Why applications are operating-system specific
  • Operating-system design and implementation
  • Operating-system structure
  • Building and booting an operating system
  • Operating-system debugging
  • Summary

Chapter 3. Processes

  • Process concept
  • Process scheduling
  • Operations on processes
  • Interprocess communication
  • IPC in shared-memory systems
  • IPC in message-passing systems
  • Examples of IPC systems
  • Communication in client-server systems
  • Summary

Chapter 4. Threads and Concurrency

  • Overview
  • Multicore programming
  • Multithreading models
  • Thread libraries
  • Implicit threading
  • Threading issues
  • Operating-system examples
  • Summary

Chapter 5. CPU Scheduling

  • Basic concepts
  • Scheduling criteria
  • Scheduling algorithms
  • Thread scheduling
  • Multi-processor scheduling
  • Real-time CPU scheduling
  • Operating-system examples
  • Algorithm evaluation
  • Summary

Chapter 6. Synchronization Tools

  • Background
  • The critical-section problem
  • Peterson's solution
  • Hardware support for synchronization
  • Mutex Locks
  • Semaphores
  • Monitors
  • Liveness
  • Evaluation
  • Summary

Chapter 7. Synchronization Examples

  • Classic problems of synchronization
  • Synchronization within the kernel
  • POSIX synchronization
  • Synchronization in Java
  • Alternative approaches
  • Summary

Chapter 8. Deadlocks

  • System model
  • Deadlock in multithreaded applications
  • Deadlock characterization
  • Methods for handling deadlocks
  • Deadlock prevention
  • Deadlock avoidance
  • Deadlock detection
  • Recovery from deadlock
  • Summary

Chapter 9. Main Memory

  • Background
  • Contiguous memory allocation
  • Paging
  • Structure of the page table
  • Swapping
  • Example: Intel 32- and 64-bit architectures
  • Example : ARM architecture
  • Summary

Chapter 10. Virtual Memory

  • Background
  • Demand paging
  • Copy-on-write
  • Page replacement
  • Allocation of frames
  • Thrashing
  • Memory compression
  • Allocating kernel memory
  • Other considerations
  • Operating-system examples
  • Summary

Chapter 11. Mass-Storage Structure

  • Overview of mass-storage structure
  • Disk scheduling
  • NVM scheduling
  • Error detection and correction
  • Storage device management
  • Swap-space management
  • Storage attachment
  • RAID structure
  • Summary

Chapter 12. I/O Systems

  • Overview
  • I/O hardware
  • Application I/O interface
  • Kernel I/O subsystem
  • Transforming I/O requests to hardware operations
  • STREAMS
  • Performance
  • Summary

Chapter 13. File-System Interface

  • File concept
  • Access methods
  • Directory structure
  • Protection
  • Memory-mapped files
  • Summary

Chapter 14. File-System Implementation

  • File-system structure
  • File-system implementation
  • Directory implementation
  • Allocation methods
  • Free-space management
  • Efficiency and performance
  • Recovery
  • Example: the WAFL file system
  • Summary

Chapter 15. File-System Internals

  • File systems
  • File-system mounting
  • Partitions and mounting
  • File sharing
  • Virtual file systems
  • Remote file systems
  • Consistency semantics
  • NFS
  • Summary

Chapter 16. Security

  • The security problem
  • Program threats
  • System and network threats
  • Cryptography as a security tool
  • User authentication
  • Implementing security defenses
  • Example: Windows 10
  • Summary

Chapter 17. Protection

  • Goals of protection
  • Principles of protection
  • Protection rings
  • Domain of protection
  • Access matrix
  • Implementation of the access matrix
  • Revocation of access rights
  • Role-based access control
  • Mandatory access control
  • Capability-based systems
  • Other protection improvement methods
  • Language-based protection
  • Summary

Chapter 18. Virtual Machines

  • Overview
  • History
  • Benefits and features
  • Building blocks
  • Types of VMs and their implementations
  • Virtualization and operating-system components
  • Examples
  • Virtualization research
  • Summary

Chapter 19. Networks and Distributed Systems

  • Advantages of distributed systems
  • Network structure
  • Communication structure
  • Network and distributed operating systems
  • Design issues in distributed systems
  • Distributed file systems
  • DFS naming and transparency
  • Remote file access
  • Final thoughts on distributed file systems
  • Summary

See also

Favorite site

Tutorials

References


  1. Concept_Theorem_-_7_Operating_System.pdf ↩

author Zer0 sitemap