- Finally managed to get a (semi) working makefile. The problem is really that make isn't exactly cut out for this sort of thing, and as a result, it doesn't really work too well. Another issue is the loopback mechanism in Linux doesn't allow for partitions. To solve this, I simply specified the build directory as an external bootable USB key. Not ideal, and definitely not portable, but it works. Ish.
- Next, I've managed to get Grub working with MLX. Now, the layout is (temporary)
- GRUB
- Boot loader stage 4 (1-3 are intended to be my multiboot loader, if I get round to it.)
- Kernel
- Furthermore, I've abandoned file system development for now, opting for EXT4 for now. Screw FAT.
- Started to get the modular loading working (it loads A module, but I want it to load SOME modules...)
- Got a basic relocatable kernel (moves itself to address 0, wherever it is, then goes from there)
- Started to work on the relocatable driver code. So far, don't know how I'm going to handle the kernel/router calling, may opt to have another boot script directive for that.
- Started working on the boot script format. So far what I have is:
- All modules must be loaded by the MB loader. The boot script must be the first module, followed by the kernel/drivers, in any order.
- The kernel/drivers/whatever, must consist of a short jump, followed by sufficient NOP instructions, to obtain the 4 byte mark. After this, a signature string will occur.
- The boot script will load the module using the command, "LOAD " + signature string.
- All signature strings must be unique.
- Yeah, so far I don't have any way of keeping strings unique. What I may do is develop some hashing thing or other. Don't know yet. Right now they're just called "KERNEL", "HAL", "KEYBOARD", etc. Nothing special.
That's all folks.