第 2 章. Linux 和自由软件介绍

目录
2.1. 一些定义
2.2. 自由软件概念
2.3. Linux 和其他操作系统

2.1. 一些定义

在更详细地介绍之前,给出本 HOWTO 中提到的一些术语和软件的定义可能是有用的。

2.1.1. 自由软件或开源软件

自由软件(或开源软件)是一种与其源代码一起分发的软件,允许对其进行研究、传播和改编。在英语中,问题在于“free”的使用,它既有“免费”的意思,也有“无约束”的意思。在这里,需要考虑的是第二种用法,因此使用了“开源”。为了记住,可以将 “free” 理解为言论自由 (free as speech),而不是免费啤酒 (free as beer)。

根据其开发所使用的许可证,对此类软件用户的约束各不相同。最开放的许可证(如 BSD 许可证)允许第三方占用代码,包括在商业产品中转售由此产生的软件(无论是否经过修改),没有任何问题,并且除了提及他们的版权之外,不欠原始作者任何东西。其他许可证(如 GNU 通用公共许可证或 GPL)强制每个修改后的 GPL 软件本身也必须是自由 GPL 软件;这不允许在商业软件中使用此类程序。还存在许多其他许可证,或多或少是开放的:Artistic 许可证 (perl)、NPL 许可证 (mozilla)、QPL 许可证 (Qt) ...

今天,绝大多数自由软件都采用 GPL 许可证,即使 BSD 世界始终占据着重要的地位,但在媒体上却不太显眼。Linux 采用 GPL 许可证。要获得有关这些定义和许可证的更多信息,请参考以下参考网站

GNU 项目网站

您可以在那里找到有关 GNU 项目的所有信息,包括生成的许可证(GPL 和 LGPL)以及关于自由软件的各种讨论。

开源项目网站

该网站由知名人士提出了一个新的、略微宽松的自由软件定义——这里称为开源软件。

FreeBSD 项目网站

这里解释了非常开放的 BSD 许可证的优势。

2.1.2. 示例和反例

首先,不应将自由软件和 免费软件混淆。免费软件不一定提供源代码,这与自由软件相反。另一方面,与免费软件相反,您可能需要付费才能获得自由软件(这与使用的许可证并不矛盾)。正如之前所述,歧义来自单词 “free”。因此,免费软件是免费的,但不一定是“源代码开放的”。(同样,共享软件与自由软件无关)。

因此,重要且知名的自由软件的例子包括 Linux 和 FreeBSD 操作系统、Apache Web 服务器、SaMBa SMB 服务器、GNU C 和 C++ 编译器……相反,知名的免费软件的例子包括 Internet Explorer 浏览器、Eudora Light 邮件阅读器……

2.1.3. Linux

Linux 是一个自由操作系统,是 POSIX 规范的超集。“Linux” 仅指内核本身。通过扩展,该名称也用于基于该内核以及来自 GNU 项目的一组工具的发行版。

因此,Linux 是一个 Unix 系统,只不过它不使用任何专有代码,并且在 GPL 许可证下提供,这意味着源代码的可用性。与每个 Unix 系统一样,Linux 是多任务和多用户的。它也具有极强的可移植性,并且如今已正式在诸如 Intel (i386 到 Pentium IV)、Alpha、Motorola (680x0 和 PowerPC)、Sparc、StrongArm、Mips 等处理器上可用。更不用说 PalmPilot、Itanium (前 Merced)、PA-Risc、Crusoe 上的端口,无论是已投入使用还是正在开发中……

该系统如今非常稳定和成熟。Linux 内核的 “x.y.z” 版本,其中 “y” 是偶数,是稳定的,通常只在 “z” 增加时应用错误修正。Linux 内核的 “x.y.z” 版本,其中 “y” 是奇数,是开发版本,可能不稳定,并且保留给开发者或勇于尝试者使用。

不时地,当内核开发稳定下来时,会宣布“冻结”以提供新的“稳定”版本(偶数),并且开发在新版本(奇数)上继续进行。

当前的稳定版本是 2.4.16 版本(最后一个数字可能会根据修复的节奏而变化)。另一方面,2.5 版本的开发已经重新开始。

目前有许多关于 Linux 的介绍。其中,您应该查阅 Michael Johnson 在 http://www.linuxdoc.org/HOWTO/INFO-SHEET.html 上所做的介绍

2.1.3.1. Linux 技术特点

该系统提供以下技术特点

  • 多任务:以伪并行方式执行多个程序。

  • 多用户:多个用户同时在同一台机器上操作(无需担心许可证)。

  • 可移植和互操作:可在多种硬件架构上工作。所有源代码都是可用的。Linux 支持许多文件系统,除了原生 ext2 之外:System V、BSD、Sun、MS-DOS、VFAT、NTFS、Mac、HPFS、EFS、ISO9660。在网络方面,它支持以下协议 TCP/IP v4 和 v6、Appletalk、Netware(客户端和服务器)、Lan Manager SMB(客户端和服务器)、X-Window、NFS、PPP、SLIP、UUCP。

  • 高效架构:模块化内核,按需构建,在 80x86 处理器上以保护模式执行,按需页面加载,可执行文件之间读取时的页面共享,具有磁盘交换空间的虚拟内存,内存中动态磁盘缓存的使用,动态库,进程管理,伪终端,虚拟控制台。

  • 安全性:进程之间内存保护:一个用户程序不会损害整个系统运行。另一方面,内核还可以过滤网络数据包。

  • 遵守规范和标准:Posix,带有 System V 和 BSD 扩展。支持 COFF 和 ELF 二进制文件。通过 iBCS2 模块与 SCO、SVR3/4 的二进制兼容性。本地语言支持以及国家键盘、字体...