An operating system,
built from the bootloader up.
Eiciel OS boots real hardware through GRUB multiboot, sets up its own GDT and IDT, drives the framebuffer directly over VBE/VESA, and draws a graphical desktop — dock, draggable windows, wallpaper — with zero external OS underneath it.
What it took to see a pixel
QEMU's -kernel loader always falls back to mode 13h. Getting a real linear framebuffer up under GRUB meant fighting the boot process one layer at a time.
GRUB misreads the video-mode request
The multiboot header was missing five zeroed a.out-kludge placeholder fields, and kernel_main(magic, mb_info) had its cdecl push order reversed.
Fix — zero the kludge fields, correct the argument push order.
Triple fault on real boot
init_idt() hardcoded selector 0x08, assuming QEMU's bootloader GDT layout — a layout GRUB doesn't provide.
Fix — init_gdt() loads a known minimal GDT (null, code@0x08, data@0x10) before interrupts are set up, then reloads CS with a far jump.
The BIOS lies about its own colour mask
QEMU's VBE BIOS reports incorrect colour-mask fields for 640×400. Byte-writing directly to the framebuffer confirmed the real layout.
Fix — hardcode XRGB8888: r_pos=16 g_pos=8 b_pos=0, 8 bits each, rather than trust the reported metadata.
A desktop, drawn pixel by pixel
The window manager owns everything above the framebuffer: a dock, draggable windows, and a wallpaper — no toolkit, no compositor library, just writes to 0x….
Boot it yourself
Source, launch thread, and the full write-up of getting from a black screen to a desktop.