Run Linux Programs on DOS
github.com
github.com
What am I missing?
It does both syscalls in linux style "for linux" programs (WSL1) and it also happens to be "for running linux" (WSL2).
I don't get the confusion, to be honest. Do you also feel that "Windows driver for HP Deskjet" is a way to run Windows on your HP Deskjet?
http://www.multibooters.co.uk/system.html
And that of course puts 32 bits executables in SysWoW64 and 64 bit executables in System32.
The system boots from the "system" partition, and then the system boots the operating system in the "boot" partition.
system32 holding 64-bit binaries in 64-bit Windows is 300% backwards compatibility to accomodate legacy hard-code, though.
Compare:
>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.
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]
[1]: https://en.wikipedia.org/wiki/Windows_on_Windows
[2]: https://en.wikipedia.org/wiki/Virtual_DOS_machine#Windows_NT...
[3]: https://en.wikipedia.org/wiki/WoW64
[4]: https://en.wikipedia.org/wiki/Special_folder#List_of_special...
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?
A:System
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]
[1]: https://en.wikipedia.org/wiki/Windows_Boot_Manager
[2]: https://en.wikipedia.org/wiki/Booting_process_of_Windows_NT#...
The "ownership" :)
("MyBrand (TM) Solution for Opportunity")
Try reading it as "DOS subsystem for [running] Linux".
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?
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.
[1]: https://en.wikipedia.org/wiki/File:Windows_2000_architecture...
[2]: https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem
I would have liked it better if VMware worked that way, or virtualbox now.
Hilarious
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.
It seems to be using the VM86 mode of the 386 (https://en.wikipedia.org/wiki/Virtual_8086_mode). So it won't work if you are using EMM386 by example.
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! (:
This naming scheme which originated from Windows is atrocious. If anything, it should be Linux subsystem for DOS, not the other way around.
Edit to answer myself: found the answer in this comment from the last time this was discussed: https://news.ycombinator.com/item?id=28574202
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].
[1] https://pdos.csail.mit.edu/6.828/2018/readings/i386/c15.htm
[2] https://github.com/Baron-von-Riedesel/Jemm
edit: the link [1] was wrong
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.
C:? case insensitive file system?
Why would anyone who can run linux run this shit?
Why would anyone who can run DOS run Linux?
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.
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.
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.
ah, yes, that's handy for when you really need readme.txt, Readme.txt, README.txt, README.TXT, ReAdMe.TxT all to reside in the same folder :)