《嵌入式 Linux 应用程序开发标准教程》
½者:华清远见
第
1
章
Linux
快速入门
本章目标
嵌入式
Linux
是以
Linux
为基础的操½系统,只有熟练½用
Linux
系统之后,
才½在嵌入式
Linux
开发领域得心应手。
通过本章的学习,
读者½够掌握如下内容。
½够独立安装
Linux
操½系统
½够熟练½用
Linux
系统的基本½令
认识
Linux
系统启动过程
½够独立在
Linux
系统中安装½件
½够独立设½
Linux
环境变量
½够独立定制
Linux
服务
1.1
嵌入式
Linux
基础
专业始于专注 卓识源于远见
自由开源½件在嵌入式应用上,受到青睐,Linux 日益成为主流的嵌入式操½系统之一。随着摩托½拉手
机
A760、IBM
智½型手表
WatchPad、夏普 PDA Zaurus
等一款款高性½“智½数码产品”的出现,以及
Motolola、三星、MontaVista、飞利浦、Nokia、IBM、SUN
等众多½际顶级巨头的加入,嵌入式
Linux
的
队伍越来越庞大了。目前,½外不少大学、研究机构和知名公司½加入了嵌入式
Linux
的开发工½,成熟
的嵌入式
Linux
产品不断涌现。
2004
年全球嵌入式
Linux
市场规模已达
9150
万美元,2005 年有
1.336
亿美元,2006 年有
1.653
亿美元,
2007
年达到
2.011
亿美元,每年平均增长
30%。
究竟是什么原因让嵌入式
Linux
系统发展如此迅速。业界½纳为三大原因︰第一,Linux 在嵌入式系统所
需的实时性、电源管理等核心技术不断发展;第二,½际标准组织(如
OSDL、CELF
等)持续建立嵌入
式
Linux
相关标准,有效解决版本分歧与兼容性问题;第三,业界主导组织、开发厂商等不断推出嵌入式
Linux
相关开发工具、维护系统。
嵌入式
Linux
以年费订阅方式为主,与其他的以产品利润为收入方式的嵌入式系统不同,弹性的捆绑销售
策略,助其成功地逐年提高市场占有率,从
2004
年的
46.8%扩大到 2007
年的
56.4%。
½际有名的嵌入式
Linux
操½系统提供商
Montavista,收购了 PalmSource
的爱可信和奇趣科技等,加强了
对中½市场的投入,并在整个嵌入式操½系统市场中,占据了重要地½。而嵌入式操½系统的领先厂商,
也改变了原来的单一产品路线,开始推出自己的
Linux
½件产品,实现“两条腿走路”
。½内的嵌入式½件
厂商也以
Linux
为突破口,纷纷开发各种基于
Linux
的操½系统产品。这些嵌入式
Linux
厂商已经½成了
一个不容½视的群½。
以下就从
Linux
开始,一层层揭开嵌入式
Linux
的面纱。
1.1.1
Linux
发展概述
简单地说,Linux 是指一套免费½用和自由传播的类
UNIX
操½系统。人们通常所说的
Linux
是
Linus
Torvalds
所写的
Linux
操½系统内核。
½时的
Linus
还是芬兰赫尔辛基大学的一名学生,他主修的课程中有一门课是操½系统,而且这门课是专
门研究程序的设计和执行。最后这门课程提供了一种称为
Minix
的初期
UNIX
系统。Minix 是一款仅为教
学而设计的操½系统,而且功½有限。因此,和
Minix
的众多½用者一样,Linus 也希望½给它添加一些
功½。
在之后的几个月里,Linus 根据实际的需要编写了磁盘驱动程序以便下½½访问新闻组的文件,又编写了个
文件系统以便½够阅读
Minix
文件系统中的文件。这样,
“½½有了任务切换,有了文件系统和设备驱动
程序后,这就是
UNIX,或者至少是其内核。
。于是,0.0.1 版本的
Linux
就诞生了。
”
Linus
从一开始就决定自由传播
Linux,他把源代码发布在½上,于是,众多的爱½者和程序员也½通过互
联½加入到
Linux
的内核开发工½中。
这个思想与
FSF
(Free
Software Foundation)
资助发起的
GNU
(GNU’s
Not UNIX)的自由½件精神不谋而合。
GNU
是为了推广自由½件的精神以实现一个自由的操½系统,然后从应用程序开始,实现其内核。
而½时
Linux
的优良性½备受
GNU
的赏识,于是
GNU
就决定采用
Linus
及其开发者的内核。在他
们的共同努力下,
Linux
这个完整的操½系统诞生了。
其中的程序开发共同遵守
General Public License
(GPL)协议,这是最开放也是最严格的许可协议方式,这个协议规定了源码必须可以无偿的获取并
且修改。因此,从严格意义上说,Linux 应该叫做
GNU/Linux,其中许多重要的工具如 gcc、gdb、
make、emacs
等½是
GNU
贡献的。
这个“婴儿版”的操½系统以平均两星期更新一次的速度迅速成长,如今的
Linux
已经有超过
250
种发行
版本,且可以支持所有½系结构的处理器,如
X86、PowerPC、ARM、Xscale
等,也可以支持带
MMU
或
不带
MMU
的处理器。到目前为止,它的内核版本也已经从原先的
0.0.1
发展到现在的
2.6.xx。
自由½件(free
software)中的 free
并不是指免费,而是指自由。它赋予½用
小
知
者
4
种自由。
自由之
1:有½用½件的自由。
‐ 2 ‐
专业始于专注 卓识源于远见
识
有研究该½件如½运½的自由,
并且得以改写该½件来满足½用
自由之
2:
者自身的需求。取得该½件的源码是达成此目的前提。
有重新散布该½件的自由,
所以每个人½可以藉由散布自由½件
自由之
3:
来敦亲睦邻。
自由之
4:有改善再利用该½件的自由,并且可以发表改写版供公众½用,
如此一来,整个社群½可以受惠。取得该½件的源码是达成此目的前提。
GPL:GPL
协议是
GNU
组织、维护的一种版权协议,遵守这个协议的½件
可以自由地获取、查看、½用其源代码。GPL 协议是整个开源世界的精神
基础。
Linux
的内核版本号:
Linux
内核版本号格式是
x.y.zz-www,数字 x
代表版本类型,数字
y
为偶数时
是稳定版本,为奇数时是开发版本,如
2.0.40
为稳定版本,2.3.41 为开发版本,
测试版本为
3
个数字加上测试号,如
2.4.12-rc1。最新的 Linux
内核版本可从
http://www.kernel.org
上获得。
1.1.2
Linux
½为嵌入式操½系统的优势
从
Linux
系统的发展过程可以看出,Linux 从最开始就是一个开放的系统,并且它始终遵循着源代码开放
的原则,它是一个成熟而稳定的½络操½系统,½为嵌入式操½系统有如下优势。
1.½成本开发系统
Linux
的源码开放性允许任½人获取并修改
Linux
的源码。这样一方面大大降½了开发的成本,另一方面
又可以提高开发产品的效率。并且还可以在
Linux
社区中获得支持,用户只需向邮件列表发一封邮件,即
可获得½者的支持。
2.可应用于多种硬件平台
Linux
可支持
X86、PowerPC、ARM、Xscale、MIPS、SH、68K、Alpha、Sparc
等多种½系结构,并且已
经被移植到多种硬件平台。这对于经费、时间受限制的研究与开发项目是很有吸引力的。Linux 采用一个
统一的框架对硬件进行管理,同时从一个硬件平台到另一个硬件平台的改动与上层应用无关。
3.可定制的内核
Linux
具有独特的内核模块机制,它可以根据用户的需要,实时地将某些模块插入到内核中或者从内
核中移走,并½根据嵌入式设备的个性需要量½裁衣。经裁减的
Linux
内核最小可达到
150KB
以下,
尤其适合嵌入式领域中资源受限的实际情况。½前的
2.6
内核加入了许多嵌入式友½特性。
4.性½优异
‐ 3 ‐
专业始于专注 卓识源于远见
Linux
系统内核精简、高效并且稳定,½够充分发挥硬件的功½,因此它比其他操½系统的运行效率
更高。在个人计算机上½用
Linux,可以将它½为工½站。它也非常适合在嵌入式领域中应用,对比
其他操½系统,它占用的资源更少,运行更稳定,速度更快。
5.良½的½络支持
Linux
是首先实现
TCP/IP
协议栈的操½系统,它的内核结构在½络方面是非常完整的,并提供了对包括十
兆½、百兆½及千兆½的以太½,还有无线½络、Token
ring(令牌环)和光纤甚至卫星的支持,这对现在
依赖于½络的嵌入式设备来说无疑是很½的选择。
1.1.3
Linux
发行版本
由于
Linux
属于
GNU
系统,而这个系统采用
GPL
协议,并保证了源代码的公开,于是众多组织或公司在
Linux
内核源代码的基础上进行了一些必要的修改加工,然后再开发一些配套的½件,并把它整合成一个
自己的发布版
Linux。除去非商业组织 Debian
开发的
Debian GNU/Linux
外,美½的
Red Hat
公司发行了
Red Hat Linux,法½的 Mandrake
公司发行了
Mandrake Linux,德½的 SUSE
公司发行了
SUSE Linux,½
内众多公司也发行了中文版的
Linux,如著名的红旗 Linux。Linux
目前已经有超过
250
个发行版本。
下面仅对
Red Hat、Debian、Mandrake
等具有代表性的
Linux
发行版本进行介绍。
1.Red Hat
½内,乃至是全世界的
Linux
用户最熟悉的发行版想必就是
Red Hat
了。Red
Hat
最早是由
Bob Young
和
Marc Ewing
在
1995
年创建的。目前
Red Hat
分为两个系列:由
Red Hat
公司提供收费技术支持和更新的
Red Hat Enterprise Linux(RHEL,Red Hat
的企业版)
,以及由社区开发的免费的桌面版
Fedora Core。
Red Hat
企业版有
3
个版本——AS、ES 和
WS。AS
是其中功½最为强大和完善的版本。而正统的桌面版
Red Hat
版本更新早已停止,最后一版是
Red Hat 9.0。本书就以稳定性高的 RHEL AS
½为安装实例进行讲
解。
官方主页:http://www.redhat.com/。
2.Debian
之所以把
Debian
单独列出,是因为
Debian GNU/Linux
是一个非常特殊的版本。在
1993
年,伊恩·默多克
(Ian
Murdock)发起 Debian
计划,它的开发模式和
Linux
及其他开放性源代码操½系统的精神一样,½
是由超过
800
½志愿者通过互联½合½开发而成的。
一直以来,
Debian GNU/Linux
被认为是最正宗的
Linux
发行版本,而且它是一个完全免费、高质量的且与
UNIX
兼容的操½系统。
Debian
系统分为
3
个版本,分别为稳定版(Stable)
、测试版(Testing)和不稳定版(Unstable)
。每次发布
的版本½是稳定版,而测试版在经过一段时间的测试证明没有问题后会成为新的稳定版。Debian 拥有超过
8710
种不同的½件,每一种½件½是自由的,而且有非常方便的升级安装指令,基本囊括了用户的所有需
要。Debian 也是最受欢迎的嵌入式
Linux
之一。
官方主页:http://www.debian.org/。
3.½内的发行版本及其他
‐ 4 ‐
专业始于专注 卓识源于远见
目前½内的红旗、新华等½发行了自己的
Linux
版本。
除了前面所提到的这些版本外,业界还存在着诸如
gentoo、LFS
等适合专业人士½用的版本。在此不做介
绍,有兴趣的读者可以自行查找相关的资料做进一步的了解。
1.1.4
如½学习
Linux
正如人们常说的
“实践出真知” 学习
Linux
的过程也一样。
,
只有通过大量的动手实践才½真正地领会
Linux
的精髓,才½迅速掌握在
Linux
上的应用开发,相信有编程语言经验的读者一定会认同这一点。因此,在
本书中笔者安排了大量的实验环节和课后实践环节,希望读者½可½多参与。
另外要指出的是,互联½也是一个很½的学习工具,一定要充分地加以利用。正如编程一样,实践的过程中总
会出现多种多样的问题,笔者在写½的过程½中会½可½地考虑可½出现的问题,½限于篇幅和读者的实际情
况,不可½考虑到所有可½出现的问题,所以希望读者½充分利用互联½这一共享的天空,在其中寻找答案。
以下列出了½内的一些
Linux
论坛:
http://www.linuxfans.org
http://www.linuxforum.net/
http://www.linuxeden.com/forum/
http://www.newsmth.net
1.2
Linux
安装
有了一个初步的了解后,读者是否想亲自试一下?其实安装
Linux
是一件很容易的事情,不过在开始安装
之前,还需要了解一下在
Linux
安装过程中可½遇到的一些基本知识以及它与
Windows
的区别。
1.2.1
基础概念
1.文件系统、分区和挂½½
文件系统是指操½系统中与管理文件有关的½件和数据。Linux 的文件系统和
Windows
中的文件系统有很
大的区别,Windows 文件系统是以驱动器的盘符为基础的,而且每一个目½与相应的分区对应,例如
“E:\workplace”是指此文件在
E
盘这个分区下。而
Linux
恰½相反,文件系统是一棵文件树,且它的所有
文件和外部设备
(如硬盘、
光驱等)
½是以文件的½式挂在这个文件树上,
例如
“/usr/local” 对于
Windows
。
而言,就是指所有分区½是在一些目½下。总之,在
Windows
下,目½结构属于分区;Linux 下,分区属
于目½结构。其关系如图
1.1
和图
1.2
所示。
图
1.1
Linux
下目½与分区关系
图
1.2 Windows
下目½与分区关系图
因此,在
Linux
中把每一个分区和某一个目½对应,以后再对这个目½的操½就是对这个分区的操½,这
样就实现了硬件管理手段和½件目½管理手段的统一。这个把分区和目½对应的过程叫做挂½½(Mount)
,
而这个挂½½在文件树中的½½就是挂½½点。这种对应关系可以由用户随时中断和改变。
想一想
Linux
文件系统的挂½½特性给用户½带来怎样的½处呢?
‐ 5 ‐
评论