《嵌入式Linux基础教程(第2版)》——1.3 开源和GPL

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系统,配置其所需的软件工具和开发环境并不是件轻松的事情。

时间: 2024-10-02 17:16:33

《嵌入式Linux基础教程(第2版)》——1.3 开源和GPL的相关文章

《嵌入式Linux基础教程(第2版)》——导读

**前言**虽然讲Linux的好书很多,但是本书汇集了专门针对嵌入式Linux开发人员的各方面信息和建议.实际上,有关Linux内核.Linux系统管理等方面的优秀书籍已经有很多了.本书也参考了我认为在同类书籍中最好的几本. 本书的很多内容来自实际的问题,有些问题是我作为嵌入式Linux顾问时一些开发工程师提出的,还有些问题是我直接参与商业嵌入式Linux开发时遇到的. 嵌入式Linux会给经验丰富的软件工程师带来一些独特的挑战.首先,那些有多年老式实时操作系统(Real Time Operat

《嵌入式Linux基础教程(第2版)》——2.2 剖析嵌入式系统

2.2 剖析嵌入式系统 图2-1是一个典型嵌入式系统的框图.这个例子很简单,描述了一个系统的高层硬件架构,无线接入点设备可能就是采用这种硬件构架.这个系统架构以一个32位的RISC处理器为中心,系统中的闪存用于存储非易失性程序和数据,主存储器是SDRAM(同步动态随机存储器),其容量可以从几兆至几百兆字节,视应用而定.一个通常由电池供电的实时时钟模块记录着当前时间(包括日期).这个例子里面包含以太网和USB接口,也包含串行端口,利用串行端口可基于RS-232标准访问控制台.802.11芯片组或模

《嵌入式Linux基础教程(第2版)》——1.4 标准及相关组织

1.4 标准及相关组织 在Linux不断获得桌面.企业和嵌入式等细分市场份额的同时,为推动用户使用和接受Linux,一些新标准和新组织也应运而生.本节介绍一些读者应该了解的标准. 1.4.1 Linux标准基础 对于一个Linux发行版的维护者来说,也许关系最紧密的标准莫过于Linux标准基础(Linux Standard Base,LSB).LSB的目标是建立一套设计良好的标准,以提升应用程序在不同Linux发行版之间的互操作性.目前,LSB的标准涵盖了好几种硬件架构,包括IA32/64.32

《嵌入式Linux基础教程(第2版)》——2.5 小结

2.5 小结 本章简要介绍了很多主题.现在,你可以以恰当的视角来审视后续内容了.在后面的章节中,这种认识会得到扩展,帮助你掌握必要的技能和知识,确保你在今后的嵌入式项目中获得成功. 嵌入式系统有一些共性.通常它们的资源有限,用户界面比较简单或者根本不存在,并且它们一般是为特定目的而设计的. 引导加载程序是嵌入式系统的一个重要组成部分.如果你的嵌入式系统采用的硬件是一块定制的板卡,你必须在设计中提供适合此硬件平台的引导加载程序.通常,这项工作是通过移植现有的引导加载程序来完成的. 成功引导一个定制

《嵌入式Linux基础教程(第2版)》——2.4 嵌入式Linux发行版

2.4 嵌入式Linux发行版 到底什么是Linux发行版? Linux内核完成系统引导后,它会找到并挂载一个根文件系统.一旦合适的根文件系统被成功挂载,启动脚本会启动很多系统需要的程序和实用工具.这些程序一般会调用其他程序来完成具体的任务,例如生成一个登录shell.初始化网络设备接口和运行用户的应用程序.每一个程序都有一些必须由系统中其他成员来满足的具体需求(一般称为依赖关系).大多数的Linux应用程序都依赖一个或多个系统程序库.还有一些程序需要配置文件和日志文件,诸如此类.总的来说,即使

《嵌入式Linux基础教程(第2版)》——1.2 嵌入式Linux现状

1.2 嵌入式Linux现状 Linux在嵌入式领域已经取得了长足的进步,这一点并不让人感到惊讶.实际上,阅读本书就已表明Linux已经影响了你的生活.嵌入式Linux的市场规模难以估量,因为很多公司仍然在继续打造它们自己的嵌入式Linux发行版. LinuxDevice.com是一个广受欢迎的新闻和资讯门户网站(它由Rick Lehrbaum创建,现在属于Ziff Davis),这个网站每年会开展一次嵌入式Linux的市场调查.其最近的调查报告显示,Linux已经成为占据主导地位的嵌入式操作系

《嵌入式Linux基础教程(第2版)》——第1章 入门 1.1为什么选择Linux

第1章 入门 很多老牌嵌入式操作系统公司纷纷抛弃专有嵌入式操作系统,而这一举动一般都会在公司内部引发不少争论.出于各方面的考虑,许多产品都采用Linux作为其操作系统,这些产品的种类繁多,超出了Linux占据传统优势的服务器领域.手机.DVD播放器.电子游戏机.数码相机.网络交换机和无线网络设备都在使用嵌入式系统.在你家里或汽车里多半也会有Linux的身影.Linux已经成为很多设备的嵌入式操作系统,包括机顶盒.高清电视.蓝光DVD播放器.汽车的信息娱乐中心和很多其他日常使用的电器. 1.1 为

《嵌入式Linux基础教程(第2版)》——2.3 存储

2.3 存储 嵌入式Linux开发的一大挑战性源自大多数嵌入式系统的物理资源非常有限.虽然你的台式电脑会拥有酷睿2双核处理器和500 GB大小的硬盘,但很难找到拥有如此巨大硬盘容量的嵌入式系统.多数情况下,硬盘通常被更小和更便宜的非易失性存储设备所取代.硬盘不仅笨重,包含旋转部件,对物理震动敏感,并且要求提供多种供电电压,因此并不适合用在许多嵌入式系统中. 2.3.1 闪存 几乎所有人都对消费电子设备,比如数码相机和PDA(这两者都是很好的嵌入式系统的例子)中广泛使用的Compact Flash

《嵌入式Linux基础教程(第2版)》——1.5 小结

1.5 小结 嵌入式Linux已经取得了胜利.实际上,你的汽车或家中很可能就有嵌入式Linux设备.这一章仔细考察了下列现象的产生原因. 采用Linux的嵌入式产品开发者和生产厂商不断增加. Linux在嵌入式设备中的使用率继续以令人激动的速度增长. 很多因素推动了Linux在嵌入式市场的增长. 几个标准和相关的组织正影响着嵌入式Linux的发展.