The Linux kernel consists of 5 major subsystems
are: Process scheduling (SCHED), interprocess communication (IPC), virtual file system (VFS), memory Management (MM), network communication (NET)
- Relationship between process scheduling and memory management: These two subsystems depend on each other. In a multi-channel program environment, the process must be created for the program, and the first thing to create a process is to load the program and data into memory.
- Relationship between interprocess communication and memory management: The interprocess communication subsystem relies on memory management to support the "shared memory" communication mechanism, which allows two processes to access a common area of memory in addition to their own private space.
- The relationship between the virtual file system and the network interface: the virtual file system uses a network interface to support the network File System (NFS), and also uses memory management to support RAMDisk devices.
- The relationship between memory management and virtual file systems: Memory management leverages the virtual file system to support switching, and the switching process (SWAPD) is scheduled by the scheduler periodically, which is the only reason that memory management relies on process scheduling. When a process accesses a memory map that is swapped out, memory management makes a request to the file system while suspending the currently running process.
"Disclaimer: Pictures are from the Internet"
Figure 1:linux Architecture
Figure 2:linux Architecture
Figure 3:linux Kernel structure
Linux kernel structure