1、LINUX内核

参考:非常好的Linux内核视频 - Linux内核精讲(B站)

1、基本内核知识

LINUX内核:
在这里插入图片描述

1. 操作系统的结构与功能流程

  1. 操作系统的工作方式:
    2.1.把操作系统从用户态切换到内核态(用户应用程序到内核的流程
    2.2.实现操作系统的系统调用(操作系统服务层)
    2.3.应用操作系统提供的底层函数,进行功能实现3.1 操作系统的驱动结构
    2.4.推出后从内核态切换到用户态
  2. 操作系统内核中各级模块的相互关联
    3.1 Linux内核的整体模块:进程调度模块﹑内存管理模块、文件系统模块、进程间通信模块、驱动管理模块
    3.2每个模块间的关系
    3.2.1.内存管理和驱动管理模块虚拟内存的缓存和回存机制
    3.2.2.VFS 虚拟文件系统把硬件当成文件来进行使用
  3. 操作系统结构的独立性
    管理层
    实现层
    易于升级和维护 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.返回所有入栈的寄存器值

在这里插入图片描述
在这里插入图片描述

Logo

更多推荐