raymanr
V2EX  ›  问与答

有没有看得懂 Linux 源码的大佬评价下, Linux 源码是屎山吗

  •  
  •   raymanr · Oct 28, 2020 · 4698 views
    This topic created in 2047 days ago, the information mentioned may be changed or developed.
    Supplement 1  ·  Oct 29, 2020
    楼下几个是不是理解能力有问题?

    我用的疑问, 是屎山吗?

    我只是对于一个我看不懂的项目, 持续演化了几十年现在的状态表示好奇

    你们是怎么理解成我看不懂 linux 源码 -> 所以我觉得 linux 是屎山的?
    21 replies    2020-12-02 10:42:36 +08:00
    BrettD
        1
    BrettD  
       Oct 28, 2020 via iPad
    写的比鸿蒙的代码干净
    ManjusakaL
        2
    ManjusakaL  
       Oct 28, 2020
    有屎山,有非常优雅的设计 23333
    fiveelementgid
        3
    fiveelementgid  
       Oct 28, 2020 via Android
    你应该去问 Linus,还有,别小看了 rhel 这种大公司的功效,真想看左转 kernel.org
    raymanr
        4
    raymanr  
    OP
       Oct 28, 2020
    @fiveelementgid 能力有限看不懂

    只是突然想起有人吐槽其实 windows, oracle 的代码也是各种屎山, 大公司不能小看, 也不必高看
    crclz
        5
    crclz  
       Oct 28, 2020
    看懂 linux 源码你要是上过大学并且学过《操作系统》这门课程就会容易得多
    codyfeng
        6
    codyfeng  
       Oct 28, 2020
    任何一个项目时间长了必然都是。
    swulling
        7
    swulling  
       Oct 28, 2020 via iPhone
    @raymanr 这些传统 IT 公司对代码的要求是国内互联网公司没法想象的。

    就算是微软近几年开源的 VSCode,这个代码总能看懂吧,谁能说它是屎山?
    felixcode
        8
    felixcode  
    PRO
       Oct 28, 2020
    等看懂再试着做评价也不迟,别人说是屎山,你跟着说是屎山,也不能说明你水平高啊。
    QingXuJiaZhi
        9
    QingXuJiaZhi  
       Oct 28, 2020
    很简单,是不是屎山是由看代码的人决定的,而不是一个客观标准。

    如果一个人水平很高,他能发现很多不优雅的地方,甚至能找出很多 bug 来也不奇怪,他可以说这代码是屎山,因为他有资格。

    换成我去看同样的代码,我因为水平太低都看不明白,因此我不能说他是屎山。
    fixend
        10
    fixend  
       Oct 28, 2020
    其实已经很不错了,一般的公司还真写不出这品质(或者说是大多数公司?),
    但有些 BSD 派系的人觉得 linux 的代码写得屎,比如代码里面的注释有粗口。
    kidlj
        11
    kidlj  
       Oct 28, 2020 via iPhone   ❤️ 1
    /* You’re not expected to understand this. */
    fiveelementgid
        12
    fiveelementgid  
       Oct 28, 2020 via Android
    @raymanr windows 代码没开源,.net core 之类的倒是开源。但是我能从 win10 各种 bug 想象到应该 windows 是屎山
    nutting
        13
    nutting  
       Oct 28, 2020
    linux 的底层必然会有很多晦涩的、技巧性的代码
    jim9606
        14
    jim9606  
       Oct 28, 2020
    你要说有没有多余代码,那肯定是有的,没人用的架构、没有测试过的驱动。
    不过 Linux 会定期清掉这些东西,例如 x86-32 模式,power4 架构,今天看到讨论移除 WiMAX 支持。
    有些东西不优雅好像也没办法,amdgpu 有好几个几万行的寄存器定义代码,都是机器生成的。
    love
        15
    love  
       Oct 28, 2020
    你打开任何一个热门开源代码库的文件,都会发现至少格式工整,一眼看上去也没有各种复制粘贴,变量命名看上去也没问题,和国内小公司的屎山不是一个东西
    icyalala
        16
    icyalala  
       Oct 28, 2020 via iPhone
    几十年良好维护和迭代、仍然稳定运行在数以亿计设备上的代码,怎么可能称为屎山…
    danhahaha
        17
    danhahaha  
       Oct 28, 2020   ❤️ 1
    如果这算是屎山,那我开始怀疑大部分程序员是不是造粪机了
    12101111
        18
    12101111  
       Oct 29, 2020
    1. 有的模块的维护者就是硬件公司,自己 review 自己, 比如 amdgpu, 就堆了 10%的代码
    2. 一些老的模块年久失修
    3. C 语言固有的表达能力缺失, 用 rust 会好很多
    nowgoo
        19
    nowgoo  
       Oct 29, 2020
    至少提交一个 PR 、被接受,再来评价代码屎山也不迟……
    TonyG
        20
    TonyG  
       Oct 29, 2020
    看不懂 !== 屎山,反过来说屎山,可能反倒看的很明白。
    Cbdy
        21
    Cbdy  
       Dec 2, 2020
    Linux 代码不是屎山
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2751 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 11:38 · PVG 19:38 · LAX 04:38 · JFK 07:38
    ♥ Do have faith in what you're doing.