Linux内核结构
操作系统工作在应用软件和硬件之间,为应用软件提供间接操作硬件的抽象接口(系统调用)
linux内核可大致分为IO、内存管理和进程管理三大部件(事实上他们相互依存)
- IO部件存在于其顶层的虚拟文件系统里
可从 字符设备、网络设备、文件(块设备) 三大块来看
三者最低层都是对应的驱动。
三者从用户视角看来最直观的分别对应着
“shell/vim”、“套接字(socket)”、“文件(文件系统)”
- 字符设备
根据不同的行规则对应着两种不同的使用方式——vi等编辑器和shell等命令行。顶层终端上的输出根据行规则格式化。
- 网络设备
的socket接口允许用户针对特定的的网络和协议创建socket并为每个套接字返回一个文件描述符。大多数linux内核自带路由器功能。
- 块设备
支持检索和随机访问,最顶层是文件系统。文件系统功能基于通用的块层(支持不同文件系统,linux系统中通常有多个不同的文件系统)。而负责调度磁盘驱动器的IO调度器处于通用块层和底层驱动之间。
- 存储管理任务包括(三个维护)
维护映射:维护虚拟内存到物理内存的映射
维护缓存:维护页面缓存
维护读取:实现好的页面置进程管理的任务(三个处理)
- 进程管理的任务(三个处理)
处理进程的创建和终止
处理信号
处理CPU的调度(进程调度)换算法、根据需要读入数据和代码页