【EmbeddedLinuxPrimer翻译】第一章:导论

第一章:导论

本章包含以下子章节:

  • 为什么选择Linux操作系统?
  • 现今嵌入式Linux的发展概况
  • 开放源代码和GPL
  • 标准及相关团体
  • 本章小结

在许多开发传统嵌入式操作系统的公司内部,就是否抛弃掉专用系统的讨论一直没有停止过。很显然,Linux操作系统,在其擅长的服务器领域之外又开辟了新的疆土,它正在被很多电子产品采用。在嵌入式领域更是有很多产品中可见其身影:移动电话、DVD播放器、视频游戏、数码相机、网络交换机以及无线网络设备。很有可能在你的家中或是座驾上,Linux已经在为你服务了。

  • 1.1 为什么选择Linux操作系统?

基于经济和技术方面的原因,我们看到了嵌入式设备采用Linux这种强有力的增长势头,这种趋势无形中已经跨越了所有的市场和技术。世界范围内公用的交换电话网络、全球性的数据网路,无线蜂窝手持设备以及网络运维设备等等等等都在运行Linux操作系统,甚至是汽车应用,以及像游戏产品,PDA,打印机,企业交换机和路由器等一些消费电子产品,Linux也取得了空前的成绩。嵌入式Linux市场的扩大似乎永无止境!

为什么嵌入式Linux会有如此迅猛的增长?

    • 相比传统专用嵌入式系统,Linux操作系统是一种成熟的、高性能的和稳定的可选方案。
    • Linux支持大量应用和网络协议。
    • Linux拥有高可扩展性,从面向消费者的产品,到面向运营商的大型网络交换机、路由器,Linux都游刃有余。
    • Linux的开放、自由特征,决定了部署Linux设备不用考虑使用专有系统无法摆脱的版税纠纷。
    • Linux吸引了成千上万的活跃开发者,使用新硬件架构、平台和设备能够得到快速支持。
    • 越来越多的硬件软件厂商,包括几乎所有的顶级厂商和独立软件开发商,都已经支持Linux。

不论是从上述角度还是其他方面,我们甚至看到,从高清晰度电视机到手机,越来越多的家居设备开发商加入了Linux的阵营中。

  • 1.2 现今嵌入式Linux的发展概况

毋庸置疑,在嵌入式行业,Linux得到了重大的发展。事实上,你现在阅读这本书就说明Linux已经进入了你的个人生活。很难估计Linux的市场有多大,毕竟很多公司仍然在发展他们的Linux产品。

LinuxDevice.com,是由Rich Lehrbaum创办的,用来发布热门新闻和信息的门户网站(译者注:2013-11-17测试,该网站已无法进入),它每年都会对嵌入式Linux市场进行年度调查。在最新一次的调查中,该网站报道,每年新设计的产品中,Linux已经成为占绝对优势的操作系统。报道显示,接近半数的调查者使用Linux作为他们的嵌入式操作系统,最接近Linux的系统也只占八分之一的市场,曾经主导嵌入式市场的商业操作系统甚至占不到十分之一的份额。即使你能找到原因去质疑这些调查结果,也不能忽视现今嵌入式Linux市场迅猛的增长势头。

  • 1.3 开放源代码和GPL

之所以Linux能够被越来越多的采用,一个很重要的原因是因为Linux是开放源代码的。Linux内核基于GNU GPL(General Public License)的许可证发布,GPL赋予Linux以自由(注1)之精神。在GNU GPL条款的第二章指出:“所谓自由软件,是指使用的自由,而非免费”。(译者注:“自由”和“免费”在英语中都可用“free”一词,GPL对二者的区别给予了明确解释,译者从中文的角度直接做了区分)GPL许可证非常简短易读,下面对其重要的特征进行了归纳:

      • 注1:大多数专业的开发者认为:“自由”意味着你可以下载Linux内核源码而不需要缴纳任何费用,但是往嵌入式平台开发和部署操作系统则需要缴纳相应的费用,对于收费问题的讨论,请参考1.3.1 “免费”与“自由”
    • GPL许可证永久有效。
    • GPL许可证准许用户自由地运行程序。
    • GPL许可证赋予用户学习和修改软件源代码的权利。
    • GPL许可证赋予用户分发软件原始代码或经用户修改过的代码的权限。
    • 当用户在GPL许可证下分发自己的软件时,其他用户在使用该软件时拥有上述所有权利。

当一份软件在GPL条款下发布时,必须永久携带该许可证(注2),即使软件源代码已经被深度修改。另外,GPL不仅允许深度修改GPL下的软件源代码,甚至是非常鼓励这种行为,当然,你的修改也必须基于GPL来发布,这样做的目的就是为了保证代码永远都能被任何人访问,哪怕软件版本已经被修改,或是基于该软件有了衍生的新软件,也必须基于GPL发布。

      • 注2:理论上讲,如果所有的版权持有人同意,软件可以在一个新的许可证下发布,不过这不太可能发生。

不管通过何种方式获取到GPL软件,GPL许可证都准许用户拥有永久性的分发权利,而不用考虑版税或授权份数限制,不过这并不意味着软件开发商不能对GPL软件收费,事实上对GPL软件收费是一种合理并且很常见的商业行为。GPL仅意味着一旦用户获取到GPL软件,不论该软件是原始版本还是衍生版本,用户都有权利对其进行修改和重新分发。按照GPL许可证的条款定义,如果GPL软件用户对该软件进行了修改并决定重新发布(即发布衍生版),那么他必须在GPL许可证下发布。
如果读者想深入地了解开源运动的历史和文化,请参考本章末尾的参考数目:Eric S. Raymond著的《大教堂与集市》。

  • 1.3.1 “免费”与“自由”
关于开源性质的讨论中,有两个词经常被提及:“自由”和“免费”(作者特别中意于“免费”:-))。GPL许可证的存在保证了“自由”这一软件的特殊性,它保证了你对软件使用、学习和修改的权利,同时还保证了其他人分发你修改的代码的自由,这个概念今天已经被广泛理解。
但是我们经常听到一种误解,说Linux是“免费”的。诚然,你可以免费地获取到Linux,你可以几分钟之内就下载完一份Linux内核源码。但是很多专业的开发者认为,任何软件在设计伊始就是收费的,这些费用用于提供软件、集成、修改、维护和支持等,除此之外,开发者需要的工具链,库,应用程序和为用户的特定平台专门提供的交叉编译工具等也算在内,所以说,为用户部署嵌入式Linux系统而开发所需的软件组件也是一个不小的工作。
  • 1.4 标准及相关团体
随着Linux在桌面市场,服务器领域以及嵌入式设备市场的持续发力,一些为帮助Linux更加易于使用和接受的标准和组织也应运而生。本节提供一些资源来介绍这些标准,可能会对读者有所帮助。
  • 1.4.1 Linux标准规范
最具关联性的一个标准是Linux标准规范(Linux Standard Base,简称LSB),LSB的目标是建立一系列标准用来增加不同Linux版本间程序的互操作性,现在LSB已经覆盖了很多架构体系,包括IA32/64(译者注:IA是Intel Architecture的缩写,IA32/64表示Intel及其兼容的,32位或64位的架构),32位或64位PowerPC架构,AMD64位架构以及其他架构。该标准被分解成两部分:核心部分和各个架构特有的部分。
LSB明确提出了Linux发行版的通用属性,包括对象格式,标准库接口,最小命令和实用程序集合及其行为,文件系统部署,系统初始化等等。
读者可以通过本章末尾的 1.5.1 进一步阅读推荐给出的推荐书目来了解更多关于LSB的内容。
  • 1.4.2 开源发展实验室
开源发展实验室(Open Source Development Labs,简称OSDL)的成立是为了帮助加速通用市场接受Linux。根据其官方声明,OSDL为Linux社区提供企业级的测试设备和其他技术支持。重要的是,OSDL赞助了几个标准制定和功能开发的工作团体,这些团体开发的功能面向三大重要市场:桌面、服务器和嵌入式设备。下面三个小节我们来介绍一下这几个团体计划。
  • 1.4.2.1 OSDL:运营商级的Linux
世界上大的网络和电信设备制造商,或开发或销售的运营商级设备中,运行Linux操作系统的占很大比例。运营商级别的设备包含的非常重要的特征就是高可靠性、高可用性和可快速维护性。这些厂商设计的产品具有冗余备份、可热交换、容错性、集群性和实时性等属性。
OSDL运营商级Linux工作组为运营商级设备的研发制作了一份规格说明书,该规格中定义了一系列需求,最新版本的规格说明书覆盖了七大功能领域:
    • 可用性       需要提供增强的可用性,包括在线维护操作,冗余备份和状态监控
    • 集群           需要提供冗余备份服务,比如集群成员管理和数据检查
    • 可服务性   需要提供远程服务和维护,例如SNMP和对风扇电源等的诊断监控
    • 性能           需要定义性能和粒度,多处理均衡,延迟等
    • 标准           需要指定符合运营商Linux规范的标准
    • 硬件           需要高可用性的硬件,例如刀片服务器和硬件管理接口
    • 安全性       需要提高整个系统的安全性以抵御各种威胁

  • 1.4.2.2 OSDL:移动Linux计划

本书编写时,世界范围内的市场中已经有几种移动手持设备(手机)是基于嵌入式Linux构建开发的了。报道称数以百万计的手持设备是基于Linux操作系统,唯一可以确定的是这个数目还在增长,Linux已经替代以往专用实时操作系统的角色,有望成为最具爆炸性的细分市场之一。这意味着Linux已经为商业化的嵌入式应用市场做好了准备。
OSDL赞助了一个叫做移动Linux计划的工作组,按照OSDL网站的声明,该计划的目的是在下一代移动手持设备和其他融合了语音和数据的便携式设备中加速Linux的占有率。这个工作组的重点领域包括开发工具,输入输出和网络,内存管理,多媒体,性能,电源管理,安全性和存储。
  • 1.4.2.3 服务可用性论坛
如果你从事于开发具有高可靠性、可用性和可服务性(RAS)等特性的产品工作,你应该知道服务可用性论坛(Service Availability Forum,简称SA Forum),该组织在制定系统管理接口的通用集方面扮演领导角色,而这些接口正是用在运营商和其他商业设备中。论坛的网址是 www.saforum.org
  • 1.5 本章小结
    • 不论是嵌入式设备的开发者还是制造商,使用Linux的比率都在持续增长。
    • 嵌入式设备中Linux系统的使用以一种令人兴奋的节奏增长。
    • 本章中,我们介绍了驱动Linux系统在嵌入式市场增长的众多因素。
    • 本章还介绍了影响嵌入式Linux的标准和相关组织。
  • 1.5.1 进一步阅读推荐
《大教堂与集市》  英文书名《The Cathedral and the Bazaar 》
Eric S. Raymond 
O'Reilly Media, Inc., 2001

Linux标准规范计划官网
(译者注:该书出版于2006年,现在对应网址已更改,点击链接会自动跳转至 http://www.linuxfoundation.org/collaborate/workgroups/lsb

开源发展实验室官网
(译者注:该书出版于2006年,现在对应网址已更改,点击链接会自动跳转至 http://www.linuxfoundation.org/


(第一章完)
Chapter 1. Introduction Section 1.1. Why Linux? Section 1.2. Embedded Linux Today Section 1.3. Open Source and the GPL Section 1.4. Standards and Relevant Bodies Section 1.5. Chapter Summary Chapter 2. Your First Embedded Experience Section 2.1. Embedded or Not? Section 2.2. Anatomy of an Embedded System Section 2.3. Storage Considerations Section 2.4. Embedded Linux Distributions Section 2.5. Chapter Summary Chapter 3. Processor Basics Section 3.1. Stand-alone Processors Section 3.2. Integrated Processors: Systems on Chip Section 3.3. Hardware Platforms Section 3.4. Chapter Summary Chapter 4. The Linux KernelA Different Perspective Section 4.1. Background Section 4.2. Linux Kernel Construction Section 4.3. Kernel Build System Section 4.4. Obtaining a Linux Kernel Section 4.5. Chapter Summary Chapter 5. Kernel Initialization Section 5.1. Composite Kernel Image: Piggy and Friends Section 5.2. Initialization Flow of Control Section 5.3. Kernel Command Line Processing Section 5.4. Subsystem Initialization Section 5.5. The init Thread Section 5.6. Chapter Summary Chapter 6. System Initialization Section 6.1. Root File System Section 6.2. Kernel's Last Boot Steps Section 6.3. The Init Process Section 6.4. Initial RAM Disk Section 6.5. Using initramfs Section 6.6. Shutdown Section 6.7. Chapter Summary Chapter 7. Bootloaders Section 7.1. Role of a Bootloader Section 7.2. Bootloader Challenges Section 7.3. A Universal Bootloader: Das U-Boot Section 7.4. Porting U-Boot Section 7.5. Other Bootloaders Section 7.6. Chapter Summary Chapter 8. Device Driver Basics Section 8.1. Device Driver Concepts Section 8.2. Module Utilities Section 8.3. Driver Methods Section 8.4. Bringing It All Together Section 8.5. Device Drivers and the GPL Section 8.6. Chapter Summary Chapter 9. File Systems Section 9.1. Linux File System Concepts Section 9.2. ext2 Section 9.3. ext3 Section 9.4. ReiserFS Section 9.5. JFFS2 Section 9.6. cramfs Section 9.7. Network File System Section 9.8. Pseudo File Sys
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值