查看原文
其他

仅 8670 行代码,Linux 内核第一版 (v0.01) 开源代码解读

Linux爱好者 2024-03-09

转自:OSC开源社区(ID:oschina2013)

《Exploring the internals of Linux v0.01》是一篇解读 Linux 内核第一版开源代码的文章。此文今天在 Reddit 和 Hacker News 都冲上了热门。
原文:https://seiya.me/blog/reading-linux-v0.01
文章介绍道,Linux 内核首个开源版本 (v0.01) 的体积非常小,仅包含 10,239 行代码。如果除去注释和空行,只剩下 8,670 行。正因它足够小,所以方便理解,是了解类 UNIX 操作系统内核内部结构的良好起点。
部分要点 & 有趣的冷知识:
  • v0.01 总共包含 66 个 system call,如下:

    access acct alarm break brk chdir chmod
    chown chroot close creat dup dup2 execve
    exit fcntl fork fstat ftime getegid geteuid
    getgid getpgrp setsid getpid getppid
    getuid gtty ioctl kill link lock lseek
    mkdir mknod mount mpx nice open pause
    phys pipe prof ptrace read rename rmdir
    setgid setpgid setuid setup signal stat
    stime stty sync time times ulimit umask
    umount uname unlink ustat utime waitpid write
  • 针对 i386 进行了深度硬编码

  • Linux 内核最初的名字为 "FREAX"

    # Makefile for the FREAX-kernel. 
  • 5 行代码实现 Kernel panic
    volatile void panic(const char * s)
    {
    printk("Kernel panic: %s\n\r",s);
    for(;;);
    }
  • Linus 当时没有 8MB RAM 的机器

    * For those with more memory than 8 Mb - tough luck. I've
    * not got it, why should you :-) The source is here. Change
    * it. (Seriously - it shouldn't be too difficult. ...

    Linux v0.01 源代码下载:https://cdn.kernel.org/pub/linux/kernel/Historic/linux-0.01.tar.gz


    推荐阅读  点击标题可跳转

    1、Vim 之父去世后,Vim 项目谁来接管?

    2、Linus 亲自 review 代码,希望平息关于 Bcachefs 文件系统的 “内斗”

    3、我说 MySQL 每张表最好不超过 2000 万数据,面试官让我回去等通知?

    继续滑动看下一个

    仅 8670 行代码,Linux 内核第一版 (v0.01) 开源代码解读

    向上滑动看下一个

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存