- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《linux操作系统》实验报告
年级、专业、班级 姓名 实验题目 Linux内核编译与系统调用1)Linux内核编译;
2) 分别用fork()和clone()创建进程:列出子进程和父进程的进程号、进程名和进程状态等信息;
Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译Linux内核。
通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。
一、打开虚拟机, power on Ubuntu。
二、在登陆界面输入密码:123456
三、将linux-3.4.38.tar.xz包移动到“主文件夹”目录下
四、打开命令终端:ctrl+alt+t;
查看当前内核版本号:$ uname -a
获取root权限:
$ sudo su
提示输入密码:123456
五、解压源代码包:
# xz –d linux-3.4.38.tar.xz
# tar xvf linux-3.4.38.tar /usr/src/linux-3.4.38
六、编译内核喽
(一)清除当前目录下残留的.config和.o文件
在终端中进入刚刚的这个/usr/src/linux-3.4.38文件夹,输入命令:
$ make mrproper
当然我们这里是第一次编译这个内核,所以不存在清理不清理,如果以后需要对这个内核重新编译,这一步骤当然是十分必要的啦。
(二)安装ncurses
作为操作系统的内核,其内容和功能必然非常繁杂,包括处理器调度,内存管理,文件系统管理,进程通讯以及设备管理等等,而对于不同的硬件,其配置选项也不相同,所以在编译源代码之前必须设置编译选项。其实我觉得这一步是升级内核整个过程中最有技术含量的,因为要根据自己的需要正确选择yes or no需要对计算机方方面面的知识都有所了解。但是这里的选项实在是太多了,大概有几百项之多,我以前曾尝试着一项一项的选,但是最后还是放弃了,因为有很多选项不是很明白。
既然这样,难道没有什么简便的方法么?当然有!那就是make menuconfig或者make xconfig。我使用的是make menuconfig,但是前提条件是要装ncurses。
对于下载好的这个ncurses包,我们把它放到/usr/local下面;接着终端进入这个文件夹:$ cd /usr/local。
解压缩并且释放文件包:$ tar zxvfncursesversion.tar.gz
按照你的系统环境制作安装配置文件:$ ./configure
编译源代码并且编译NCURSES库:$ make
切换到root用户环境: $ make install
这样我们的ncurses库就已经编译完成了。
(三)配置内核编译选项
在make menuconfig过程中也会有一些选项需要你来设置*, y, n 或者m,选择*表示选项中的内容被直接编入内核中,选择m表示选项中的内容编入内核,而只是编成独立的module,用到时才调用。
在当前文件路径下,输入命令:
makemenuconfig
这里就出现了一个配置选项的图形化界面,因为我们是用的虚拟机,所以一定要选择把SCSI设备编译进去。最后保存为.config文件并退出。
(四)编译内核
这步是时间最长的一个步骤,一般在3个小时左右。
编译内核只需在终端输入make,然后等待编译的完成。
(五)编译和安装内核模块
输入make modules_install,这步很快能完成。
(六)安装内核
输入make install
(七)生成启动
依次输入:
sudomkinitramfs -o /boot/initrd.img-2.6.36
sudo update-initramfs -c -k 2.6.36
sudo update-grub2 //自动修改系统引导配置,产生grub.cfg启动文件。
用fork() 和clone()分别创建进程,并列出子进程和父进程的进程号、进程名和进程状态。
Fork():
一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。
fork()创建一个子进程,即intpid = fork(), fork()进入内核,调用一次返回两次,如果返回的pid == 0子进程先返回,如果pid 0(此时返回的是子进程的pid),父
您可能关注的文档
最近下载
- 音响系统施工方案.docx
- 《C#程序设计》课程教学大纲.doc VIP
- 儿童呼吸科课程设计.docx VIP
- (高清版)B-T 9254.2-2021 信息技术设备、多媒体设备和接收机 电磁兼容 第2部分:抗扰度要求.pdf VIP
- 公园音响系统安装方案.docx VIP
- 跌倒、坠床与压疮的预防与护理.pptx
- 医院建筑工程施工方案(3篇).docx VIP
- 心肺复苏ppt讲课开场白.pptx VIP
- (高清版)B-T 9254.1-2021 信息技术设备、多媒体设备和接收机 电磁兼容 第1部分 发射要求.pdf VIP
- 基于模型的系统工程(MBSE)及MWORKS实践 课件全套 聂兰顺 第1--10章 引论、 MBSE语言、工具、方法论---MBSE未来发展趋势.pptx
文档评论(0)