I don’t even call MS-DOS an “operating system”, despite the name. By modern standards, it’s barely a bootloader. That, and calling it an OS detracts from the functionality of Windows 3.x/9x, even deluding people into insisting they’re not “operating systems” in the first place, but just shells over MS-DOS. Despite them have everything you’d consider a modern OS to have, like an API, scheduler, memory manager and device manager/driver model. By the time Windows ME came out, MS-DOS was literally just a bootloader, you couldn’t even interact with it anymore. And now it’s been replaced with NTLDR, which is probably significantly more sophisticated and featureful than MS-DOS, and is still just a bootloader. Hell, UEFI itself is more sophisticated than MS-DOS.
I don’t even call MS-DOS an “operating system”, despite the name
Not exactly a DOS fanatic here (started using Linux in 1995). But I think that’s unfair. Even fairly early versions of DOS featured a lot of what you’d expect in an operating system for hardware as basic as the IBM 5150. E.g. …
command interpreter
(a very poor) text editor
disk management tools
debugger
linker
BASIC
simple scripting
Later versions included disk compression, screen editor, “modern” BASIC, games, defrag tool, etc.
UEFI also isn’t a bootloader. It’s an execution environment rather similar to MS-DOS in that it doesn’t provide process management or multitasking but it can load executables and provides an API to them to abstract the hardware layer away and a UEFI application can give the control back to the UEFI. Many applications running under the UEFI environment are bootloaders but there are UEFI shells and it’s possible to write all kinds of applications for it, like a solitaire or a VisiCalc-like spreadsheet
Actual bootloaders like GRUB or NTLDR don’t provide anything of that sort, only functionality for loading other programs and irreversibly giving them full control of the machine.
MS-DOS did have some of those things though. It had an “API” that was invoked through interrupt 21h. You could interact with other devices through other interrupt vectors.
Microsoft sold Windows as an operating system on top of an operating system, sure enough (there are ads with that messaging for Windows 3.1)
Still, there’s that period from 1981 to 1985 where there was no Windows. What did people do with their OS-less PCs in those 4 years?
“[MS-DOS]’s been replaced with NTLDR” is somewhat ahistoric: NTLDR existed in parallel to MS-DOS-as-a-distinct-product (WinNT 3.1 came out in July 1993, MS-DOS 6.22 in April 1994), while the Windows3.x-line-to-WindowsNT-line transition was a complete OS swap underneath, even if Microsoft did a very good job of making that implementation detail disappear from the regular user.
There have been drivers for DOS that were a must-have to operate certain hardware, and Windows 95-ME knew to fall back to those real-mode drivers in the right moment, something that wasn’t really possible to retrofit into WinNT.
Only when there was sufficient Windows-level driver software out there that was more easily ported between Win9x and WinNT (and when that old MS-DOS-only hardware aged out of the pool of widely used stuff) Microsoft dared to move away from the bare-metal MS-DOS support that 95-ME offered (“regular” MS DOS applications were never a problem due to NTVDM.)
As for sophistication and feature sets, NTLDR is more featureful than MS-DOS’ boot sector (e.g. NTLDR loads the registry, it has to select the right kernel based on CPU properties, …) but that comes with the territory: All of computing becomes ever more sophisticated and featureful, for better or worse. But that seems like an apples-to-oranges comparison.
I don’t even call MS-DOS an “operating system”, despite the name. By modern standards, it’s barely a bootloader. That, and calling it an OS detracts from the functionality of Windows 3.x/9x, even deluding people into insisting they’re not “operating systems” in the first place, but just shells over MS-DOS. Despite them have everything you’d consider a modern OS to have, like an API, scheduler, memory manager and device manager/driver model. By the time Windows ME came out, MS-DOS was literally just a bootloader, you couldn’t even interact with it anymore. And now it’s been replaced with NTLDR, which is probably significantly more sophisticated and featureful than MS-DOS, and is still just a bootloader. Hell, UEFI itself is more sophisticated than MS-DOS.
Not exactly a DOS fanatic here (started using Linux in 1995). But I think that’s unfair. Even fairly early versions of DOS featured a lot of what you’d expect in an operating system for hardware as basic as the IBM 5150. E.g. …
Later versions included disk compression, screen editor, “modern” BASIC, games, defrag tool, etc.
UEFI also isn’t a bootloader. It’s an execution environment rather similar to MS-DOS in that it doesn’t provide process management or multitasking but it can load executables and provides an API to them to abstract the hardware layer away and a UEFI application can give the control back to the UEFI. Many applications running under the UEFI environment are bootloaders but there are UEFI shells and it’s possible to write all kinds of applications for it, like a solitaire or a VisiCalc-like spreadsheet
Actual bootloaders like GRUB or NTLDR don’t provide anything of that sort, only functionality for loading other programs and irreversibly giving them full control of the machine.
Yes, but it’s not an operating system either.
A good question is: how many people use UEFI as the primary mechanism to manage their PC?
DOS? Millions of people did.
UEFI: Zero, as far as I’m aware.
MS-DOS did have some of those things though. It had an “API” that was invoked through interrupt 21h. You could interact with other devices through other interrupt vectors.
Microsoft sold Windows as an operating system on top of an operating system, sure enough (there are ads with that messaging for Windows 3.1)
Still, there’s that period from 1981 to 1985 where there was no Windows. What did people do with their OS-less PCs in those 4 years?
“[MS-DOS]’s been replaced with NTLDR” is somewhat ahistoric: NTLDR existed in parallel to MS-DOS-as-a-distinct-product (WinNT 3.1 came out in July 1993, MS-DOS 6.22 in April 1994), while the Windows3.x-line-to-WindowsNT-line transition was a complete OS swap underneath, even if Microsoft did a very good job of making that implementation detail disappear from the regular user.
There have been drivers for DOS that were a must-have to operate certain hardware, and Windows 95-ME knew to fall back to those real-mode drivers in the right moment, something that wasn’t really possible to retrofit into WinNT.
Only when there was sufficient Windows-level driver software out there that was more easily ported between Win9x and WinNT (and when that old MS-DOS-only hardware aged out of the pool of widely used stuff) Microsoft dared to move away from the bare-metal MS-DOS support that 95-ME offered (“regular” MS DOS applications were never a problem due to NTVDM.)
As for sophistication and feature sets, NTLDR is more featureful than MS-DOS’ boot sector (e.g. NTLDR loads the registry, it has to select the right kernel based on CPU properties, …) but that comes with the territory: All of computing becomes ever more sophisticated and featureful, for better or worse. But that seems like an apples-to-oranges comparison.