When the Linux kernel came out for the first time in September 1991, it had only 10,000 lines of code. It was elegant and was a revolutionary idea. Slowly, as it grew in popularity, the lines of code increased to 176,250 by March 1994. From there, The Linux kernel has been growing alarmingly. It reached 2.4 million lines of code in 2001, 10 million lines of code in 2008, and it will have over 15 million lines of code by its next stable release. Is this normal? Should we be worried?
This is definitely not normal growth. A large part of the Linux kernel carries code for legacy hardware. Besides that, drivers, file-systems and architecture-specific functionalities use three-fourth of the code. Documentation comments and blank lines fill more spaces. Perhaps it is the monolithic-kernel architecture of Linux, which is the reason for this bloat. It is time to revisit the Tanenbaum-Torvalds debate again.
There are some parts in the Linux Kernel that very few people understand really well.
The only relieving news right now is that the Linux kernel version 3.0 will be a long-term release, with at least 2 years of support. Currently, this status is enjoyed by the kernel version 2.6.32 because of its use across long-term support versions of major distros.
Watch this funny video where Microsoft wishes Linux on its birthday.