Linked by Eugenia Loli-Queru on Wed 6th Nov 2002 00:19 UTC
OSNews, Generic OSes Yeah, I might be just re-inventing the wheel here, who knows? But I had this (original? I doubt it) idea a few months ago and I was meant to write about it for some time now. So, my idea is about creating a new operating system that is like none of the current ones. It would be so different, that porting applications from other "traditional" systems wouldn't be possible. But the gains would be much more important of what we would lose by implementing a brand new new system.
Permalink for comment
To read all comments associated with this story, please click here.
API problems with module
by Pierre on Wed 6th Nov 2002 04:30 UTC

The main problem with such a module-based system is who decides upon the API for each task. Anyone who has ever programmed knows that an API is a compromise. And too often, that compromise must be revisited and changed because a new caller or implementation adds a requirement or cool feature that was not foreseen and is unimplementable with the current API.

The Unix piping analogy is a very good example of this. All the simple filters were written early and are the ones that newby first see and excite them. But then you fall on harder problems. So what do you do? you had "gluer": first shell script, then awk, then perl... In the end, you need to be a full perl programmer to do the non-toy stuff.

The same apply to the modular OS approach. Yes, the basic and easy stuff can spur your adrenaline. But then to do, say, an email client that keep messages around, can reply, do attachment, mime-type encoding, filtering, etc, all integrated in a usable whole, you need an integrator. That what programs are in classical OS: low-level module integrators.

That may well be the opportunity of the modular design: instead of having the same vendor doing the work-module and their integraton, you could choose a vendorthat has produced the best integration.

After a while, all your nice vision will be buried under an integrated framework, as normal user are more interested in usability than elegance, and will be using something that for all intent and purpose looks just like current OS and applications.

Think about this: the linux kernel has a myriad of modules available. Linus chooses the one he deems worthy. Linux vendors choose the one they deem worthy. Most people just buy or build the one from their favorite integrator.

Note that trying to avoid the API problem by specifying a very small and dumb common base (usually saying that everything is a stream, a la pipe) simply dumps the problem to a higher level of abstraction. At some point you have to pass meaningful content with meaningful data and interpret that content and data. At some point, some intelligence has to do the intergration. For now, that still requires a human being. I wouldn't count on AI for a while.