
“ 1991年,Linus在Stallman的自由软件运动引领下发布Linux内核,GNU/Linux操作系统由此诞生。Debian作为持续最久的Linux发行版之一,通过社区协作和开源倡议解决了自由软件的生存难题,其5万个软件包和年度选举机制展现了开源生态的独特生命力。”
GNU/Linux OS 回顾
1. 项目进度
-
1983年,Stallman 启动 GNU 项目后,尽管他的卓越才能在其主管的 GNU/GCC 编译链中大放异彩,但 kernel 却迟迟无法正式发布。
-
1990年,GNU 项目成员贡献 Mach microkernel,即 GNU Hurd。
-
同年,Microsoft 发布首个人类历史上,被市场广泛接受的,基于 MS-DOS 的 GUI 操作系统 Windows3.0。这是一个巨大的反讽,因为 Stallman 曾公开说 MS-DOS 是“玩具”(与 Unix-like 操作系统 GNU 的 Unix shell 比较)。这可能反映了商业软件的某些市场与进度优势。
-
1991年,芬兰学生 Linus,在 Stallman 发起的“free software movement(自由软件运动)”引领下,在 copyleft(著佐权,注意:非“著作权”)即 GPL 保护证模式下,发布 Linux kernel。至此,GNU/Linux OS 正式诞生。
-
注1:尽管 Linus 使用 GNU/GCC 编译链,并遵守 GPL 证书,但 Linux kernel 并非 Stallman 醉心的 GNU 项目中的部分。即 Linux kernel 专属 Linus 的个人贡献。
-
注2:这可能导致了世人皆知 Linux,并常常以此指代 GNU/Linux 操作系统(某种角度上,这种理解不算错。因为 Linux OS,可将各个成熟 GNU 工具视为向 Linux kernel 的移植过程)。
-
注3:由于 Richard Stallman 毕生引领“自由软件”运动,并创造性发明 GPL 证书(copyleft 证)。以及考虑从 Ritchie 发明C 语言并重写(真正创造)Unix 开始,C语言与编译器,与Unix-like 系统,两者就变得不可分割。因此,这里通常选择称呼“GNU/Linux 操作系统”。
2. 功能模块
-
Stallman 的 GNU/GCC 工具链与其他 GNU 工具
-
Linus 的 Linux kernel
-
Unix shell:用户交互的命令行解释器
3. “主线任务”
如上讲所述,从游戏中借用“任务”一词,来表述 Unix/Unix-like 操作系统发展,即开始 GNU/Linux 的“主线任务”。列举如下:
-
System V 家族(Unix):“宗门任务”(少数公司商业闭环)
-
BSD(Unix-like):“殿堂任务”(BSD 许可证,苹果 MacOS 分支可商业闭环)
-
GNU/Linux(Unix-like): “主线任务”(GPL 保护证)
01
—
Debian GNU/Linux 操作系统(Debian OS)
创造类似 Windows,MacOS 的 GUI “桌面视窗”操作系统,现在是 GNU/Linux 的首要任务(1990s 的硬件环境也已成熟)。
Debain 包括了下述主要模块:
-
桌面环境:支持 XFCE, GNOME, KDE, MATE, Cinnamon, LXDE, 以及 LXQT.
-
办公工具:LibreOffice, Firefox web 浏览器,Evolution mail, K3b disc burner, VLC media 播放器, GIMP 图像编辑器, 以及 Evince document viewer.
-
APT 包(下载)管理工具。
作为“主线任务”,Debian GNU/Linux 操作系统,是持续最久的 Linux 分布之一,是广泛使用的网络服务器的 OS 之一。
同时,它还是 Ubuntu 的 codebase(代码基地/代码来源)。
02
—
Debian 社区生态
2.1 超大规模的 GPL 项目
作为“自由软件”,GNU/Linux(Unix-like 操作系统) 主要的问题,是如何生存与发展的问题。这里理解,归根到底就是:如何发展无资本支持,无明显收益的 GPL生存环境。
作为比较:Windows,MacOS(iOS),Andriod OS,与大型垄断性跨国公司 Microsoft,Apple,Google 的支持不可分割,同时上述操作系统(或与其关联的硬件,工具软件)又是上述商业跨国集团的重要收益来源。
它的难度和投入通过以下数据可窥知一二:
-
Debian 软件仓库的包超过 5万 pcs。
-
Debian5.0 的全部包(packages)的代码超 3亿行。
-
2016年,Debian codebase 代码超 7千万行。
2.2 社区形式组织的千名“Debian 开发者”与年度投票 Leader
社区模型
以下图片来自 Wiki:

如图,图片中三份列表分别表示:投票人数,项目 leader,Debian 包生命期框图。
行为指导
“Debian 社会契约”,“Debian 自由软件指南”,“Debian 宪章”指导如下行为:
-
约千名“Debian 开发者”组织为社区(但不禁止其他开发者向 Debian 贡献)。
-
在官方邮件列表与相关会议中,与开发者间实现项目协调。
-
Debian 项目 leader 每年度被选举(始于 1999年)。
-
资金来源之一:leader 可以对某些组织授权(如商标),以获得捐赠。
-
leader 的重要职责包括引领 Debian 兴趣方向与维护版本发布。
2.3 “maintainer/维护者”
每一个 Debian 软件包,都有一个“维护者”,见上图中的包生命期框图。
维护者的工作包括:
-
跟踪发布
-
协调与其他包的协同工作,并保证符合质量标准
2.4 发布周期
大约每隔 2年会发布一个新的 Debian 稳定版分支(注:与 Ubuntu 稳定版时间耦合)。
03
—
“开源倡议”(Bruce Perens):接受捐赠的 Debian
如上图中的第二个 Leader 框图所示,列举了众多 leader(项目领袖)。
Ian Murdock 是项目创始人。1993年,Ian Murdock 创立 Debian 项目。其命名为他的女友(前妻)的名字 Debra Lynn,与他自己的名字之合体。
3.1 Bruce Perens
1996年,Perens 获得项目领袖职权。起草“Debian 社会契约”,“Debian 自由软件指南”,摆脱 Stallman 的 FSF(自由软件基金会)。
文件格式转变,从 a.out 至 ELF 格式。注1:a.out 通常具有调试符号信息。Unix “宗门任务”中,其过渡为 COFF 格式,最终为 ELF 格式。注2:据说 a.out 的主要问题是共享库的复杂性(与登记授权的虚拟地址有关)。
3.2 Open Source Initiative(开源倡议/开源行动会/开源促进会)
Perens 定义了“开源(open source)”,并正式发布了“开源宣言”。他是 OSI(开源行动会)的联合创始人(典型区别于 Stallman 的 FSF,自由软件基金会)。
因此,他深刻改变并重锻 GNU/Linux,或 Debian 的项目发展模式。这里理解,其核心问题:就是解决如何在 GPL(copyleft 证书)下的“自由软件”范畴内,求市场生存的重大议题。
自此,从30年前开始,或更准确地说,进入新世纪以来,“开源”在市场宣传上,往往代替“自由软件”,成为更熟悉的项目概念。
有别于 Stallman 的似乎“厌恶”商业利润倾向,Perens 要求 Debian 可以接受捐赠。此外,如上文所述,赋予 leader 透过发放商业冠名,获得收益的权利。
Perens 阐述“绝大多数黑客,都晓得自由软件和开源,是同一件事儿的两个名词”,但是,“开源”作为市场营销的成功,“淡化了自由软件内涵的自由域/免费域的重要性”。
注:本观点不被 Stallman(“自由软件运动”引领者)认同。此外,Stallman 的 FSF 指责 Debian 的 no-free software(非自由软件)包,太容易被用户访问(如上讲所述,Stallman 的 GNU/Linux 项目,完全由自由软件组成)。
以下图例来自 Wiki:

拓展介绍:Perens 出生患有脑瘫,并在求学时误诊发育障碍,校园还不被教授阅读能力。
04
—
硬件平台
本图例来自 Debian 官网:

可以看到:
-
尽管同时也支持 Intel 64。但首个支持的架构名称,仍然是“amd64”。这反映了 GNU/Linux 分布,天然的“非 Intel-MS”的特点。
-
ARMv7 与 ARMv8(AArch64)架构都被支持。
-
可能是未来的流行的 RISC-V 架构也被支持。
05
—
Windows 支持(WSL)
从 Win10 开始(2016年),Microsoft 提供了 WSL(Windows Subsystem for Linux/ Windows 之 Linux 子系统),可用于提供 Debian/Ubuntu 子系统。
以下内容来自(Brendan Hesse,自由专栏作家):
-
WSL 是一种 natively 访问方式(这里理解:明显有别于传统的 Cgywin,Msys2 等虚拟环境)。
-
安装 WSL 要不了一会儿(若干分钟)。
-
WSL 在行为上,就像“windows 的 bash”,即在 windows 平台下的 powershell 中,运行 Ubuntu bash(Unix shell 在前文中有介绍)。
-
WSL 几乎唯一的好处,就是有利于开发者(即在 Windows 平台上创造 Linux 软件)。因此,WSL 是一个有力的开发工具。
-
由于 WSL 是 Windows 进程之一,这意味着 Windows 的各种工具仍可使用,并且可以使用类似 tasks 管理器来终止 Linux 进程。
-
WSL 默认不支持 Linux 的 GUI 版本,它仅是一个命令行环境(GUI 界面的软件既不能安装,也不能运行)。Microsoft 无计划对 Linux GUI 进行官方支持。
-
WSL 可以同时使用 Windows 和 Linux 的文件系统。
-
WSL并非开源项目,也非 Linux kernel,它仅是 Microsoft 的某个框架。
安装 WSL,这里就不再介绍,网上可以容易搜索。通常,具有启用(使能)WSL,下载 Linux(比如 Debian,或 Ubuntu)两个步骤。
06
—
总结
-
沿着上文探讨的,作为“主线任务”的发展,本文介绍了 Debian GNU/Linux OS。
-
Perens 在 Debian 项目中,首次引入“开源”概念(它使得项目能过通过捐赠与有偿授权等方式,获得收益)。
-
指出 Debian 的社区规模,以及特别的年度领袖选举机制。在 Packages 的管理中,开发方式通过“维护者”来保证每个包的发布,以及系统兼容。
-
讨论了主要的在线的硬件平台。
-
简单介绍 Win10 引入 WSL,包括 Debian 在内的 GNU/Linux 分布的子系统的主要特点。