well to compare DOS to linux, dos has its own kernel which also uses a few separate apps which run concurrently to handle hardware and provide a layer for the dos shell which you as a user see
Linux uses a kernel as well, but part of linux is also that being combined with the GNU software which is the linux or desktop unix implementation of the unix standard tools or software----these get compiled together and form whats called a toolchain. Linux is mostly written in C, with some assembler and machine language in parts of the kernel. This toolchain allows you to either replicate more linux installs or software and also allows you to build upon that base system to form what many think of as linux. In reality the definition of linux is just the kernel and the GNU software, the rest is extra.
Now here's the part where it gets a little confusing. When you build a linux distro or system you can choose everything and anything about the system. You literally can roll your own so to speak. But in order to do this you really need an existing linux system to do it, the first ones were not easily setup, bootstrapping a linux system aint easy. You do need the kernel and a small handful of the GNU software to form a linux system, and thats how you get it down to floppy size. You simply use a bootloader like LILO or GRUB, a kernel, and just enough of the GNU software like BASH(bourne again shell) or better yet a standalone program which emulates BASH and voila, you have a very very basic linux system.
To see a good example of this, go here:
http://distro.ibiblio.org/pub/linux/...ions/baslinux/
Can you build a very small server setup using linux that fits in a few megabytes, sure, absolutely. With some sacrifices of course, there's no free lunch.
If you want a list of the GNU software you will need, goto
http://slackware.com and then goto packages and look up the /a directory, that has all the usual required software which makes up the base user/system software. You will alos need a kernel, a bootloader, a filesystem to mount all this on and run it from. Probably need to get some of the networking software from the /n directory as well. This same stuff can be gotten from the gnu.org website as well. You can avoid getting the rest of the toolchain, things like gcc and the c library if you use precompiled apps with static libraries instead of dynamic ones. This is the way baslinux is formed, it also makes use of an app that emulates the BASH shell, takes up less disk space that way.
Now, you can to a large degree use quite a few standalone apps that have been compiled with static libraries, but the normal way to do this is use shared libraries, once you start doing that things get more complicated and bigger. but its also necessary to provide more functionality and options. Most linux distros make large use of dynamic libraries. The apps themselves are usually small, the libraries can get pretty big. The C library isnt lightweight at all these days, its quite big.