第一章:导论

本章包含以下子章节:

  • 为什么选择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标准规范计划官网
www.linuxbase.org
(译者注:该书出版于2006年,现在对应网址已更改,点击链接会自动跳转至http://www.linuxfoundation.org/collaborate/workgroups/lsb)
开源发展实验室官网
www.osdl.org
(译者注:该书出版于2006年,现在对应网址已更改,点击链接会自动跳转至http://www.linuxfoundation.org/)
(第一章完)

【EmbeddedLinuxPrimer翻译】第一章:导论相关推荐

  1. The OpenGL® Shading Language, Version 4.60.7 翻译第一章

    The OpenGL® Shading Language, Version 4.60.7 翻译第一章 Chapter 1. Introduction This document specifies o ...

  2. 《统计学》贾俊平 第一章 导论总结

    前言 在学习<统计学>一书之后,在这里按照章节进行整理总结,也是对知识的一个复习,学习统计学的意义我认为就是以后在做数据分析的时候,能用科学的.有效的方法处理数据. 1. 什么是统计学 统 ...

  3. 逻辑学学习:第一章:导论

    逻辑学学习:第一章:导论 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 开始学习逻辑学,教材为<<普通逻辑学>>,作者杨树森, ...

  4. 网络经济学期末复习——第一章 导论

    网络经济学期末复习 --第一章.导论 一.课程介绍 二.课本选择 三.思维导图--第一章 导论 四.温馨提示 一.课程介绍 网络经济学简介: 网络经济学是近几年的一门新兴的研究网络环境下经济活动的交叉 ...

  5. jBPM3.12用户指南中文翻译----第一章 绪论

    这是Jboss 的jBPM3.12框架的用户指南的中文翻译.其中第一章的译文,是我在网上找到的.其他几章都是我自己做的翻译.我的翻译是中英文对照,只翻译部分我认为重要的,不翻译简单的英文,以免浪费你我 ...

  6. 《Undocumented Windows 2000 Secrets》翻译 --- 第一章(2)

    第一章  Windows 2000对调试技术的支持 翻译:Kendiv(fcczj@263.net) 更新: Friday, January 18, 2005 声明:转载请注明出处,并保证文章的完整性 ...

  7. c++ primer 第五版 翻译 第一章

    许久未更新博客了,接下来更新的是c++ primer 第五版的翻译. 一来学习英语,二来巩固c++. 第一章开始 内容: 1.1写一个简单的c++程序 1.2初窥输入输出 1.3注释简介 1.4控制流 ...

  8. 《Fundamentals of Computer Grahpics》虎书第三版翻译——第一章 介绍

    1.1 图形领域 在任何领域进行强分类是危险的,但大多数从事图形学行业的人都会赞同以下这些计算机图形学的主要领域: 建模:使用数学规格进行建模,这些数据是能存储在计算机上的形状和外观属性.例如,一个咖 ...

  9. MLAPP(翻译)—第一章

    1  什么是机器学习 我们沉浸在信息中,渴望知识.-约翰奈斯比特. 我们正在进入大数据时代.例如,大约有1万亿个网页:每秒钟有一小时的视频上传到youtube上,每天的内容相当于10年的总和:1000 ...

  10. 《Fundamentals of Computer Grahpics 4ed》虎书第四版翻译——第一章 介绍

    文章目录 1.1 图形学领域 1.2 主要应用 1.3 图形学API 1.4 图形管线 1.5 数值问题 1.6 效率 1.7 设计和编写图形程序 1.7.1 类设计 1.7.2 Float还是Dou ...

最新文章

  1. 拥有2000家门店,他如何晋升为服装界的新宠?
  2. 有计划地开放数据 促进大数据法规落地
  3. 每日一皮:代码出现Bug的三种表情!
  4. python装饰器原理-Python装饰器原理
  5. 中国污水处理行投资建议与运营价值分析报告2022-2027年
  6. 网络爬虫(urllib超详细使用指南)
  7. 两个简单的python入门小游戏
  8. QDoc文字标记textmarkup
  9. android paint 线宽_android Paint 设置线宽setStrokeWidth()的单位
  10. jsp mysql电子档案管理系统_学生档案管理系统的设计与实现(JSP,MySQL)(含录像)
  11. 一文读懂HBase(安装,架构原理,优化,API,es二级索引,phoenix)
  12. Node.js相关——CommonJS规范
  13. python 使用 config 文件
  14. 小米id锁状态查询_怎么通过序列号查询苹果手机真伪
  15. HEVC—SAO技术
  16. msm8937 bootloader流程分析
  17. 我给自己定了个目标,我要看完这95本书
  18. 鹏鹏的Altium Designer快捷方式技巧--库文件的制作
  19. 雅利安人有多强悍?灭掉三个文明古国,为何败在殷商的脚下
  20. 使用python批量统计小说字数

热门文章

  1. Real-time voxel based 3D semantic mapping with a hand held RGB-D camera
  2. 在 mapper 中如何传递多个参数?
  3. vivo 全球商城:订单中心架构设计与实践
  4. 简单直接了解沉浸式状态栏
  5. PF-Net基于深度学习的点云补全网络
  6. Xcode江湖录-第02章 纵观全局——布局探索
  7. iOS UIView生成清晰图片
  8. environments
  9. 【扫雷】小游戏------简单易懂版
  10. 前端开发者自述:我的第一个iPhone应用是这么诞生的