Kernel 0.0.1 Walkthrough.

Downloading Kernel 0.01 and exploding the archive, you're faced with a directory "linux" containing, in subdirectories, some 5900 lines of (more or less) ANSI C, around 2500 lines of C headers (#include files) and around 1450 lines of i386 assembler.

The linux 0.01 kernel source is at http://www.kernel.org/pub/linux/kernel/Historic/

The code directories are as follows.  Click on the Details column for more information.

||||Name||Purpose||Details||
||||boot||Kernel bootstrap code||BootDetails||
||||fs||File system||FsDetails||
||||include||Header files||HeaderDetails||
||||init||init process-the first process executed by a UNIX system||InitDetails||
||||kernel||System calls||KernelDetails||
||||lib||Library code||LibDetails||
||||mm||Memory management||MmDetails||
||||tools||Program that splices three images together into a kernel image that can be booted from PC BIOS startup ||ToolsDetails||

The header files are not the standard header files, because when you're working on a kernel you don't have the luxury of the usual C functions--you have to write your own versions.

The kernel directory contains most of the system functions, but some of them (like sys_fcntl()) are in the file system directory.