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?
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.
Try linmodems.org.
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.
.NET framework. This strategy makes far more sense, both considering the existing strengths of Windows, and Microsoft's emnity toward open-source software.
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
"(Man) tries to live his own life as if he were telling a story. But you have to choose: live or tell." --Sartre
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.
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).
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.
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.
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.
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.]
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.
explorer.exe is just the shell, and can be replaced.
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.
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
#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.
John Sauter (J_Sauter@Empire.Net)
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.
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
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
some articles:
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.
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
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
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.
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.
== Jez ==
Do you miss Firefox? Try Pale Moon.
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.
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?
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.