Linux文件系统
Linux将所有事物都看作文件,除了传统的ext系统,Linux在抽象不同资源的时候会根据需求和使用出发,怎么方便怎么来,比如proc文件系统是针对进程的抽象,修改对应进程的值就可以直接改变进程的行为。再比如,对于远程ssh登录的pts设备,Linux有对应的devpts文件系统。
整体架构与子系统划分
上图是整体核心架构,Linux又提出五个子系统
1. Process Scheduler进程管理。负责管理 CPU 资源,以便让各个进程可以公平的访问 CPU。
2. Memory Manager内存管理。负责管理 内存资源,以便让各个进程可以安全的共享机器的内存资源。另外,内存管理会提供虚拟内存的机制,该机制可以让进程使用多于系统可用 Memory 的内存,不用的内存会通过文件系统保存在外部非易失存储器中,需要使用的时候,再取回到内存中。
3. VFS(Virtual File System)虚拟文件系统。Linux 内核将不同功能的外部设备,例如
Disk 设备(硬盘、磁盘、NAND Flash、Nor Flash 等)、输入输出设备、显示设备等等,抽
象为可以通过统一的文件操作接口(open、close、read、write 等)来访问。这就是 Linux
系统“一切皆是文件”的体现(其实 Linux 做的并不彻底,因为 CPU、内存、网络等还不是
文件,如果真的需要一切皆是文件)。
4. 设备驱动,负责管理第三方设备接入/终端。
5. Network网络子系统。负责管理系统的网络设备,并实现多种多样的网络标准。