姓名:陈方园 学号:19020100239 学院:电子工程学院
转自:
https://max.book118.com/html/2021/0122/6011000144003053.shtm
【嵌牛导读】嵌入式一般指嵌入式系统。嵌入式系统由硬件和软件组成。是能够独立进行运作的器件。Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。
【嵌牛鼻子】GPL、Linux系统
【嵌牛提问】GPL的特点及Linux标准及相关组织有哪些?
【嵌牛正文】
1.3 开源和GPL
Linux是开源软件,这是促使Linux广泛使用的一个重要因素。如果你想了解更多开源运动的历史和文化,请看Eric S.Raymod的书(见本章末尾),该书引人入胜且富有见地。
Linux内核基于GNU GPL[1](General Public License,通用公共许可证)的条款进行授权,这导致了一个常见的误区:Linux是免费的。事实上,GNU GPL第3版[2]的第2段声明:“当我们谈论自由软件时,我们指的是自由,而不是指价格上的免费。”大多数的职业开发经理都同意:你可以免费下载Linux,但是在一个嵌入式平台上开发和部署任何操作系统都是有代价的(这个代价通常很大)。在这方面,Linux并不例外。
GPL非常简短且通俗易懂。这里列出了它的一些重要特点。
许可证是自我存续的。
许可证给予用户运行程序的自由。
许可证是自我存续的。
许可证给予用户运行程序的自由。
许可证给予用户研究和修改源代码的权利。
许可证允许用户分发原来的代码以及他所做的修改。
许可证有病毒的特性。也就是说,如果你把GPL软件分发给某个人,GPL会给予他和你相同的权利。
如果软件是基于GPL条款发布的,它必须永远附带这个许可证[3]。即使代码被大幅改动(这是许可证允许甚至是鼓励的),GPL要求改动后的代码也必须以相同的许可证发布。这样做的目的是为了保证软件的自由使用,包括修改后的软件(或通常所说的派生软件)的自由使用。
不管软件是如何获取的,GPL允许无限制地分发该软件,而无须支付任何专利费或按件收取的许可费。这并不意味着软件厂商不能够对GPL软件收费——收费是合理和普遍的商业行为。这表明一旦拥有GPL软件,你可以修改和重新分发这个软件,不管这个软件是否被修改过。然而GPL规定,软件的修改者如果决定发布修改后的软件,则必须以GPL的条款发布。无论以什么形式发布派生软件,比如交付给客户,都必须遵守这个规定。
免费和自由
在讨论开源软件的自由特性(free nature)时,常常会提及两个流行的短语:“free as in freedom”和“free as in beer”(本书作者非常喜欢后者)。[4]GPL的存在保证了软件的自由。由。它确保了你使用、学习和修改这个软件的自由。它也确保了当你分发修改后的代码给某个人时,他同样也获得这些自由。这个概念已经被广泛接受和理解。
很多人对Linux存在一个误解,那就是Linux是免费的。你可以免费获得Linux,你也可以花几分钟的时间下载一个Linux内核。然而,正如任何一个职业开发经理所理解的,在产品设计中使用任何软件都是有一定代价的。这些代价包括软件的获取、整合、修改、维护和支持。除此之外,你还需要花费其他费用,从而获得和维护一个配置正确的工具链、程序库、应用程序以及和你选择的硬件架构兼容的专用交叉开发工具。很快你会发现,为了开发和部署嵌入式Linux系统,配置其所需的软件工具和开发环境并不是件轻松的事情。
1.4 标准及相关组织
在Linux不断获得桌面、企业和嵌入式等细分市场份额的同时,为推动用户使用和接受Linux,一些新标准和新组织也应运而生。本节介绍一些读者应该了解的标准。
1.4.1 Linux标准基础
对于一个Linux发行版的维护者来说,也许关系最紧密的标准莫过于Linux标准基础(Linux Standard Base,LSB)。LSB的目标是建立一套设计良好的标准,以提升应用程序在不同Linux发行版之间的互操作性。目前,LSB的标准涵盖了好几种硬件架构,包括IA32/64、32位和64位Power架构,以及AMD64等。标准分为核心部分和单独的硬件架构部分。
LSB规定了Linux发行版的公共属性,包括目标文件的格式、标准库的接口、命令和实用工具的最小集合以及它们的行为、文件系统布局、系统初始化等。
通过本章末尾的网址可以了解有关LSB的详细信息。
1.4.2 Linux基金会
据其网站所述,Linux基金会是“一个致力于促进Linux发展的非营利组织”。Linux基金会赞助Linux创始人Linus Torvalds的工作。Linux基金会还赞助了几个工作组,帮助他们制定标准和参与开发针对很多重要Linux平台的新功能。接下来的两节介绍一些由该组织发起的项目。
1.4.3 电信级Linux
世界上很多大型的网络和通信设备制造商都在开发或销售采用Linux操作系统的电信级设备。电信级设备的重要特征包括高可靠性、高可用性和快速的可服务性。这些厂商设计的产品采用冗余可热交换的架构、具备容错和集群化特点,并且常常具有实时性能。
Linux基金会的电信级Linux工作组制定了一个规范,其中定义了电信级设备必须满足的一组需求。这个规范的当前版本涵盖了7个功能领域。
可用性——这类需求用于提供增强的可用性,包括在线维护操作、冗余备份和状态监测。
集群——这类需求用于提升设备的冗余服务性能,例如集群成员的管理和数据检查点的设置。
可服务性——这类需求适用于远程服务和维护,例如SNMP和对风扇及电源的诊断监测。
性能——这类需求定义了性能和可扩展性、对称多处理能力、延时等。
标准——这类需求定义了符合CGL规范的设备应当遵循的标准。
硬件——这类需求与高可用性硬件相关,例如刀片服务器和硬件管理接口。
安全——这类需求用于提升整个系统的安全性并且保护系统免受各种外部威胁。
1.4.4 移动Linux计划:Moblin
全球市场上已经有几款基于嵌入式Linux设计和生产的手机。据各方报道,市面上已有上亿部手机采用Linux作为操作系统平台。唯一可以肯定的是这个数量还在继续增加。原本由专有实时操作系统统治的阵地,有望成为Linux发展最为迅猛的细分市场。Linux已整装待发,吹响了进军商业嵌入式应用领域的号角。
Linux基金会赞助了一个原名为移动Linux计划(Mobile Linux Initiative)的工作组,这个工作组现在叫做Moblin。据Linux基金会的网站介绍,这个工作组的目标是推动Linux在移动设备中的使用,包括下一代手机和其他融合语音/数据的便携设备。这个工作组关注的领域包括开发工具、I/O和网络、内存管理、多媒体、性能、电源管理、安全和存储。Moblin的网址是http://moblin.org。你可以尝试某个Moblin版本,例如Fedora/Moblin(网址为http://fedoraproject.org/wiki/Features/FedoraMoblin)或者Ubuntu Moblin remix,作者的Dell Mini 10上网本上就安装了后面这个版本。
嵌入式Linux的版图还在不断扩张。在准备这一版的内容时,Moblin项目和Maemo项目已经合并成MeeGo。可以从http://meego.com/了解MeeGo的更多信息,甚至可以下载一个MeeGo镜像试验一下。
1.4.5 服务可用性论坛
如果你正致力于打造需要具备高可靠性、可用性和可服务性(Reliability、Availability、Serviceability,RAS)的产品,你就应该知道服务可用性论坛(SA Forum)。这个组织定义了一组公共接口用于电信设备和其他商业设备的系统管理。这个组织的网址是www.saforum.org。