The Role of the Operating System In the Future
liteswap writes "Linux geeks love Linux and Windows mavens won't quit Microsoft -- but will we really care that much whether a machine is running Linux or Windows in future?
As Sun announces Solaris support for Red Hat Linux applications, the need to specify the OS for a particular application will fade away, and the application and the x86 platform become the critical things -- at least that's what this Techworld feature argues..." Maybe a long time from now this will happen - but I don't see it happening RSN.
I've been contemplating the OS situation for years (ever since I first tried to run a multinode BBS under DOS' DesqView) and only recently has a possible endgame become visible to me: emulation.
.SYS driver like we had in the DOS days that basically handled everything.
Software needs an OS layer, the OS layer needs an abstraction layer to hardware, and the hardware needs a communication layer to all the various mechanisms (drivers, BIOS, interface protocols, whatever). It isn't just a simple 16-bit
We've seen so many emulators (Macs running Windows emulators running Mac emulators) on so many platforms, but what has allowed so many to come to the market in such a short period of time? Processor speed, I'd say.
Now that processors are incredibly fast, we're likely to see little performance increases in the tasks that 90% of the world uses PCs for: displaying text on a screen, inputting text into a form, and sending that text to a printer. Sure, Vista will incorporate a new video structure and 3D-gaming and heavy-use databases will always need faster processors, but MOST users are still just text viewers.
The next step, I believe, is creating a more realistic "standard" emulation structure for software. I think the F/OSS market is awesome because you can generally cross-compile a lot of code on various operating systems, but they still need modifications to the specifics of the OS or the hardware you're running on. What I really think will be the next big thing will be a TRUE hardware abstraction layer in the OSes (H.A.L.I.T.O.S.es?). Is it possible? I'm not sure, but it makes me wonder.
Why do people bust their asses constantly updating WINE when the OSS community can work towards a more amazing result: a standardized implementation structure that lets you write software once, and have it run on any OS that has a HAL to translate that implementation structure to what the hardware requires.
I know -- that's what the OS is supposed to do, but it fails. Yet do MOST applications really need the extreme features we have in customization (different video cards, hard drive controllers, network interfaces, etc)? Or would MOST applications run just fine (on high end processors) if they can say "Write pixel at X,Y" or "send data chunk to IP address" or "Write this data to this store" etc?
Maybe I'm talking out of my ass (I haven't programmed anything significant since MajorBBS mods in C over 15 years ago), but it seems like that is where software has to head. A completely transparent "mini-OS" that offers all software written for it a very standard set of instructions for the most popular functions. You're not going to write 3D games in it, but that's not the target market. 3D games will always push the envelope and come BEFORE the hardware can handle it. We're talking about basic implementation of basic software, yet it is this basic software that we waste billions of man-hours of labor on trying to get working on various OSes and hardware combos.
Now that I think about it, wasn't NT supposed to be the magic system? What exactly happened there? (Don't just say "Microsoft.")
Right around the time Linus Torvalds announced his employment with Transmeta, he said something to the effect that the world already had a portable byte code, and that byte code was x86.
How is what you are describing not the Java -- bytecode, JVM model?
"x86 platform become the critical things"
Why? If you are going to abstract the OS why not the ISA?
IBM actually has been doing this for years with the System38/AS400.
The came up with a "prefect" ISA. When a program is installed it is converted to the actual ISA of the machine it is running on. IBM went from a CISC to the Power ISA without a hiccup.
I have wondered why Linux hasn't come up with a similar system. When you install and RPM or some other style of package the system could "translate" from a perfect ISA to the native ISA of the system you are running on.
Sort of like Transmeta did but do it at install instead of runtime.
Think of it as a just at install compiler vs a just at runtime compiler.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.