On Tue, Mar 31, 2015 at 2:38 AM, Rugxulo <rugx...@gmail.com> wrote: > > On Mon, Mar 30, 2015 at 10:09 PM, dmccunney <dennis.mccun...@gmail.com> wrote: >> On Mon, Mar 30, 2015 at 8:37 PM, Rugxulo <rugx...@gmail.com> wrote:
>> <sigh> This is OS development 101. Do you think a new OS intended as >> a followup to an existing product throws out the baby with the >> bathwater and does everything differently, so existing apps won't run? > > YES!!! Are you really this naive? I'm honestly not even cynical enough > for this. Lots of companies throw everything away, on purpose, and > expect everyone else to just deal with it. If they can get away with > it, they absolutely will do it. I'm not. It appears you are. Like everybody else in private industry, MS wants survive and stay in business. To do so, they have to make money. As a general rule, 80% of incremental revenue comes from doing more business with your existing customers. Do what you suggest and they stop *being* customers. Contrary to what you might wish to think, MS *isn't* stupid. And when you are in an environment of incremental upgrade, which the computer business is, "throwing out the baby with the bathwater" can be fatal. Consider Netscape. They knew they needed to update their flagship Netscape Communicator" 4.x product. Instead of doing what they *should* have done, and refactoring their code base and developing from there, they chose to start from scratch on brand new code. (The decision was made by a Netscape senior exec who was not a developer, and had no idea what he was asking for. Joel Spolsky, in his "Joel on Software" blog waxed eloquent about why it was a very bad idea.) Netscape code named the new project Mozilla, made it open source, and started hacking. Time passed. More time passed. Yet more time passed. We finally got a Netscape 6 (skipping over what should have been Netscape 5), which was so buggy as to be unusable. As far as I could tell, they only released it to get *something* out the door to demonstrate development was actually occurring. Even more time passed, and we finally got a Netscape 7 that *was* usable. But meanwhile, AOL bought Netscape, folded the Mozilla project, and transferred the code, development servers, and several million in seed funding to the non-profit Mozilla foundation who became responsible for continued development. Meanwhile, IE continued to build market share at Netscape's expense. Had Netscape done what they should have done, a new version of Netscape would have been out at least a year sooner. In the computer business these days, change happens at blinding speed, and time to market is critical. If you are an OS developer, you do not, repeat DO NOT start over from scratch. You revise and extend existing code. If you try to start over from scratch, you will be *out* of business long before your brand new product is finished. >> It includes it. Part of the problem for Windows 9X was maintaining >> backwards compatibility. It needed to be able to run old 16 bit DOS >> apps as well as apps written for Windows. Batch files were >> interpreted by COMMAND.COM, and COMMAND.COM was available. > > In Win9x, COMMAND.COM (a DOS MZ executable) was the sole shell. So > there was no other choice. There was if you installed a third-party product like 4DOS. Win2K/NT used NTVDM to provide a DOS environment for 16 bit DOS apps, but included COMMAND.COM to run them, with 32 bit CMD.EXE as the default shell. (And if you ran a DOS app in that environment and shelled out of it, you were in 32 bit land talking to CMD.EXE at the resulting command line, not COMMAND.COM.) Every OS comes bundled with a default shell. The question is whether other shells are available. There were back in the CP/M days (ZCPR3), and continue to be. > In fact, most of the 16-bit Windows stuff (since Win 3.0) was > DPMI-based. The 'D' stands for "DOS", so it can't live without it. See http://en.wikipedia.org/wiki/DOS_Protected_Mode_Interface. It provided a way for 16 bit real-mode applications to run in Protected Mode on a processor that offered it, assuming sufficient RAM was available, by providing a tunnel from protected mode to real mode for real mode applications. >> COM and EXE files were programs run under the OS, and Windows supported the >> system calls those programs used. There would be no need to call the >> underlying DOS, because the required stuff was part of Win98. > > Wrong. If there was a bug in the underlying DOS, then that exact same > bug was also found under Windows. These were not two separate > implementations. See my commentary above. If I'm writing a follow on to an existing OS, and I need backwards compatibility so my OS will run stuff written for the previous version, what *I'll* do is include the necessary code from the previous OS in the new OS kernel. I *won't* rewrite from scratch. If there are unfixed bugs in the previous OS code, they will be included along with the features. The fact that DOS bugs still exist in Win98 doesn't mean the DOS implementation provided as a real-mode loader is actually used once Win98 is active. >> I repeat, DOS was a real mode loader, whose function was to load >> Windows. Once it had, Windows took over. > > Not at all. At least not in Win9x. A lot of programs (EDIT, DEBUG, > EDLIN) were still DOS programs. Will you for %DEITY'S sake stop being *deliberately* obtuse? Let's start with what we mean when we say OS. An example is Linux. Properly speaking, Linux is the kernel - vmlinuz. If it uses a Linux kernel it's a Linux system. (My old Linksys router was a Linux system.) If you install something like Ubuntu, it comes packaged with the standard set of Gnu/Linux utilities, but you do not need them to have a Linux system. For example, I have an Android tablet. Android is a Linux system, and there's a Linux kernel under the hood. It does *not* come with the standard set off Gnu/Linux utilities. If you want that functionality, you need to install an Android port of Busybox, and a terminal emulator to get a console and a command line. (I did so.) Android boots and runs just fine without the CLI stuff being present. EDIT, DEBUG, EDLIN and the like are the equivalent of the Gnu/Linux utilities on Linux desktops. They are not the OS itself. You can boot and run a DOS system (or a Win3.X/9.X system) without them being present, and never, ever have cause to actually *use* them, and the majority of people running Win9X wouldn't miss them if they weren't included. The OS is the resident portion, loaded at boot, that sits between you and your programs and the hardware, and provides access to the hardware. The resident kernel portion of Win98 includes the stuff from in DOS, so that 16 bit DOS applications can run. >>> For something like Windows XP, then definitely DOS isn't there, it's >>> emulated in NTVDM. But to pretend that Win98 runs all by itself >>> without DOS is a bit of a stretch. >> >> No, it isn't. Win98 needed DOS to load it. That's it. And that >> requirement is a consequence of X86 segmented architecture with real >> mode and protected mode. The machine started in real mode, and needed >> a real mode loader to load the protected mode OS. > > Not at all. DOS is far more than just a boot loader. If that's all it > did, it wouldn't need separate hardware drivers or FAT / ISO9660 file > system code at all. (Often there were Windows-only drivers, but DOS > was still available.) We needed hardware drivers for stuff like that because that's how OSes work. Linux is an example again. Lots of drivers get loaded by the Linux kernel on boot, because it expects to talk to the hardware through a driver. (In my old AT&T Unix machine, it was possible to load and unload drivers from the command line. The drawback was that drivers loaded that way could not communicate with each other.) When new hardware comes out, you don't need to rewrite the OS kernel. You write a driver for the new hardware the kernel can talk to. This has been true on PCs since the MSDOS days. My old PC clone had a meg of expansion memory beyond the 640K built into the machine, which I used as ramdisk, disk cache, and EMS memory for apps that were written to use it. I also had a three-button Logitech mouse. I loaded the drivers necessary to see/use the extra memory, create the ramdisk and cache, and recognize the mouse in CONFIG.SYS. Except for the drivers that provided access to extended memory in the first place, the drivers were independent of DOS, and DOS got version upgrades with the same drivers still used. For that matter, the old PC clone had two 20MB Seagate ST-225 MFM hard drives. They plugged into an external controller card, and the driver functionality was included in the card firmware. DOS discovered the hardware at boot via BIOS calls and could use it and boot from it. The HDs were accessed using the same DOS calls that were used to access the floppies, with the driver routing the calls to the right hardware for execution. >> NT finally removed that requirement and could be booted without DOS, >> but the issues of maintaining backwards compatibility made getting >> there a one step at a time process. > > At one time, MS was fiercely loyal about compatibility. (Allegedly, > that's why IBM fired them from OS/2.) But that was the old days. Those > days are long gone. They really don't care as much anymore. For > example, they want Win32 to die in lieu of "Metro" (or "Modern UI" or > whatever they're calling it now). IBM didn't fire them. They *quit*. MS and IBM disagreed about direction. MS wanted to develop OS/2 solely for the new 386 platform, which had the address space and memory management something like OS/2 really needed. IBM said "We promised we would support the 286, so you will create code for it." MS already had Windows under development, and decided to leave the OS/2 development partnership. The nail in OS/2's coffin came when IBM declined to support the new generation of 32 bit Windows apps. (The 286 had severe lacks, like an instruction to enter Protected Mode, but none to *leave* it. You got out of protected mode by doing a CPU reset. There were attempts to get Unix up on 286 systems, by outfits *including* AT&T, and *all* had major problems centered around the differences between real mode and protected mode, and the lack of true virtual memory support. I don't especially blame MS for wanting to bypass the 286 and develop OS/2 for the 386, because the 386 *had* the required hardware support for the things a proper multitasking [and multi-user] OS needed to do. If IBM had done as MS asked, we might all be running OS/2 now.) >>> Hasn't this already been discussed to death before? MS was later sued >>> (and lost) for illegally bundling their DOS with their Windows. I >> >> I don't recall that, and rather doubt there was anything illegal about >> it. MS owned MSDOS and Windows, and could use them and bundle them as >> they desired. > > Apparently not. They lost a lot of money. They claimed that it was > technically impossible to use any other DOS, but it was later shown > that was totally wrong. They just didn't want anyone else to compete > with them. Who lost a lot of money? Not MS. And there wasn't much hope of others competing with them. The earliest PCs were floppy based, and you booted from a DOS floppy. The DOS version you used was the one bundled with the PC by the manufacturer, but all were based on MSDOS. Fast forward a bit. Hard drives were increasingly available and affordable. By the Win98 days, you most likely bought a PC with a hard drive with Windows pre-installed by the vendor. The vendor licensed both DOS and Windows from MS. I am not aware of *any* vendor who sold systems bundled with DR-DOS who were not in the embedded market. DR-DOS was an after the fact replacement by people who wanted to run it. It did not come with the system they bought. While you *could* run Win9X on top of it, next to no one actually *did*. Why should they? >> You could indeed boot Windows atop DR-DOS, but why bother? > > No. It was long known (and bragged about, "faster!") that DR-DOS could > boot Windows 3.1. That's not the issue. Microsoft intentionally > bundled their MS-DOS so that nobody else (e.g. PC-DOS or DR-DOS) could > run Win95. They purposely said it was impossible, but it was very > easily proven otherwise. This is similar to (but worse) than the old > AARD warnings. I repeat, why bother? DR-DOS might well have been faster for Win 3.1, because Win 3.1 was a multitasking GUI shell on top of DOS, and used DOS for underlying OS functions like access to the file system. Win9X steadily reduced dependence on underlying DOS. Win98 used DOS as a boot loader. I doubt the speed difference of booting Win98 from DR-DOS vs MSDOS would be easily measurable, and once it was up, the differences would be irrelevant. >> You would only be likely to do so if you already ran DR-DOS and wanted to run >> Windows too. And remember, DR-DOS began because DR had customers who >> wanted a ROMmable version of DOS for embedded applications. MSDOS at >> the time was not architected to provide the required separation >> between code and data, and could not be embedded in ROM. Offering >> DR-DOS as a consumer product was a later development. > > I could be wrong, but I thought DR-DOS was meant to capitalize on the > MS-DOS craze. Since PC-DOS cloned CP/M, the makers of CP/M-86 decided > to clone DOS. (If you can't beat 'em, join 'em.) Of course, Novell > later bought DR-DOS and made a lot of improvements. (But it was > Caldera/Lineo who gave up on it.) Having developed a compatible version of DOS that could be embedded in ROM by OEM customers, it was a hop, skip, and jump for DR to package it as a retail product. Why not? OEM sales paid for doing it. Consumer sales were gravy. But using it meant installing it after the fact, unless you bought PC clone hardware that didn't *come* with an OS. If you bought IBM, Compaq, or other prominent vendor's kit, it did. >> Most folks who got Windows got it as the next step beyond DOS, and >> wanted to simply install it and run it. They did not want to first >> install a flavor of DOS and then install Windows on top of it. > > It's the same kind of thing already. Win9x still had a separate DOS, > and I think it even still ran "WIN.COM"! But it's just (barely) hidden > where you think it's one single product (which just isn't true). >> And then, as now, people generally bought Windows PCs with the OS >> already installed by the vendor. > > There were preinstalls of all kinds of OSes, even OS/2. Heck, don't > forget that some versions of OS/2 could run Windows (3.x) as a > subsystem. Microsoft was still working on (and selling) all three > OSes, at the same time, for many years. Heck, couldn't OS/2 boot any > DOS, and not just MS-DOS [sic]? I recall the Windows version of OS/2. So tell me: *who* actually bundled OS/2 with machines? :-) >> I remember the early days when the PC was first out, and MSDOS/PCDOS, >> Digital Research CP/M 86, and the UCSD P-system were all fighting for >> a chunk of the PD market. MS won. The others lost. Deal with it. > > PC-DOS was far cheaper, AFAIK. Not sure about other advantages or > disadvantages. PC-DOS was IBM's licensed version for MS-DOS, based on MS code. The fact that IBM chose to license it and supply it with the systems they sold was a major factor in MSDOS becoming dominant. The other factor was availability of applications. People buy computers to perform tasks, and buy programs to run on the computer that can do those tasks. Early MSDOS looked a lot like CP/M under the hood for that reason. There was a fair sized existing market running 8 bit machines using CP/M, and an intent was to make it easier to port existing CP/M applications like WordStar and VisiCalc to the 16 bit PC environment. There's an apocryphal story from back then that IBM was interested in licensing CP/M 86 for the PC, but DR's CEO was more interested in flying his plane than meeting with the IBM VP. Another story had DR talking to IBM, not liking the terms offered, and declining. That may have been a fatal error on their part. > I'm not talking about bad assumptions. I'm talking about explicit bugs > that MS refused to fix. So Quake ran just fine under Win95, but it > wouldn't run at all under NTVDM. Microsoft just didn't care. Of > course, soon after that, all the following id Software games were > "Windows only". Gee, I wonder why. Tell me why MS *should* have cared and *bothered* to make fixes in DOS for that case? Because *you* wanted it? And Id did the same thing every other game developer did. DOS was dying out. Windows was taking over. The persons buying and running the games would be doing so on Windows machines, so game developers wrote new games to run in the Windows environment, that did not assume they were the only thing running and owned the machine, because they wouldn't be and didn't. And the other point overlooked in discussions like this is "Who is the *customer?*" The customer is the entity that actually *pays* MS for Windows. My current desktop is a refurb Dell box dual booting Ubuntu and Win7 Pro. It came with Win7 Pro pre-installed. *I'm* not MS's customer - *Dell* was. *They* paid MS a license fee to install Win7. The other potential customer for MS is the Enterprise, represented by the CIO who will sign off on a site license for hundreds or thousands of machines. Hid company pays MS for that license. The employees using those machines aren't MS's customer. The company they work for is. It is possible for an individual to buy a shrink-wrapped copy of Windows to upgrade an existing system or install on a new one. (The DIY gamer crowd who builds their own machines does so.) But that's a tiny fraction of the market, and most folks get Windows re-installed on the machine they buy. > Speaking of "business", Valve doesn't seem interested in Windows 8 and > its exclusive App Store (nor the royalties they'd have to pay). This > is probably why they're working so hard on SteamOS (Linux-based). While Win8 may have an app store, I'm aware of no requirement to buy from it. Valve can still write games that will run on WinNT based platforms that users can buy, install, and play. ______ Dennis https://plus.google.com/u/0/105128793974319004519 ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user