?
探索Linux v0.01的內部結構,Linux內核經常被認為是一個龐大的開源軟件。在撰寫本文時,最新版本是v6.5-rc5,包含36M行代碼。不用說,Linux是幾十年來許多貢獻者辛勤工作的成果。
Linux 內核首個開源版本 (v0.01) 的體積非常小,僅包含 10,239 行代碼。如果除去注釋和空行,只剩下 8,670 行。正因它足夠小,所以方便理解,是了解類 UNIX 操作系統內核內部結構的良好起點
然而,Linux的第一個版本v0.01非常小。它只有10239行代碼。除去注釋和空白行,總共只有8670行。它足夠小,可以理解,并且是了解類unix操作系統內核內部的一個很好的起點
Linux 內核最初的名字為?"FREAX"
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
確實如此。Linux v0.01是為i386深度硬編碼的
extern inline char * strcpy(char * dest,const char *src)
{
__asm__("cld\n""1:\tlodsb\n\t""stosb\n\t""testb %%al,%%al\n\t""jne 1b"::"S" (src),"D" (dest):"si","di","ax");
return dest;
}
參考:
Exploring the internals of Linux v0.01 - seiya.me
Linux v0.01 源代碼下載:https://cdn.kernel.org/pub/linux/kernel/Historic/linux-0.01.tar.gz
?