>The system boots from the "system" partition, and then the system boots the operating system in the "boot" partition.
With:
The operating system boots from the "boot" partition, and then it is loaded from the "system" partition.
Or:
The boot files are in the "boot" volume, the operating system files are on the "system" volume.
In any case, you shouldn't put a folder containing the BCD (Boot Configuration Data) in a \boot folder and the BOOTMGR on a volume that you call "system" or you don't call the "other" volume "boot".
About SysWow64/System32 sure it has been done for compatibility reasons but while System32 had to be kept, the name of the "new" folder could have been better chosen, like (say) Old32Sys, or Legacy32, or similar.
Of course both represent not a problem, the naming is not intuitive and allows for a quick laugh, that's all.
>The operating system boots from the "boot" partition
That's why the "Boot" tag moves to whichever partition is host to the running OS. The "system", as in the boot loader, is not the OS, is separate from the OS, and initializes before the OS.
>About SysWow64/System32 sure it has been done for compatibility reasons but while System32 had to be kept, the name of the "new" folder could have been better chosen, like (say) Old32Sys, or Legacy32, or similar.
The name stems from the Windows on Windows[1] subsystem, or WoW for short, which serves to execute 16-bit executables on 32-bit Windows NT. The most famous component of this subsystem is NTVDM[2].
Windows 32-bit on Windows 64-bit[3], or WoW64 for short, is the 32-bit practical equivalent to WoW for 64-bit Windows NT. Whereas WoW relied heavily on virtualization and emulation, WoW64 instead presents a 32-bit system library that 32-bit programs are silently redirected to.
As an aside, C:\Windows\System is still around for backwards compatibility even in 64-bit Windows. It houses 16-bit binaries.[4]
On Bios, the BIOS executes code in the MBR (Master Boot Record) that chainloads the PBR (Partition Boot Record) of the active (or boot) flagged partition in the partition table.
The code in the PBR (Partition Boot Record) chainloads a file named BOOTMGR (which is a boot manager) that looks at what to boot in a file residing in the \boot folder called BCD (Boot Configuration Data).
Q:How do you call the partition (volume) where this stuff is?
I know how Windows Boot Manager (aka WBM, BOOTMGR) works. :P
EFI or BIOS loads WBM, which resides in the EFI system partition or active partition (also tagged "System") as applicable, which then reads the Boot Configuration Data (aka BCD) also located in that partition. Windows itself is located in a separate partition from WBM and BCD.[1]
WBM then boots a specified Windows installation from a given partition, which is tagged as "Boot". If desired, WBM can also chainload into another bootloader (eg: NTLDR, Windows 9x bootloader, GRUB, etc.) to boot something other than Windows NT6 and up.[2]
I did once see someone who claimed to have knowledge of Windows internals say that "Windows subsystem for X" was a general naming convention for Windows subsystems, e.g. the code that implemented the audio architecture might have been called "Windows subsystem for sound", or similar. And therefore "Windows subsystem for Linux" was the natural extension of this policy for the code that implemented the Linux compatibility architecture.
However, I've had a bit of a web search on a few occasions since then, and not been able to find any concrete evidence to support the existence of any other "Windows subsystem for X" subsystems. So that might have just been a random idiot making stuff up, as far as I can tell. Someone with better searchengine-fu might be able to find something more conclusive though?
>and not been able to find any concrete evidence to support the existence of any other "Windows subsystem for X" subsystems.
They were originally known as Microsoft Subsystems[1][2] and encompassed Win32, POSIX, and OS/2.
This was followed by Windows Services for UNIX along with the demise of POSIX and OS/2 subsystems, which was subsequently succeeded by Windows Subsystem for Linux.
Yes, this means Win32 is to this day a subsystem of Windows NT.
Microsoft has always been terrible at naming; it seems to be part of their DNA. The only time their products have good names is when they buy those products from someone else and keep the name (e.g., Powerpoint).
I'm inclined to believe something as simple as "the suits say you can't have Linux be the first thing," especially since no one can seem to come up with a better explanation.
When they released a product for UNIX servers they didn't even mention Windows. "Advanced File and Print Services for UNIX". If you wanted to run a WindowsNT Domain on a UNIX (SCO) server while ignoring SAMBA you forked out tons of cash (per seat) to license this software.
tangential, but I always wished that somebody with more time and knowledge than me would have created a slim bootable linux hypervisor that could then boot Windows, in which you could then run a linux that "knew about/shared memory with" the hypervisor. Think of the goal as being, I can reboot the linux or I can reboot the Windows (or other OSes) without rebooting everything.
I would have liked it better if VMware worked that way, or virtualbox now.
Also, wasn't it back in the day people did the fastest initial ritual of using DOS for installing a whole big Win/*nix OS much like internet explorer for Chrome? Hilarious imagining DOS being the host for Linux programs.
This is really neat, would it work on ArcaOS or OS/2? Are there some limitations on the linux binaries, i.e. addressable space, etc. or pretty much anything that can be compiled with musl would likely work?
These people really exist? I cringe everytime I even have to run few commands on Windows when I cannot use gitbash or the likes cause of things.. the ergonomics, the ugly tools, and then (haha works both ways) the totally unreasonable names.
I thought even Windows power users were convinced that dos environment is sad and that is how we got Powershell?
Please dos environment lovers speak up and defend it! (:
Personally I'm fond of MS-DOS because of all the ugly, arbitrary hackiness of it all. It's a beautiful mess. It's also an incredibly lean and responsive OS compared to a modern day OS where every keystroke and mouse movement goes through a dozen layers of abstraction. DOS gives you close to direct access to hardware.
It uses the Virtual 8086 Mode of the 386. The Intel 80386 Reference Programmer's Manual explains that well [1], I think.
So, in this case, the first mega of RAM, containing MS-DOS and the BIOS is virtualized in a VM86 box while the CPU is running in protected mode, permitting the host OS to cohabit with a protected-mode OS.
It is in fact, a VM86 monitor. Another example of such a program is EMM386 or similar like Jemm386 whose source code is available [2].
for some reason this title reminded me of my first "encounter" with UNIX.
i believe it was the first issue of the german computer magazine IX. it praised the benefits of UNIX over other systems and somehow that got me hooked. i didn't have access to a UNIX system but i was searching for it. next i got a book from O'Reilly called "Dos meets UNIX". my first O'Reilly book. it sounded like what i needed, since DOS is what i had, and UNIX is what i wanted. i don't remember what i did with that, but i believe the book pointed to some utilities that emulated UNIX commands in a DOS environment.
i finally got access to a real UNIX system at university (SUN and AIX) and then soon came Linux, which i installed dualboot, and with every upgrade/reinstall the DOS partition shrank and the Linux partition grew, and the rest is history.
The things you feel are Microsoft, didn’t originate with Microsoft. MS-DOS was a 16 bit clone of CP/M for the 8086. CP/M was loosely designed in the fashion of TOPS-10 from DEC. Windows was originally a graphical shell over DOS loosely modeled off of Xerox’s technology, and Windows NT’s internals took very liberally from VMS.
If we compare this pedigree to that of UNIX, UNIX would appear to be the brain dead system. Multics was largely a disaster, and it informed many parts of UNIX’s design, but UNIX was written largely to allow Ken Thompson to play an early video game (that he wrote), Space Travel.
The two systems just have very different origins and very different designs based upon their initial use cases. However, people thinking that DOS or Windows are somehow less-than is just ignorant of history, and I say this as someone who loathes modern Windows.
"That thing was a disaster, so let's do the opposite of it" isn't more brain-dead than "let's superficially copy the familiar/trendy thing". (I say "superficially" with regard to TOPS-10→CP/M→DOS and Xerox→Windows copying; the VMS→NT copying is a much more in-depth influence and hiring of talent.)
I agree, but also CP/M to DOS wasn’t superficial. When Paterson did the Z80 port of MS-DOS by running it through an assembly language translator he’d written for the task, the resulting MSX-DOS could run quite a bit of CP/M software without issue. The only major problem was MSX-DOS disk formats using Microsoft’s FAT filesystem. This isn’t unusual though since many CP/M machines had incompatible disk formats anyway.
On a more constructive note, MS-DOS and Windows operate on a fundamentally different philosophy from UNIX. That doesn't make them inherently bad. The vast majority of users even relate better (FSVO better) to the way Windows does it.
> On a more constructive note, MS-DOS and Windows operate on a fundamentally different philosophy from UNIX
Not sure I follow. There are many concepts in DOS that are the same as Unix: pipes, redirecting output, stdout, stdin, and stderr. DOS's batch language was limited, but conceptually it allowed for very Unix like chaining of commands. I suppose you could argue / vs - for command line paramaters... but conceptually they were similar. Unix file systems could be case sensitive or not.
I think about the only thing that philosophically was all that different was drive letters, multitasking and multiuser. Unix didn't do drive letters, and DOS didn't do multitasking and multiuser. Eventually Windows did, and grew up to compete nicely with Unix.
MS-DOS is still widely used in embedded, MS still sells it to OEMs. There is also the Free and Open Freedos. Maybe you have a small program you developed on Linux and maintain on several OS's, and you don't want to go through the nightmare of maintaining a DOS port as well.
What am I missing?