This post only involves three mind maps for Linux covering principles, manual and programming. I find it is beneficial to organize my knowledge with mind map.

I also realized a few captions are also useful for the full picture, so they are attached.

Principles of Operating System

A modern Operating System has five components:

  • File Subsystem
  • Storage Subsystem
  • Device Subsystem
  • Processor Subsystem
  • Process/Job Subsystem

File Management

File Subsystem provides a convenient representation of the data layout maintained by the operating system. It is responsible for allocate, protect, share files or directories.

Storage Subsystem

Storage Subsystem controls memory for allocation, organization and free of space.

Device Subsystem

Device Subsystem offers an abstract for I/O devices introducing Disk Scheduling, Core I/O Subsystem, Driver. Four common I/O method covers:

  • Programming I/O
  • Interrupt
  • DMA
  • Channel

Processor Subsytem

The entity running on CPU is process or thread. For their benefits, Process Subsytem need implement an Interrupt System. As to process, Processor Subsystem is in charge of creation, cancel, block, wake, scheduling of it. It’s also the accountability of Processor Subsystem to support threads.

Process Subsystem

When it comes to details of running program, here comes the Process Subsystem taking charge of communication, exclusion, break deadlock for processes.

Linux Manual

I think it is not necessary to unfold the details of this section since it is manifest.

Linux Programming

For classification, I divide this section into:

  • Shell
  • File Operation
  • Socket
  • IPC
  • Process & Signal
  • curses
  • Data Management
  • Terminal

and some tips for development and debug.