Skip to content

Commit 8924110

Browse files
committed
refactor: refactor outline and docs level
Signed-off-by: Zhenchen Wang <[email protected]>
1 parent f3a077c commit 8924110

21 files changed

+412
-511
lines changed

docs/ch0/index.md

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1 @@
1-
# S0: 无意识使用阶段
21

3-
**目标** :认识到开源已融入生活,了解自己日常使用的开源软件。
4-
5-
## 一、开源无处不在
6-
7-
1. **举例说明** :列举现代科技各领域广泛运用的开源软件实例,像以 Linux 为基础构建的 Android 系统,广受欢迎的浏览器 Chrome 和 Firefox,实用的办公工具 LibreOffice,还有开发人员常用的开发工具诸如 Git、Vim、Node.js 等。通过这些具体案例,展现开源软件在日常生活中的广泛存在。
8-
2. **说明开源如何成为现代技术的基石** :深入阐述开源在诸如手机、服务器、云计算、大数据、人工智能等前沿领域所发挥的基础性、支撑性作用,揭示开源对于现代技术发展的不可或缺性。
9-
10-
## 二、参考任务
11-
12-
1. **列举自己日常使用的一些开源软件,并尝试查找它们的开源主页或仓库** :引导读者主动去发现身边的开源软件,并通过查找其开源主页或仓库,进一步深入了解这些软件背后的开源生态。
13-
2. **调研一个开源项目的背景,了解它在行业中的应用(如 Linux、Kubernetes)** :促使读者选取典型开源项目,如 Linux 或 Kubernetes,深入探究其起源、发展历程,以及在所属行业中的广泛应用,加深对开源项目影响力的认知。

docs/ch1/index.md

Lines changed: 0 additions & 318 deletions
Original file line numberDiff line numberDiff line change
@@ -1,318 +0,0 @@
1-
# 什么是开源?(What)
2-
3-
## 课程目标
4-
1. 理解开源的多元定义(技术、模式、文化)
5-
2. 通过真实案例感知开源的影响力
6-
3. 激发参与开源的兴趣
7-
8-
## 一、教学设计
9-
1. **互动投票**
10-
- 工具:使用在线工具让学生投票选择日常使用的软件:Chrome、安卓手机、VS Code、Firefox等,揭晓答案均为开源或基于开源。
11-
- 可以进行提几个与开源有关的问题:如最几年最火热的开源软件有什么?,最后一个问题以同学认为这个世界的软件开发以什么为主导,占了多大的比例为结尾,问题答案通过数据冲击:展示“全球97%的软件开发依赖开源代码”等统计数据。
12-
2. **沉浸式故事**
13-
- **视频片段**:插入[Linux诞生纪录片](视频链接)
14-
15-
## 二、开源的形式
16-
17-
### 1.开源作为一种软件类型(OSI定义)
18-
---
19-
20-
## 🔍 **官方定义:OSI的黄金标准**
21-
**开放源代码促进会(OSI)**对开源软件的明确定义:
22-
> "开源软件是指其**源代码可被自由查阅、修改和分发**的软件,且必须满足以下所有条件——"
23-
24-
---
25-
26-
## 📜 **OSD核心条款(简化版)**
27-
Open Source Definition(OSD)的十大原则可浓缩为四大核心:
28-
29-
| 核心原则 | 关键要求 | 反例警示⚠️ |
30-
|------------------------|--------------------------------------------------------------------------|--------------------------|
31-
| **自由再分发** | 允许任意形式的分发(包括商业销售) | 禁止转售的软件 |
32-
| **源代码公开** | 必须提供源代码,且禁止混淆或刻意设置编译障碍 | 只提供二进制文件的软件 |
33-
| **允许衍生作品** | 允许修改源代码并发布修改后的版本(可附加合理限制) | 禁止二次开发的许可证 |
34-
| **无歧视性限制** | 不得针对特定人群/领域/技术进行限制(如"不得用于军事用途"条款无效) | 限制用户职业的软件协议 |
35-
36-
---
37-
从课堂导入我们不难发现,从计算机的诞生,到如今的互联网时代,或者说以后的数字世界,
38-
开源的软件架构充斥这个万物互联的世界发方方面面,它们可能就像数字世界的大基建的一种方式,
39-
但同样在这个数字世界的大开发时代还有另外一种基建方式-闭源。
40-
41-
### 核心概念
42-
```diff
43-
+ 开源软件 = 源代码开放 + 允许自由使用/修改/分发(OSI定义)
44-
- 闭源软件 = "黑箱"操作 + 使用受限
45-
```
46-
### 互联网早期的开源与闭源格局:分层解析
47-
48-
---
49-
50-
#### 🌍 **基础设施层:开放协议主导**
51-
1. **TCP/IP协议栈**(1970s)
52-
- 由DARPA资助开发,**协议标准完全开放**,允许任何机构自由实现
53-
- 关键作用:奠定互联网互联互通的基石
54-
- 典型案例:BSD UNIX对TCP/IP协议栈的开源实现(1980s)
55-
56-
2. **电子邮件系统**
57-
- SMTP/POP3协议开放,但早期实现混合开源与闭源
58-
- 闭源案例:Lotus Notes的邮件系统(1989)
59-
- 开源先驱:Sendmail(1983)成为邮件服务器事实标准
60-
61-
---
62-
63-
#### 💻 **操作系统层:闭源商业软件的霸权**
64-
| 系统 | 性质 | 关键事件 |
65-
|-------------|---------|-----------------------------|
66-
| UNIX | 初期闭源 | AT&T禁止大学传播源码(1979) |
67-
| DOS/Windows | 完全闭源 | 微软通过闭源绑定IBM PC(1981)|
68-
| VMS | 闭源 | DEC专用系统,影响早期网络架构|
69-
70-
**例外突破**:BSD UNIX(1977)从AT&T UNIX衍生出开源分支,孕育了FreeBSD/NetBSD
71-
72-
---
73-
74-
#### 🕸️ **应用层:开放与封闭的拉锯战**
75-
- **闭源主导领域**
76-
- 浏览器大战:Netscape初期闭源(1994),后开源为Mozilla(1998)
77-
- 办公软件:微软Office(1989)完全闭源统治市场
78-
79-
- **开源亮点**
80-
- Apache HTTP Server(1995):快速击败闭源的Netscape Enterprise Server
81-
- Perl语言(1987):开源脚本语言成为早期Web开发支柱
82-
83-
---
84-
85-
#### 🔄 **文化基因:开放协作的暗流**
86-
- **RFC文化**(始于1969)
87-
- 互联网工程任务组(IETF)通过**公开征求意见稿**推动技术演进
88-
- 典型案例:HTTP/1.0规范以RFC 1945形式发布(1996)
89-
90-
- **黑客伦理**的影响
91-
- MIT AI实验室等机构倡导代码共享(如ITS操作系统)
92-
- 1983年Richard Stallman发起GNU计划,标志着**现代开源运动的觉醒**
93-
94-
---
95-
96-
#### 📊 关键转折点时间轴
97-
1969 : ARPANET诞生(开放协议)
98-
1979 : AT&T收紧UNIX授权
99-
1983 : GNU宣言发布
100-
1985 : FSF成立,GPL协议诞生
101-
1991 : Linux内核首次发布
102-
1995 : Apache超越闭源服务器
103-
1998 : "开源"一词正式诞生
104-
105-
106-
#### 总结与思考
107-
深度思考:为什么基础设施更早开放?
108-
- 军事科研需求:ARPANET需要跨机构协作,开放协议是刚需
109-
- 商业价值滞后:早期互联网未形成明确盈利模式,企业缺乏闭源动力
110-
- 学术共同体传统:大学与研究机构长期奉行知识共享原则
111-
112-
**总结**:互联网的骨子里流淌着开放血液,但在商业化浪潮中,闭源软件曾一度占据应用层高地。这种基础设施开放+上层应用封闭的二元结构,正是数字时代最根本的技术政治博弈场。
113-
114-
115-
### 2.开源是一种协作与创新模式—— 从代码到文明的协作范式
116-
117-
118-
## 🛠️ 始于软件世界的协作革命:开源开发模式三阶跃迁
119-
120-
```mermaid
121-
flowchart TD
122-
A[软件类型] --> B{开发方式}
123-
B --> C[代码开放]
124-
C --> D[协作模式]
125-
D --> E[创新范式]
126-
E --> F[复杂系统协作]
127-
F --> G[人类文明工程]
128-
```
129-
## 软件层:开源开发的协作密码
130-
**传统闭源开发**
131-
- 典型特征:
132-
+ 代码仅限内部团队访问
133-
+ 严格的知识产权保护
134-
- 案例:Windows 95开发时期
135-
136-
**企业内部开源(Inner Source**
137-
+ 核心逻辑:
138-
! 对外闭源,但内部采用开源协作方式
139-
! 跨团队共享代码库,允许内部PR
140-
+ 案例:
141-
- 微软:通过"One Engineering System"实现内部开源
142-
- 沃尔玛:内部开源电商平台代码加速门店系统开发
143-
144-
**完全开源**
145-
+ 黄金标准:
146-
! 代码完全公开,接受全球贡献
147-
! 必须符合OSI定义
148-
+ 案例:Linux内核,Vue.js框架
149-
150-
### 💡 认知升级:协作模式的元规则
151-
152-
通过解剖不同协作模式的 "基因序列",理解开源不是如今世界非黑即白的选择,而是在可持续性与普惠的动态平衡中寻找最优解。
153-
154-
### 不同模式的核心差异点
155-
156-
| 维度 | 传统闭源 | Inner Source | 完全开源 |
157-
| -------- | -------- | ------------ | -------- |
158-
| 透明度 | 黑箱操作 | 组织内透明 | 全网公开 |
159-
| 创新来源 | 内部研发 | 跨部门协同 | 全球智慧 |
160-
| 进化速度 | 线性增长 | 多项式增长 | 指数级增长 |
161-
| 案例代表 | Oracle | 微软 Azure | TensorFlow |
162-
163-
## 社会层:开源思维的跨界迁移
164-
🌍 超越代码:人类协作的元模式
165-
### 现实世界中的「开源式协作」
166-
1. **古罗马引水渠建设**
167-
- 不同城邦共享水利工程技术
168-
- 改进方案刻在公共石碑上(古代版Git Commit)
169-
170-
2. **维基百科编辑**
171-
- 任何人可编辑条目(类似Pull Request)
172-
- 讨论页记录争议解决过程(人类版Code Review)
173-
174-
3. **新冠疫苗研发**
175-
- 全球实验室共享病毒基因序列(生物开源)
176-
- 开放论文预印本加速科研进程
177-
178-
# 协作要素对比表
179-
180-
| 工程 | 协作工具 | 知识管理方式 | 质量控制手段 |
181-
| ------------ | -------------------- | ----------------| ------------------ |
182-
| 金字塔建造 | 象形文字图纸 | 师徒口耳相传 | 监工现场测量 |
183-
| Linux 开发 | Git 版本控制 | 代码审查 + 文档 | CI/CD 自动化测试 |
184-
| 新冠疫苗研发 | Slack/Zoom | 预印本快速共享 | 多中心临床试验 |
185-
186-
### 人类复杂工程协作史
187-
```mermaid
188-
timeline
189-
title 协作模式进化史
190-
公元前2560年 : 金字塔建造
191-
1406年 : 紫禁城建设
192-
1969年 : 阿波罗计划
193-
1991年 : Linux内核开发(全球分布式协作)
194-
```
195-
196-
197-
# 🔍 深度对比:金字塔 vs Linux内核
198-
199-
| 维度 | 古埃及金字塔建造 | Linux内核开发 |
200-
| ------------ | ------------------------------ | ------------------------------ |
201-
| 协作规模 | 10万劳工+数百工程师 | 16000+贡献者 |
202-
| 知识管理 | 象形文字记录在莎草纸上 | Git提交记录在GitHub |
203-
| 质量控制 | 监工现场检查石块 | CI/CD自动化测试,社区反馈,人工审查 |
204-
| 传承方式 | 师徒制手把手传授 | 代码审查+开发者文档 |
205-
| 核心动力 | 法老的绝对权威 | 技术领导力+社区共识 |
206-
207-
"当建造数字巴别塔时,开源不是可选项,而是必选项"
208-
209-
# 💡 认知发散:开源的可能是一种「群体智慧协议」
210-
## 从技术到文化的四层跃迁
211-
212-
| 层级 | 核心要素 | 现实映射案例 |
213-
|--------------|--------------------------------------------------------------------------|---------------------------------------|
214-
| **工具层** | Git/Markdown/CI/CD等技术工具 | GitHub工作流、Jupyter Notebook |
215-
| **方法论层** | Pull Request机制/社区治理规则/许可证体系 | Apache投票制度、Linux维护者体系 |
216-
| **生态层** | 多主体共生的可持续系统(开发者-企业-用户的正向循环) | Kubernetes生态、RISC-V指令集联盟 |
217-
| **文明层** | 开放协作成为解决复杂系统的默认选项 | 人类基因组计划、维基百科 |
218-
219-
### 3. 开源作为一种文化理念
220-
221-
开源作为一种文化理念 —— 从数学符号到数字文明的共享基因
222-
223-
---
224-
225-
## 🌌 文化演进史:开源理念的千年血脉
226-
227-
```mermaid
228-
timeline
229-
title 人类开源文化里程碑
230-
公元前300年 : 欧几里得《几何原本》
231-
830年 : 阿拉伯数字全球传播
232-
1675年 : 莱布尼茨微积分符号
233-
1958年 : IPTO建立ARPANET开放协议雏形
234-
1998年 : 数字世界"开源"概念正式诞生
235-
2020年 : WHO开放新冠基因组序列
236-
```
237-
# 人类开源文化里程碑
238-
239-
* **公元前300年**:欧几里得《几何原本》公开证明体系
240-
欧几里得的《几何原本》是数学史上的一个里程碑,它公开了一套基于公理和定理的证明体系,为后来的数学研究奠定了基础。
241-
242-
* **830年**:阿拉伯数字通过《代数学》向全球开放传播
243-
阿拉伯数学家阿尔-花剌子模的《代数学》将阿拉伯数字引入了欧洲,极大地推动了全球数学和科学的发展。
244-
245-
* **1675年**:莱布尼茨发布微积分符号系统(开源数学语言)
246-
莱布尼茨发布的微积分符号系统,为数学分析和科学计算提供了一种通用的语言,促进了现代科学的进步。
247-
248-
* **1958年**:IPTO建立ARPANET开放协议雏形
249-
美国国防部高级研究计划局(IPTO)的联合研究项目建立了ARPANET,这是现代互联网的前身,开放的协议设计为网络的广泛传播和应用奠定了基础。
250-
251-
* **1998年**:“开源”概念正式诞生
252-
数字世界"开源"概念在1998年正式诞生,标志着软件开发模式的一次重大变革,促进了全球软件开发的合作和创新。
253-
254-
* **2020年**:WHO开放新冠基因组序列
255-
世界卫生组织(WHO)开放新冠基因组序列,加速了全球科学家对病毒的研究,推动了疫苗和治疗方法的快速开发。
256-
257-
## 🧮 数学:人类最早的开源实践
258-
### 数学的「开源特性」解剖
259-
+ 符号系统开源:阿拉伯数字、希腊字母全球通用
260-
+ 知识积累开放:定理证明可复现、可验证、可改进
261-
+ 协作网络去中心化:从亚历山大图书馆到arXiv预印本平台
262-
263-
264-
# 历史对照实验:闭源 vs 开源数学
265-
266-
| 案例 | 协作方式 | 成果影响 |
267-
| -------- | -------- | ------------------------ |
268-
| 牛顿微积分 | 闭源多年 | 引发与莱布尼茨的优先权之争 |
269-
| 布尔代数 | 完全开源发布 | 催生整个计算机科学领域 |
270-
271-
## 🌐 开源文化DNA:从数学到数字时代
272-
273-
**共享符号系统**
274-
- 数学:∑积分符号 → 编程:{}代码块语法
275-
- 案例:LaTeX数学排版系统开源标准
276-
277-
---
278-
279-
## 🧪 互动实验:数学论文 vs 开源项目
280-
281-
### 对照分析表
282-
| 维度 | 数学论文系统 | 现有开源项目系统 |
283-
|--------------|--------------------------|-------------------------|
284-
| **最小协作单元** | 定理证明 | Pull Request |
285-
| **版本管理** | 多版本手稿传递 | Git分支管理 |
286-
| **质量检验** | 同行评审 | Code Review |
287-
| **知识传承** | 学术谱系 | Contributor图谱 |
288-
| **争议解决** | 学术辩论 | Issue讨论 |
289-
290-
---
291-
292-
## 🔮 文化投射:开源理念的现代显化
293-
294-
### 跨领域开源范式
295-
| 领域 | 开源实践 | 数学渊源 |
296-
|--------------|--------------------------|-------------------------|
297-
| **区块链** | 以太坊智能合约开源 | 图灵可计算理论开放验证 |
298-
| **生物技术** | CRISPR基因编辑协议共享 | DNA双螺旋结构开放研究 |
299-
| **航天** | SpaceX公开火箭设计蓝图 | 开普勒行星定律开源传播 |
300-
301-
### 开源文化主流的特性
302-
1. **可溯源性**:所有创新需标注知识谱系(如数学引用体系)
303-
2. **可验证性**:过程数据完全开放(如Git历史记录)
304-
3. **可扩展性**:允许衍生创造(如数学猜想迭代)
305-
306-
---
307-
308-
## 💡 认知思考:我们是否终将开源
309-
310-
> "当罗马工匠将混凝土配方带入坟墓,
311-
> 当大马士革钢工艺湮灭于战火,
312-
> 人类文明的基因链就会出现断裂——
313-
> 直到《几何原本》被译成阿拉伯文,
314-
> 直到Linux内核向全球开发者敞开,
315-
> 我们才真正学会用开放对抗时间。"
316-
317-
**通过混凝土的千年轮回,理解开源不是技术选择,而是文明存续的生存策略。**
318-
**从泥板上的楔形数字到GitHub的星标仓库,人类始终在践行同一个真理:共享使知识永生。**

0 commit comments

Comments
 (0)