《Linux嵌入式实时应用开发实战(原书第3版)》——1.5 开源协议

1.5 开源协议

多数软件终端用户协议都明确限制了你只可以使用协议范围内的功能。典型的限制条件是不允许复制或重新发布。你通常会被警告不要试图对软件进行“逆向工程”。
相反,开源协议是只要你愿意,就允许使用、修改和复制授权的软件。和权利相伴的是义务。如果你修改并发布了一个开源协议内的软件,你就必须将修改后的源代码也纳入该框架。你的修改就成为“派生的工作”,也在该协议的范围内。这就允许其他使用者更好地理解软件,并按他们的意愿做出更多的修改。
开源协议也叫“公共版权”协议,使用版权的目的是表达这样一个观点:使用版权法来作为一种便利而不是限制获取软件知识产权的途径。尽管版权通常用于一个作者限制其他人复制、修改和发布一个产品,公共版权则明确允许在同样的协议框架下修改和再发布该产品。因此“公共版权”允许你从他人的工作中获益,但是你的任何改动均需要在同样的框架下发布。
毫无疑问,最知名的、应用最广泛的开源协议是GNU通用公共协议(GPL),它最初由FSF在1989年发布。Linux内核是在GPL框架内的,但是有一个问题使GPL不能在一些商业场合使用。使用或参考其他在GPL架构下发布的软件而生成的软件,即使只是链接到一个库,也被认为是派生产品,也必须受限于GPL架构而以源代码的形式提供。
为了解决这一问题,推动开源库的发展,FSF推出了GPL库(LGPL)。区别是链接到LGPL框架库的程序不被认为是派生工作,尽管你仍然必须使代码能被库所用,但不要求你发布代码。
后来,LGPL就因其提供给用户的自由度更小而被称为“更小的GPL”。所以当LGPL让使用开源软件开发有所有权的产品成为可能时,FSF就鼓励开发者将他们的库置于GPL的框架内,以达到最大限度的开源。
与之完全相反的是伯克利软件发布授权(BSD),它比GPL早了约12年。它建议但不要求对源代码的改动必须反馈给开发者社区,并且允许使用其他协议生成产品,包括个人协议。
也有不少其他协议介于这两者之间。比如在1998年开发的Mozilla公共协议(MPL),当时Netscape公司将他们的浏览器开源了,它包含比BSD协议更多的关于派生产品的要求,但是比GPL或LGPL少。开源促进会(Open Source Initiative)是一个非盈利性的组织,负责认证满足开源定义的协议,2011年12月,在它的网站上列出了78个通过认证的协议。
多数在GPL的框架下发布的软件,包括Linux内核,都适用于协议的第2版,它在1991年发布,正好和Linux的发布在同一年。FSF在2007年6月发布了GPL的第3版。发布第3版的目的之一是解决“TiVo化(tivoization)”的问题,这是由FSF的创始人Richard Stallman发明的一个术语。结果表明TiVo只能运行有授权数字签名的代码。所以,即使TiVo使其源代码纳入GPL框架,修改的代码将仍然不能运行。
Stallman认为这违背了GPL的精神。其他的开发者包括Linus Torvalds则将数字签名视为一个有用的安全工具而不想将其完全禁止。争论还在继续。但是在任何情况下,内核本身不可能很快过渡到第3版。
法律问题
开源的法律意义产生了相当多的FUD,尤其是SCO的关于Linux内核受UNIX代码破坏的言论。SCO组织,正式名称是Santa Cruz公司,在1996年从Novell获得UNIX系统V源代码的版权,不过现在还有一些关于SCO到底从Novell购买到什么的争论。无论如何,SCO声称IBM公司引入了部分SCO版权的UNIX代码到Linux内核中,因此要求Linux使用者支付协议费用。
SCO的案子最终败诉了,该公司曾于2007年根据《破产法》第11章申请破产,但是突然间通过开源协议问题之争又赢得了很多钱。结果是嵌入式开发者都需要意识到开源和专有软件的协议问题。嵌入式软件,包括衍生的或从其他来源获得的元素,通常与操作系统密切相关。没人期望嵌入式工程师成为知识产权代理人,但无论如何有必要明白你所使用的和生成的软件的授权框架以保证一切运行顺利。
问题要从两方面看待。现在仍然有人努力去识别对GPL的侵权,目的不是挣钱,而是通过给侵权者施压让他们停止行动来维护GPL的完整性。特别地,GPL反侵权项目曝光了十几个嵌入式Linux供应商,他们一直快速开发但又不遵守GPL规则。据Harald Welte,GPL反侵权项目的发起者说,常见的非法设备都是网络设备,像路由器、机顶盒和车载导航系统等。
开源协议专家Bruce Perens说,嵌入式开发者似乎都有这样一个想法:“这是嵌入式的,没有人能改变源代码,所以无需应用GPL”。他们的确是这样做的。
现在我们有一些关于嵌入式实时空间及Linux怎样应用其中的想法,第2章将会描述怎样在一个工作站上安装Linux。

时间: 2024-09-17 03:52:35

《Linux嵌入式实时应用开发实战(原书第3版)》——1.5 开源协议的相关文章

《Linux嵌入式实时应用开发实战(原书第3版)》—— 导读

前 言 使用minix的朋友们,大家好! 我正在为386(486)AT系列编写一个(免费的)操作系统(这仅仅是业余爱好,不会太大,也不会像GNU那样专业).我从4月份开始酝酿,现在快准备好了.我希望得到任何关于minix的反馈,包括你们在使用过程中喜欢和不喜欢的地方.因为我的操作系统和它多少有点类似(比如文件系统具有相同的物理布局(出于实用的原因)). 我目前已经移植了bash(1.08)和gcc(1.40),而且进展好像很顺利.这意味着我将在未来几个月内把这个系统推向应用,所以我想知道大多数人

《Linux嵌入式实时应用开发实战(原书第3版)》——1.3 为什么Linux适用

1.3 为什么Linux适用 Linux模仿UNIX的基本架构,在其基础上发展成为一个通用的操作系统.没有人认为UNIX适用于嵌入式或实时操作系统(RTOS).它太大了,占用太多的资源,而且其调度原则是基于顺序而不是优先级.因此,简而言之,它与嵌入式操作系统的要求完全是背道而驰的. 但是Linux有UNIX系统的早期版本所欠缺的几样东西.它是免费的,而且你可以得到源代码,并且有一个拥有大量热情的Linux开发者和使用者的大社区.你在使用中所面临的问题总有人正遇到或曾经遇到过,所有这些都在网络上,

《Linux嵌入式实时应用开发实战(原书第3版)》—— 2.4 DVD 还是激活CD

2.4 DVD 还是激活CD 多数的Linux发行版至少可以通过三种途径获得:DVD.CD包(目前最多包含6张CD)或者一张激活CD(Live CD).一张激活CD就是一个最小的可引导Linux系统,可以不用安装Linux就让你有机会体验新的发行版.当然,你不能保存任何数据或修改配置.每次启动它都会恢复到默认配置. 激活CD提供的一个选项是安装发行版.当你选择这个选项时,它将运行和你使用DVD或完整的CD包同样的安装过程.不同之处在于安装包是来自网络而不是来自物理介质.

《Linux嵌入式实时应用开发实战(原书第3版)》——1.4 哪里用嵌入式Linux

1.4 哪里用嵌入式Linux 任何地方都在用.2005年7月,LinuxDevices.com网站列出了超过300个运行Linux的商业产品.它们包括手机.个人数字助手(PDA)及通过路由器和网关使用的其他手持设备:精简客户端.多媒体设备.电视机顶盒.机器人和加固的VMEbus:适用于军事和控制应用的机箱.这些只是LinuxDevices网站的编辑们正好知道的产品.首个或许也是最知名的应用嵌入式Linux的家庭娱乐设备是TiVo个人录像机,当它在2000年首次出现时,就引发了电视业的革命.Ti

《Linux嵌入式实时应用开发实战(原书第3版)》——3.5 Linux文件系统

3.5 Linux文件系统 Linux文件系统在很多方面与Windows PC或Macintosh(苹果公司生产的)上的文件系统类似.它是一个等级系统,允许你在"/"标识的根目录下创建任何数量的子目录.和Windows中一样,文件名可以很长.尽管如此,Linux和多数类似UNIX的系统一样,文件的扩展名--文件名中"."后面的那部分--不像它们在Windows中那样有意义.例如,Windows中的可执行文件的扩展名为".exe",但是Linux中

《Linux嵌入式实时应用开发实战(原书第3版)》——3.7 shell

3.7 shell Linux系统启动最后所做的事情之一是调用叫做shell的命令解释程序.它主要的工作是解析你在控制台输入的命令并执行相应的程序.但是shell不仅仅是一个简单的命令解释器.它包含了自己的一个功能强大的表述性解释编程语言,通过整合shell脚本语言和现有的实用程序,使无需写一行C代码就生成一个非常成熟的应用成为可能.事实上,这就是常规的UNIX编程的指导思想.从一组简单的实用程序开始,通过shell脚本语言将它们链接起来. shell脚本语言包括通常的循环.测试.函数等编程结构

《Linux嵌入式实时应用开发实战(原书第3版)》——1.6 资源

1.6 资源 embedded.com--<Embedded Systems Design>杂志的网站.这个网站并不是专门针对Linux的,但是作为一个更通用的信息工具,对于解决嵌入式系统问题是很有用的. fsf.org--自由软件基金会. gpl-violations.org--通用公共授权侵权项目,宗旨是针对GPL"提高对过去和现在的侵权的认识",据网站所述,它"仍然只是一个人的努力". keegan.org/jeff/tivo/hackingtiv

《Linux嵌入式实时应用开发实战(原书第3版)》——2.5 安装过程

2.5 安装过程 不管你选择的安装方案或安装介质是什么,安装过程是大致相同的.这里描述Fedora的安装,但是安装其他的发行版也是类似的: 下载发行版介质(见2.6节).这可能是一个.iso文件.一个DVD或激活 CD的精确映像. 将.iso文件写入到相应的物理介质上.你需要一个磁盘烧写程序将 .iso文件转移到物理介质.在虚拟机的环境中,你可以直接挂接.iso文件,就和操作一个DVD或CD一样. 从安装介质开始启动计算机或者单击激活 CD中的安装图标.你可能需要配置PC的BIOS为从光驱启动.

《Linux嵌入式实时应用开发实战(原书第3版)》——3.8 获得帮助

3.8 获得帮助 UNIX/Linux系统的官方文档是一组叫"man pages"的文件.man是手册(manual)的简称.man pages可以通过如下的shell命令访问: man cp 这条命令可以得到关于shell复制命令的帮助.试一下,在shell提示(prompt)里输入man man 可以对man命令有更多的了解.man在屏幕上一次显示一页,在最下面的一行用一个":"提示.要看下一页,就按键.要在到达最后一页前退出man,就输入q.你也可以在man页