【ACCESS精品源码栏目提醒】:以下是网学会员为您推荐的ACCESS精品源码-【精品】操作系统课程设计报告[Linux内核裁剪与编译] - 其它资料,希望本篇文章对您学习有所帮助。
滁州学院 课程设计报告课程名称: 操作系统设计题目: Linux 内核编译与裁剪系 别: 计算机科学与技术系专 业: 计算机科学与技术专业组 别: 第十组起止日期: 2011 年 5 月 20 日 2011 年 6 月 22 日指导教师: 马丽生 计算机科学与技术系二○○九年制 课程设计任务书 课程设计题目 Linux 内核编译和裁剪 组长 杨超 学号 2009210965 班级 09 计科 计算机科 学与技 系别 专业 计算机科学与技术 术 组员 项鹏程,徐鑫,周小航,钟鑫鑫 指导教师 马丽生 通过该实验了解和掌握 Linux 内核进行裁剪和编译以及升级的课程设计目的 主要操作方法和步骤。
⑴软件:①操作系统 Windows XP、Linux ⑵硬件:①最低 CPU 速度:233MHz,推荐 CPU 速度:550MHz课程设计所需环境 ②最小内存要求: 128M,推荐最小内存:256M 实现将 Linux 内核进行裁剪和编译,并 Linux2.4 内核升级到课程设计任务要求 2.6 内核。
课程设计工作进度计划 序号 起止日期 工 作 内 容 分工情况2011-5-20 2011-6-12 收集实现所需的资料,分 主要工作由徐鑫,周小航同学完成, 析讨论所要进行的实验 全体参与讨论2011-6-13 2011-6-17 该阶段主要做 Linux 内 主要由小组全体同学协助项鹏程完 核的一般编译和裁剪 成2011-6-18 2011-6-20 实 现 Linux2.4 内 核 到 主要由小组全体同学协助杨超完成 2.6 内核的升级2011-6-21 2011-6-22 实验材料整理,课程设计 主要由小组全体同学协助钟鑫鑫完 报告的完成 成 指导教师签字: 年 月 日教研室审核意见: 教研室主任签字: 年 月 日 目 录⒈引言 ...................................................................................................................................................... 4⒉需求分析 .............................................................................................................................................. 4 2.1 前期准备 ....................................................................................................................................... 4 2.2 开发工具 ...................................................................................................................................... 43.详细设计 .............................................................................................................................................. 5 3.1 LINUX 内核的裁剪 ......................................................................................................................... 5 3.1.1 内核支持(编译)模式 ........................................................................................... 5 3.1.2. 裁剪系统内核应遵循的步骤................................................................................. 5 3.2 配置系统内核 .............................................................................................................................. 6 3.2.1 配置内容 .................................................................................................................... 8 3.2.2 配制方法 .................................................................................................................... 9 3.3 编译系统内核 ............................................................................................................................ 15 3.4 启用新系统内核......................................................................................................................... 16 3.4.1 备份正在使用的系统内核 ...................................................................................... 16 3.4.2 多配置启动的配置文件修改 .................................................................................. 16 3.5 LINUX 内核升级 ........................................................................................................................... 17 3.5.1 查看版本 ................................................................................................................... 17 3.5.2 配置工作 ................................................................................................................... 18 3.5.3 编译工作 ................................................................................................................... 33 3.5.4 启动新内核 ............................................................................................................... 354. 课程设计总结与体会 ....................................................................................................................... 37 4.1 总结............................................................................................................................................. 37 4.2 体会............................................................................................................................................. 375.致谢 .................................................................................................................................................... 37参考文献 ................................................................................................................................................ 37⒈引言 Linux 是一类 Unix 计算机操作系统的统称,也是自由软件和开放源代码发展中最著名的例子。
Linux 作为一个免费、自由软件,内核版本不断升级。
新的内核修订了旧内核的 bug,并增加了许多新的特性。
同时也使得 Linux 系统更加稳定、更加安全,进一步满足用户的功能需求。
Linux 内核裁剪是根据用户的需要进行删除和保留相关的模块。
Linux 内核裁剪完成后在进行编译,使之后的 Linux 系统为用户所需要的操作系统。
Linux 内核升级是为了弥补较低版本的漏洞,使得 Linux 系统安全系数更高;另外使 Linux 系统的性能更稳定;最后是增加新功能,满足用户的功能需求。
并 本次课程设计是通过相关操作来实现将 Linux 内核进行裁剪和编译, Linux2.4 内核升级到 2.6 内核。
如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要根据自己的需要进行重新裁剪、编译内核以及内核升级。
⒉需求分析2.1 前期准备⑴Linux2.6 内核
源码:linux-2.6.18.tar.bz2⑵内核升级工具①module-init-tools-3.2.tar.bz2②mkinitrd-4.1.18-2.i386.rpm③lvm2-2.00.25-1.01.i386.rpm④device-mapper-1.00.19-2.i386.rpm2.2 开发工具 Linux 开发平台3.详细设计3.1 Linux 内核的裁剪3.1.1 内核支持(编译)模式 Linux 对于计算机硬件、网络和文件系统等部件的驱动程序支持既可以放在系统内核中,也可以作为一个可加载的模块(modules)使用。
当驱动程序放在系统内核中时,Linux 假定该硬件是存在于系统中的;而作为可加载模块使用时,只有在知道该硬件存在于系统时才会作为系统内核的一部分,当 Linux 检测到硬件时,该模块才被加入到系统内核中。
如果把驱动程序编译到内核中,在内核启动时就可以自动支持相应部分的功能,这样做的优点是方便、速度快,机器一旦启动,你就可以使用这部分功能了;缺点是会使内核变得庞大,无论是否需要这部分功能,它都会存在;这可能会增加被系统攻击者利用的漏洞。
一般把经常使用的部分直接编译到内核中,比如网卡等。
如果编译成模块,就会生成对应的.o 模块文件,系统启动时它并不在内存中,它是在使用的时候由用户执行 insmod 命令来动态加载,这样做的优点是不会使内核过分庞大,缺点是你得自己来调用这些模块。
3.1.2. 裁剪系统内核应遵循的步骤 Linux 系统内核的裁减涉及到模块间的依赖关系、内核的配置和编译等多个步骤,任何一个步骤的失误都有可能导致裁减、编译失败。
其基本步骤如下: ①检查编译器的版本 ②删除过时的目标文件 ③重新设置系统内核 ④重新编译系统内核 ⑤备份正在使用的系统内核 ⑥试用新的系统内核 ⑴ 检查编译器的版本 用低版本的编译器去编译高版本的内核有可能不能编译或使内核不能使用。
要查看编译器版本,可以执行命令: gcc –v 进入系统内核源代码目录。
一般系统内核的源代码放在 /usr/src/ 目录下。
用 ls –l命令查看可能显示如下: ls –l /usr/src Total 3 lrwxrwxrwx 1 root root 12 May 4 14:36 linux2.4-gtlinux-2.4.20-8 drwxr-xr-x 15 root root 1024 May 14 11:37 linux-2.4.20-8 drwxr-xr-x 3 root root 1024 May 4 14:38 sendmail 其中Linux2.4 是一个链接文件,它的链接目标是指向 linux-2.4.20-8 目录,因此、cd linux-2.4 就是进入 linux-2.4.20-8 目录。
⑵ 删除过时的目标文件 进入 /usr/src/linux-2.4.20-8 目录,运行 make mrproper 命令以清除过时、旧的目标文件。
这是因为经过多次编译后系统会留下部分目标文件,如果没有清除干净可能造成本次编译出错。
如果没有编译过或者是系统升级的新解压缩目录,则这一步骤可以省略主要是本课题所需要的硬件设计与软件设计,包含建立设计所需的数学模型并列出必要的计算公式、计算过程及说明,硬件电路,写出设计计算结果;绘出计算机程序框图,写出自编的程序。
3.2 配置系统内核 无论是内核裁减还是内核升级都要重新配置系统内核。
共有三种方式来运行配置内核的命令: 设置屏幕的类型 命令 文本 make config 窗口菜单(NCurses) make menuconfig X 图形 make xconfig 第 1 种 make config 是命令行方式,使用与修改都较为不便,一般不推荐使用。
第 2 种 make menuconfig 是窗口菜单方式,采用窗口菜单进行人机交互,并可随时获得帮助;它占用的内存较少,适合在字符终端下使用,如图 3-1 所示。
图 3-1 menuconfig 主屏幕 第 3 种 make xconfig 是图形用户界面,采用图形窗口按钮进行人机交互,整个设置界面简洁明了、使用非常方便且帮助文件也容易获取,适合在 X Windows 下使用,如图 3-2所示。
图 3-2 xconfig 主屏幕一般在 /usr/src/linux-2.4.20-8/ 目录下运行设置命令。
在窗口菜单(NCurses)下,用户可以利用光标键移动到选项、再用空格键或鼠标(选中显示号)来进行设置并可以任意回退做修改。
在 X 图形下用户可以通过鼠标单击按钮来进行配置并可以任意回退做修改。
在文本类型下则不能,因为它只在整个设置过程中一直向你提问。
3.2.1 配置内容 配置系统内核的目的是建立一个适合大小、满足需求的系统内核;因此,用户必须根据自己所设计系统的需要对 Linux 系统支持的硬件和软件进行适当裁减,即从配置内容中选择相应的硬件类型和合适的设备驱动程序。
不同的内核版本显示的配置内容有所不同,这里以Linux 内核 2-4-20 版本为例说明。
编号 类别 含义1 Code maturity level options 代码成熟级别2 Loadable module support 可装载模块支持3 Processor type and features 处理器类型与特征4 General setup 一般设置5 Memory Technology Device MTD 设备支持6 Parallel port support 并行口支持7 Plug and Play configuration 即插即用支持8 Block devices 块设备支持9 Multi-device support(RAID and LVM)多设备支持10 Cryptography support 密码系统支持11 Networking options 网络选项12 Telephony Support 电话支持13 ATA/IDE/MFM/RLL support 多种接口存储设备支持14 SCSI support SCSI 设备的支持15 Fusion MPT device support Fusion MPT 设备支持16 IEEE 1394(FireWire)support IEEE 1394 防火墙设备支持17 I2O device support I2O 设备支持18 Network device support 网络设备支持19 Amateur Radio support 业余无线电支持20 IrDA(infrared)support 红外线支持21 ISDN subsystem ISDN 子系统22 非 Old CD-ROM drivers(not SCSI、not IDE) SCSI/IDE 接口的 CD-ROM 设备23 input core support 输入核心支持24 Character devices 字符设备25 Multimedia devices 多媒体设备26 Crypto Hardware support Crypto 硬件支持27 File systems 文件系统28 Console drivers 控制台驱动29 Sound 声卡驱动30 USB support USB 支持31 Additional device driver support 附加设备驱动支持32 Bluetooth support 蓝牙支持33 profiling support Profiling 支持34 Kernel hacking 内核分析35 Library routines 库例程3.2.2 配制方法 以运行 xconfig 设置程序为例说明配置方法。
在 xconfig 主屏幕上有许多设置选项,但在内核裁减中许多选项可以采用默认的设置。
下面按配置内容类别说明主要选项的配置方法,截取的配置图供大家参考。
1. 代码成熟级别选项(Code maturity level options ) 这里只有一项:prompt for development and/or incomplete code/drivers,如果你要试验使用还有待完善的代码,比如 framebuffer、khttpd、IPv6 等,就必须把该项选择为 Y;否则可以把它选择为 N。
这是内核的一个内置特性,不能选择为模块。
如图 3-3 所示。
图 3-3 代码成熟级别选项 2. 可装载模块支持(Loadable module support )这里有 3 项,如图 3-4 所示。
图 3-4 可装载的模块支持 Enable loadable module support:除非你准备把所有需要的内容都编译到内核里面,否则该项应该是必选的。
Set version inFORMation on all module symbols:可选可不选。
Kernel module loader:让内核在启动时有自己装入必需模块的能力,该选项必须在Enable loadable module support 选项激活(即为“y”)情况下才能选择;建议选上。
3. 处理器类型与特征(Processor type and features ) 这里的选项一般不需要设置,使用默认的设置即可。
例如: Processor family:系统安装时会根据你的计算机情况选择 CPU 类型。
High Memory Support:大容量内存的支持。
可以支持到 4G、64G,默认为“off”。
现在的协处理器已集成在 CPU 内; 协处理器仿真,Math emulation: 默认为“n”。
MTTR support:MTTR(Memory Type Range Register)支持。
可不选默认为“n”。
Symmetric multi-processing support:对称多处理器支持。
单 CPU 系统一般不用选。
4.一般设置(General setup )这里是安装 Red Hat Linux9.0 时对系统最基本的硬件设置。
这部分内容非常多,一般在安装中 Linux 会根据你计算机系统的硬件自动检测并设置,使用缺省设置就可以。
常用的选项简要介绍如下: Networking support:网络支持。
如果有网卡默认为“y”。
PCI support:PCI 支持。
如果使用了 PCI 的卡,默认为“y”。
PCI
access mode:PCI 存取模式。
可供选择的有 BIOS、Direct 和 Any,默认为 Any。
Support for hot-pluggabel devices:热插拔设备支持。
如果有此类设备默认为“y”。
PCMCIA/CardBus support:PCMCIA/CardBus 支持。
用系统测试的默认选择。
System V IPC BSD Process Accounting Sysctl support 以上三项是有关进程处理 IPC 调用的,主要就是 System V 和 BSD 两种风格。
如果你不是使用 BSD,就不要改变默认选择。
Power Management support:电源管理支持,用系统默认选择。
Advanced Power Management BIOS support:高级电源管理 BIOS 支持,用系统默认选择。
5. MTD 设备支持(Memory Technology Device) MTD 设备是像闪存芯片、小型闪存卡、记忆棒等之类的设备它们在嵌入式设备中的使用正在不断增长。
PC 上一般默认为“n”。
6. 并行口支持(Parallel port support )如果不打算使用并行口,就选“n”。
7. 即插即用支持(Plug and Play configuration )目前 Linux 对即插即用设备的支持不如 Windows 好,如果系统中有 PNP 设备,默认的选项为“y”。
8. 块设备支持(Block devices )一般使用缺省设置就可以,主要选项简要说明如下: Normal PC floppy disk support:普通 PC 软盘支持。
若有软驱默认为“y”。
XT hard disk support:早期的硬盘支持,一般默认为“n”。
Compaq SMART2 support:磁盘阵列控制卡,没有该设备为“n”。
Mulex DAC960/DAC1100 PCI RAID Controller support:RAID 镜像 没有该设备为“n”。
Loopback device support:把文件当成区块设备使用,一般默认为“n” Network block device support:网络块设备支持。
如果想访问网上邻居的东西,选“y”。
RAM disk support:RAM 盘支持 一般默认为“n”。
9.多设备支持(Multi-device support(RAID and LVM)) Multiple devices driver support:多设备驱动支持 一般默认为“n”;该项激活(“y”)时以下两项才可以选择。
RAID support:RAID 支持,没有该设备为“n”。
Logical volume manager(LVM)support:逻辑卷管理支持一般默认为“n”。
10.密码系统支持Cryptography support 在个人计算机(PC)系统上一般不用,系统默认为“n”。
11.网络选.
上一篇:
【精品】joomla模板设计
下一篇:
"夜"