1、LINUX内核
参考:非常好的Linux内核视频 - Linux内核精讲(B站)
1、基本内核知识
1. 操作系统的结构与功能流程
- 操作系统的工作方式:
2.1.把操作系统从用户态切换到内核态(用户应用程序到内核的流程
2.2.实现操作系统的系统调用(操作系统服务层)
2.3.应用操作系统提供的底层函数,进行功能实现3.1 操作系统的驱动结构
2.4.推出后从内核态切换到用户态 - 操作系统内核中各级模块的相互关联
3.1 Linux内核的整体模块:进程调度模块﹑内存管理模块、文件系统模块、进程间通信模块、驱动管理模块
3.2每个模块间的关系
3.2.1.内存管理和驱动管理模块虚拟内存的缓存和回存机制
3.2.2.VFS 虚拟文件系统把硬件当成文件来进行使用 - 操作系统结构的独立性
管理层
实现层
易于升级和维护 1991–2016
高版本的内核
低版本的内核之间的区别
多的是内核驱动的种类―内核驱动的管理模式并没有巨大的改变(一段时 间3个阶段的跳段|零散型分层型设备树)
进程的调度算法发生改变 进程的管理方式没有巨大改变
注:0.01内核是永恒 3.4.2内核学区别
2. 内核中断体系结构
目的:
1.硬件的中断响应---->内核驱动中的中断
2.系统调用的函数响应(sys call) —>系统调用3.自定义中断----->软件的软中断模式
4.信号中断(kill -signalnum) ---->对了解信号的使用创建等5.系统的异常和错误-----》系统的异常获取了解系统异常的作用
1.Linux的中断机制
1.1 分类:硬件中断软件中断
硬中断:由电脑主机的8259A类似的硬件中断控制芯片发出的中断
ARM中断控制器发出的中断
软中断:异常第一类:CPU自行保留的中断
系统调用异常
1.2 代码结构:
0.11内核源码:
硬件中断处理过程 asm.s trap.c
软件及系统调用处理过程 system call.s fork.c signal.c exit.c sys.c
2.中断的工作流程:
中断:保护现场 恢复现场
2.1 回忆:
做CPU工作模式的转化进行寄存器的拷贝与压栈设置中断异常向量表
保存正常运行的函数返回值
跳转到对应的中断服务函数上运行讲行模式的
2.2
Linux中中断的工作流程:
1.将所有的寄存器值入栈
( 8086中)
SS EFLAGS ESP CS EIP
(错误码)
ARM中的( r0-r15 )
2.将异常码入栈(中断号)
3.将当前的函数返回值进行入栈(为了在中断执行后能够找到在哪中断的,能够复原)
4.调用对应的中断服务函数
5.出栈函数返回值
6.返回所有入栈的寄存器值