Skip to content

第二百零九章:社区之道

飞升期

涉及内核源码:

林小源离开宫殿群,来到一片广阔的广场。广场上人头攒动,来自天南地北的修士汇聚于此。有人在讨论网络协议的优化,有人在争论文件系统的设计,有人在分享自己的补丁,有人在指导新人写第一行内核代码。

广场中央竖立着一面巨大的铜镜,铜镜上刻着内核社区的行为准则。林小源走近细看,镜面上的文字缓缓浮现:尊重他人、专业交流、建设性批评、包容多样性。

一位满头银发的长者从人群中走来,他的步伐从容,目光慈祥。他的长袍上没有华丽的装饰,只有一行朴素的文字——"Signed-off-by: Linus Torvalds"。

"你走到了这里,"长者开口,声音平和,"说明你已经学会了技术。但技术只是入场券。在内核社区里,决定你能走多远的,是你如何与人相处。"

林小源环顾四周,广场上的修士们来自不同的国度、不同的公司、不同的背景,但他们都在为同一个目标努力——让 Linux 内核变得更好。

c
/*
 * 内核社区:
 *
 * 规模:
 *   数千名开发者
 *   数百家公司
 *   全球协作
 *
 * 行为准则:
 *   尊重他人
 *   专业交流
 *   建设性批评
 *   包容多样性
 *
 * 社区文化:
 *   技术优先
 *   代码说话
 *   直接沟通
 *   幽默感
 *
 * 贡献方式:
 *   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");

长者带林小源穿过人群,来到广场的一角。那里有两位修士正在激烈地争论——一位认为应该用 RCU 保护这段数据,另一位认为应该用读写锁。他们的声音越来越大,但始终围绕着技术本身。

"看到了吗?"长者微笑着,"他们争论得很激烈,但没有一句人身攻击。他们在讨论技术,不是在攻击对方。这就是内核社区的文化——技术优先,代码说话。"

长者从地上捡起一块石头,石头上刻着一行字:个人恩怨不应该影响技术决策。

"在内核社区里,你的背景、你的公司、你的资历都不重要。重要的是你的代码。代码好就合并,代码不好就不合并。Linus 曾经否决过自己的改动,因为它不够好。这就是技术优先。"

林小源看着那两位争论的修士,看到他们在争论结束后互相点头致意,然后各自回到自己的座位继续写代码。争论是为了找到最好的方案,不是为了分出胜负。

长者带林小源走到广场的另一侧,那里有一群新人正围坐在一位老修士身边。老修士耐心地解答着每一个问题——怎样配置内核、怎样运行测试、怎样提交第一个补丁。

"那位老修士,"长者低声说,"是社区里最受尊敬的人之一。不是因为他的代码写得最好,而是因为他花了无数时间帮助新人。"

林小源看着那位老修士,看到他的回答温和而详细,从不因为问题简单而露出不耐烦的表情。每一个新人的问题,他都认真对待。

"社区的新鲜血液来自新人,"长者转身面对林小源,"如果没有人帮助他们,他们就会离开。回答问题、写教程、指导新人——这些看起来不起眼的工作,是社区持续发展的根基。"

长者的目光中带着期许:"你学到了内核的很多知识。现在,是时候把这些知识传递下去了。帮助下一个林小源,就像当年有人帮助你一样。"

林小源望着那群新人,心中涌起一股温暖。内核社区不只是代码的集合,更是人的集合。每一个人的贡献,无论大小,都在让这个社区变得更好。


道藏笔记

内核启示

内核社区是全球最大的开源社区之一。

行为准则:

  • 尊重他人
  • 专业交流
  • 建设性批评
  • 包容多样性

社区文化:

  • 技术优先
  • 代码说话
  • 直接沟通

贡献方式:

  • 提交补丁
  • 审查代码
  • 报告 bug
  • 编写文档
  • 帮助新人

社区是家园——全球开发者协作的家园。


破关试炼

社区之试

社区之道中,长者强调内核社区争论应围绕技术和代码,这种文化原则叫什么?

答对后才能继续滑动和进入下一章。

以修仙之名,悟内核之道