16

A related question is: why was the existing Windows not ported to the Intel i860?

In 1985 Windows 1.0 was released. AFAIK it had everything: Win32 API, DOS support, multi-tasking. The last OS of this production line was Windows ME in 2000.

Why did Microsoft create a whole new OS in 1993: Windows NT 3.1? Which was roughly the same as Windows 3.1? (Win32 API/DOS support/multi-tasking)

Now they had to write all code twice.

On Wikipedia it says Windows NT was made for the i860. The Intel i860 is a RISC CPU. But I think the existing Windows kernel already had multi-tasking. So it would not be so hard to port it to a new architecture. For example the Linux kernel supports many different architectures. Also it is not an argument because they later added x86 support to the NT kernel. So if it is possible to add x86 to an RISC kernel it should also be possible the other way around.

My first OS was Windows 98 so I never used these OSes. Please respect this...

Edit: I was told Windows 1.0 did not have the Win32 API. But it does not make a difference. Why didn't they add the Win32 API to the existing Windows? Instead they created Windows NT to later port the Win32 API to Windows 95.

10
  • 1
    Comments are not for extended discussion; this conversation has been moved to chat.
    – Chenmunka
    Commented Dec 6, 2022 at 7:18
  • 6
    Does this answer your question? Why was the DOS kernel discarded?
    – OrangeDog
    Commented Dec 6, 2022 at 21:48
  • 1
    @OrangeDog This question is not about DOS.
    – zomega
    Commented Dec 7, 2022 at 8:47
  • 3
    @zomega Windows 1.0 - 3.11 still used the DOS kernel, so your question is partly about why Microsoft did not merely continue with the DOS kernel. Commented Dec 7, 2022 at 15:28
  • 1
    That’s fine. Your reworded question is also partly about the DOS kernel. Certainly the answer to that question involves the DOS kernel. Commented Dec 7, 2022 at 17:46

2 Answers 2

78

Windows 1.0 most certainly did not have Win32; it had limited DOS support, and its multi-tasking was cooperative only (so one wayward program could lock up the whole system).

Like MS-DOS, early versions of Windows were closely tied to the x86 architecture. Towards the end of the 80s, a number of threats for the PC ecosystem were emerging. The first was RISC CPUs, which provided greater performance than x86-style CPUs, and led many to consider that CISC designs like x86 were a dead end (see How much better was DEC Alpha than contemporaneous x86? for example). The second was Unix, which, despite its fragmentation, was considered by many as the future of high-performance computing. In 1988, Bill Gates and Nathan Mhyrvold wanted to build a “Unix killer” operating system, capable of running on a variety of platforms.

As has been explained in answers to your previous questions, DOS and Windows couldn’t easily be adapted to other architectures, so this new operating system had to be developed from scratch. As luck would have it, Dave Cutler was unhappy at Digital at this point, and Microsoft hired him to build its new operating system, which would ultimately become Windows NT.

NT was not intended as a continuation of DOS and Windows; it was intended as the operating system of the future, starting from a clean slate (NT meant “New Technology”). The success of DOS and Windows ultimately meant that NT had to maintain backwards compatibility; but that wasn’t a design goal, and Cutler was against it. The goals for NT were vastly greater than those for DOS and Windows: it was supposed to support all kinds of workloads, from single-user desktops to multi-user servers, on a number of platforms, hosting a variety of application ecosystems (OS/2, POSIX-compliant Unix, Windows etc.), making the best use of the latest hardware of the time.

Why did Microsoft create a whole new OS in 1993: Windows NT 3.1? Which was roughly the same as Windows 3.1? (Win32 API/DOS support/multi-tasking)

Microsoft didn’t create a whole new OS in 1993, it was in development since 1989. Nor did it know in 1989 what Windows would end up like in 1993; Windows 3.0 and its success weren’t predictable in 1989.

Windows NT 3.1 was similar to Windows 3.1 only in that it shared a similar look and feel, general UI principles, and support for the Windows 16-bit API. All of that is veneer; the underpinnings of NT were utterly different to those of Windows 3.1. NT introduced the new Win32 API, which was subsequently ported over to Windows 3.1 (partially, through Win32s) and Windows 95 (with slight differences, notably around Unicode support). It also introduced fully preemptive multi-tasking between Windows applications; Windows 3.1 still relied on cooperative multi-tasking between Windows applications.

The Win32 API was important for NT when it was released, but its importance for the industry as a whole wasn’t a given back then. In fact when development started on NT, its primary target for compatibility was OS/2, and its main API was supposed to be an extended OS/2 API. The switch to an extended Windows API (which became Win32) happened after the sudden success of Windows 3.0. On release, NT supported a number of different APIs, and it’s only because the Win32 ecosystem “won” that others were dropped (to come back later in a different guise, in one instance). The future of PCs as a platform also wasn’t a given when NT was released, and it’s only because x86 (and then x86-64) won that other platforms were dropped. I’ve mentioned this before, but in 1993 it seemed that computing had many possible futures; see this issue of PC Magazine to get a feel for the situation at the time.

Both operating systems (DOS with Windows, and NT) evolved in parallel to support the dominant application ecosystem of the time. Windows continued to receive improvements, and technology from NT, to tide users over on lower-end computers until they became powerful enough to run NT; and NT also was improved to better support workloads that end-users cared about (notably, games). Once NT was capable of running everything most users needed, and became marketable as a desktop operating system, the old DOS-based Windows lineage was abandoned.

I think the existing Windows kernel already had multi-tasking. So it would not be so hard to port it to a new architecture.

The two are entirely unrelated. A kernel can support multi-tasking and still be extremely difficult to port; one example is Windows’s VMM. It’s also possible to have a portable kernel which doesn’t support multi-tasking.

So if it is possible to add x86 to an RISC kernel it should also be possible the other way around.

The NT kernel was designed to be portable from the beginning. The whole idea behind writing it for the i860 rather than x86 was to ensure that the developers’ familiarity with x86 wouldn’t leak into the design.

5
  • 1
    Comments are not for extended discussion; this conversation has been moved to chat.
    – Chenmunka
    Commented Dec 6, 2022 at 7:26
  • @Spencer NT stands for N-Ten. N10 was the code name of the Intel i860 it was made for. Later they said it stands for New Technology.
    – zomega
    Commented Dec 7, 2022 at 16:42
  • 1
    @zomega it’s still significant in that it highlights the fact that it was supposed to be a break from what came before, especially since the second meaning was chosen by the original development team rather than marketing or some other group. Commented Dec 7, 2022 at 16:50
  • Win32S shudders
    – Alan B
    Commented Nov 27, 2023 at 17:10
  • There is an episode of Computer Chronicles youtube.com/watch?v=cHkdQ5CG0PY where they show Windows NT on different architectures to highlight the database SQL Server and CAD software. It shows how NT was able to scale to use more RAM, multiple CPU and other server features
    – CK70
    Commented Sep 23 at 23:20
14

It's a bit like asking why Linus programmed a *nix clone for PC even though DOS already existed. After all, DOS had a shell with all the basic capabilities: command.com had control structures, could start programs and query their exit status, traverse a directory hierarchy and list directory and file contents etc. Both could do batch processing. So what was the point? Why didn't Linus just add anything he felt was missing to a DOS clone?

The answer is that Linux and Windows NT are completely different beasts than DOS (and the Win3.x GUI running on top of it). True 32 bit multi-user, multi-tasking operating systems with a modern memory management, process concept, file system, permission mechanisms and access control. In other words, server operating systems. Running NT and *nix as a personal, single-user workstation (the experience of many users here, I suppose) is actually overkill — you don't really need any of this (well, at least not before we were online all the time).

DOS (and by association, Windows 3.x) were conceptually not server systems, and the needed features mentioned above could not have been implemented on top of them.

9
  • 1
    There was no cmd in— well played. Commented Dec 5, 2022 at 11:54
  • 4
    I thought it was on purpose, alluding to the claim that Windows 1.0 had Win32. But now that you changed it, it’s probably worth noting that the kinds of control structures COMMAND.COM offers are much more primitive compared to its NT and OS/2 successor, never mind Unix shells. Commented Dec 5, 2022 at 13:16
  • 3
    "personal, single-user workstation" - that points to one other core difference. NT was designed from the core to be part of a network, with federated identity management. DOS doesn't have that, Unix didn't, and Linux to this day is essentially stuck with local accounts.
    – MSalters
    Commented Dec 6, 2022 at 10:27
  • 3
    That’s really tied to the history of the platforms. Unix was designed when systems were large and multiple users connected to a single system using terminals. NT was designed much later, and by then it was clear that allowing “heavy” clients to share the same authentication backend was useful. By that point some Unix systems supported this too, e.g. it was common to have university labs full of individual workstations where anyone could log in and find their NFS-hosted home directory. The Linux system I’m writing this on uses federated logins (using sssd.io). Commented Dec 6, 2022 at 16:38
  • 2
    @StephenKitt it still is common to find University labs like that, though they're probably running Windows 10, with possible dual-boot to Ubuntu if they haven't got the hang of WSL yet.
    – OrangeDog
    Commented Dec 6, 2022 at 21:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .