4 ms·
This seems kinda silly? And some of the examples are not really true? > MS-DOS requires only 3 files to boot You can do it in two for Linux. The kernel imag
by kelnos 1y ago
This seems kinda silly? And some of the examples are not really true?
> MS-DOS requires only 3 files to boot
You can do it in two for Linux. The kernel image itself (packaged as a bootable EFI program if you want to keep it simple and avoid a bootloader), and then an initramfs (built into the kernel image) that has busybox in it. Ok, I guess the 'sh' symlink you'll need to boot into is technically a third file. So it's a tie.
Yes, this Linux setup will be very limited and annoying to use, but so will a DOS setup that only has the three DOS boot files mentioned.
> Boot in under 5 seconds
The setup I describe above will boot in much less than 5 seconds. DOS may still boot faster, but the difference will likely be imperceptible, especially if you compile a Linux kernel that has hardware support capabilities similar to the bare-minimum three-file DOS setup.
> Use commands without spaces [...] This is a big deal, even if it might not seem like it.
I don't see this as a big deal, and I'm not sure why this is all that useful or important. If someone really wanted to, they could write a shell or a shell wrapper that could allow you to do stuff like this, but it's telling that no one has bothered.
> Run CPU opcodes natively
I'm again not sure why this is useful enough to be necessary, but sure, let's just say I lack imagination here and give this point to DOS.
I'm sure if I wanted I could write a kernel module or maybe even a binfmt_misc setup that would make this work, though presumably at the expense of the default behavior, which treats non-ELF (or otherwise unsupported) files as shell scripts. Again, it's telling that no one has bothered.
I'll also note that, while yes, DOS will run .COM files, which are basically just a list of machine instructions, most software distributed for DOS, at least in its later years, used the MZ/.EXE format. Certainly that doesn't make it so DOS can't run machine code directly anymore, but, again, it's telling that the more "complicated" format ended up being used more commonly. Maybe that means there's something useful about it. Like its ability to be larger thank 64KiB.
> Linux generally doesn't run in real mode.
Which is fine, and good. The author's justification for why it's better/useful that DOS allows this sounds like the usual elitist "programmers should just be perfect and make sure they never write programs that have any memory-safety bugs" nonsense that I hear some people use to justify writing C code when there are suitable alternatives that are safer.
Regarding getting the Linux kernel to fit in real mode, I imagine if you are setting up a Linux computer so it can do a similar level of things that DOS can do, you can probably disable a lot of kernel options and get it down far enough in size.
DOS was a great OS. I used it a ton in the '80s, and even when we were able to get a copy of Windows 3.0, I still mostly used DOS. It had its place in history, but trying to compare it to Linux is about as apples-and-oranges as it gets.