(解析Linux内核.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
解析Linux内核 目 录 一、 编译内核 2 二、 编译内核 8 1、 进程控制 8 2、 实验5(内核共享空间的调用) 10 3、 实验5(一个读者一个书写者共享一个空间传递信息) 11 4、 实验5(多个读者多一个书写者共享一个空间) 14 5、 实验6(中断)的共享空间 15 6、 在内核内添加模块 15 解析Linux内核(2013.7.22): 时钟--系统--时钟-多任务都需要初始化 编译内核 1、要编译一个新的内核首先要把内核安装包放在/usr/src目录下并进行解压和运行如图1所示: 图1 在make menuconfig 编译后会出现图选择要第三个进去,然后里面含有全部的X86的都要选上,如图2、3、4所示: 图2 图3 图4 3、做好图1后接着进行图5的编译: 图5 4、编译了图5后再进行图6的操作: 图6 基本流程指令如图7所示: 图7 有时候出现问题,可以查查网上资料,如果生成磁盘太小,就修改磁盘就可以了。做法可以参照makefs或者图8所示: 图8 在弄好了上面之后就可以更改部分内核了,我们可以把自己的调用文件加上去。在linux内核安装包下面如图9路径下的/usr/include/asm下更改unist_32.h文件添加语句如图10,指令如图11所示: 图9 更改文件位置 图10 添加文件流程 图11 更改文件指令汇总 在linux的kernel/sys.c下增加一段小程序具体路径如图12,指令如图13,程序如图14所示: 图12 添加程序文件位置 图13添加程序指令 图14 添加程序 弄好了上面步骤后就可以输入指令(make)重新编译内核了,当make结束后输入指令(make install),然后重启。 最后可以通过写程序来验证我们写的是否已经可以使用如面16所示但用到的地址在如图15所示,指令如图17所示: 图15 添加语句位置 图16 程序验证 图17 验证指令汇合 用gcc编译源程序 # gcc –o test test.c 运行程序 # ./test 输出结果 em…, this is my uid:0 12、软中断处于后半部分可以让程序退后处理。 编译内核 进程控制 在进程控制里面可以用指令查我们虚拟机的运行情况如图1、2、3、4、5、6所示: 图1 PS指令查询进程 图2 查询虚拟机进程指令图 图3 查询虚拟机cpu进程 图4 查询 图5进程流程控制(部分) 图6 控制进程流程图切换 文件中的实验5(内核共享空间的调用) 共享空间流程图如图7所示: 图7 共享空间调用 在复制实验5的代码过去的时候还需要在文件的顶部加上两个包含文件才能成功编译如图8所示: 图8 shm_sample.c所需添加的头文件 在虚拟机上共享空间的指令操作如图9所示: 图9 共享空间中的指令操作 文件中的实验5(一个读者一个书写者共享一个空间传递信息) 共享空间流程图写入如图10,共享空间传递信息的读取如图10.1所示: 图10 共享空间进程中的写入流程 图10.1 共享空间进程控制的读取流程图 在进行程序复制后,会发现出现一个错误是因为有个值没有进行类型的强制转换原图如图11所示,修改图如图12所示: 图11 原程序未强制转换地点 图12 进行强制转换的地方 编写好了程序后就指令操作如图13所示,输入后就自动进入了读者面板,进入后原终端部关闭而开启另一个新的终端进入写者面板,然后书写信息就可以传输到读者面板中如图14所示: 图13 指令操作及读者面板 图14 写者和读者共享空间面板 文件中的实验5(多个读者多一个书写者共享一个空间) 共享空间流程图如图 15所示: 图15 1writer多reader共享空间的进程控制流程图 在传输的时候通过1个writer传输只能先传到刚刚开辟的第一个reader的面板,传输的第二个就到第二个reader面板上,传输第三个就到第三个的reader面板上,有多少个就通过一个个间隔着传输内容,就像排队炒菜吃饭一样,一个人炒的菜就是第一次服务员下单给直接的东西(相当于writer第一次传输的内容),第二个就等到服务员(writer)下单然后就可以根据下的单炒单上的菜(这个菜就是writer上传到共享空间的内容),每个人来炒菜都需要排队而且要等服务员(writer)下单,然后才可以吃到(得到)单上的菜(writer输入的内容)一次反复,具体实例可如图16所示: 图16 1writer多reader的进程控制视图 文件中的实验6(中断)的共享空间 流程图如图

文档评论(0)

UtIBlTVqSX + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档