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 Link to heading

A modern Operating System has five components:

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

File Management Link to heading

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 Link to heading

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

Device Subsystem Link to heading

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 Link to heading

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 Link to heading

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

Linux Manual Link to heading

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

Linux Programming Link to heading

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.