Linux内核完全注释(0.11版) DAY1

完整可用的操作系统组成:硬件、操作系统内核、操作系统服务和用户应用进程

用户应用进程:字节处理程序、互联网浏览器程序或用户自行编制的各种应用程序 
操作系统服务:指向用户提供的服务,被看做操作系统部分功能的程序。例如:X窗口系统、shell命令解释系统以及内核编程接口等系统程序 
操作系统内核:主要用于对硬件的抽象访问调度。分为整体式单内核模式层次式的微内核模式

单内核可以粗略分为三层:调用服务的主程序层、执行系统调用的服务层、支持系统调用的底层函数

linux内核模块包括:进程调度模块、内存管理模块、文件系统模块、进程间通信模块、网络接口模块

进程的状态可以分为:运行状态、可中断睡眠状态、不可中断睡眠状态、暂停状态、僵死状态

进程创建 

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

具体步骤:当创建新进程时,系统首先在任务数组中查找到没有被使用的空项(空槽)。如果系统已经达到最大进程数,则fork()会出错返回。系统会为新建进程在主存区申请一页存放任务数据结构信息,并复制当前进程任务数据结构中所有内容作为新进程任务模板。并且此时该新进程处于不可中断睡眠状态。

Linux内核对内存使用方法

因为地址间存在存在地址映射所以要区分逻辑地址、线性地址、物理地址、虚拟地址

逻辑地址:指由程序产生的与段相关的偏移地址部分。

线性地址:逻辑地址到物理地址变换之间的中间层。

物理地址:是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终地址。

虚拟地址:指计算机呈现出要比实际内存大的多的内存量

联系:逻辑地址与虚拟地址概念类似因此有时候我们也把逻辑地址成为虚拟地址。逻辑地址通过分段机制映射成为线性地址而线性地址通过分页方式映射为物理地址,如果没有启动分页机制则线性地址就是物理地址。

Linux内核源代码的目录结构

Linux/目录是源代码的主目录,该主目录中除了包括所有的14个子目录,共102个代码文件。还有唯一的一个Makefile文件(make工具软件是程序项目管理软件)

引导启动程序目录boot

boot目录中含有3个汇编语言文件(系统引导汇编程序),主要用于计算机加电时引导内核启动。bootsect.s和setup.s程序需要使用as86软件编译,head.s需要GNU as编译(注:.s结尾是汇编文件.S结尾是汇编+预编译文件).



猜你喜欢

转载自blog.csdn.net/qq_31869107/article/details/80559614