The Linux kernel, currently at version v6.5-rc5, is a large open source software with 36M lines of code. However, the first version of Linux, v0.01, was much smaller with only 8,670 lines of code. This version is a good starting point to learn about the internals of UNIX-like operating system kernels. The system calls in v0.01 include functions for file and directory operations, permissions, and inter-process communication. It was deeply hardcoded for Intel 386 architecture and was not portable. The kernel supported devices like the real-time clock, hard disk, and keyboard. The file system supported was the MINIX file system. The scheduler in v0.01 prioritized tasks based on counter values. The code for the scheduler was considered to be good and was not expected to be changed, but Linux has since introduced new scheduling improvements and algorithms. The kernel panic function in v0.01 displayed an error message and hung the system. The main portion of kernel initialization included a fork(2) call in kernel space. The kernel could be compiled using older GCC versions with the -mstring-insns feature. Overall, reading the source code of Linux v0.01 is an enjoyable
https://seiya.me/blog/reading-linux-v0.01