Linux内核裁剪课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux程序设计课程设计报告
题目:linux内核裁剪的设计与实现
姓名:xx
学号:123
专业:
院系:
指导老师:
完成时间:
目录
⒈引言 (1)
⒉需求分析 (1)
2.1前期准备 (1)
2.2 开发工具 (2)
3.详细设计 (2)
3.1 内核和交叉编译环境的搭建 (2)
1.内核版本的选择 (2)
2.交叉编译环境的搭建 (2)
3.2导入内核并解包 (3)
3.3建立符号链接并进入工作目录 (5)
3.4启动内核编辑图形界面 (5)
3.5 配置系统内核 (5)
3.6编译内核 (13)
3.7建立文件目录 (15)
3.8编译动态载入内存的模块 (15)
3.9拷贝到/lib/modules/2.6.10中 (16)
3.10安装新内核 (17)
3.11解决BusLogic错误 (17)
3.12生成initrd.img文件 (17)
3.13升级内核 (18)
4. 课程设计总结与体会 (19)
参考文献 (19)
⒈引言
Linux是一类Unix计算机操作系统的统称,也是自由软件和开放源代码发展中最著名的例子。Linux作为一个免费、自由软件,内核版本不断升级。新的内核修订了旧内核的bug,并增加了许多新的特性。同时也使得Linux系统更加稳定、更加安全,进一步满足用户的功能需求。
Linux内核裁剪是根据用户的需要进行删除和保留相关的模块。Linux内核裁剪完成后在进行编译,使之后的Linux系统为用户所需要的操作系统。Linux 内核升级是为了弥补较低版本的漏洞,使得Linux系统安全系数更高;另外使Linux系统的性能更稳定;最后是增加新功能,满足用户的功能需求。
本次课程设计是通过相关操作来实现将Linux内核进行裁剪和编译,并Linux2.4内核升级到2.6内核。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要根据自己的需要进行重新裁剪、编译内核以及内核升级。
⒉需求分析
2.1前期准备
本次实验所需使用的系统是Red Hat Linux,而Red Hat Linux是安装在威睿工作站中的。如图1.1所示:
图2.1 虚拟机中的Red Hat Linux
2.2 开发工具
Linux开发平台
3.详细设计
3.1 内核和交叉编译环境的搭建
1.内核版本的选择
本次实验选择的是2.6.10的内核
2.交叉编译环境的搭建
将gcc添加到Red Hat Linux中去,如图2.2.1和图2.2.2所示:
图3.1 添加gcc到系统中(一)
图3.2 添加gcc到系统中(二)
3.2导入内核并解包
先将带有内核的U盘切换到虚拟机中,在mnt目录下新建一个文件夹并命名为usb,利用fdisk -l命令查看U盘设备名,然后利用mount命令将U盘挂载
到/mnt/usb中,将U盘中的内核复制到/usr/src目录下。在利用tar -xjvf对内核
进行解压操作。具体操作如图3.1.1、图3.1.2和图3.1.3所示:
图3.3 挂载U盘
图3.4 内核解压(一)
图3.5 内核解压(二)
3.3建立符号链接并进入工作目录
建立内核解压后的linux-2.6.10的符号链接并命名为linux,进入到linux中。具体操作如图3.2.1所示:
图3.6 进入工作目录
3.4启动内核编辑图形界面
利用make mrproper来清理旧的编译生成的文件及其他配置等文件,利用make menuconfig来启动图形界面。具体操作如图3.3.1所示:
图3.7 清理环境并启动图形界面
3.5 配置系统内核
无论是内核裁减还是内核升级都要重新配置系统内核。共有三种方式来运行配置内核的命令:
设置屏幕的类型命令
文本make config
窗口菜单(NCurses)make menuconfig
X 图形make xconfig
第1种make config是命令行方式,使用与修改都较为不便,一般不推荐使用。
第2种make menuconfig是窗口菜单方式,采用窗口菜单进行人机交互,并可随时获得帮助;它占用的内存较少,适合在字符终端下使用,如图3-1所示。
第3种make xconfig是图形用户界面,采用图形窗口按钮进行人机交互,
整个设置界面简洁明了、使用非常方便且帮助文件也容易获取,适合在X Windows 下使用。
这里使用第二种方式进行操作;
图3.8 进入配置内核界面
接下来在该界面上进行相关操作。
⑴通过上下左右键来选择Loadable Module support选项,enter。
图3.9 选择Loadable Module support选项
选上“Module unloading”和“Automatic kernel module loading”这两项。
图3.10 选择Loadable Module support选项
然后退出。
⑵①在Device Drivers--->Block Devices中选上“Loopback device support”;
图3.11 选择Loopback device support选项
②在Device Drivers--->Multi-device support(RAID and LVM)处要选上“device mapper support”;
图3.12 选择device mapper support选项