linux系统结构
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
目录
0.前言
本专栏是记录内核学习的参考b站linux内核源码分析以及linux内核艺术图解。后面的文章将记录个人的学习源码注释源码理解。
1.系统结构图
用户应用程序
三方库标准库 SDK等
用户态
-------------------------------------------------------------------------------------------------
操作系统的服务层 sys_call系统调用 快递接口层
用户态与内核态的过度层
--------------------------------------------------------------------------------------------------
操作系统内核
文件系统模块虚拟文件系统VFS,【将硬件当成文件使用】
内存管理模块虚拟内存
进程调度模块
进程间通信模块
驱动管理模块管理驱动但是不实现驱动
驱动字符型驱动块设备驱动网络驱动
硬件系统驱动实现
内核态
--------------------------------------------------------------------------------------------------
硬件
硬件层
---------------------------------------------------------------------------------------------------
linux内核也可以从管理层和实现层分层实现有强独立性易于升级和维护不断迭代只需要修改某些模块模块的独立性让整个框架的模块解耦。
1.1.操作系统工作方式
程序是不断运行在用户态的只有需要用到一些底层的系统api系统调用支持获取相应的数据时才会进入内核态。
1.把操作系统从用户态切换到内核态(用户应用程序到内核的流程)-----利用陷阱trap是同步异常是执行一条指令的结果。陷阱最重要的用途是在用户程序和内核之间提供系统调用接口。陷阱总返回到当前指令的
2.实现操作系统的系统调用(操作系统服务层)-----syscall
3.应用操作系统提供的底层函数根据操作系统的驱动完成相应的任务。
4.退出后从内核态切换到用户态
1.2.高版本和低版本内核区别
linux整体框架基本不变高版本的内核主要是一些算法的改进进程调度算法驱动的种类但是进程的管理方式基本不变驱动管理模式几乎不变管理模式零散型 分层型 设备树[为了安卓操作系统更好的管理硬件]所以源码将以linux0.11版本去看源代码。