Slashdot Mirror


Should The Next Windows Be Built On Linux?

scrm writes "The next version of Windows should be built on top of Linux, according to this article by Robert Cringely of PBS." If Microsoft wanted to, they could be the world's largest vendor of Free software .. couldn't they?

30 of 763 comments (clear)

  1. Re:And compromise compatibility with drivers, etc by GrenDel+Fuego · · Score: 3, Informative

    They already exist. Not for every modem, but a number of more common ones.

    IBM even provides links to some of the drivers I believe.

  2. Re:And compromise compatibility with drivers, etc by Anonymous Coward · · Score: 1, Informative

    Try linmodems.org.

  3. They could, but won't (and probably shouldn't) by foonf · · Score: 4, Informative

    Although some of Cringely's comments about the DOS basis of Windows are off-base with regards to modern NT-kernel based versions of windows (the C:\ prompt is there because it has a compatibility layer) the idea that most of what we think of as "Windows" could be ported to a Linux or Unix base is basically correct. Just imagine an officially-sanctioned WINE with its own GUI system and configuration tools...it is not that far from reality.

    But the kernel is neither Windows' biggest problem, nor Linux's greatest asset. By all accounts, the Windows NT kernel is (or at least started out as) a very clean, modular microkernel system. It was built with a POSIX compatibility layer, and actually can host a traditional Unix userspace (and does, if you install the MS "Unix Services" package). On the other hand, Linux is a very straightforward, unexceptional reimplementation of a standard, monolithic Unix kernel, which has become very popular more or less because it works, it is free, and it was there when people needed it. Its novelty is that it allowed for the first complete Free Unix-like system (while *BSD was still in legal limbo). Microsoft could take that kernel, and modify it to run Windows, and neither they, nor we (Linux users), would gain anything...Microsoft would get an operating system more or less like what they have now, except with a pesky kernel under a free-software license, and we would get another version of Windows, which might, with the installation of an X11 server and a raft of libraries, be able to run Linux software, not that anyone would want to.

    If Microsoft tries to "embrace and extend" Unix, they probably won't use Linux, or BSD for that matter. Unlike Apple several years ago, they already have a modern kernel. According to another recent Slashdot story, they are already trying to build a new shell environment based on the existing "Unix services" package, and probably running under the .NET framework. This strategy makes far more sense, both considering the existing strengths of Windows, and Microsoft's emnity toward open-source software.

    --

    "(Man) tries to live his own life as if he were telling a story. But you have to choose: live or tell." --Sartre
  4. Cringly is poorly informed by ShooterNeo · · Score: 4, Informative

    Cringly is not very well informed in his article. He assumes Windows XP/2k ect are still built on top of DOS. Actually, if he'd read Showstoppers he'd know that the NT kernal was written from scratch, by a group of developers from Digital Equipment Co who set up essentially an independent shop within microsoft to make it. This is why NT is far more stable than earlier versions. The NT kernal is very similar to Unix in how it operates, and essentially is just as good. Also, if he'd read the book he'd know that the DOS command prompt is done via emulation, as well as legacy program support. The core of the system remains NT even when the emulator is running. Anyone who's actually used XP or 2k would find that the vast majority of problems are related to the underlying hardware drivers (this is the ONLY reason why Unix is more stable on some systems, because people building Unix servers use very solid hardware) or to the overlying windowing interface.

    1. Re:Cringly is poorly informed by ShooterNeo · · Score: 2, Informative

      Yes, I forgot that it was VMS the DEC guys were working on. I do know that the client/server architecture it uses (explorer and most NT services are "clients" of an underlying kernal, so if they crash the underlying system keeps running) is similar to Unix. I suspect that the NT kernel might even be better written than Linux (face it, it was written by experienced developers from top schools and there were dozens of em, with clear design goals set by their boss vs. a hacker who just wanted to write his own Unix clone). I don't have access to the code to do a comparion, obviously, but it wouldn't surprise me. From what I read in Showstoppers, 16 bit APP support, while done semi-natively, is done with a translation system that translates the API calls. It is basically emulation, and the developers despaired for a while when it seemed like they were training the OS to run certain progrms (not a general case emulator like they wanted). That is also how XP runs DOS stuff. Believe it or not, Microsoft has known their OSes sucked for a long time, and spent over a hundred million paying NT develepors to correct this (just for the initial development of 1.0. I suspect the tab is over a billion now).

      Their main problem now is that they feel they have to add too many features to keep selling new versions, which greatly increases complexity. This is why their software gets more and more bloated, and why new versions still have many bugs. Their other problem is they basically own their target markets, and to grow any further have to try other sectors, which may not even be profitable ideas. For instance, making web browsers may never be profitable for Microsoft.

      As for using NT in mission critical systems...well, depends on HOW mission critical. While it might be fine for archiving, say, medical data its not good enough to control the electronics of a radiation machine. Nor is it good enough for regulating the cooling system of a nuclear power plant, though it might be fine for running the visitor log at the guard shack. And while it might be fine for the interactive TV system on an airliner, its not for the fly by wire firmware. For this stuff NO OS is acceptable, it has to be written very carefully from scratch, with the software kept as simple as possible. Instead of using multiple threads, the developers will often break the different tasks into different cpus (so that way if one crashes, the other physical chips will keep running). For extreme cases (a rocket?) there will be 3 or more computer systems, each completely independent and running firmware written by completely isolated developers (often in different countries) from a central spec. If one of the computers disagrees, the others will override it.

    2. Re:Cringly is poorly informed by borgboy · · Score: 2, Informative

      The command line to which you refer is the command shell cmd.exe. It has less to do with dos than the Korn shell has to do with bash - at least bash and Korn are 32 bit apps....dos, for all the extenders (such as what came with my old Borland Pascal 7.0 IDE, I think it was PharLap) was never a 32 bit beast. Cmd.exe is a 32-bit NT console-mode shell...that shares much of the old dos syntax. As far as any emulation goes, that's just yet another client subsystem (you do know that NT is a client-server OS, right? Win32 is not the native API on NT, it is just another subsystem, like OS/2 or posix. To run on this parenthetical comment on a bit more, I'll even mention that Win32 is certainly the preferred "language" on NT, though with .Net you can count on that changing. I'll stop Karma whoring now.) called the NT Virtual DOS Machine, or NTVDM. The Windows-On-Windows (WOW) subsystem runs on top of the NTVDM to extend this emulation to 16-bit Windows applications. All 16-bit dos/windows apps run in a single isolated process space by default, unless configured differently.
      In any case, the command shell is no more the OS executive in NT than bash is in GNU/Linux. The kernel houses the executive. And I mean both NT and GNU/Linux here.

      --
      meh.
  5. Re:Are they allowed to? by ender81b · · Score: 2, Informative

    Just the linux source. You can link to GPL'ed software/build stuff on top it/whatever. A number of distro's do this to set themselves apart (like SuSe with YAST).

  6. Re:Are they allowed to? by brain159 · · Score: 2, Informative
    that's a common misconception - but if I make some minor tweeks to GNUFoo and sell it as VisualFoo for $75 + tax, I have to sell it under the terms of the GPL, with everything that entails (i.e. every user would then be free to re-modify it and give it away or sell it better and cheaper to compete commercially with me).

    The Free Software Foundation (they who wrote the GNU GPL) have a good FAQ which tells you about as much as you can find out about it without needing a lawyer's advice.

  7. Re:And compromise compatibility with drivers, etc by LostCluster · · Score: 4, Informative

    The C:\ prompt within a window has always been an illusionairy thing. Think about this for a second...

    In Windows 3.1 you could run DOS-atop-Windows-atop-DOS... but if you ever tried to run "Win" in that environment, you would get a message that indicated that Windows-atop-DOS-atop-Windows-atop-DOS just wan't going to happen, you're not at a "real" DOS prompt. You didn't have a full-featured version of DOS there, just the interface level.

    If you carry that forward to XP, the "DOS" in XP doesn't directly control the low-level stuff anymore. Some nameless, faceless part of Windows does.

    DOS-within-Windows is now just an alturnate wacky skin for Windows Explorer. It's just a familiar text-based way to do things, not a low level OS anymore.

  8. Re:Who? by capnjack41 · · Score: 2, Informative

    I think that Microsoft did develop NT themselves, but with much help from some of the same guy that did VMS (basic googleing turned up this.

  9. Re:And compromise compatibility with drivers, etc by miu · · Score: 2, Informative
    but rather the NT Kernel, which could easily be consider like the DOS kernel, but built more sturdy.

    DOS was pretty much a driver loader built for a real mode cpu. NT is a modern OS. That means:

    • Virtual Memory
    • Protected mode
    • Task Scheduling
    • A filesystem manager
    There is another huge difference is the size of the NT kernel vs. DOS. NT is built "more sturdy" because it would colapse under its own weight if it were not.

    Windows 3.0 had more features of a modern OS than DOS did. It used DOS pretty much the way DOS used the BIOS, bootstrap with it and then shove it into the background.

    --

    [Set Cain on fire and steal his lute.]
  10. Maybe this is simplifying it too much but... by techstar25 · · Score: 2, Informative

    Maybe this is simplifying it too much but . . . if Apple put a nice GUI on top of UNIX and called it OS X then why can't Microsoft develop a nice GUI to go on top of Linux and just call it Windows? If the GUI is nice looking enough, most people won't know the difference, so they'd still be able to sell "Windows 2003" for $100 per copy. Now that Apple has done it, MS could probably get away with the same thing.

  11. Re:Mostly correct. by Anonymous Coward · · Score: 1, Informative

    explorer.exe is just the shell, and can be replaced.

  12. It would work by Slime-dogg · · Score: 2, Informative

    The same way that MacOS works. You can distribute the binaries that sit on top of the OS. Just make sure you don't link any of the OS code into your binaries, and you'll be ok.

    --
    You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
  13. Not aborted! by ucblockhead · · Score: 3, Informative

    That IBM/OS project wasn't aborted! It released OS/2 1.0, which was a fully multitasking OS with no GUI. I believe Microsoft was still involved when OS/2 1.1 was released. This release included Presentation Manager, the first GUI for OS/2.

    Also, your progression for DOS isn't really correct. DOS and Windows were concurrent things for years. All 16-bit versions of Windows required you to actually go out and buy DOS. They weren't just two different things from a technical standpoint. They were two different things from a marketting standpoint. It was really more like:

    DOS 3.0 >> DOS 4.0 >> DOS 5.0 >> DOS 6.0 >> Windows 95
    Windows 1.0 >> Windows 2.0 >> Windows 3.1 >> Windows 95

    --
    The cake is a pie
  14. Re:Nice idea, but... by erpbridge · · Score: 3, Informative

    #4... see the OSI chart, Applicaton Layer

    It SHOULDN'T mean a rewrite of all of their software, as the software should just be written to reference to the OS layer below it, not to the Kernel layer below that. The only things that might have problems are things like Visual C++ which, as part of their programming language, has the ability to make direct device calls... which even then should be done via device drivers running in the OS layer.

    Theoretically, the OS should run as an abstraction layer, so that whatever it is running on top of, whether that be a DOS "kernel", NT kernel, Macintosh (before OSX), or Linux or BSD kernel, isn't even something that needs to be addressed by the individual apps.

    Of course, that's in a perfect world, where any windowing system, whether it be MS Windows based, Mac windowing based, or X-Window based, can run on top of any kernel. We don't have a perfect world, and application developers (especially Microsoft ones) are known to code quick and dirty for their specific setup only, not for global compatibility.

    So, yes, for the time being, you are correct.

  15. Re:You're wrong. VMS != UNIX by John_Sauter · · Score: 3, Informative
    Actually, it was TOPS-10 that appeared at about the same time as UNIX. VMS didn't appear until 1978, but TOPS-10 was one of its ancestors. Descendents of TOPS-10 use the DIR command; descendents of UNIX use the ls command.


    John Sauter (J_Sauter@Empire.Net)

  16. Re:Nice idea, but... by Anonymous Coward · · Score: 1, Informative

    It SHOULDN'T mean a rewrite of all of their software

    Sorry, their server software like MS-SQL and Exchange is optimized for various Windowisms. This probably extends down to MS Office too. Changing the kernel and low-level code would be a huge performance penalty (just as Unix-ports such as Apache and Sendmail run slowly on NT).

    Theoretically, the OS should run as an abstraction layer

    Not all OSes are equal. You can build in abstraction layers (like Wine or Cygwin), but they will be non-optimal.

  17. Windows Kernels, and Environments by einhverfr · · Score: 5, Informative

    but explorer.exe is not the windowing layer/api, just like Gnome is not X-Window

    Quick and dirty architectural comparisons:

    Linux Kernal -> Windows Kernel
    sh -> cmd.exe
    X server -> GDI.exe
    Window Manager -> Explorer.exe
    CORBA -> (D)COM

    Note these are just quick approximations. My point is that both OS's are reasonably mature and stable (baring spyware, etc.) and there are a lot of areas where both could improve, but porting Windows onto Linux doesn;t make sense for Microsoft today and is a lot more work than Cringly seems to think.

    But then this guy has never seemed to know what he is talking about

    --

    LedgerSMB: Open source Accounting/ERP
    1. Re:Windows Kernels, and Environments by apweiler · · Score: 3, Informative

      Window Manager -> Explorer.exe

      I disagree here. I don't know much about Windows internals (and I've *never* used WinXP...), but Explorer.exe is probably more equivalent to something like Konqueror (or even KDE as a whole) - integrated Browser/file manager/desktop environment. The window manager would probably be integrated in GDI or something. Hell, I've had (on Win98 though) Explorer.exe crashed and killed, but the system was still sort-of-running, with some windows open (well, the 'end task' box you get when you press Ctrl-alt-del).

  18. Re:Dumb idea... by evilviper · · Score: 2, Informative

    Linux is a Unix-like system. However, the fact that it is partially based on a 30 year old design does not make it any less advanced.

    Saying: ``The state of the art is way ahead of this" about Linux is like saying the same thing about a recent BMW. Just because it has roughly the same design as something that is very old, does not mean that the modern implimentation is less advanced by any means.

    You could say the state-of-the-art desktop computers of today are obsoltele because they are all based on the Apple II. Sure, technically true, but it's such a gross oversimplification that it doesn't hold up.

    --
    Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
  19. Re:And compromise compatibility with drivers, etc by Anonymous Coward · · Score: 5, Informative

    In Windows 3.1 you could run DOS-atop-Windows-atop-DOS... but if you ever tried to run "Win" in that environment, you would get a message that indicated that Windows-atop-DOS-atop-Windows-atop-DOS just wan't going to happen, you're not at a "real" DOS prompt. You didn't have a full-featured version of DOS there, just the interface level.

    Actually, it was the "full-featured version of DOS" running in that DOS prompt under Win3.1 and Win9X.

    The X86 architecture has 2 main modes of operation: real mode (compatibility with 8086/186 processors -- all PCs to this day boot in this mode) and protected mode.

    Under protected mode, it was possible to create something called a Virtual 8086-mode task. This allowed for real mode simulation within a protected mode environment, thus allowing real mode programs to work.

    Each V86 session can, for most practical purposes, be made to think it is the only thing running (with no knowledge that it is being virtualized and having various instructions, operations, and interrupts intercepted by the protected mode operating system.)

    Getting into protected mode from V86 mode is not possible, hence why Windows wouldn't run in a DOS box. It is also possible for real mode programs running in V86 mode to detect V86 mode by checking the appropriate processor status flag (I'm not sure if the OS can intercept this.)

    DPMI (DOS Protected Mode Interface) is what eventually allowed 32-bit DOS programs to run in true real mode or in DOS boxes. In DOS boxes, Windows would be the DPMI server; but in real mode, you'd need an external program to get you into protected mode first -- CWSDPMI, for example.

  20. Re:cmd.exe by Twirlip+of+the+Mists · · Score: 4, Informative

    Also, IIRC, Cringely is not one person but a pseudo-name used by a panel of writers.

    Not exactly. Robert X. Cringely is kind of like the Dread Pirate Roberts: a serial pseudonym. The name was first used in InfoWorld magazine when Dvorak left-- and started losing his mind, if his last couple years' worth of columns are any evidence-- to replace the famous byline. The Robert X. Cringely we're all most familiar with is really Mark C. Stephens; he's the guy who wrote the books and hosted "Triumph of the Nerds" on PBS and who writes "I, Cringely." He was the third Robert X. Cringely to write for InfoWorld, and he wrote for them for 8 years. Since that Cringely's departure-- okay, firing-- from InfoWorld in '95, many others have written columns under that name for the magazine.

    The real Robert X. Cringely has been retired for 15 years, and living like a king in Patagonia. ;-)

    --

    I write in my journal
  21. Re:OS X by Twirlip+of+the+Mists · · Score: 2, Informative

    It's built with Apple's proprietary Mach kernel

    How do you define "proprietary?" Mach started at CMU as a totally open-source project; NeXT used CMU's Mach kernel as the basis for NeXTstep, which evolved into OS X. Apple's fork of Mach (which really isn't Mach any more, in some important ways) is still open-source.

    All too often, "proprietary" is a dirty word that's thrown around Slashdot to mean "not what I'm using."

    I can download some GNU utilities and copy them to C:\WINNT, now is my OS based on GNU?

    Well, considering that GNU is neither a kernel nor an operating system, but rather just a loosely associated collection of utilities, I'd say that no operating system is "based on" GNU.

    --

    I write in my journal
  22. Re:They'll use FreeBSD or NetBSD if anything by Anonymous Coward · · Score: 3, Informative

    No, all versions of the BSD license require that credit is given to the copyright holder. You might be thinking of the advertising clause in older versions of the BSD license that required that the phrase "this product includes software written by [name of copyright holder]". That clause was removed from the BSD code by Berkeley some time ago.

    If you want to see some examples of the BSD license "in action" so to speak, see Microsoft's release notes for Windows XP. There credit is given to a lot of people who have released BSD licensed software; not only to Berkeley, but also to people like Luigi Rizzo who have done a lot of work on the FreeBSD kernel.

  23. Re:They'll use FreeBSD or NetBSD if anything by jez9999 · · Score: 2, Informative

    Lol.

    (at the bottom of relnotes):
    "Portions of this software are based in part on the work of Luigi Rizzo. Because Microsoft has included the Luigi Rizzo software in this product, Microsoft is required to include the following text that accompanied such software:"

    After all that, is it really worth having your credit given at all? How about requiring that the user have a good chance to see it, instead? So they have to put it in bold on the desktop or something. :-)

  24. Re:Everyone is missing the point. by mangu · · Score: 2, Informative
    I was agreeing with everything you mention, until I got to "...is realtime and fully reentrant."


    The reason I migrated completely from NT to Linux is that a few years ago I was writing a software that did realtime data acquisition from the sound card. It never worked correctly in NT, because, as I found out after much debugging, NT disables interrupts for as long as 100 milliseconds at a time. If you want to do any extensive data processing on an audio stream without gaps in NT, you have three alternatives: (1) write a realtime thread handler that duplicates a lot of the scheduling task, (2) write a new device driver, or (3) do it offline. Strange thing is, Linux is *not* realtime, but my program works fine in it, just goes to show how important a good task scheduler is.

  25. Article makes me cringe by thasmudyan · · Score: 4, Informative

    It's been a long time that I read such completely bogus. I don't want to flame but I have to. Here it goes:

    Even today, you can still get to a C: prompt under Windows XP, which means a disk operating system is hiding there no matter what Microsoft wants us to believe.

    What a bunch of crap! So there is still a "disk operating system" under Linux because I can open a shell window, too? Man, what are you talking about?

    DOS 7.1 brought the FAT32 file system to Win95, not the other way around

    So what, FAT32 is a file system, and now - ? What does that say about the operating system? Nothing? Right.

    Windows XP is not an operating system. It is a windowing system that sits atop an operating system much as KDE or Gnome sit atop Linux.

    What's this guy's definition of an operating system? First, Windows has its OWN KERNEL (microkernel, btw). Second, it has its OWN DEVICE DRIVER and SOFTWARE ARCHITECTURE. While I can agree that KDE/Gnome do a fairly large and important part of the work that non-Linux OSes provide as a whole package, Windows is doing ALL THE STUFF an OS does with *no* underlying foreign kernel or architecture.

    The history of DR-DOS is especially interesting because it went through so many hands. [....]

    Blah, blah, blah... where's all that DOS talk supposed to get us? Does it really make sense to talk about legacy crap like that? And if so, should we really begin to talk about text-mode-only Linux, from back in the days, also? What about legacy mainframe interfaces? Why? To prove the point that DOS is underlying of Windows just as Linux is the underlying architecture to KDE? WTF???

    Now back to Microsoft putting Windows on top of Linux. Linux is better, faster, stronger than whatever is living underneath XP now, right? Performance would improve.

    Give me a break here! Driver support for Windows often leads to much better performance (because PC manufacturers really cater to the Windows monopoly).

    Apple has made a virtue of doing exactly this with MacOS-X, heralding its Mach kernel and BSD roots. Couldn't Microsoft do the same?

    MacOS-X is a completely new system, it has a legacy-app compatibility layer (like Wine is for Linux) but otherwise it's a complete new system. And, they HAD to do it, because OS 9 and below where such utter crap (from a purely technical point of view, mind you). If MS where to switch (for whatever stupid reasons) to a *nix kernel like BSD or Linux they would have to provide a complete legacy Windows version inside the new system just to provide backwards-compatibility. And boy would *that* be slow! And, again, why??? It would mean to develop *LOADS* of new device drivers and APIs - for what?

    I could go on like this forever. Articles like that make me want to puke. It would be suicide for MS if they did something like that, especially now, the first time they have a workable OS with Win2000/XP. Why oh why?

    OK, I asked for it. Bomb me, I don't really care. Cringely articles I actually liked them in the past, but what the fuck is this load of crap supposed to be?

  26. Re:Pardon? by Anonymous Coward · · Score: 2, Informative

    Actually if you would like to see the Windows XP kernel running without the gui simply boot off of a Windows XP CD... or better yet, boot using a Windows Preinstallation Environment CD. Those are the CD's used by the tier-1 manufacturers.

    The Windows Preinstallation Environment boots up into a graphical interface but it only gives you a command window to use.

    If you think about it, trying to determine if your just using a kernel as opposed to a graphical interface is pointless. It is not like you can actually "see" the kernel. The kernel merely controls the rest of the OS and responds to commands that are given to it. Even different distributions of Linux show different graphical items and pictures while booting the kernel. It's not just a clear-cut thing.