This is a start of an operating system for x86-64 architecture. It will boot from USB stick on a newer computer. It is far from done and should be considered as work in progress.
The bootloader is written mostly with C. Yes C. This is of course not the way you should write a bootloader but I just wanted something quick that would boot on most new computers and I really don’t like assembler that much. This bootloader with check for the A20 address pin and activate it if necessary. It will use the BIOS to copy kernel to the ram, activate long mode (64-bit) and jump to the kernel. See the files section for download.
This is work in progress !
The following functionality have been done:
1. Configuration of idt, gdt and tss
2. Memory paging is active (must be active for Long mode kernel)
3. Keyboard is working
4. Graphics is initiated in low resolution mode (character mode)
5. Booting into user space (ring 3)
This bundle includes:
1. Bochs compiled for 32 bit (to debug bootaloader)
2. Bochs compiled for 64 bit (to debug kernel)
3. GDB compiled for 32 bit (to debug bootaloader)
4. GDB compiled for 64 bit (to debug kernel)
5. Stellar kernel (SKernel)<br />6. Stellar bootloader (SBoot)
7. Build script