实验6 linux内核定制和FloppyLinux的实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六linux内核定制和FloppyLinux的实现

一,实验目的

完成这个实验后,您将具有以下能力:

n了解Linux内核的结构

n编译Linux内核的能力

n了解一个操作系统的构造

n制作f l o p p y l i n u x

二,基础知识

进行本实验前,您应具有:

n C语言基础

n Linux环境下vi编译器的使用

三,实验环境准备

为了完成本实验,以下硬件条件是必需的:

n PC机Pentium500以上,硬盘40G以上,内存128M以上,带软驱

n一张软盘

为了完成本实验,以下软件条件是必需的:

n PC机操作系统RedHat Linux 9.0

四,情景描述

1.重新编译生成一个新的系统内核,然后烧写到开发板启动之。

2.生成F l o p p y L i n u x。

五,实验基本原理——Linux的相关介绍

1,Linux的版本号

可以使用uname –a命令或者cat /proc/version命令来查看运行系统的内核版本号:如图6.1。

图6.1

由此可知,该系统内核版本号为2.4.20-8。其中第一个数为主版本号,第二个数为次版本号,第三个为修订号。如果次版本号为偶数则表明是该版本是稳定发行版本,如果是奇数则说明仍在开发中。

2,Linux的内核目录介绍

现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux 内核源码的各个目录大致与此相对应,如图6.2所示。其组成如下:

图6.2

arch 包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux 支持的体系结构。

include 包括编译核心所需要的大部分头文件。

init 包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件。mm 包含了所有的内存管理代码。

drivers 包含系统中所有的设备驱动程序。

ipc 包含了核心进程间的通信代码。

fs 存放Linux支持的文件系统代码。不同的文件系统有不同的子目录对应。

kernel 包含内核管理的核心代码放在这里。

net 核心的网络部分代码,其每个子目录对应于网络的一个方面。

lib 包含了核心的库代码。

scripts 包含用于配置核心的脚本文件。

Documentation下是一些文档,是对每个目录作用的具体说明。

一般在每个目录下都有一个.depend文件和一个Makefile文件。这两个文件都是编译时使用的辅助文件。另外有的目录下还有readme文件,它是对该目录下文件的一些说明。

3,关于配置文件和配置工具

配置文件:给用户提供配置选择的功能

各级Makefile和.depend文件:各级目录的make文件和依赖工具

.config:内核配置文件,保存配置结果。

Rules.mak e:规则文件。

配置工具:包括配置命令解释器

其中配置用户界面如下:

(1)基于字符的界面make config (如图6.3)

图6.3

该方法简单且不需要调用Xwindows,不过操作麻烦,用户界面差。(2)基于 Ncurses 的文本模式图形用户界面make menuconfig (如图6.4)

图6.4

该方法简单且不需要调用Xwindows,而且操作简单,用户界面好。

这次实验就使用该方法进行内核的相关配置。

(3)基于 Xwindows 图形界面的用户配置界面make xconfig (如图6.5)

图6.5

4,内核的编译

(1)在该级目录下的Config.in中添加对该模块的编译条件,该变量可以设置为三种状态:(如图6.6所示)

Y ---将该功能模块编译进内核

N ---不将该功能模块编译进内核

M---将该功能编译成模块的方式,可以在需要时动态插入到内核中的模块

图6.6

(2)内核的编译操作

# make menuconfig-----配置编译选项

# make dep -----提供变量依赖关系信息.

# make clean-----删除生成的模块和目标文件.

# make zImage-----编译内核生成压缩的映象.

# make modules-----编译模块.

# make modules_install-----安装编译完成的模块.

最终生成的压缩内核映象的路径:arch/arm/boot/zImage

拷贝新内核文件zImage到启动目录,并改为合适的名字。

5,新内核的引导

修改/boot/grub/grub.conf文件的内容如下:

default=0 timeout=30

splashimage=(hd0,6)

title Red Hat Linux (2.4.24)

root (hd0,0)

kernel vmlinuz-2.4.24 ro root=/dev/hda0

initrd /initrd-2.4.24.img

设置完成,然后就可以重启计算进入新编译的内核了。六,估计完成实验需要时间:180分钟

练习1

重新编译生成一个新的系统内核

情景描述

进入内核所在目录,使用m a k e m e n u c o n f i g进行配置。之后编译生成一个新的内核镜像,并

且烧写到A R M9嵌入式开发板上进行测试。

任务详细步骤

1.配置a r m内核相关信息 a. 进入arm内核所在目录

# cd /arm2410s/kernel-2410s

b.进入menuconfig配置菜单

# make menuconfig

c. 进行一定的更改之后,按esc按键退出界面并保存。如图6.7。

2. 编译生成新的内核。 a.输入如下命令,清除无用信息。

# make clean

b.输入如下命令,建立依赖关系。

# make dep

c.编译新内核

# make

最终生成的压缩内核映象的路径:arch/arm/boot/zImage,将该镜像拷贝出来,准备烧入到开发板中。

图6.7

相关文档
最新文档