You could use loadlin for loading the linux kernel from dos, and there's the UMSDOS filesystem to use a FAT/DOS directory as linux filesystem :
umsdos is an extended DOS filesystem used by Linux. It adds capability
for long filenames, UID/GID, POSIX permissions, and special
files (devices, named pipes, etc.) under the DOS filesystem,
without sacrificing compatibility with DOS.
It's over 7 years ago since I last did anything with loadlin, so things could have changed...