Linux内核的学习总结(一)

来源:互联网 发布:硬盘分区后数据恢复 编辑:程序博客网 时间:2024/06/05 09:21

初次接触Linux的内核源代码,现就所看所学做如下总结:

一、Linux内核模式:

        操作系统的内核的结构模式主要分为整体式的单内核模式和层次式的微内核模式。Linux0.11内核则采用单内核模式。单内核模式的内核代码结构紧凑、执行速度快,但层次结构性不强。单内核模式的内核可以粗略的分为三个层次:调用服务的主程序层、执行系统调用的服务层和支持系统调用的底层函数。

二、Linux内核系统的体系结构

        Linux内核可以分为5个模块:

进程间调度模块:用于负责控制进程对CPU资源的使用,即使各进程能够公平合理的访问CPU,同时保证内核能及时地执行硬件操作;

 内存管理模块:用于确保所有进程能够安全地共享机器主机内存区,同时该模块还支持虚拟内存管理方式;

文件系统模块:用于支持外部设备的驱动和存储,虚拟文件系统模块通过向所有的外部存储设备提供一个通用的文件接口,隐藏了各种硬件设备的不同细节。从而提供并支持与其它操作系统兼容的文件系统格式;

进程间通信模块:用于支持多种进程间的信息交换方式。

网络接口模块:提供对多种网络通信标准的访问并支持许多网络硬件。

此处需要注意,对于虚拟文件系统的实现是从Linux0.95版实现的,网络接口的支持在0.96版才有。  

关系,如上图所示各个模块之间存在着联系的:

所有的模块均与进程间调度模块存在依赖关系,因为它们需要依靠进程调度程序来挂起或者重新运行。

此外,进程调度子程序系统需要使用内存管理器来调整特定进程所使用的物理内存空间;进程间通信子系统需要依靠内存管理器来支持共享内存通信机制;虚拟文件系统也会使用网络接口来支持网络文件系统(NFS)。

三、Linux进程控制

对于进程的一些基础知识,在有关操作系统的书上均有讲解,此处不再做讲解,就针对Linux存在的一些特点做如下总结:

(1)在Linux系统中,一个进程可以在内核态下执行也可以在用户态下执行,故Linux内核堆栈与用户堆栈是分开的;用户堆栈用于进程在用户态下临时保存调用函数的参数、局部变量等数据;内核堆栈则含有内核程序执行函数调用时的信息。

(2)在Linux系统中,内核程序通过进程表对进程进行管理,每个进程在进程表中占有一项,进程表项是一个task_struct任务结构指针,定义在头文件include/linux/sched.h中。

(3)在Linux系统中,创建新进程使用fork() 系统调用,所有进程均是通过复制进程0得到的,均是进程0的子进程。

关于Linux的进程讲解,未完待续,,,,,



0 0
原创粉丝点击