Linux内核编译 实时性

更新时间:2023-10-22 08:30:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

研 究 生 课 程 论 文

(2009 -2010 学年第一学期)

基于2.6内核和RTAI的实时Linux操作系统的构建

研究生:xx

提交日期:2010年 03月 09日 研究生签名:xx 学 号 课程编号 学位类别 教师评语: xxxxxxxxxx S0811020 硕士 学 院 自动化科学与工程学院 课程名称 嵌入式系统原理及应用 任课教师 xxx 成绩评定: 分 任课教师签名: 年 月 日

基于2.6内核和RTAI的实时Linux操作系统的构建

xx

摘要:传统的桌面系统由于其面向用户的窗口系统,实时性在工业控制领域不能得到满足。RTAI是一套用户可以使用的实时任务调用接口,它的出现给人们带来了契机。本文首先简单介绍Linux操作系统,然后给出了基于Linux-2.6.23内核的RTAI-3.8实时包安装过程,包括详细的内核配置修改及实时系统测试。 关键词:Linux;RTAI;实时操作系统

1 引言

1.1 Linux操作系统

Linux操作系统在短短的几年之内得到了非常迅猛的发展,这与Linux具有的良好特性是分不开的。Linux包含了Unix的全部功能和特性。简单的说,Linux具有开放性、多用户、多任务、良好的用户界面、设备独立性、提供了丰富的网络功能、可靠的系统安全、良好的可移植性。

Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。

Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习 Unix操作系统的人都可以从Linux中获益。 1.2 实时Linux操作系统

早期的Linux系统没有实时能力,就连基本的内核态任务抢占也没有。如果谈论Real-Time Linux系统,首先要谈论RTLinux,它是第一个实时Linux系统,

并且现在比较流行。RTAI是Real-Time Appication Interface 的缩写。从名称中可以看出RTAI是一套用户可以使用的实时任务调用接口。RTAI实际上是RTLinux的变种,由于RTLinux在移植时比较困难,因此RTLinux的一部分开发人员建立了RTAI系统。RTAI也采用了架空Linux内核的机制。为了提供方便的移植结构,RTAI非常小心的在Linux上定义了一组RTHAL(Real-Time Hardware Abstraction Layer)。RTHAL将RTAI需要在Linux中修改的部分定义成一组函数接口,RTAI只使用这组接口和Linux沟通。这样可以使以后的移植工作中对Linux内核的代码修改量达到最低。RTAI是完全开源的实时系统,它的源代码可以从RTAI官方网站免费获取。现在RTAI的使用范围比RTLinux广泛的多。

2 实时Linux操作系统实现步骤

2.1 内核的编译

内核,是个操作系统的核心。他负责管理系统的进程、内存、设备驱动程式、文档和网络系统,决定着系统的性能和稳定性。用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、 更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。

1) 安装Linux操作系统

首先在计算机上安装ubuntu9.10系统,由于编译内核很难一次成功,需要多次编译,而编译过程中需要占用较大的空间,故给了20G的硬盘空间,其中/boot给了256M,swap给了200M,其余全给/。

2) 登陆https://www.rtai.org/下载最新的RTAI压缩包rtai-3.8-tar.bz2,可以双击打开压缩包以查看里面内容,在这里主要查看与RTAI补丁包相匹配的内核包的型号,进入/rtai-3.8/base/arch/i386/patches/目录,查看当下文件,可以看到支持最新的内核的相关文件是hal-linux-2.6.23-i386-1.12-03.patch。故需要下载linux-2.6.23版本内核。这里i386与x86之间的区别很小,因为之间用过x86中的相关内核2.6.32编译总出现错误,故在此选择i386中的hal-linux-2.6.23-i386-1.12-03.patch。

3) 登陆http://www.kernel.org/pub/linux/kernel/下载相关内核,现在我们就得到了RTAI压缩包和内核压缩包了。接下来将两个压缩包拷到 /usr/src文件夹里面,这里需要root根用户权限,为以后能更方便的以管理员身份操作文件,这里安装一个软件,它的功能是用右键点击文件夹会出现“以管理员身份打开”选项,否则直接复制会出现“移动文件出错:Permission denied”提示。在终端输入sudo apt-get install nautilus-gksu 便可以安装。

4) 现在 /usr/src文件夹中有两个压缩包,分别是:rtai-3.8.tar.bz2和linux-2.6.23.2.tar.bz2。下面开始内核的编译工作:

5) 切换到root权限,并准备基本的编译工具: wr-laptop:~# sudo -i

root@wr-laptop:~# apt-get install build-essential kernel-package ncurses-dev

6) 进入/usr/src目录,以后的操作都是在这个目录中进行,解压缩rtai补丁包:

root@wr-laptop:~# cd /usr/src

root@wr-laptop:/usr/src# tar jxvf rtai-3.8.tar.bz2

7) 解压缩后会在 /usr/src目录下出现rtai-3.8文件夹。也可以在此查看rtai支持的Linux内核版本,如下图所示:

图2.1 rtai-3.8支持的Linux内核版本

8) 解压缩内核,并进入到linux-2.6.23文件夹目录中: root@wr-laptop:/usr/src# tar jxvf linux-2.6.23.tar.bz2 root@wr-laptop:/usr/src# cd linux-2.6.23

图2.2 解压缩后的文件夹

9) 给内核打上相应的RTAI补丁,注意补丁与内核要匹配: root@wr-laptop:/usr/src/linux-2.6.23# patch -p1 -b <

/usr/src/rtai-3.8/base/arch/i386/patches/hal-linux-2.6.23-i386-1.12-03.patch

10) 配置Linux内核,配置菜单有很多种,在ubuntu下推荐使用图形化的配置菜单,如果提示错误表示当前并没有安装ncurse库,可以通过命令apt-get install libncurses5-dev下载安装ncurese库(前面基本的编译工具中已安装)。重新建立一个核心需要将源代码树置于一种完整和一致的状态。因此,可以先执行命令make mrproper,它将清除目录下所有配置文件和先前生成核心时产生的中间文件。

root@wr-laptop:/usr/src/linux-2.6.23# make mrproper root@wr-laptop:/usr/src/linux-2.6.32.2# make menuconfig

本文来源:https://www.bwwdw.com/article/f87f.html

Top