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

2020-10-28 20:18:16 +08:00
 raymanr
3983 次点击
所在节点    问与答
21 条回复
BrettD
2020-10-28 20:26:30 +08:00
写的比鸿蒙的代码干净
ManjusakaL
2020-10-28 20:27:30 +08:00
有屎山,有非常优雅的设计 23333
fiveelementgid
2020-10-28 20:28:21 +08:00
你应该去问 Linus,还有,别小看了 rhel 这种大公司的功效,真想看左转 kernel.org
raymanr
2020-10-28 20:31:05 +08:00
@fiveelementgid 能力有限看不懂

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

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

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

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

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

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

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

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

© 2021 V2EX