Slashdot Mirror


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.

14 of 245 comments (clear)

  1. Standard emulation/abstraction platform? by dada21 · · Score: 5, Interesting

    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.

    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 .SYS driver like we had in the DOS days that basically handled everything.

    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.")

    1. Re:Standard emulation/abstraction platform? by PsychicX · · Score: 2, Interesting

      Java isn't standardized.

      Let that sink in for a moment. Java isn't standardized. Sun would love for you to think Java is standardized, because it adds an extra layer of fuzzy comfort. That layer is, however, an illusion. Can you find a Java standard anywhere? A JVM standard? Nothing in ECMA, ISO, ANSI, et al? That's because they don't exist. Java is proprietary. Now, you have a fairly solid measure of assurance that you won't be sued for implementing it...although if you're MS and you implement it badly, well...but I digress.

      Now, being Slashdot, people here love to hate MS and everything they do. Love it. But let's look at C#. It's completely standardized by the ECMA, both the language itself as well as the underlying virtual machine bytecode. MS cannot change C# or the CLI without running it past ECMA and making the changes publically specified. They can of course write, build, and publish non-standard assemblies like Windows.Forms, but so can anyone else. What about portability? Admittedly, Java is more portable, possibly a result of market distrust of MS combined with a shorter lifespan. (An active, evolving standard doesn't exactly help either.) But there is the Mono project. Mono is open source. Mono is free, as in beer and freedom. MS can never attack Mono legally (and have promised not to try). Mono runs on Windows, Linux, BSD, and OSX. That's not 100% of the PC market, but it's damned close. Mono is a fully evolved and mature project. Contrast that to free/open JVM implementations. I can only think of one, and it's hardly what I would call "mature". And hell, it gets better -- because the CLI is open and publically specified, there are a ton of languages built on CLI you can use if you don't like C#, including a number of Lisp and ML variants, if that's your thing. Other languages built on the JVM? There aren't many. Jython is the only one that comes to mind. (And IronPython serves as a CLI/.NET implementation of Python. It's not mature, but it's promising.)

      I think it's pretty damn obvious which runtime system I'm a fan of. Even if you don't like MS, you've gotta admit that from a freedom point of view, .NET beats the crap out of Java.

    2. Re:Standard emulation/abstraction platform? by bogado · · Score: 3, Interesting

      I don't feel good about either. I would rather have a true open bytecode, started from 0 open and free (parrot?). Both sun and MS have their ace under their sleeves waiting to played and bot have been some what open and third party implementations friendly, but I don't trut either to keep like that when their system get's the majority of people working with them.

      --
      []'s Victor Bogado da Silva Lins

      ^[:wq

  2. Of course the OS matters by Gothmolly · · Score: 4, Interesting

    Leaving abstractions aside, of course the choice of Windows or *nix matters. Because of Windows' layout and the way that certain applications are built into it (IE, Windows Help, etc) there are reliability issues that cause many more maintenance-related reboots than on Unix. When was the last time you rebooted a Linux machine because the Help system in KDE needed updating?

    Also, there are certain OS-specific things which usually cannot be solved in hardware (assuming you're running on the best you can afford). Need an FS that handles massive sparse files correctly? Maybe that means you need Reiser on Linux, or ZFS on Sun... (I have no idea if this is true). Maybe Windows just CANT do this well, regardless of CPU power. Do you need to hot-swap NICs, CPUs, and add/remove memory and CPU power on the fly? You probably have to go to AIX then. Didn't we just read an article about how Windows takes 5x the number of CPU cycles to start a process?

    If you consider the OS tightly coupled to the app, or the app requires specific capabilities from its OS, then app concerns will dictate the OS.

    --
    I want to delete my account but Slashdot doesn't allow it.
    1. Re:Of course the OS matters by TheRaven64 · · Score: 4, Interesting
      THe article misses something very important. Solaris and Linux are both the same fundamental design, so emulating one with the other is easy. Now throw in something like QNX. Where Linux/Solaris/J Random UNIX is based on a synchronous function call model, QNX is based on an asynchronous message passing model - very different. You can emulate one on the other, but you take a huge performance hit. Now, at the moment most people use the synchonous model, but in the future the asynchronous one is going to be more important for two reasons:
      1. It handles latency much better - send a message, do something else for a bit, wait for reply - and so is better in a high-latency (read: network) environment.
      2. It scales better. On an n-core system, you are going to be able to have one core for every busy thread you have. You are not going to want to do two context switches every time you do a system call. Instead, you will write some data to a shared memory segment and carry on - signalling the OS if you have run out of things to do. The OS will periodically (or when kicked) read the waiting messages and send them to other processes. On a system that supports SMT you will probably have one OS message-dispatcing thread per core.
      Emulating a well designed, scalable, message passing OS on UNIX is a lot more complicated than just providing a different set of system call vectors.

      P.S. QNX can run POSIX apps if they are recompiled, but they are much slower than asynchronous apps doing the same thing.

      --
      I am TheRaven on Soylent News
  3. For now, it still matters! by ajdowntown · · Score: 1, Interesting

    Unfortunately, until a real interoperable, cross-platform, web-based OS comes out, we are stuck with what desktop we use. Even on the web, there are still certain sites out there that I can't visit because I choose to use a Mac over a Windows machine. Until people stop writing code that is OS specific, it will matter. God knows I am looking forward to the day when my OS is web-based!

  4. Linux Torvalds on x86 by Teckla · · Score: 5, Interesting

    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.

  5. Noooo.... by LWATCDR · · Score: 5, Interesting

    "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.
    1. Re:Noooo.... by Jerry+Coffin · · Score: 2, Interesting
      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.

      If you were feeling really corporate, you could call this an "Architecture Neutral Binary Distribution" format. Then with a little looking, you could even find an old copy of DEC OSF/1 that implemented it!

      Seriously, 10 or 15 years ago (or so) the UNIX vendors saw this as a way they could compete with Microsoft, so they formed the OSF (Open Software Foundation, for those who don't remember it) and came up with a standard for this. Then, with the exception of DEC who apparently missed the memo, they all ignored it to death -- followed shortly by Microsoft ignoring most of them to death...

      --
      The universe is a figment of its own imagination.

      --
      The universe is a figment of its own imagination.
  6. Re:welcome to 1999 by KrispyKringle · · Score: 4, Interesting

    First, Java, while not as successful as Sun hoped (what is?) hardly "failed miserably." Prior to C#, what other options were there for object oriented, garbage collected high level languages? People used C++, which, while in some ways stronger than Java, is hardly comparable. Java (partly) filled a void that, hopefully, C# will fill in an even more convincing way.

    Second, machine independent bytecode isn't really the crux of the issue, I don't think. I say this for two reasons; first, x86 is pretty much the standard at this point (I say this from a G4 Powerbook, but with Apple and Sun shipping x86 machines, the desktop, workstation, and much of the server market seems to be going x86); second, any language with cross platform libraries and compilers is "write once, run anywhere;" VMs are only interesting (in the context of compatibility) insofar as they are "compile once, run anywhere."

    The OS is already a hardware abstraction layer; it allows you to ignore what kind of I/O devices someone has, what size their disk is, how much RAM they have, and so forth. The technology to write code that works across multiple platforms was realized decades ago, and we use it daily. The only reason we're still talking about this is essentially an economic one--while each OS is an implementation of a standardized hardware abstraction layer, there are simply multiple OSes, which means multiple standards. The obvious solution to this is to be able to a) run multiple standards on one machine (either by running multiple OSes or by an OS that is compatible with, or emulates, the syscalls and libraries of another OS) or b) use a higher level language (like Java) that has its own standard and its own abstraction layer for each OS it is compatible with.

    In other words, standardizing platforms is easy; getting people to agree on a given standard is hard. Being compatible with multiple standards is a good bit less hard, and we've been doing that for at least a decade as well.

  7. Hmmm, it certainly suggests something... by Hosiah · · Score: 3, Interesting
    Let's see, we have Linux, BSD, Solaris, OS X, BeOS...all good little operating systems that play nice together...Come to that, I really don't see where there's that much difference between them all that if I went from one to the other, I would experience problems. Correct me if I'm wrong (like I have to ask for THAT on Slashdot!), but won't most of the programs from one run on another, with little to no modification? I know I can use BSD and Unix utilities on Linux with darn near impunity. Do they not all share their toys (source code) and happily borrow from each other?

    Then over here, we have the one bad, sulky operating system. Who is this making these horrible noises and faces at everybody else over here in this dark corner? Why, my goodness, it's Microsoft! What's the matter, Softie, don't you want to play nice with the other systems? Oh, I see, you want all the other systems to *DIE* so you can be all by yourself. OK, I guess that's a "no". Well we're going to go on having our little party together and maybe you'll get the hint and just go away...

    But I still don't see it real soon, even if MS suddenly does a Grinch and grows it's heart three sizes bigger and decides it's going to play nice after all. Witness the fragmentation even within an OS's community (distro vs distro, desktop vs desktop, editor vs editor), and I don't think you'll get the vi/Gnome/Debian bigot and the Emacs/Fluxbox/Slackware bigot to say "Eeeeeh...what's the difference?" But then again, my crystal ball *is* due for a polishing...

  8. Walk, then run by LaughingCoder · · Score: 3, Interesting

    It seems to me that, until we can make document file formats (think MSOffice versus OpenDoc) not matter, talking about the whole OS not mattering is a bit premature. We live in a time when we discuss at great length file formats and the future readability of Word documents. Solving *that* problem (any word processor can figure out any other word processor's file format) would appear to be a much simpler problem than abstracting the OS. Walk, then run.

    --
    The more you regulate a company, the worse its products become.
  9. Ooohh... Ahhh... Yawn. by nuntius · · Score: 2, Interesting

    Its hard to express how little enthusiasm I have for this. I mean, the various BSD's have had Linux binary compatibility layers for what, 5 years or more?

    So Sun's mightly Solaris is finally catching up to a dying OS? Ouch. ;-)

  10. Not even the application nor the processor matters by bluemist · · Score: 2, Interesting

    Folks are going to think this comment is rather blue sky, but the only thing which matters is your Information and *Access to your Information*.

    A catchy term for this could be called "Info Spaces". (I didn't invent that.)

    Imagine you have a computer tucked away in your basement which only exists to hold any and all information you have ever referenced or created. (Or you could use a public utility.)

    Computers in your house let you access your Information, as do wireless laptops, networked screens, and PDA's..

    As does your cell phone or PDA when you are away from home..

    As does a screen at the library, work, coffee shop, or school.

    As does an Info Room at home, work, the airport or hotel (full video conferencing.)

    As does a regular POTs phone at the street corner (If any still exist).

    The application really will be a slightly important thing as it provides an interface to the information you wish to manipulate. As all data in this world will be Open Format in this fantasy world (with translators for outdated closed formats.) You will have your choice of interfaces [applications], including fetching your favorite program from your home server written in universal executables (or even outdated binaries) which are translated on the fly to whatever terminal or server your are accessing your Info Space from.

    The whole Computer, CPU, OS, Network, Application thing is utterly meaningless.

    Only your Information and it's context are important.

    What IS required for this to exist is a secure, reliable, failsafe, private, non-IP encumbered way to blat these Info Objects and their relationships all over the globe without exposing anyone to invasion, risks, or corruption of their INFORMATION.

    I guess you'll also need the ability to perfectly identify an individual as well. (Oops.. there goes privacy?)

    I do realize that is an unattainable goal and against the corporate and even government interests.

    But it is an interesting goal nevertheless.

    Now please do tell me exactly why I'm wrong...