• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wangyzj
V2EX  ›  程序员

不懂就问!请问 linus 当年写 kernel 的时候都具备了什么知识?用了什么工具?使用了什么轮子?

  •  
  •   wangyzj · Apr 22, 2020 · 5081 views
    This topic created in 2386 days ago, the information mentioned may be changed or developed.

    我寻思了解了解这些对自己研究 kernel 也很有帮助

    28 replies  •  2020-04-23 14:58:51 +08:00
    billtsui
    billtsui
    Apr 22, 2020
    1
    大学四年,只要老师不水自己不水,写个雏形操作系统还是可以的。MIT6.828 这个课学完,就能写一个实验性质的操作系统 xv6 。
    hst001
    hst001
    Apr 22, 2020
    2
    我寻思着 Linus 大神也是边写边学边改进,个人目标万事要先开头才能走下去
    wanguorui123
    wanguorui123
    Apr 22, 2020 via iPhone
    3
    推荐《 30 天自制操作系统》
    wanguorui123
    wanguorui123
    Apr 22, 2020 via iPhone
    4
    推荐《 现代操作系统》
    wanguorui123
    wanguorui123
    Apr 22, 2020 via iPhone
    5
    推荐《深入理解 UNIX 系统内核》
    crella
    crella
    Apr 22, 2020 via Android
    6
    linux 从 minix 得到启发,得到 GNU 团队的帮助。

    那个时候 GNU 黑客文化很火啊,因为没有一个 Free 的系统作基础,gnu 开发的工具也算是不 free 的。

    谈 linux 不能不谈 gnu 啊
    wangyzj
    wangyzj
    OP
    Apr 22, 2020
    7
    @billtsui 先不提水不水
    大学 == 打游戏 是真的
    mooyo
    mooyo
    Apr 22, 2020
    8
    可以看一下 xv6
    wangyzj
    wangyzj
    OP
    Apr 22, 2020
    9
    @wanguorui123 《 30 天自制操作系统》这个有点意思,可以先看看,谢谢
    abcbuzhiming
    abcbuzhiming
    Apr 22, 2020
    10
    B 站有教程,告诉你怎么从 0 写一个操作系统。其实写一个玩具并不难,难的是写一个能工业化使用的产品。
    其实 linux 能走到今天,不光是 linus 一个人的功劳,linux 背后站着一大票巨人,IBM,红帽,intel,没有这些组织贡献代码 Linux 也走不到今天
    wr410
    wr410
    Apr 22, 2020
    11
    造系统更像单片机编程,直接调用硬件接口和 CPU 指令,而不是在操作系统上去调各种 API……
    hantsy
    hantsy
    Apr 22, 2020❤️3
    12
    最初的 Linux 是改造 Minix 系统(一个学术派教授的作品,作为教学用的 Unix 实现,国外这种教学方式不知道国内有哪个大学用???反正我一个野生的计算机自学者,当时学完操作系统这门课除了一些书上的概念啥也不知道),Linus 为了以示差别,命名为 Linux (加入自己名子的成分)。

    最初代码只有一万来行吧。现在好像有书去讲解 Linux 0.12 的最初的代码,和 Minix 代码一样,是不可多得的操作系统实战系统。

    @billtsui 如果中国有大学教学都达到这种水平,中国实现自主操作系统早就不成问题了,也不至于这么多不要脸的人到处剽窃,还好意思对外说自主研发。
    libook
    libook
    Apr 22, 2020
    13
    对 Linus 和他的 Linux 感兴趣可以看 Linus 的自传《 Just for fun 》。
    早先 Linus 的学校里是使用 Minix 作为教学用的操作系统的,Linus 学习了之后感觉 Minix 不好用,而且不支持新的硬件特性,于是就想自己修改 Minix,但后来发现这是个大坑,不光有实现上的问题还有授权的问题,还不如从头写一个,于是就写了 Linux 。

    Linux v0.01 据说才 1 万行,你可以去网上找源码看看。后续版本都是社区成千上万人的贡献逐步完善的,现在 Kernel 源代码能达到几百兆了。

    写个操作系统可以很简单,也可以很复杂,取决于你想实现多少功能,只实现最小可用的文件系统和进程管理不需要太多的代码。
    hantsy
    hantsy
    Apr 22, 2020
    14
    @abcbuzhiming Redhat 的商业化后,有了专职 Contribute Linux 的人,可以说是 Linux 发展的基本保障吧。IBM,Oracle 这些商业公司站队,同时也改进很多内核方面的东西,为 Linux 进入商用打下了基础,以保证它不再是一些 Geek 的玩具。
    hantsy
    hantsy
    Apr 22, 2020
    15
    @libook 源代码中驱动程序太多了。其实真正的内核应该不是太大,我是没能力研究这个了。

    之前开始用 Linux 的时侯,2.4 的内核,自己编译过威盛的网卡驱动, 选择性的编译下来,整个内核加上自己所需要的驱动才 2M 。不过现在 Linux 发行版本,好像打包驱动也都分开了。
    hantsy
    hantsy
    Apr 22, 2020
    16
    @crella GNU 有自己的内核系统,只是一直强调微内核,计划得的太完美,饼画得太大,实现上难度可想而知,一直也没流行起来。Debian 好像以前还有 GNU 内核的打包。
    libook
    libook
    Apr 22, 2020
    17
    @hantsy 现在版本源码很庞大,现在应该没有人能对所有源码完全了解,我有朋友在某大厂搞自用的 Kernel 定制,基本上是一周写一两行代码,其余大量时间都是在读现有的代码,看怎么改比较合适。
    hugedata
    hugedata
    Apr 22, 2020
    18
    现在的 linux 内核,看源码找宏定义都很麻烦。
    billtsui
    billtsui
    Apr 22, 2020
    19
    @wangyzj 我大学也是打游戏过来的,浪费掉的时间早晚要补回来对不对。工作以后 MIT6.828 我看了的,蛮好的课程,xv6 入手操作系统真的挺好的。
    billtsui
    billtsui
    Apr 22, 2020
    20
    @hantsy 老师不教可以自己学啊,现在公开课很方便,国外教授上课讲的真是特别好,稍微认真点听就能懂,完全不是照本宣科。
    noogler67
    noogler67
    Apr 22, 2020
    21
    intel 80386 programmer's guide
    linus 参考了 minix 操作系统
    oldlinux.org
    对操作系统感兴趣可以看看学堂在线-操作系统,那个可以劝退论坛大多人。
    有一个 eudyptula challenge 是作为 linux 内核 contributor 指导的。
    wangyzj
    wangyzj
    OP
    Apr 22, 2020
    22
    @billtsui #19 可不咋的
    工作这么多年,想研究一下以前劝退的东西
    还是有难度
    能麻烦发一个 MIT6.828 地址吗?我找了一下总感觉不像
    airqj
    airqj
    Apr 22, 2020
    23
    @hantsy 写个操作系统并不难,很多人都能写,更别提那些大公司了
    难的是生态,没有生态这个操作系统有什么用呢
    necomancer
    necomancer
    Apr 22, 2020
    24
    #!original/comp.os.minix/dlNtH7RRrGA/SwRavCzVE7gJ

    Fellow 这个帖子 google group
    wangyzj
    wangyzj
    OP
    Apr 22, 2020
    26
    @billtsui 谢谢
    hantsy
    hantsy
    Apr 23, 2020
    27
    @billtsui 网易有很多国外的公开课。。。
    billtsui
    billtsui
    Apr 23, 2020
    28
    @hantsy 是有很多啊,怎么了…………
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2883 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 13:17 · PVG 21:17 · LAX 05:17 · JFK 08:17
    ♥ Do have faith in what you're doing.