5 ms·
The only way this would have happened is if Dave Cutler had never left DEC. Microsoft had already been the biggest commercial UNIX vendor with Xenix, and obtai
by chasil 3y ago
The only way this would have happened is if Dave Cutler had never left DEC.
Microsoft had already been the biggest commercial UNIX vendor with Xenix, and obtaining the architect of the VMS kernel gave them a brain trust that IBM could not match.
I don't think that Dave Cutler would have been happy as one of several contributors to OS/2 as it slowly grew out of the 286. I think it was dead the moment he walked in the door.
- cmrdporcupine 3y agoExactly this, and we should not valorize OS/2 as an operating system foundation. The kernel in NT is far superior. The "alternate timeline" I'd be more interested in is one where NT had propagated as a more open solution with either open source or more reasonable licensing costs, with a better more VMS and/or Unix-like CLI driven user space and multiple vendors offering systems somehow.
- chasil 3y agoOn the one hand, I have no idea why NT chose CMD.EXE as their command shell instead of pdksh; most would ascribe this to the influence of OS/2. NT was built with a POSIX interface, and Korn would have been a much better fit; one objection might be that NT forks processes very slowly, which is a major aspect of Korn. On the other hand, I don't believe Dave Cutler would have ever allowed /usr/src to ship with the source code to the kernel.
- sumtechguy 3y agoIll take a stab at that. command.com scripts were very similar to cmd.exe scripts. That was important to get people to actually use the thing. You can see the same thing today with powershell. PS is in many ways better. Except it does not run the old scripts very well. Even something simple like 'dir /s' does not work in powershell you have to do it the powershell way. If they had moved to sh style command eventually they would have been fine. But... their existing base would have been very unhappy with the results in the short term.
- chasil 3y agoAt the same time, Xenix had a huge influence on Microsoft. I can't believe that anyone with taste would want CMD.EXE, and the criticism is deep. https://blog.nullspace.io/batch.html https://blog.nullspace.io/batch.html
- sumtechguy 3y agoOh no doubt it is a rubish language to program in. The thing is their existing base had a set of scripts that already worked. These are not 5 line scripts either. One place I worked at the thing was probably 20k lines of batch script. To hand them a new shell is akin to saying 'throw everything you did out and redo it'. Those scripts were probably home grown by people who had other things to do (you work with what you have). Or by expensive consultants. They 'must work' or 'why am I upgrading to this?' It is not necessarily hard to do. It just an extra expense most businesses are going to skip if they can.
- skissane 3y agoSome reasons why CMD.EXE is so bad: (1) COMMAND.COM cut a lot of corners, in significant part due to being written in assembly and designed to run on machines with very low memory (DOS 1.0 would run on machines with only 32KB of RAM) (2) Backward compatibility meant a lot of the questionable decisions in (1) had to be maintained (3) At some point Microsoft stopped investing in it, and didn't do anything further to add new features or file off more rough edges I think (1) and (2) were kind of inevitable, but (3) is a decision Microsoft has made much more recently I wish they'd open-source CMD.EXE and start accepting PRs for it – I think some of the worst things about it (e.g. the "Terminate batch job (Y/N)?" prompt which is impossible to turn off without patching the executable) would get fixed. But I doubt they'll do that because they just want people to focus on PowerShell instead–and before PowerShell, it was the same thing for VBScript
- WorldMaker 3y agoAt this point ConHost.exe is open source [0] so it is maybe not a stretch to expect Microsoft to open source CMD.EXE at some point. Though with PowerShell being cross-platform and already open source, I personally don't think there's enough to gain in some sort of better open source CMD.EXE fork. I'd be interested in being proved wrong on that, but I'm also happy enough with PowerShell these days I'm not in a hurry to return to CMD.EXE. [0] https://github.com/microsoft/terminal/tree/main/src/host https://github.com/microsoft/terminal/tree/main/src/host
- lproven 3y ago> I have no idea why NT chose CMD.EXE as their command shell Because the OS is a sequel and replacement to DOS, and so it has a DOS-like shell. Speaking as a former professional VMS, DOS, Windows and NT sysadmin: I preferred CMD to any Unix shell, and I still do. I had boxes to run. I am not a programmer and I don't want programmers' tools. It is much more use to me to be able to do: move *.00? oldlogs And have it pick all files matching the wildcard and move them to the folder -- without needing to be told it's a folder -- than it is for me to be able to write shell scripts.
- floating-io 3y agoI think you'll need to provide a better example, since the equivalent in most unix shells is... mv *.00? oldlogs Just sayin'. =)
- rogerbinns 3y agoI see your =) and raise you this: ren *.htm *.html
- lproven 3y ago[Author/submitter here] > we should not valorize OS/2 as an operating system foundation. I think we should, because we should consider the timing here. > The kernel in NT is far superior. Sure it is, but it came along 3 years later, at a time of very rapid industry progress, and it really wanted a Pentium with SCSI disks and 32MB of RAM to work half decently. I know: I specced, bought, installed and supported the kit, and the OS, in production, in 1993. Whereas OS/2 2.0 was a perfectly good, capable, multitasking 32-bit OS that ran usefully in 4MB of RAM on an IDE -- not EIDE, plain old sub-504MB IDE -- disk, and it was running in 1990. If MS hadn't killed it, it was nearly ready for launch. Networking and all. That is the point of the article. > with a better more VMS and/or Unix-like CLI driven user space and multiple vendors offering systems somehow. DEC could have had that, had it wanted, but it wasn't its business model. But DEC blew a billion dollars on trying to build the VAX 9000 https://en.wikipedia.org/wiki/VAX_9000 https://en.wikipedia.org/wiki/VAX_9000 ... while ignoring the RISC chip and OS for it that its own OS guru was developing. https://en.wikipedia.org/wiki/DEC_PRISM https://en.wikipedia.org/wiki/DEC_PRISM https://en.wikipedia.org/wiki/DEC_MICA https://en.wikipedia.org/wiki/DEC_MICA So he went off and built the OS for Microsoft instead. Somehow it managed to salvage Alpha, turn it into a product and sell it, with its former guy's OS running on it, and it also managed to port its VAX OS to Alpha and sell that for a while. But it wasn't enough. Compaq, already a pawn of MS and Intel, bought DEC, handed over the industry's fastest RISC chip to Intel who killed it, and failed to sell the OSes or hardware effectively, because they were just an upmarket PC cloner and didn't know what to do with it. So HP bought Compaq, and HP also being a pawn of Microsoft, killed one of the remaining competitive bits: HP OpenMail, an Exchange-server compatible groupware server for Unix that was about 2 orders of magnitude more scalable than MS Exchange on NT Server. https://en.wikipedia.org/wiki/HP_OpenMail https://en.wikipedia.org/wiki/HP_OpenMail HP traded this for a next-gen sequel to PA RISC -- which turned out to be the dismal Itanium, of course.
- WorldMaker 3y agoMicrosoft could still open source some or all of the NT kernel and try to compete for mindset. It's still incredible how much work they put into porting the NT Kernel for some embedded scenarios (you can run it on a Raspberry Pi or things smaller than it) in the Windows 10 lifetime but couldn't seem to understand why more people weren't licensing it more when Linux is cheap as free for embedding. Even when Microsoft went to "free licenses" (still with too many caveats such as type and size of screen attached) the open source appeal was hard to get past. I'm still somewhat surprised with all of Microsoft's cloud focus and how much of Windows is getting open sourced that the NT Kernel itself hasn't been a priority to win back embedded applications that Microsoft has lost to Linux especially. I certainly understand the massive sunk costs in the NT Kernel that some accountants would see it as too much very expensive proprietary R&D, but it's still interesting to imagine what would happen if Microsoft got over that hump, even if they kept the Win32 userspace and most of the rest of Windows proprietary.
- floating-io 3y agoIt may be that they can't release it open source. How much of other peoples' proprietary code is in that kernel? To be clear, I'm not talking illegal theft or anything of the sort -- but it's quite possible that they've licensed things over the years (code, patents, ...) and thus cannot open source it. Not saying this is or isn't true, just something to consider when trying to figure out the why of things.
- chasil 3y agoActually, a lot of the kernel code has leaked in the past, so this question can be independently answered. I know that there were a few leaks at different times. Some of it appears to be here: https://github.com/0x5bfa/NT5.1 https://github.com/0x5bfa/NT5.1
- WorldMaker 3y agoThey did finally kick their fork of Adobe's Type 1 Font Manager out of the Kernel in recent years (somewhere in the middle of Windows 10 as I recall), so that's definitely a complication to expect.
- lproven 3y ago[Author/submitter here] > The only way this would have happened is if Dave Cutler had never left DEC. Yes and no. Things happened the way they did because DEC cancelled Prism and Mica and he decamped to MS. But the point here is that, 3 years before NT, MS had a very capable 386 OS and this shows it, complete with screenshots. Windows 3.0 was extremely poor by comparison and I speak as someone who deployed and fixed countless copies of Windows 3.0, 3.1, and Windows for Workgroups, all the while running OS/2 2.0 at home. We're not talking about that alternate history here. What the article is about is that MS had a complete working 386 OS in 1990... but chose to kill it, and it would be another 3 years before its own in-house version was ready, and a decade after that before that in-house 32-bit OS finally replaced DOS-based Windows.
- chasil 3y agoFrom Showstopper! The Breakneck Race to Create Windows NT and the Next Generation at Microsoft by Zachary, we learn that Microsoft hired Cutler in October of 1988. By this time, Microsoft had already maintained a 32-bit kernel with a flat memory model as Xenix. They disposed of it because AT&T was entering the commercial UNIX market and Microsoft would be at a distinct disadvantage. This means that Cutler had been expounding on his grand kernel plans for two years prior to the 32-bit OS/2 from 1990, and staff at Microsoft could very well grasp the significance. Chapter 4 of Zachary, Blind Alley, claims that the NT development kernel booted on an i860 PC in July of 1989. This being the case, the knives must have been out for OS/2 for some time. https://en.wikipedia.org/wiki/Dave_Cutler https://en.wikipedia.org/wiki/Dave_Cutler
- lproven 3y agoFrom the start, there were 3 planned editions of OS/2. 1.x - 16-bit, for the 80286 2.x - 32-bit, for the 80386 3.x - 32-bit, portable and CPU-independent, aimed at RISC chips. MS also had a multitasking DOS 4, never fully commercially released. https://en.wikipedia.org/wiki/MS-DOS_4.0_(multitasking) https://en.wikipedia.org/wiki/MS-DOS_4.0_(multitasking) http://www.os2museum.com/wp/multitasking-ms-dos-4-0-lives/ http://www.os2museum.com/wp/multitasking-ms-dos-4-0-lives/ What became NT started out as OS/2 3. It was initially developed on the Intel i860 RISC chip, codenamed N10. OS/2 3 was codenamed OS/2 NT for N-Ten.