Guides to (mostly) Harmless Hacking
Volume 5 Number 5:
Amit Rawat's Guides to Kernel Hacking, #2: Kernel Bloat
Here we discuss kernel bloat, not just in regards to the Linux kernel, but also in regards to every kernel that exists.
Newbie note: Each Windows operating system gets bigger than the last, and in Carolyn's opinion, Windows 7 has the most bloated kernel in history.
The term "kernel bloat" is a debated and VERY subjective one.
So what does kernel bloat actually mean? Does it mean the presence of 'things' that you do not use or simply what others think is bloat for you too? The answer lies somewhere in middle of these extremities.
Suppose you are using your computer to browse the internet, are you using every single line of code present and compiled with the kernel? You might be using only a faction of that stuff. Bloat can be the presence of unnecessary modules in the kernel or anything that you think it is (We told you before, it is a VERY subjective term).
For developers the presence of a large number of driver modules is something they wish as they might need it to run on many systems that they might encounter, but for a performance enthusiast it is a mere waste of system resources. So you see how things differ as we move from a particular group of people to another.
As a security threat
Here we will see how running a lot of code inside the supervisor mode poses a security threat and efficiency problems.
As you know the kernel itself runs in a dedicated memory space, and it has the power to control each and every system resource present in the system. So running a lot of code inside that dedicated memory resources poses a big security threat. More code means more bugs and more bugs means more chances of something getting wrong. If something in that part of RAM undergoes a buffer underflow (the most common type of problem) it can bring the whole system down or might actually lead to data loss.
Also if a kernel is compiled with a lot of modules, it acquires a large chunk of your memory which ultimately leads to a less amount available for applications and directly affecting your system resources as NOTHING is ever allowed to enter the 'kernel space'.
Next: Memory management in the kernel --->>