Dude, you might be using BSD. Whether it's LINUX or BSD, neither currently supports real-mode BIOS interrupt calls. But on the other hand, protected mode can definitely support real-mode interrupt calls, which can be called a "real-mode compatibility layer." Windows 98 has such a compatibility layer, so Windows 98 can smoothly access the RAM disk we mapped through int13. Note that Windows 98 is also a protected-mode operating system. Windows NT/2K/XP/2003 are all protected-mode operating systems as well. The difference is that they removed the real-mode compatibility layer, that is, a certain DLL real-mode compatibility driver file. Suppose a company writes such a driver for Windows NT/2K/XP/2003, then Windows NT/2K/XP/2003 can also support all the concepts of real mode, including entering real-mode DOS like Windows 98 from within Windows NT/2K/XP/2003 without restarting Windows. It's just that Microsoft deliberately doesn't do it, and other companies don't want to go to the trouble to do it for it.
The same logic applies to LINUX and BSD. There are no real-mode compatibility drivers in these operating systems originally, but a compatibility layer can definitely be added to them. Of course, this is all low-level system operation, which will be more troublesome, but there are no substantial difficulties.
===============
Under the current circumstances, maybe you can get around the above restrictions with a little workaround. For example, put all your files on drive A: and make drive A: itself very large, say 2.88M. Or, if it's not enough, just make it 50M or 1000M. After being emulated by GRUB4DOS, the boot program of drive A: gains control. This boot program loads the kernel and initrd on drive A: into memory. When the kernel gains control, there's no need to read the floppy disk anymore because all the data of the floppy disk (except the kernel) is in initrd, which is already in memory. I haven't used BSD, but I'm very clear that this method works for LINUX.
因为我们亲手创建,这个世界更加美丽。