一.Linux内核源码目录结构
1.Linux内核特性
Linux内核的组织形式为整体式结构
Linux进程调度方式简单而高效
Linux支持内核线程
解释:(1.守护线程;在后台运行,不需要终端和登录shell和他结合在一起的进程; | 2.有周期性的完成特定的任务,处理某一些事件:HD或者led等等; | 3.类似于用户进程,但又不等于,像内核一样不被放出,所以运行效率比较高); |
Linux支持多种平台的虚拟内存管理
解释:(为了虚拟技术的通用性, | 它为不同的平台提供了一个统一的接口) |
Linux的虚拟文件系统(VFS)
解释:(为逻辑文件系统提供一个标准统一的接口; | 为各种硬件设备提供统一的接口; | 硬件设备可以作为一种文件) |
Linux的模块机制使得内核保持独立而又非常容易扩充
Linux内核网络架构模块面向对象设计思想架构
(支持多种协议, | 多种网络协议程序等等) |
二、Linux操作系统结构
1. Linux内核在系统的位置
(系统调用由若干的指令构成的过程,实现一些特定的服务,与一般的过程不同,区别在系统调用在内核态/内核态,一般过程在用户态)
2.Linux内核各个子系统之间关系
进程管理:控制着进程对CPU的访问操作
|
与硬件无关:
提供进程的映射和 | 虚拟内存直接的对换 |
与硬件有关:
内存管理硬件提供一个虚拟接口
虚拟文件系统(VFS):
不同架构的硬件细节,提供一个统一的接口,支持不同文件系统。 | 分为设备驱动程序(为每一种硬件控制器所编写的设备驱动程序的模块)和逻辑文件系统 |
网络管理:
提供网络各种标准协议的存取、 | 各种网络硬件的支持 |
网络接口:
网络协议 | 、硬件的驱动的程序(和硬件设备通信) |
进程通信:
支持进程间各种通信机制
每一个子系统都需要挂载和恢复进程,
当一个硬件完成时,就被挂起,操作真正完成时,进程就恢复完成。但一个进程需要网络发送数据包信息时,网络接口就是需要挂起到进程,直到硬件完成消息的发送,网络接口返回代码(失败,成功)/还有其他子系统
进程调度和内存管理:
相互依赖,进程间通信子系统依赖内存管理中的共享内存机制,此机制允许自己的私有内存,共同的内存区。
虚拟文件系统和网络:
利用网络管理接口支持网络文件系统, | 也利用内存管理支持某些设备 |
内存管理和虚拟文件系统:
内存管理需要虚拟文件系统支持交换:调度程序进行调度,当一个程序的内存映射被放出时,内存管理需要向文件系统发出请求 ,同时挂起当前正在运行的进程。 | 所有的子系统需要共享一些资源 |