第二百零九章:社区之道
飞升期涉及内核源码:
一
林小源离开宫殿群,来到一片广阔的广场。广场上人头攒动,来自天南地北的修士汇聚于此。有人在讨论网络协议的优化,有人在争论文件系统的设计,有人在分享自己的补丁,有人在指导新人写第一行内核代码。
广场中央竖立着一面巨大的铜镜,铜镜上刻着内核社区的行为准则。林小源走近细看,镜面上的文字缓缓浮现:尊重他人、专业交流、建设性批评、包容多样性。
一位满头银发的长者从人群中走来,他的步伐从容,目光慈祥。他的长袍上没有华丽的装饰,只有一行朴素的文字——"Signed-off-by: Linus Torvalds"。
"你走到了这里,"长者开口,声音平和,"说明你已经学会了技术。但技术只是入场券。在内核社区里,决定你能走多远的,是你如何与人相处。"
林小源环顾四周,广场上的修士们来自不同的国度、不同的公司、不同的背景,但他们都在为同一个目标努力——让 Linux 内核变得更好。
/*
* 内核社区:
*
* 规模:
* 数千名开发者
* 数百家公司
* 全球协作
*
* 行为准则:
* 尊重他人
* 专业交流
* 建设性批评
* 包容多样性
*
* 社区文化:
* 技术优先
* 代码说话
* 直接沟通
* 幽默感
*
* 贡献方式:
* 1. 提交补丁
* 2. 审查代码
* 3. 报告 bug
* 4. 编写文档
* 5. 帮助新人
*
* 著名人物:
* Linus Torvalds — 创始人
* Greg Kroah-Hartman — 稳定版维护者
* David S. Miller — 网络维护者
* Theodore Ts'o — ext4 维护者
*
* 会议:
* Linux Plumbers Conference
* Linux Foundation Summit
* Kernel Summit
*/
/* 模拟社区贡献 */
struct contribution {
char type[32];
char description[128];
char contributor[64];
};
struct contribution contributions[] = {
{"补丁", "修复 ext4 内存泄漏", "林小源"},
{"审查", "审查网络驱动补丁", "张三"},
{"文档", "编写 API 文档", "李四"},
{"测试", "运行回归测试", "王五"},
{"帮助", "回答新人问题", "赵六"},
};
printf("=== 社区之道 — 内核的文化 ===\n\n");
printf("内核社区是全球最大的开源社区之一:\n\n");
printf("--- 社区贡献 ---\n");
int n = sizeof(contributions) / sizeof(contributions[0]);
for (int i = 0; i < n; i++) {
printf("[%s] %s — %s\n",
contributions[i].type,
contributions[i].description,
contributions[i].contributor);
}
printf("\n--- 行为准则 ---\n");
printf("尊重他人:\n");
printf(" 不人身攻击\n");
printf(" 尊重不同观点\n\n");
printf("专业交流:\n");
printf(" 技术讨论\n");
printf(" 建设性批评\n\n");
printf("包容多样性:\n");
printf(" 欢迎所有人\n");
printf(" 不歧视\n\n");
printf("--- 社区文化 ---\n");
printf("技术优先:\n");
printf(" 代码说话\n");
printf(" 技术讨论\n\n");
printf("直接沟通:\n");
printf(" 直接表达观点\n");
printf(" 不绕弯子\n\n");
printf("幽默感:\n");
printf(" Linus 的幽默\n");
printf(" 轻松的氛围\n\n");
printf("--- 贡献方式 ---\n");
printf("1. 提交补丁:\n");
printf(" 修复 bug\n");
printf(" 添加功能\n\n");
printf("2. 审查代码:\n");
printf(" 帮助审查他人补丁\n\n");
printf("3. 报告 bug:\n");
printf(" 发现问题\n\n");
printf("4. 编写文档:\n");
printf(" 改善文档\n\n");
printf("5. 帮助新人:\n");
printf(" 回答问题\n\n");
printf("--- 著名人物 ---\n");
printf("Linus Torvalds:\n");
printf(" 创始人\n");
printf(" 最终决策者\n\n");
printf("Greg Kroah-Hartman:\n");
printf(" 稳定版维护者\n\n");
printf("David S. Miller:\n");
printf(" 网络维护者\n\n");
printf("--- 会议 ---\n");
printf("Linux Plumbers Conference\n");
printf("Linux Foundation Summit\n");
printf("Kernel Summit\n");#include <stdio.h>
#include <string.h>
/*
* 内核社区:
*
* 规模:
* 数千名开发者
* 数百家公司
* 全球协作
*
* 行为准则:
* 尊重他人
* 专业交流
* 建设性批评
* 包容多样性
*
* 社区文化:
* 技术优先
* 代码说话
* 直接沟通
* 幽默感
*
* 贡献方式:
* 1. 提交补丁
* 2. 审查代码
* 3. 报告 bug
* 4. 编写文档
* 5. 帮助新人
*
* 著名人物:
* Linus Torvalds — 创始人
* Greg Kroah-Hartman — 稳定版维护者
* David S. Miller — 网络维护者
* Theodore Ts'o — ext4 维护者
*
* 会议:
* Linux Plumbers Conference
* Linux Foundation Summit
* Kernel Summit
*/
/* 模拟社区贡献 */
struct contribution {
char type[32];
char description[128];
char contributor[64];
};
struct contribution contributions[] = {
{"补丁", "修复 ext4 内存泄漏", "林小源"},
{"审查", "审查网络驱动补丁", "张三"},
{"文档", "编写 API 文档", "李四"},
{"测试", "运行回归测试", "王五"},
{"帮助", "回答新人问题", "赵六"},
};
int main() {
printf("=== 社区之道 — 内核的文化 ===\n\n");
printf("内核社区是全球最大的开源社区之一:\n\n");
printf("--- 社区贡献 ---\n");
int n = sizeof(contributions) / sizeof(contributions[0]);
for (int i = 0; i < n; i++) {
printf("[%s] %s — %s\n",
contributions[i].type,
contributions[i].description,
contributions[i].contributor);
}
printf("\n--- 行为准则 ---\n");
printf("尊重他人:\n");
printf(" 不人身攻击\n");
printf(" 尊重不同观点\n\n");
printf("专业交流:\n");
printf(" 技术讨论\n");
printf(" 建设性批评\n\n");
printf("包容多样性:\n");
printf(" 欢迎所有人\n");
printf(" 不歧视\n\n");
printf("--- 社区文化 ---\n");
printf("技术优先:\n");
printf(" 代码说话\n");
printf(" 技术讨论\n\n");
printf("直接沟通:\n");
printf(" 直接表达观点\n");
printf(" 不绕弯子\n\n");
printf("幽默感:\n");
printf(" Linus 的幽默\n");
printf(" 轻松的氛围\n\n");
printf("--- 贡献方式 ---\n");
printf("1. 提交补丁:\n");
printf(" 修复 bug\n");
printf(" 添加功能\n\n");
printf("2. 审查代码:\n");
printf(" 帮助审查他人补丁\n\n");
printf("3. 报告 bug:\n");
printf(" 发现问题\n\n");
printf("4. 编写文档:\n");
printf(" 改善文档\n\n");
printf("5. 帮助新人:\n");
printf(" 回答问题\n\n");
printf("--- 著名人物 ---\n");
printf("Linus Torvalds:\n");
printf(" 创始人\n");
printf(" 最终决策者\n\n");
printf("Greg Kroah-Hartman:\n");
printf(" 稳定版维护者\n\n");
printf("David S. Miller:\n");
printf(" 网络维护者\n\n");
printf("--- 会议 ---\n");
printf("Linux Plumbers Conference\n");
printf("Linux Foundation Summit\n");
printf("Kernel Summit\n");
return 0;
}二
长者带林小源穿过人群,来到广场的一角。那里有两位修士正在激烈地争论——一位认为应该用 RCU 保护这段数据,另一位认为应该用读写锁。他们的声音越来越大,但始终围绕着技术本身。
"看到了吗?"长者微笑着,"他们争论得很激烈,但没有一句人身攻击。他们在讨论技术,不是在攻击对方。这就是内核社区的文化——技术优先,代码说话。"
长者从地上捡起一块石头,石头上刻着一行字:个人恩怨不应该影响技术决策。
"在内核社区里,你的背景、你的公司、你的资历都不重要。重要的是你的代码。代码好就合并,代码不好就不合并。Linus 曾经否决过自己的改动,因为它不够好。这就是技术优先。"
林小源看着那两位争论的修士,看到他们在争论结束后互相点头致意,然后各自回到自己的座位继续写代码。争论是为了找到最好的方案,不是为了分出胜负。
三
长者带林小源走到广场的另一侧,那里有一群新人正围坐在一位老修士身边。老修士耐心地解答着每一个问题——怎样配置内核、怎样运行测试、怎样提交第一个补丁。
"那位老修士,"长者低声说,"是社区里最受尊敬的人之一。不是因为他的代码写得最好,而是因为他花了无数时间帮助新人。"
林小源看着那位老修士,看到他的回答温和而详细,从不因为问题简单而露出不耐烦的表情。每一个新人的问题,他都认真对待。
"社区的新鲜血液来自新人,"长者转身面对林小源,"如果没有人帮助他们,他们就会离开。回答问题、写教程、指导新人——这些看起来不起眼的工作,是社区持续发展的根基。"
长者的目光中带着期许:"你学到了内核的很多知识。现在,是时候把这些知识传递下去了。帮助下一个林小源,就像当年有人帮助你一样。"
林小源望着那群新人,心中涌起一股温暖。内核社区不只是代码的集合,更是人的集合。每一个人的贡献,无论大小,都在让这个社区变得更好。
道藏笔记
内核启示
内核社区是全球最大的开源社区之一。
行为准则:
- 尊重他人
- 专业交流
- 建设性批评
- 包容多样性
社区文化:
- 技术优先
- 代码说话
- 直接沟通
贡献方式:
- 提交补丁
- 审查代码
- 报告 bug
- 编写文档
- 帮助新人
社区是家园——全球开发者协作的家园。
社区之试
社区之道中,长者强调内核社区争论应围绕技术和代码,这种文化原则叫什么?