Overview of the 2.4 kernel part 2

The networking subsystem


The networking layer in the new 2.4 kernel has been improved dramatically, in part as a reaction to the Mindcraft benchmarks of 1999. Perhaps one of the main features added to the kernel is the wake-one capability. In the case of the old 2.2 kernel, whenever the system detected a network input or output event it had to wake up all the processes in order to determine which one was waiting for the event. Now, with the 2.4 kernel, only the one process that is waiting for the event is awaken, therefore saving CPU cycles and improving the overall performance.


Another important feature added to the kernel is the kernel HTTP daemon or khttpd. This is a HTTP or web daemon that has been added to the kernel itself for speeding up the performance of web servers. Keep in mind though that it only works for static HTML documents, and it needs to be configured to work in conjunction with Apache or some other HTTP daemon if you also serve dynamic pages. Some people disagreed with the idea of adding this to the kernel, considering it some sort of unnecessary bloatware. However, the nice thing about an open source kernel is that if you don't like it you can leave it out of the kernel. In any case, some preliminary benchmarks have reported amazing performance improvements when using this kernel HTTP daemon to serve pages.


Other important improvements in this field are:


  • The network filesystem (NFS) has been implemented in such a way that it improves compatibility with NFSv3. The one included in the 2.2 kernel only allowed for some partial compatibility.
  • The firewall support has been improved and overhauled by using netfilter instead of the old ipchains system. This means that you may have to rewrite your ipchains scripts to adapt them to the new kernel, but truth be told the new implementation is far more comprehensive and sophisticated thus consolidating the use of Linux in this field.

Read more: