linux内核体系结构x

linux内核体系结构x

ID:39970308

大小:1.03 MB

页数:32页

时间:2019-07-16

linux内核体系结构x_第1页
linux内核体系结构x_第2页
linux内核体系结构x_第3页
linux内核体系结构x_第4页
linux内核体系结构x_第5页
资源描述:

《linux内核体系结构x》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux内核体系结构1操作系统的内核模式整体式的单内核模式:Linux0.12应用主程序使用指定的参数值执行系统调用指令(intx80),使CPU从用户态切换到核心态(调用服务的主程序层)OS根据具体的参数值调用特定的服务程序(执行系统调用的服务层)服务程序根据需要调用底层的支持函数(支持系统调用的底层函数)层次式的微内核模式2Linux内核系统模块结构连线代表它们之间的依赖关系虚线和虚框表示Linux0.12还未实现的部分Linux0.95逐步实现虚拟文件系统Linux0.96开始支持网络接口3Linux0.12内核源代码结构4Linux内核对内存的管理和使用物理

2、内存使用的功能分布5内存地址空间虚拟地址(逻辑地址)到物理地址的变换过程6Linux系统中虚拟地址空间分配7中断机制对于Linux内核而言,中断信号包括:硬件中断软件中断(异常)故障Fault:错误发生前检测到陷阱Trap:错误发生后检测到中断int0-int31由Intel公司固定设定或保留,属于软件中断中断int32-int255可由用户设定8系统调用用户程序可以直接执行系统调用用户程序可以通过C函数库做中介来调用Linux系统使用通过寄存器来传递参数,如寄存器ebx、ecx、edx9系统时间和定时初始化时,内核通过/init/main.c程序中的time_ini

3、t()函数读取芯片中保存的当前时间和日期信息,并通过kernel/mktime.c中的kernel_mktime()函数转换成从1970年1月1日0时开始到当前的以秒为单位的时间,保存在全局变量start_time中供内核所有代码使用用户程序可使用系统调用time()来读取其值,超级用户使用系统调用stime()来修改其值CURRENT_TIME=startup_time+jiffies/HZHZ=100,内核系统时钟频率jiffies,系统滴答值,每个滴答系统定时10ms每经过一个滴答,系统会调用一次时钟中断处理程序(timer_interrupt)10Linux进

4、程控制进程状态及转换关系11进程调度进程的抢占发生在进程处于用户态执行阶段,在内核态执行时是不能被抢占的schedule()函数扫描任务数组,比较就绪态任务的运行时间递减滴答计数counter值,确定最长的选中然后调用switch_to()执行counter=counter/2+priority创建新的子进程和加载运行一个执行程序完全不同。前者完全复制父进程的代码和数据,并会在其中执行子进程部分的代码,后者运行exec()系统调用来操作12堆栈的使用Linux0.12系统供使用4种堆栈。系统引导初始化时临时使用的堆栈进入保护模式之后提供内核程序初始化使用的堆栈,任务0

5、使用的用户态堆栈每个任务通过系统调用,指定内核程序时使用的堆栈,称为任务的内核态堆栈。每个任务都有自己独立的内核态堆栈任务在用户态使用的堆栈,位于任务(进程)逻辑地址空间近末端处13初始化阶段堆栈的使用14普通任务堆栈15任务0和任务1的堆栈任务0:空闲进程idle任务1:初始化进程init任务0段基址从线性地址0开始,任务1的段基址从64MB开始,但都映射到物理地址0-640KB,即内核代码和基本数据存放的地方。16任务内核态堆栈与用户态堆栈17文件系统etc/:主要含有一些系统配置文件dev/:含有设备特殊文件,用于使用文件操作语句操作设备bin/:存放系统执行程

6、序,如sh、mkfs、fdisk等usr/:存放库函数、手册和其他一些文件usr/bin:存放用户常用的普通命令var/:用于存放系统运行时可变的数据或者日志等信息18内核源代码的目录结构主目录linux中除了14个子目录外,还含有唯一一个Makefile文件,还嵌套调用了所有子目录中包含的Makefile文件。编译整个内核的所有源代码文件,只需在linux目录下运行make。19引导启动程序目录bootbootsect.S:磁盘引导块程序,编译后驻留在磁盘第一个扇区中。PC加电ROMBIOS自检后,会被BIOS加载到内存0x7C00处运行。setup.s:读取机器硬

7、件配置参数,并把内核模块system移动到适当的内存位置处。head.s:编译连接在system模块的最前部分,主要进行硬件设备的探测设置和内存管理页面的初始设置工作。20文件系统目录fs采用1.0版的MINIX文件系统包含18个C语言程序每个方框代表一个文件所有对文件系统中数据的访问,都需要首先读取到高速缓冲区中。21文件系统目录fsfs目录中各程序中函数之间的相互引用关系22头文件主目录include包含32个.h头文件:CPU体系结构相关头文件子目录include/asmLinux内核专用头文件子目录include/linux系统专用数据结构子

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。