转自: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
    alarmbreak
    brk
    chdirchmod
    chownchrootclose
    creat dup dup2 execve

    exitfcntlfork
    fstat ftime getegid geteuid

    getgid
    getpgrp
    setsid getpid getppid

    getuid gtty ioctl
    killlink
    lock lseek

    mkdir
    mknod mount mpx nice
    open
    pause

    phys
    pipe
    prof ptrace
    readrenamermdir
    setgid setpgid setuid setup signal
    stat
    stime stty sync
    timetimes
    ulimit
    umask
    umount uname
    unlink
    ustat
    utimewaitpidwrite
  • 针对 i386 进行了深度硬编码
  • Linux 内核最初的名字为 "FREAX"
    # Makefile for the FREAX-kernel.
  • 5 行代码实现 Kernel panic
    volatilevoidpanic(constchar * 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
继续阅读
阅读原文