基于ubutnu的linux内核编译.doc
文本预览下载声明
操作系统课程设计
——基于Ubuntu的Linux内核编译
学院:计算机科学与技术
专业:计算机科学与技术
班级:
姓名: 学号:
2010/12/19
目 录
实验目的
Linux内核编译
实验介绍
运行环境
实验步骤
1准备工作
2内核配置
3内核编译
4配置GRUB
模块化字符设备驱动程序
源代码
实验心得
实验目的:
1.安装Linux操作系统
2.下载另一版本的内核进行内核编译
3.把新编译好的内核和原来的内核用boot loader设置成可选的新旧内核启动开机
4.编写一个简单的模块化字符设备驱动程序,然后在不重新编译内核的基础上,动态地装载和卸载该设备驱动。对该字符设备驱动程序进行测试,最终了解Linux操作系统是怎么管理字符设备的。
Linux内核编译
实验介绍:
操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。 内核是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。
下载源码: 到/下载2.6.36内核并解压 下载工具: apt-get install build-essential kernel-package libncurses5-dev libqt3-headers 其中libqt3-headers可选, 此包用于make xconfig linux-.tar.bz2 压到/usr/src目录下
进入源代码目录
运行
提供一个基于文本的图形界面make menuconfig
在menuconfig中在最后有两个选项load a kernel configuration... save a kernel configuration...
因为对内核配置选项不熟悉,在编译的过程中容易出现错误,所以只是需读取当前内核配置详单然后Save即可推出配置
编译内核
在当前的目录下输入命令
sudo make -j4 (打开4线程)
需要花费很长的时间sudo make install sudo make modules (编译模块) sudo make modules_install (安装模块) 创建 initrd文件: mkinitramfs -o /boot/initrd.img-2.6.36
配置GRUB
GRUB是多系统引导管理器 引导Linux引导Windows
/*----------------驱动程序一些常用头文件--------------------------*/
#include linux/init.h
#include linux/config.h
#include linux/module.h
#include linux/kernel.h /* printk() */
#include linux/slab.h /* kmalloc() */
#include linux/fs.h /* everything... */
#include linux/errno.h /* error codes */
#include linux/types.h /* size_t */
#include linux/proc_fs.h
#include linux/fcntl.h /* O_ACCMODE */
#include asm/system.h /* cli(), *_fl
显示全部