Is it possible to write an OS that will fit onto a 3 ½" floppy that can then write device drivers for all the devices it discovers on the system and build itself into a fully functional and useful desktop OS? The basic intent is to start out with just a bare-bones OS that can write to a hard drive, whether this requires some hints files or not; a hint file would be one that has a listing of a particular device and its specifications.
Update 19:04 Thu Aug 17 2000:

Just to make my original thought clear: this OS writes itself. No external help, unless it be through hints files. I'd rather that not be an obnoxious point, but that's part of the challenge.

Update 20:12 Sat Oct 27 2001:

This challenge may also be construed to be Self-improving genetic programming. See also http://www-ia.hiof.no/~rolando/SIG/ for more details.
What you describe could be accomplished by building a minimalist boot floppy for Linux (no X11, nearly no tools, just a kernel and selected parts of /bin and /usr/bin).
The system, when booted, could reach out to some NFS or TFTP or whatever server, download a buttload of software, write it to a scratch hard disk, and then reboot from the hard dirsk.
The /home directories could be mounted via NFS, to guarantee survival between boots.

Or, even better: a diskless workstation that boots completely off a remote server.


baffo reads the update
baffo scratches his head and ponders...
baffo falls asleep.

Well, I guess it can be done depending from the level of "writes itself" that you want. Let's make an example, suppose you have an Ethernet card in your system. Ethernet cards could be supposed to share common attributes, like needing a buffer somewhere, sending interrupts, this sort of things.
And you could probably write a meta-Ethernet driver, that reads hints about the specific card you have in the system and configures itself to run with it.
What I don't think you could do is having the OS "guess" WTF the card in slot 3 does, and how.

Consider a serial port (or even a parallel one): basically anything can be there, from a modem to a mouse to a hard disk to ...
And not only you want the OS to detect it (which is already a mess), but to write code (I guess) for running a device it does not know about ? Sounds tough ...

I will not say that it is impossible, for nothing is impossible except that the toothpaste go back into the tube, but it looks pretty unlikely.

There's a lot of possible devices out there - network cards, video cards, SCSI controllers, IDE controllers, monitors, and so on, all with different interfaces and such. I doubt you could encode information about every device under the sun on one floppy.

Here's my idea: On the disk, have a modular kernel of some kind, and drivers (or just parameters, with instructions on how to build drivers) for every network card and modem in common use, and PPP/TCP drivers. The machine creates/loads a driver for its network card, connects to the internet, and downloads information/drivers for everything else in the system, and goes from there.

Of course, that sounds like your average Red Hat/Debian network install, but who cares?

Log in or register to write something here or to contact authors.