Skip to content

Commit f077748

Browse files
authored
fix issues in ch1 (#85)
1 parent 6da3d09 commit f077748

File tree

5 files changed

+157
-99
lines changed

5 files changed

+157
-99
lines changed

docs/ch1/index.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# 导览
22

3-
43
本章将系统性地揭开开源世界的神秘面纱:
54

65
**什么是开源(What)**
@@ -15,4 +14,4 @@
1514
**怎么做开源(How)**
1615
指导实践路径:涵盖"狭义开源"(选择 GPL/MIT/Apache 等协议、代码托管平台操作)、"托管平台演变"(从 SourceForge 到 GitHub/Gitee)以及"广义开源"的生态建设(文档、工具链、文化及非代码贡献)。
1716

18-
通过本章的学习,你将对开源的概念、历史、价值和实践路径建立起清晰而全面的认知,为深入探索开源世界奠定坚实基础。
17+
通过本章的学习,你将对开源的概念、历史、价值和实践路径建立起清晰而全面的认知,为深入探索开源世界奠定坚实基础。

docs/ch1/sec1/what-is-oss.md

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
## 什么是开源?(What)
1+
# 什么是开源?(What)
22

3-
### 课程目标
3+
## 课程目标
44

55
1. 理解开源的多元定义(技术、模式、文化)。
66
2. 通过真实案例感知开源的影响力。
77
3. 激发参与开源的兴趣。
88

99
---
1010

11-
### 一、教学设计
11+
## 一、教学设计
1212

1313
1. **互动投票**
1414
- **工具**:使用在线工具让学生投票选择日常使用的软件:Chrome、安卓手机、VS Code、Firefox 等,揭晓答案均为开源或基于开源。
@@ -18,9 +18,9 @@
1818

1919
---
2020

21-
### 二、开源的形式
21+
## 二、开源的形式
2222

23-
#### 1。开源作为一种软件类型(OSI 定义)
23+
### 1。开源作为一种软件类型(OSI 定义)
2424

2525
开源不仅仅是一个技术术语,它还承载了文化和模式的多重意义。开源软件的定义由**开放源代码促进会(OSI)**给出,是至今为止广泛认同的标准。OSI 的定义将开源软件描述为:
2626

@@ -60,13 +60,13 @@
6060

6161
#### 🌍 **基础设施层:开放协议主导**
6262

63-
**TCP/IP 协议栈(1970s)**
63+
##### TCP/IP 协议栈(1970s)
6464

6565
- **背景与作用**:由**美国国防部高级研究计划局(DARPA)**资助开发,**TCP/IP 协议**成为互联网的通信基础。该协议栈的**完全开放性**让世界各地的机构得以自由实现并在全球范围内互联互通。
6666
- **关键意义**:这为互联网的快速扩展奠定了基础。TCP/IP 协议成为全球网络连接的标准,极大推动了现代互联网的形成。
6767
- **典型案例****BSD UNIX(1980s)**是开源实现 TCP/IP 协议栈的一个例子,BSD UNIX 通过开源实现的 TCP/IP 协议栈成为了后来的 **FreeBSD****NetBSD** 等开源操作系统的基础。
6868

69-
**电子邮件系统**
69+
##### 电子邮件系统
7070

7171
- **开放协议**:SMTP 和 POP3 协议开放,成为全球邮件传输和接收的标准。尽管早期许多电子邮件系统都有闭源实现,但随着开源软件的发展,开源邮件系统逐渐占据主导地位。
7272
- **闭源案例**:如 **Lotus Notes**(1989),其邮件系统在早期占据市场主导地位,但完全闭源,限制了用户的定制和扩展。
@@ -96,12 +96,12 @@
9696

9797
随着计算机和互联网的普及,应用层软件成为了开源与闭源之争的关键战场。在这个层面,开源和闭源的斗争更为激烈,影响也最为广泛。
9898

99-
**闭源主导领域**
99+
##### 闭源主导领域
100100

101101
- **浏览器大战****Netscape** 最初是闭源的(1994 年),它曾是最受欢迎的浏览器。然而,由于开源运动的推动,Netscape 决定在 1998 年开源其浏览器核心,最终催生了 **Mozilla Firefox** 这一开源浏览器的诞生,直接挑战了微软的 **Internet Explorer**
102102
- **办公软件****微软 Office**(1989 年)凭借其强大的功能和用户基础,长期占据办公软件市场的统治地位,且完全闭源,极大限制了用户的定制和扩展能力。
103103

104-
**开源亮点**
104+
##### 开源亮点
105105

106106
- **Apache HTTP Server(1995)**:作为世界上最早的开源 Web 服务器,Apache HTTP Server 迅速击败了当时闭源的 **Netscape Enterprise Server**,成为全球最流行的 Web 服务器软件。
107107
- **Perl 语言(1987)**:开源的 Perl 编程语言成为了早期 Web 开发的核心工具之一。它的开源特性使得开发者可以自由修改和扩展,迅速发展成开发人员的首选语言。
@@ -112,11 +112,11 @@
112112

113113
除了技术因素外,开源运动的成功还离不开其背后深厚的**文化基因**,它源于对**知识共享****协作创新**的深刻理解。
114114

115-
**RFC 文化(始于 1969)**
115+
##### RFC 文化(始于 1969)
116116

117117
- **开放标准的倡导者**:互联网工程任务组(IETF)通过**公开征求意见稿(RFC)**推动互联网协议的标准化。例如,**HTTP/1.0 规范**在 1996 年以 RFC 1945 的形式发布,为全球的网络通信提供了共同语言。
118118

119-
**黑客伦理的影响**
119+
##### 黑客伦理的影响
120120

121121
- **开源的文化传承**:MIT 的 **AI 实验室**等机构提倡代码共享,早期的 **ITS 操作系统**就是一个典型的例子。其开放的代码理念,成为了日后现代开源运动的精神先驱。
122122
- **Richard Stallman 与 GNU 计划**:1983 年,**Richard Stallman** 发布 **GNU 宣言**,并启动了 GNU 计划,致力于创建一个完全自由的操作系统。这标志着现代开源运动的觉醒,为后来的 **Linux** 内核等开源软件提供了理论支持和实践基础。
@@ -167,22 +167,22 @@ flowchart TD
167167

168168
开源的核心不仅仅是技术的共享,它深刻地改变了传统软件开发中的协作方式。不同的开源协作模式使得全球开发者能够共同工作,从**传统闭源开发****企业内部开源**,再到**完全开源**的广泛采用,开源逐渐形成了独特的协作密码。
169169

170-
**传统闭源开发**
170+
##### 传统闭源开发
171171

172172
- **典型特征**
173173
- 代码仅限于内部团队访问,外部开发者无法获取源代码。
174174
- 严格的知识产权保护,源代码无法修改或分发。
175175
- **案例****Windows 95** 的开发过程中,微软严格控制代码的所有权和访问权限,确保仅限内部开发人员修改和发布。
176176

177-
**企业内部开源(Inner Source)**
177+
##### 企业内部开源(Inner Source)
178178

179179
- **核心逻辑**
180180
- 外部依旧保持闭源,但内部采用开源协作方式,跨团队共享代码库,允许内部贡献和修改。
181181
- **案例**
182182
- **微软**:通过“One Engineering System”实施内部开源,促进跨部门的协作与代码共享。
183183
- **沃尔玛**:采用内部开源模式开发电商平台,加速了门店系统的开发与迭代。
184184

185-
**完全开源**
185+
##### 完全开源
186186

187187
- **黄金标准**
188188
- 代码完全公开,任何人都可以参与修改和贡献,全球开发者共同推动项目进步。
@@ -197,7 +197,7 @@ flowchart TD
197197

198198
开源不仅是一种技术决策,它还是一种协作模式的变革。通过对不同协作模式的分析,我们可以理解,开源并非是唯一选择,而是在可持续性和普惠性之间寻求最佳平衡。
199199

200-
**不同模式的核心差异点**
200+
##### 不同模式的核心差异点
201201

202202
| 维度 | 传统闭源 | Inner Source | 完全开源 |
203203
| -------- | -------- | ------------ | ---------- |
@@ -212,11 +212,11 @@ flowchart TD
212212

213213
开源的影响力远不止局限于软件开发领域,它已经超越了技术,成为一种全球范围的协作范式。在不同的领域,开源思维和模式正被应用到各类复杂系统和社会工程中。
214214

215-
**超越代码:人类协作的元模式**
215+
#### 超越代码:人类协作的元模式
216216

217217
开源不仅仅局限于数字世界,它在现实世界中也有广泛的应用场景。这些历史上的巨大协作工程和项目都能为我们提供开源模式的启示。
218218

219-
**现实世界中的“开源式协作”**
219+
#### 现实世界中的“开源式协作”
220220

221221
- **古罗马引水渠建设**:多个城邦共享水利工程技术,技术改进方案被刻在公共石碑上,类似今天的 **Git 提交历史**
222222
- **维基百科编辑**:全球用户可以编辑条目,类似于 **Pull Request** 的方式,且条目的讨论页记录了社区的争议解决过程,类似于 **Code Review**
@@ -234,7 +234,7 @@ timeline
234234
1991年 : Linux内核开发(全球分布式协作)
235235
```
236236

237-
**深度对比:金字塔 vs Linux 内核**
237+
#### 深度对比:金字塔 vs Linux 内核
238238

239239
| 维度 | 古埃及金字塔建造 | Linux 内核开发 |
240240
| -------- | ---------------------- | ----------------------------------- |
@@ -287,7 +287,7 @@ timeline
287287

288288
数学作为人类最早的开源实践之一,通过符号系统的共享、定理的公开证明、知识的积累和去中心化协作,展现了开源的原始特征。
289289

290-
**数学的“开源特性”解剖**
290+
##### 数学的“开源特性”解剖
291291

292292
- 符号系统的开源:阿拉伯数字、希腊字母全球通用。
293293
- 知识积累的开放性:定理证明可复现、可验证、可改进。
@@ -308,7 +308,7 @@ timeline
308308

309309
#### 🌐 开源文化 DNA:从数学到数字时代
310310

311-
**共享符号系统**
311+
##### 共享符号系统
312312

313313
- 数学:∑ 积分符号 → 编程:{} 代码块语法
314314
- 案例:LaTeX 数学排版系统开源标准
@@ -317,7 +317,7 @@ timeline
317317

318318
#### 🧪 互动实验:数学论文 vs 开源项目
319319

320-
**对照分析表**
320+
##### 对照分析表
321321

322322
| 维度 | 数学论文系统 | 现有开源项目系统 |
323323
| ---------------------- | -------------- | ---------------- |
@@ -331,15 +331,15 @@ timeline
331331

332332
#### 🔮 文化投射:开源理念的现代显化
333333

334-
**跨领域开源范式**
334+
##### 跨领域开源范式
335335

336336
| 领域 | 开源实践 | 数学渊源 |
337337
| ------------------ | ---------------------- | ---------------------- |
338338
| **区块链** | 以太坊智能合约开源 | 图灵可计算理论开放验证 |
339339
| **生物技术** | CRISPR 基因编辑协议共享 | DNA 双螺旋结构开放研究 |
340340
| **航天** | SpaceX 公开火箭设计蓝图 | 开普勒行星定律开源传播 |
341341

342-
**开源文化主流的特性**
342+
##### 开源文化主流的特性
343343

344344
1. **可溯源性**:所有创新需标注知识谱系(如数学引用体系)。
345345
2. **可验证性**:过程数据完全开放(如 Git 历史记录)。
@@ -358,4 +358,3 @@ timeline
358358
359359
**通过混凝土的千年轮回,理解开源不是技术选择,而是文明存续的生存策略。**
360360
**从泥板上的楔形数字到 GitHub 的星标仓库,人类始终在践行同一个真理:共享使知识永生。**
361-

0 commit comments

Comments
 (0)