I think that this is frankly a foolish position, and I suspect a disingenuous one. Independent OS development for anything other than Linux or *BSD won't help your portfolio, and in fact will probably hurt it; hobbyist OS-devers tend to be seen as cranks. At the very least, it would be unwise to mention it until you had a working system to show someone.Solar wrote:That last point is what would keep me away from it. I see my hobby projects as much as a chance to improve my business skill portfolio as it is about fun.
As for doing this for anything other than a hobby or academic study, well, let's be honest with ourselves for a moment, shall we? Operating systems design has been stuck in the VMS/Unix co-dominion for nearly 30 years now, and even the major commercial OSes - Windows and MacOS - are now split between those two camps, internally. Even the vast majority of OS dev projects that get beyond the DOS stage fall into one of those designs - usually the Unixoid one - often without the dev'er even realizing it. The field has frozen solid, and nothing short of a radical shift in design philosophy will change that.
This is because, in the end, the OS kernel and internal structure aren't what matter to the users, or even for the most part to the application developers; it's the UI and applications that matter. This has been amply demonstrated by MacOS X: if they weren't told about it, most users wouldn't have any idea that the underlying system is radically different from the previous versions. The Windows kernel has more quietly undergoes an equally drastic shift, dropping the older DOS/UI design that was underlying Windows 9x in favor of the VMS-style NT kernel. Linspire has shown that a Linux system can be made to seem virtually identical to Windows. Even the APIs have converged: ll the major systems are now POSIX-compliant (not that that means much), and there are portability libraries for windowing and othe rpreviously system-dependent things. Many - perhaps the majority - of applications have versions or equivalents on all of them. The only place where the underlying OS matters is in the system stability, and even there, the average users is willing to put up with an astonishing amount of crud and poor performance and inconvenience out of sheer inertia.
In fact, the only thing I see on the horizon that is likely to change things is a rather astonishing one, a resurgence of the IBM VM/370 system of late 1970s. The 'exokernel' designs just a reframing of this idea, as are 'virtualizers' such as Xen and VMware. These are becoming mainstream again as both Microsoft and Apple plan to release virtualized systems, intended to allow users to run competing systems 'inside' their own system. Linux distro makers are similiarly eyeing bundling a Xen based setup as a way of easing the the shift away from Windows. The effect is to reduce them to just UIs and applications. If Windows, MacOS and Linux become nothing more than the logical equivalent of a CMS user session, why have them be full operating systems at all? Eventually, if things go this way, all the differences between OSes will reduce down to a choice of window manager.
Mind you, I do think that there is room for improvement that goes beyond the superficial. The current designs are pretty lousy, to be honest, and even in the past better designs existed. However, I also recognize that the best designs rarely win, partly because there's no one yardstick for 'best', and partly because the economics of the field actually favor a certain amount of inefficiency.
So then why am I still involved in OS development, if I feel it is all (literally) academic? Well, to start with, I haven't been doing any for about a year, as I'm sure many of you have noticed; occupied with other things and fed up with my own lack of progress, I decided to set OS work aside for a while, figuring that I might come back to it eventually when I felt inspired again. Partly, I work in it because I do have some hope that things will eventually change; such miracles can happen in a mature field, if only rarely. But mostly, I do it because the field fascinates me, hold my interest in a way that has nothing to do with anything practical.
I do it because I love it. And that, in the end, is the definition of 'amateur'.
So don't be too afraid of impracticality, people. Oh, pay attention to efficiency, sure, and be aware of what tools are available; but still feel free to dream. After all, if we were practical people, we wouldn't be here.