I've been looking at a few implementations of hard disk drivers,
since (obviously) Ulix needs this as well. Since none of the
available solutions is simple enough for inclusion in the
Ulix book, I've decided to cheat a little.
So I present: the serial hard disk. It relies on an external
process that serves as some kind of simple storage server.
Via the serial port, Ulix can request sectors (or send their
content), and the storage process translates this to
reading and writing a disk image.
It already works for non-blocking I/O (i.e. when the kernel
wants to access the disk), when Ulix runs on qemu. (Bochs
support follows soon.) In theory this would also work when
running Ulix on a real machine and connecting the serial
port to another machine running the storage process.
Next up: blocking I/O for processes.
[ Path: | persistent link ]