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

Reply via email to