前言
以内核代码 v0.11 和 v3.4.2 版本源码对 Linux 内核相关知识进行学习,由浅入深逐步掌握 Linux 内核。本文记录 Linux 操作系统结构与功能流程的学习。
一、linux操作系统结构
linux操作系统结构如下图:
操作系统服务层的接口实现:
- linux/kernel/asm.s
- linux/kernel/sys.c
- linux/kernel/system_call.s
二、操作系统的工作方式
- 1、把操作系统从用户态切换到内核态(用户应用程序到内核的流程)
- 2、实现操作系统的系统调用(操作系统服务层实现的)
- 3、应用操作系统提供的底层函数,进行功能实现
- 操作系统的驱动结构
- 4、退出后从内核态切换到用户态
三、操作系统内核中各级模块的相互关联
- 1、Linux内核的整体模块:进程调度模块、内存管理模块、文件系统模块、进程间通信模块、驱动管理模块
- 2、每个模块间的关系
- ①、内存管理和驱动管理模块---------虚拟内存的缓存和回存机制
- ②、VFS 虚拟文件系统---------把硬件当成文件来进行使用
操作系统的内核的结构以及内核间的关系如下图:
四、Linux操作系统结构的独立性
- 分清楚管理层和实现层,管理层和实现层是相互独立的
- 因存在管理层和实现层的存在,使得内核易于升级和维护(1991~至今)
- 高版本的内核和低版本内核之间的区别:多的是内核驱动的种类,内核驱动的管理模式并没有巨大的改变(一段时间3个阶段的跳变:零散性、分层性、设备树)
- 进程的调度算法发生了改变,进程的管理方式并没有巨大的改变