Linked by Emmanuel Marty on Thu 2nd Sep 2004 07:36 UTC
OSNews, Generic OSes As a programmer and manager of embedded software products for a living, I think that operating system programming is so much fun that it will eventually be outlawed. I've previously published two articles on OSNews, So, you want to write an operating system and Climbing the kernel mountain, and tried to summarize my experience in designing operating system kernels as well as technical traps that can be easily avoided.
Permalink for comment
To read all comments associated with this story, please click here.
solar
by mystilleef on Thu 2nd Sep 2004 18:21 UTC

Depends on what you call "slight".

Slight as in how Windows is different from OS X and is different from Linux even though they all do the same thing at a fundamental level?

That comes naturally with being one of the big three, now does it? If I knew an alternative that could stand up to the big three, we'd have big four, now would we? And perhaps I'd even be happy with #4 and not try to reinvent the wheel

They are not the big three because they are God's chosen son, you know.

Again, depends. I consider the Windows kernel to be much superior for the end user since it doesn't force you to compile in support for XYZ and then compiling all drivers anew because the kernel ABI changed.

Yeah, it depends. Because I consider a kernel that permits strangers somewhere on the Internet access to key calls in its kernel, via IE6, which is also ingrained in the kernel fundamentally flawed. I also abhor having to reboot my system after installing software. There goes your superiority. Oh look, the windowing system is embedded in the kernel sweet! Now I can write apps that crash the system! Yuppeee! And you wondering why your system is rebooting randomingly. Duh, Lavasoft is telling me you have 300, of course poorly code, spyware running behind the scenes.

I'm sorry, but I will eat compiling support for XYZ for dinner than have to deal with the repugnant rubbish I go through on Windows. Tell me why I need to reboot the damned machine because I installed software? Or why I have to stop all running processes to install software? Don't get me started on security, viruses, trojans, Active X, proprietary formats, ugh...I'll pretend I didn't you didn't read that statement.

Because several of the things I consider broken in Linux are directly related to the kernel - like, not allowing for C++ code, not allowing for binary drivers, and having to be configured and compiled by the user?

That's it?!? Are you for real?

*If* you are willing to put up with the Linux way of drivers, since the guys at the helm so eloquently deny any development into the direction of platform-independent drivers, which they - heralding "freedom of choice!" - could push like nobody else

I have no clue what you trying to brew here.

*If* I am willing to put up with a POSIX API, *if* you consider the sh**load of yet-another-way-to-do-it Linux-ish tools and their broken command line syntax a benefit...

I don't know any operating system that have better command line tools than POSIX and UNIX. Where is this command line syntax utopia you talk about?

Not few of them because they consider the GPL to be a non-option - there goes the wonderful kernel code base you're referring to.

Fine, go license a proprietary OS if that serves you better. We are given you an OS on a platter gold, but you hate gold, you prefer wood instead.

I don't really know where to begin. Proper addressing of removable storage devices, for instance (AmigaOS). System file names and directory structure understandable to mere mortals (again, AmigaOS). A system installation that is protected against rogue applications, properly seperates applications while allowing shared ressources, and allows clean uninstallation. (A concept in my own drawer.)

And where exactly do the big three fail in this regard?

Actually, I re-focussed on writing tools and libs for OS developers that aren't so damn arrogant about assuming everything has to be POSIX, Linux, and / or GPL. My own OS project was scrapped because it was so very easy to find dozens of smartasses chanting "great ideas!" which fled once it got to doing real work.

I figured. And I'm sure there probably free tools out there that already serve the purpose of your rewrites.

I don't count on it, since Linux successfully squashed the tolerance for anything that isn't "free" and already does more than my-favourite-distro, regardless of what it might do *different*.

You actually wanted me to pay for your favorite distro that does less than Linux? I get a car to take me to school for free. And here you are suggesting I pay for a bicycle ride to school. What, I'm I nuts?

You are blissfully unaware of how *different* an OS can be. Linux - meaning the kernel - doesn't fit all flavours, peI would very much have preferred some way that would have allowed me code reuse. You don't happen to know some framework that doesn't just assume you are comfortable with the GPL, Unix-style processes, Unix-style file structures, and Unix-style everything? riod.

How? If you are smart enough to write a kernel from scratch, how difficult will it be to modify already existing free, stable, mature, robust, scalable, customizable kernels to meet your needs.

I would very much have preferred some way that would have allowed me code reuse. You don't happen to know some framework that doesn't just assume you are comfortable with the GPL, Unix-style processes, Unix-style file structures, and Unix-style everything?

I do, unfortunately, many of them are dead. The last successful one remaining is an embarrassment to computer science and software engineering in general.