V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
raymanr
V2EX  ›  问与答

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

  •  
  •   raymanr · 2020-10-28 20:18:16 +08:00 · 3962 次点击
    这是一个创建于 1247 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言  ·  2020-10-29 14:54:00 +08:00
    楼下几个是不是理解能力有问题?

    我用的疑问, 是屎山吗?

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

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

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

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

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

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