On 8/8/19 7:31 AM, Theodore Y. Ts'o wrote:
I implemented loading the root file system as a
ramdisk from a
floppy in 1991 for Linux.
Impressive.
This predates the publication of 386BSD, and I
wasn't aware of how
commercial Unix systems did their initial installation and setup.
So as far as I know I came up on it on my own, but none of this was
especially earthshaking or subtle.
That logic makes sense to me.
Linux's ramdisk was implemented because most
PC's of the day (I was
using a 40 MHz 386 with only a megabyte of memory) only had a single
floppy drive (and if they had a second it was a 5.25" drive). So the
very first implementation which I did assumed the kernel would be no
larger than 512k, and looked for Minix file system signature at 512k.
If it existed, it would load it into the ramdisk and use that as the
boot region.
That's before my time. If I remember correctly, by the time I was
creating boot+root disks it was the kernel plus something—I don't
remember if it was an initramfs or an initrd—concatenated together. I
also remember having to use a utility to update the kernel to tell it
where the something started. Which was really based on how big the
kernel was as padding before the something started. That was probably
2.<something> on Slackware in '99.
Before that, the kernel was loaded from the first
floppy, and then
kernel would prompt the user to eject the boot disk and insert the
root disk, and hit any key to continue, and then it would mount the
root disk.
I remember doing that. But perhaps it was for a different reason.
But then the only floppy drive would be tied up with
the root file
system, so that meant there needed to be a second kernel on the root
floppy, and everything else needed to set up the root image would
have to be copied to the hard disk, and then you'd have to reboot
to release the floppy drive so you could install other programs that
couldn't fit on that initial 1.44MB root floppy.
For people who are interested in the history of initrd used as part
of the boot process in Linux, please refer to Werner Almesberger's
2000 paper, "Booting Linux: The History and the Future"[1], presented
at the Ottawa Linux Symposium.
[1]
http://www.almesberger.net/cv/papers/ols2k-9.ps.gz
I will definitely check that out. Thank you for the link.
Cheers,
:-)
--
Grant. . . .
unix || die