dd if=/dev/random of=/dev/blog

13. March 2009

The Linux Kernel: A trip down memory lane.

Filed under: Linux — admin @ 15:25

Truth be told. I started using GNU/Linux as early as 2002 with Red Hat 7.3. I was coming off of FreeBSD at the time, so I had some experience with a UNIX-like operating system. So when I say “a trip down memory lane”, from experience I can only go as far back sd the Linux kernel 2.4.18-3, which was the kernel in the release candidate of Red Hat 7.3.

And just because that was the earliest I had Linux experience does not mean I cannot go to kernel.org and download and view older versions of the kernel. What spawned the idea for this post was an article I read earlier about Linux kernel version 1.0 being 15 years old, today! That is when I went to kernel.org and downloaded the archived versions of 0.11 and 1.0.

Anybody, please correct me if I am incorrect in any of this, but while I was browsing through the kernel source I had noticed some interesting things. First of all, total line count. The kernel has grown significantly over the years. For example, version 0.11 pulled up 13,839 total lines of code while the first official and stable release, 1.0 pulled up a total of 176,250 lines of code. As of this writing, the current stable kernel (2.6.28.7) has a total of 10,117,178 lines of code. At the end of 2008, I recall reading this article marking the count of 10 million lines. The counting of total lines was accomplished by using the following command line sequence of commands from the kernel’s base directory: for file in `find . -type f`; do cat $file; done | wc -l

Amazing, isn’t it? And by amazing, I mean the fact that a global community built this thing. Other points of interest were, when I was browsing through 0.11, the only supported file system seemed to be the Minix file system (which makes sense, primarily because of Linus Torvalds writing Linux as a Minix replacement as early as 1991). In the 1.0 release, file system support was extended to ext, ext2, hpfs, isofs, msdos (the early label to the FAT-fs), nfs, and a couple more (including procfs). Also by 1.0, additional support was created for varying types of block devices. That is, from your generic ATA hard disk drives to floppy drives, ramdisks and your scsi media.

It is just amazing to observe how far we have come along. Happy birthday Linux kernel 1.0!

Powered by WordPress