ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:123.73KB ,
资源ID:5867870      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5867870.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(湘潭大学Linux内核分析知识点.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

湘潭大学Linux内核分析知识点.docx

1、湘潭大学Linux内核分析知识点第一章1Linux诞生于1991年10月25日。2Linux诞生和发展不可缺少的五个支柱:1、UNIX最初的开放源代码版本为Linux提供了基本原理和算法。2、Richard Stallman的GNU计划为Linux系统提供了丰富且免费的各种实用工具。3、POSIX标准的出现为Linux提供了实现与标准兼容系统的参考指南。4、Tanenbaum的MINIX操作系统为Linux的诞生起到了不可忽略的参考作用。5、互联网是Linux成长和壮大的必要环境。第二章1操作系统主要有4部分组成:硬件、操作系统内核、操作系统服务和用户应用程序。2操作系统内核的结构模式主要可分

2、为整体式的单内核模式和层次式的微内核模式。3单内核的主要优点:内核代码结构紧凑、执行速度快,不足之处:层次结构性不强。4单内核模式可分为三层:调用服务的逐层序层、执行系统调用的服务层和支持系统调用的底层函数。5Linux内核主要由5个模块构成:进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。6Makefile的三部分:目标、先决条件和命令。7内核映像文件(Image)的三部分:bootsect、setup、system。通过build工具连接而成。第三章1引导扇区是磁盘的第一个扇区(0磁头,0磁道,1扇区),自举程序(引导程序)的大小为512B,最后两个字节必须为0xa

3、a55。2movw指令: 从ds:si移动一个字到es:di,然后根据标志寄存器中direct标志位,把si和di分别加2(d=0)或减2(d=1)。Rep指令:重复执行后面的命令,重复次数放在cx寄存器中,每执行一次后面的命令则把cx中的值减1,直到cx为0。 3 限制(1)13中断一次只能读同一磁道上的扇区(2)实模式下内存段大小不能超过64K解决方法:(1)一次读一个扇区,读完后如果内存段满了则调整到下一个内存段。太慢!(2)在读之前取磁道上剩余扇区大小和内存段剩余大小中的最小值M,读M/512个扇区。4 磁盘读取规则:当0磁头的某个磁道读完,下一次就读1磁头的相同磁道;当1磁头的某个磁

4、道读完,下一次就读0磁头的下一个磁道。5 Setup.s程序的功能:1、1-106行:获取并保存系统参数。从0x90000内存块开始2、113-126行:移动system。 从0x10000到0x000003、130-193行:进入保护模式。6保护模式下的两种内存管理机制:分页和分段。 三种不同的地址:1、逻辑地址:包含在机器语言指令中的地址,由一个段:段内偏移组成。2、线性地址:逻辑地址到物理地址变换间的中间层。3、物理地址:内存单元的地址。7. 分段:保护模式下把内存分为多个段,每个段用一个描述符(数据结构)用来描述它的属性,包括段的开始地址、段长度、类型、访问权限等。段描述符由8个字节组

5、成。8. 两位RPL(Requestor Privilege Level)指定了进程的特权级别,RPL0 等待进程号为pid的子进程。pid=0 等待进程组号等于当前进程组号的任何一个子进程。Pid=-1 等待任何一个子进程。pid0:向指定进程发送信号,pid=0:向当前进程所在组的所有进程发送信号,pid=-1:向除进程0之外的所有进程发送信号,pid-1:向进程组为-pid的所有进程发送信号,sig:信号值。46.信号处理:信号时一种异步通信机制,当进程收到信号后,并不马上处理。只有等到进程系统调用返回,或者中断返回后,才处理信号。这时程序运行到system_call.s中的ret_fr

6、om_sys_call标号地址处,先检查信号位图,找到第一个允许响应的信号值,将之压入内核堆栈,然后调转到do_signal()函数。Do_signal根据信号值调用对应的信号处理函数。难点在于当进程注册了自定义信号处理函数时,内核怎么调用用户态的函数?通过构造堆栈。Void do_signal() 作用:根据信号值调用信号处理函数。47.屏蔽信号:int sys_ssetmask(int newmask) 作用:为进程设置信号屏蔽位图,参数:newmask新的信号屏蔽位图,返回:老的信号屏蔽位图。48.信号处理流程: 第六章 判断硬盘信息有效标志55AA1.设备管理模块读处理过程:1、进程向

7、缓冲区模块提出读块(2扇区)请求。2、缓冲区模块检查该块是否已经被缓冲。如果已经被缓冲,则直接返回缓冲的块;否则,向设备管理模块提出读请求。3、设备管理模块接受请求。如果设备不忙,则向设备发送命令;否则,把请求插入到设备的请求队列中。4、缓冲区模块挂起进程。5、设备控制器从设备中读入数据岛自己的缓冲区,并产生中断。6、设备中断处理程序把数据从控制器缓冲区读到内存缓冲区,然后唤醒进程。2.设备管理模块写处理过程:1、缓冲区模块决定要回写被缓冲的块。如果该块是脏的,向设备管理模块提出写请求。2、设备管理模块接受请求。如果设备不忙,则向设备发送命令和数据;否则,把请求插入到设备的请求队列中。3、缓冲

8、区模块挂起进程。4、设备控制器把数据写入到设备并产生中断。5、设备中断处理程序唤醒进程。3.设备号:设备室通过主设备号和次设备号(两者构成额物理设备号)来进行区分的。主设备号:区分不同类型的设备。次设备号:区分相同类型设备中的个体。逻辑设备号:用于区分不同的设备,逻辑设备号=主设备号8+次设备号。4.块设备结构:每个块设备都有自己独立的请求队列。为方便管理队列,建立了快设备结构。 Struct blk_dec_struct void(*request_fn)(void); struct request *current_request; Linux支持多种块设备,为所有这些块设备结构建立了一个

9、数组,数组下标就是设备的主设备号。 Struct blk_dev_struct blk_devNR_BLK_DEV #define NR_BLK_DEV 75.void ll_rw_block(int rw,struct buffer_head *bh) 作用:完成低级读写操作,参数:rw读写命令,bh缓冲区头指针。此函数为块设备管理模块的入口函数。6.电梯算法:磁头朝一个方向运动来满足该方向上最近的请求。当该方向上所有的请求都处理完之后,则反方向来处理其它请求。例如:磁头正在第5柱面处理请求,磁头向内运动,其后有5个请求到达,分别是第7、2、6、1、8柱面上的请求。则处理顺序是:5 6 7 8 2 1.一般情况下,所有请求都能获得合适的处理。但是,在极端情况下仍然会造成饿死现象。例如:上例中,如果不断地有第5柱面之后的处理请求,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1