普通人能读完 Linux 的源码么 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
weishao666
V2EX    问与答

普通人能读完 Linux 的源码么

  •  2
     
  • &bsp; weishao666 2022-09-02 14:24:00 +08:00 4045 次点击
    这是一个创建于 1136 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    退一万步,即便你现在基于当前的 commit 把核心代码给读完了,如果没有持续跟进,你会发现过不了半年,有些东西就完全陌生了
    signalyc
        17
    signalyc  
       2022-09-02 17:56:31 +08:00
    0.01 版,Dr 赵写了一本书
    swsh007
        18
    swsh007  
       2022-09-02 18:53:56 +08:00 via Android
    国内出版的有 0.12 版的解析
    作者最早是发布的电子版
    当年看到的第一个介绍 linux 的书
    好像是松岗出的,内核是 0.69
    justanetizen
        19
    justanetizen  
       2022-09-02 18:56:46 +08:00   2
    第一遍,跟着书读,读对应版本的内核
    第二遍,跟着事读,读对应子系统的源码
    第三遍,跟着心读,读自己觉得掌握了的源码
    aneureka
        20
    aneureka  
       2022-09-02 19:36:57 +08:00 via iPhone   1
    看 xv6
    glouhao
        21
    glouhao  
       2022-09-02 19:43:30 +08:00 via Android
    我用字母的方式读完还是单词的方式读完
        22
    levelworm  
       2022-09-02 20:36:22 +08:00
    @libook 这种才是有意思的活
    hankai17
        23
    hankai17  
       2022-09-02 20:40:54 +08:00
    只看最初的几个版本就可以了
    secondwtq
        24
    secondwtq  
       2022-09-02 21:15:12 +08:00
    自己读起来会比较麻烦,你可以写个程序帮你读。然后找个云租个几十核服务器跑一跑去睡觉,做个梦你就是精通 Linux 源码的人了
    leimao
        25
    leimao  
       2022-09-03 08:42:51 +08:00
    量子阅读,读完只需要三秒。然而并不无敌。
    FrankHB
        26
    FrankHB  
       2022-09-03 12:38:55 +08:00
    @ipwx 只是读的最多的,几乎所有就不太可能。

    也不要指望什么 Linus 定律。
    随便举个例子:fs/cifs/trace.h 这种瞎定义 TRACE_INCLUDE_PATH 的合了也就是合了,并没几个人会看清楚。
    这 bug 还不就只是这一个地方:android.googlesource.com/kernel/msm/+/3f74f6ec717e320a8fe1d108d1e0812e352b4ee8%5E!
    weishao666
        27
    weishao666  
    OP
       2022-09-04 12:19:34 +08:00
    @secondwtq 这个项目可以,我去请王多鱼投
    weishao666
        28
    weishao666  
    OP
       2022-09-04 12:21:23 +08:00
    @Nitroethane 就是想知道这个预估要多久
    zhdi
        29
    zhdi  
       2022-09-04 17:26:10 +08:00 via iPhone
    都是驱动代码,核心代码没那么多
    sdfh8412
        30
    sdfh8412  
       2022-09-05 09:51:45 +08:00
    linus 说过世界上没人全看完
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     854 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 20:21 PVG 04:21 LAX 13:21 JFK 16:21
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86