Oh, boy. Where to begin. . .
Linux is so different from DOS, I think, that the only similarities between
them are:
1) They both run on the x86 architecture
2) The both have command line interfaces
3) Windows is (still?) just a GUI to DOS. Sort of like XFree86 is to Linux
4) They both use "device drivers" to talk to new hardware (not in the
same way)
The Linux kernel won't do you any good without a good number of
programs that allow a human to talk to the computer hardware. The
kernel interfaces between the hardware and the various programs out
there.
The differences between the Linux kernel and DOS are so many that
it would be impossible and silly to try to post them. Let it suffice to say
that Linux CAN do things that the people who wrote DOS never imagined.
That's not to say every one of those things has been done, but people
sure are trying. . .
The Linux kernel does not need to be recompiled after adding new
hardware. Linux can be thought of as a microkernel (though this isn't
really true), in that it does the bare minimum needed to interface with the
motherboard and the CPU. Everything else can be built as a module that
drives additional hardware (sound cards, USB devices, etc.). As such,
very rarely does one need to recompile the kernel when you add new
hardware, you just need to load the driver.
The DOS "kernel" doesn't need to be recompiled because it's compiled
for the very minimum, and will work with everything new (as long as it's
backward compatible hardware). There are device drivers that come
with each new piece of hardware, and those drivers need to be loaded
in order for the device to work.
The UNIX world is built up of a bunch of little programs that do specific
tasks (ls, cd, etc.). The reason for this is that while it would be a pain,
one could run a linux system without "ls", "cd", etc. and it would still work
(I know, I've done it -- shell filename completion is your friend). You could
not get DOS to work without COMMAND.COM. Try booting with a boot
disk, remove the disk and try to do something.
I can't actually enumerate the required files to run a linux distro, but you
can go to
http://www.linuxfromscratch.org/ and do some reading there
to figure it out, though I think they do have some cruft that isn't strictly
necessary.
There are tons of material available that go into great depths about the
linux kernel, try reading it, it's very interesting.
www.kernel.org www.linuxhq.com www.linux.org etc. . .