普通人能读完 Linux 的源码么

2022-09-02 14:24:00 +08:00
 weishao666

35.1m 的代码行数,普通人能读完 linux 的源码么。读完需要多久,读完是不是就无敌了

3595 次点击
所在节点    问与答
30 条回复
hay313955795
2022-09-02 14:30:42 +08:00
读完记不住也没用啊..哈哈
LxnChan
2022-09-02 14:33:44 +08:00
光读完有啥用,读完你要是能完整的说出来整个系统的运行流程和机制还差不多,更进一步的读完了能再以自己的理解写出来一份,甚至受此启发能够研发出更高级的东西才是有用,才是无敌了
WOLFRAZOR
2022-09-02 14:37:01 +08:00
能说出流程和机制比记住有用多了。
eason1874
2022-09-02 14:37:41 +08:00
跟看顶尖论文差不多,每个字都认识,就是不知道在说什么 🤣
AoEiuV020CN
2022-09-02 14:37:58 +08:00
能清楚每一行代码的作用以及是否可以改进,就无敌了,
ipwx
2022-09-02 14:39:29 +08:00
有没有一种可能,普通人不会把辞海记下来,而是在需要的时候根据目录去翻。
libook
2022-09-02 14:40:03 +08:00
假设美秒读 5 行,35.1m/5/3600=1950 小时,如果每周看 40 个小时,就是 48.75 周,也就是差不多一年。当然,只能走马观花地看,基本看不明白而且也记不住。

我认识一个人在阿里做内核方面的开发,有时候为了实现一个需求要看一大堆文档和源代码,一个星期只改了一行代码。
ipwx
2022-09-02 14:40:04 +08:00
p.s. 如果你问我有没有人把 Linux 几乎所有代码都读过了,那 Linus 一定是其中一位。
lakehylia
2022-09-02 14:40:40 +08:00
一般都是碰到某个问题,然后去翻源码
Jooooooooo
2022-09-02 15:35:33 +08:00
windows 系统也很庞大, 当然没有人可以全部读完.
darksword21
2022-09-02 17:00:08 +08:00
可以,转我钱教你量子速度 (
alect
2022-09-02 17:04:40 +08:00
有没有可能 linux 不是一个人写的,而是非常多的人共同协作出来的? ::doge
xinhero123
2022-09-02 17:26:59 +08:00
大部分的代码都是重复的,没必要读完,理解代码后面的核心思想和流程是最重要的。相对于通读代码,更推荐通读 Documentation+核心代码
Nitroethane
2022-09-02 17:30:58 +08:00
大部分代码应该是设备驱动,如果不涉及设备的话这部分驱动代码不用碰。但是内核的核心代码还是有很多,不过是分成几个子系统的,比如内存管理子系统、进程调度子系统、kvm 等。专注哪个领域读哪部分代码,不过得熟悉每个子系统的大致设计原理以及暴露出来的接口
daimubai
2022-09-02 17:47:07 +08:00
“读完是不是就无敌了”。那要看读的时候有没有带脑子了
nevin47
2022-09-02 17:53:57 +08:00
丢开驱动的话,然后核心 arch 以 x86 为基础

全部读完的人应该存在,但是不多。绝大多数的 Kernel 工程师会读一些和自己强相关的,少数的研究者会研究整体宏观架构,但是又不会彻底深入进去

我和我司有几个在 kernel 上有个人分支的大牛们也交流过,基本上就算是他们这种过去或者现在正在当 maintainer 的大神,也很难说自己完全走读完过内核的所有核心代码。

退一万步,即便你现在基于当前的 commit 把核心代码给读完了,如果没有持续跟进,你会发现过不了半年,有些东西就完全陌生了
signalyc
2022-09-02 17:56:31 +08:00
0.01 版,Dr 赵写了一本书
swsh007
2022-09-02 18:53:56 +08:00
国内出版的有 0.12 版的解析
作者最早是发布的电子版
当年看到的第一个介绍 linux 的书
好像是松岗出的,内核是 0.69
justanetizen
2022-09-02 18:56:46 +08:00
第一遍,跟着书读,读对应版本的内核
第二遍,跟着事读,读对应子系统的源码
第三遍,跟着心读,读自己觉得掌握了的源码
aneureka
2022-09-02 19:36:57 +08:00
看 xv6

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/877250

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX