“As we all know, the operating system is an essential part of any computer system, but what most of us don’t understand are the intricacies of how OS environments operate. This article discusses the ways of extending the operating system by various ways including, but not limited to, recompiling the kernel and managing libraries. Extensibility is the need of time. It gives the user more ‘power’ over the machine, since every user can have his ‘personalized’ copy of the OS. This approach of extending the operating system at user level is more advantageous than other methods.”
> Editing the Operating System Code
If you have to edit an existing function, chances are that it’s either buggy or its purpose has not been well-defined. If that is the case, you should of course fix the problem, or at least be aware that the code is a mess (if you can’t fix it).
> User Level Static and Dynamic Libraries
Agreed.
> Intercepting System Calls
This guy wants to intercept calls to well-defined system functions and alter their meaning? Well done, Mr software engineer! He shouldn’t touch code with a ten-foot pole.
> Application Specific Modifications
Not very well explained what is meant by this (or at least, I didn’t understand it).
> User Level Plug-ins
“One-time modification”? See answer #1 – if you have to add hooks afterwards, you should re-think the idea behind the whole, not tweak the thing until it *seems* to work.
> Device Drivers
Drivers aren’t a mechanism to extend an OS, but an application of an extension mechanism (if done in an extensible way at all). Also, answer #1 comes into play again – why does the driver *have* to be modified if it did its job well? Did the goals change? Then re-think and don’t tweak.
> Network Server
Agreed.
Another substandard and pointless OSweekly article.
I’d comment on what’s wrong with it but since it’s pretty much every single thing he writes that would be quite a long post.