Tsukasa

A handmade desktop operating system built from scratch.

32-bit bare-metal desktop operating system built entirely in C and Assembly

scroll
sys.info

What is Tsukasa?

Tsukasa is a modern, 32-bit bare-metal desktop operating system — built entirely in C and Assembly, without relying on any standard library or existing OS infrastructure.

Every layer of the system from the bootloader to the graphical desktop has been single developed. Tsukasa boots directly onto the hardware, initializes its own framebuffer, and launches a full window manager with a translucent glass aesthetic, all without a runtime underneath it.

The virtual filesystem mounts a FAT12 ramdisk for read access and a MemFS layer for in-session writes. A suite of built-in desktop applications, Settings, File Manager, Notepad, Calculator, and Terminal, complete the environment.

The project is still in early development. Major components are being actively implemented.

32-bit x86C + AssemblyBare-metalNo libcEarly DevelopmentCustom Kernel
sysinfo — tsukasa
OSTsukasa
Architecturex86 (32-bit)
LanguagesC, x86 Assembly
BootloaderGRUB (Multiboot)
FilesystemFAT12 + MemFS
Window ManagerCustom Compositor
Applications5 built-in apps
StatusEarly development
sys.features

What it can do

Built from scratch, here is what Tsukasa can do.

window_manager[compositor]

Window Manager

True Z-ordering, focus management, drag-and-drop, and window closing. Sleek, semi-transparent dark glass UI with drop shadows, rounded corners, and macOS-style traffic light buttons. Global accent colors configurable at runtime.

Z-ordering & focus
Drag and drop
Runtime accent colors
Glass compositing
desktop_shell[UI layer]

Desktop Shell

A functional desktop environment with an active taskbar showing window pills, a start menu, and clickable desktop shortcut icons — all rendered directly to the framebuffer.

Taskbar with app pills
Start menu
Desktop icons
Active window state
virtual_file_system[storage]

Virtual File System

A dual-layer VFS mounts a FAT12 ramdisk loaded via GRUB at / for read access, and a MemFS in-memory layer at /tmp/ for temporary writable session storage.

FAT12 ramdisk (initrd.img)
MemFS at /tmp/
Directory enumeration
File read/write
built-in_applications[userspace]

Built-in Applications

Five desktop applications shipped with the OS: Settings for accent and wallpaper control, File Manager with icon grid browsing, Notepad with FAT12 read and /tmp/ save, Calculator, and Terminal.

Settings
File Manager
Notepad
Calculator + Terminal
wallpaper_engine[graphics]

Wallpaper Engine

Parses 24-bit and 32-bit uncompressed BMP bitmap files natively. Uses nearest-neighbor scaling to fit any resolution directly into the framebuffer VRAM — no external library.

24-bit BMP support
32-bit BMP support
Nearest-neighbor scaling
Direct VRAM write
low-level_architecture[kernel]

Low-level Architecture

Boots at the 1 MiB mark with paging enabled, identity-mapping 16 MiB of RAM. Event-driven window redraws via a global event queue routing IRQ12 mouse and keyboard packets.

Boots at 1 MiB
16 MiB paging
IRQ12 PS/2 mouse
Event-driven redraws
arch.notes

Built from scratch.

No standard library. No OS layer underneath. Every subsystem,from the bootloader to the window compositor,is written directly against the hardware. This is bare-metal systems programming in the most literal sense.

boot.asm
Boot & Entry Point
//GRUB Multiboot 1 compliant bootloader
//Kernel loads at physical 0x100000 (1 MiB)
//Stack initialized, GDT loaded, paging enabled
paging.c
Memory & Paging
//Identity maps first 16 MiB of physical RAM
//kmalloc requests 4 KB pages from PMM on demand
//16 KB initial kernel heap
event_queue.c
Input & Events
//PS/2 mouse tracked over IRQ 12 (ps2mouse.c)
//Global event_queue routes EVENT_MOUSE + EVENT_KEY
//Window redraws are fully event-driven
wm.c
Window Compositor
//Maintains a Z-ordered list of Window structs
//wm_handle_mouse dispatches to focused window
//Translucent dark glass — drop shadows + rounded corners
vfs.c
Virtual Filesystem
//FAT12 driver mounts initrd.img via Multiboot module
//Supports directory enumeration and file reads
//MemFS layer at /tmp/ for session-scoped writes
gfx.c
Framebuffer / Graphics
//Direct VRAM framebuffer write pipeline
//24-bit and 32-bit BMP parsing and rendering
//Nearest-neighbor scaling for any resolution

$ gcc -m32 -ffreestanding -nostdlib -nostdinc kernel.c -o tsukasa.bin

No operating system. No runtime. Just the hardware, your code, and intent.

dev.status

Where it stands

Tsukasa is early in development. The foundations are real, the desktop identity is established, the work is ongoing.

Implemented
In Progress
Planned
Boot[done]
Multiboot compliant entry
GDT + paging setup
Framebuffer init
Graphics[done]
Framebuffer write pipeline
24/32-bit BMP rendering
Nearest-neighbor scaling
Desktop UI[in-progress]
Window compositor (Z-order)
Taskbar + start menu
Drag-and-drop
Animations & polish
Filesystem[in-progress]
FAT12 ramdisk driver
MemFS writable layer
Write-back to FAT12
Built-in Apps[in-progress]
Settings, File Manager
Notepad, Calculator, Terminal
App launcher / window tiling
Future Systems[planned]
Networking stack
Audio driver
Preemptive multitasking
ELF binary loading

This is a living project. The list above reflects the reality at time of writing.

visual.identity

Official Sticker Pack

A collectible set of stickers, no printing yet. .

// printing coming soon

Tsukasa OS official sticker pack preview
tsukasa.sticker-pack.v1limited edition
project.support

Keep Tsukasa growing

Tsukasa is a passion project built in spare time, any support means a great deal and helps keep the late nights going.

Every contribution goes directly toward more development time, design experiments, and future features.