首先,Linux整体的架构如图:
再来看Linux内核架构,
内核由五个主要子系统组成:
Process Scheduler :
进程调度(SCHED)负责控制对CPU的进程访问。调度程序执行相应的策略,使得多个进程能在CPU中“微观串行,宏观并行”地执行。进程调度处于系统的中心位置,内核中其他的子系统都依赖它,因为每个子系统都需要挂起或恢复进程。在用户空间,进程是由进程标示符(PID)表示的。在linux内核空间,每个进程都有一个独立的数据结构,用来保存该进程的ID、优先级、地址的空间等信息,这个结构也被称做进程控制块(Process Control Block)。所谓的进程管理就是对进程控制块的管理。
Memory Manager:
内存管理器(MM)允许多个进程安全地共享机器的内存系统。此外,内存管理器还支持虚拟内存,该虚拟内存允许Linux支持使用的内存量超过系统可用内存的进程。为了解决物理内存有时被耗尽的问题,内存管理子系统规定页面可以移出内存并放入磁盘中,这个过程称为交换。内存管理的源代码可以在./linux/mm中找到。
Virtual File System :
虚拟文件系统(VFS)通过为所有设备提供通用文件接口来抽象化各种硬件设备的详细信息。它独立于各个具体的文件系统,是对各种文件系统的一个抽象,它使用索引节点inode存放文件的物理信息,使用目录项dentry存放文件的逻辑信息。
Network Interface :
网络接口可分为网络协议和网络驱动程序,网络协议部分负责实现每一种可能的网络传输协议,网络设备驱动程序负责与硬件设备通信。写网络应用程序,使用socket通过TCP/IP协议与其他机器通信。网络数据从用户进程到达实际的网络设备需要四个层次:用户进程,套接字,网络协议,网络设备。
Inter-Process Communication :
进程通信支持提供进程之间的通信,Linux支持进程间的多种通信机制,包含信号量、共享内存、管道等。
评论
查看更多