Linux kernel学习(一)

今天了解了linux操作系统的结构,也就是application层到硬件层的结构图,以及在kernel中模块之间的联系,手绘了流程图大致如下:

从这样一幅结构图中可以看出用户在使用的时候,系统内部是一个逐层调用的过程的,这就需要介绍linux的工作方式了。
首先linux是分为用户态和内核态的,而linux操作系统的工作方式就是先从用户态切换到内核态,调用接口层提供的被底层操作系统所实现的函数的接口,然后在驱动中执行,最后退出内核态转为用户态的过程,内核大致分为五个整体模块,分别是:
1、进程调度模块
2、进程间通信模块
3、内存管理模块
4、文件系统模块
5、驱动管理模块(网上也有将驱动管理模块改为网络接口模块的,我觉得网络接口模块应该算在驱动管理模块之内的,因为驱动管理模块不仅包含了网络驱动,也包含了字符型驱动和块设备驱动)

进程调度模块与进程间通信模块并不冲突,进程调度模块主要是负责进程的创建,进程的更新,CPU对线程的轮转执行顺序管理以及进程的销毁;而进程间通信模块是指两个app之间的线程或者同一个app下的多个线程之间信息交互的功能

内核中的这几个模块可以独立完成分内的工作,但是在多数时候是需要多个模块合作来完成一个任务的,所以在多数情况下各个模块间的关系是错综复杂的。下图便是kernel中各个模块间的依赖关系:

VFS(virtual file system):虚拟文件系统
模块间的关系是相互依赖的,但宏观Linux系统结构是具有独立性的,这是因为linux的管理层和实现层是分开处理的(提供接口的就不实现,实现的就不提供接口,避免了同一函数内过于膨胀),互不干扰,这样做的好处是利于升级换代,自1991年linux的更新以来,每个更新版本多出来的是一些之前没有的驱动种类,也就是实现层,但是内核驱动的管理模式(也就是管理层)并没有发生太多改变(管理模式有三个阶段的发展:零散型—>分层型—>设备树)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值