That FAT12 implementation is very naive and unoptimized. You can see in this video that it takes about 7 seconds to copy a ~10 kB file: https://movq.de/v/fbf2b90ce1/los86-fat12-copy.mp4 🥴 I kind of like that, though, because it feels a little bit like an old machine. 😅🤪
(This issues a lot of BIOS calls, that’s why it’s so slow.)
@prologic@twtxt.net Lots, I guess. 😅 The kernel keeps almost no state between syscalls, so when you want to read the next byte from a file, it has to do all the work from scratch: Locate the file in the directory and traverse the cluster chain until you’ve reached the next byte. It’s easier to code this way, but obviously much slower. And the userspace program cp
could read/write in multiples of 512 – it currently does not do that, intentionally, because if everything is a multiple of 512, you’re less likely to discover bugs. 😅
@prologic@twtxt.net Something along those lines, yeah. And/or some generic cache for disk sectors.
@prologic@twtxt.net Indeed, I’ve gained a lot more respect for Linux/BSD and DOS. 😃