嵌入式linux系统pdf,做嵌入式Linux系统.pdf

做嵌入式Linux系统

第一章 前言

目的

本文的目的,是讲述嵌入式Linux 系统的建立、开发的一般过程。制作一个小型的Linux

的系统,可以移植至其它硬盘、软盘、优盘、flash rom……

关于作者

九贱,E 名kendo,喜欢网络入侵技术、防火墙、入侵检测技术及网络技术,对 Linux

也颇感兴趣,想认识有共同爱好的朋友。最近闲暇,把一些学过的东西写下来,总结总结,

以作备忘这需。已完成的有 《网络入侵检测设计 Snort2.2 源码分析》和这篇 《我也来学做

嵌入式Linux 》。正在进行中的有《Windows 防火墙技术实现大全》和 《Linux 防火墙实现及

源码分析》。大家可以在CU 上,或者是到我的小站 上与我交流

做一个嵌入式Linux 系统究竟要做哪些工作

做一个嵌入式 Linux 系统究竟需要做哪些工作?也就是本文究竟要讲述哪些内容?我

先介绍一个脉络,可以做为我们后面工作的一个总的提纲:

第一步、建立交叉编译环境

没有交叉开发经验的读者,可能一时很难接受这个概念。首先,要明白两个概念:一般

我们工作的机器,称为开发机、主机;我们制作好的系统将要放到某台机器,如手机或另一

台PC 机,这台机我们称为目标主机。

我们一般开发机上已经有一套开发工具,我们称之为原生开发套件,我们一般就是用它

们来开发程序,那么,那什么又是交叉编译环境呢?其实一点也不神秘,也就是在开发机上

再安装一套开发工具,这套开发工具编译出来的程序,如内核、系统程序或者我们自己的程

序,是放在目标主机上运行的,需要用这套新的开发工具来完成编译等工作。

那么或许有初学者会问,直接用原生开发工具为目标主机编译程序不就完了?至少我当

初是这么想的。一般来说,我们的开发机都是 X86 平台,原生开发套件开发的工具,也针

对 X86 平台,而我们的目标主机可能是PowerPC 、IXP 、MIPS……所以,我们的交叉编译

环境是针对某一类具体平台的。

一般来讲,交叉开发环境需要二进制工具程序、编译器、C 链接库,嵌入式开发常用的

这三类开发软件是:

Binutils :二进制工作库

Gcc :C/C++编译器

uClibc :C 函数库

当然,GNU 包含的工具套件不仅于此,你还要以根据实际需要,进行选择。

第二步、编译内核

开发工具是针对某一类硬件平台,内核同样也是。这一步,我们需要用第一步中建立的

交叉编译工具,对内核进行编译,对于有内核编译经验的人来说,这是非常简单的;

第三步、建立根文件系统

也就是建立我们平常看到的bin、dev、proc……这一大堆目录,以及一些必备的文件;

另外,我们还需要为我们的目标系统安装一些常用的工具软件,如 ls、ifconfig……当然,

一个办法是找到这些工具的源代码,用第一步建立的交叉编译工具来编译,但是这些软件一

是数量多,二是某些体积较大,不适合嵌入式系统,这一步,我们一般都是用busybox 来完

成的,包括系统引导软件init ;

最后,我们为系统还需要建立初始化的引导文件,如inittab……

第四步、启动系统

在这一步,我们把建立好的目标、文件、程序、内核及模块全部拷贝到目标机存储器上,

如硬盘。然后为系统安装bootloader,对于嵌入式系统,有许多引导程序可供我们使用。不

过它们许多都有硬件平台的限制。当然,如果你是工作在X86,可以直接用lilo 来引导,事

实上,本文就是采用的lilo 。

做到这一步,将目标存储设备挂上目标机,如果顺利,就可以启动系统了。

当然,针对某些特别的平台,不能 硬盘这样拷贝了,需要读卡器、烧录……但是基

的方法是相通的!

第五步、优化和个性化系统

通过前四步,我们已经得到了一个可以正常工作的系统。在这一步里,就是发挥你想

的时候了……

本文的工作环境

项目根目录/home/kendo/proj ect >;我将它指定至PATH:$PRJROOT

子目录及说明

目录 内容

bootloader 目标板的引导加载程序,如lilo 等

build-tools 建立交叉编译平台的工具源码

debug 调试工具及所有相关包

doc 项目中用到的所有文档

images 编译好的内核映 ,以及根文件系统

kernel 各个版本的Linux 内核源码

rootfs

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值