Aster My HobbyOS with a custom C toolchain and network stack (runs on 128MB RAM)
A hobbyist operating system named Aster has been built entirely from scratch, featuring a custom kernel, networking stack, and utilities without porting existing implementations.
The Aster operating system represents a significant achievement in hobbyist operating system development, with all core components including the kernel, drivers, filesystem implementations, libc, shell, editor, and utilities authored from scratch. The project uses Limine as a boot dependency but avoids porting any external kernel, libc, shell or editor implementations, making it a truly original system built on x86_64 architecture.
Build and Run Capabilities
Aster can be built using GNU make and Clang/LLVM with LLD, requiring additional tools like ar, git, curl, tar, xorriso, mke2fs and QEMU for testing. The build process produces a template-x86_64.iso file, kernel binary, user ELF64 executables, initrd.tar, and a writable rootfs.img. The default virtual machine configuration uses q35 with SATA disk on AHCI, 512 MiB RAM, framebuffer and serial console.
The system boots by mounting the first supported ext2 SATA filesystem as root, falling back to a volatile RAM root if none is found. The initrd populates missing files and refreshes key directories on every boot while preserving other existing files. The /sbin/init process starts and supervises the interactive shell, with all commands and logs in English.
Kernel Architecture
The kernel implements a Hardware Abstraction Layer (HAL) that separates architecture interfaces from the x86_64 backend. The backend handles GDT, TSS with exception stacks, IDT, ACPI discovery, local APIC, I/O APIC, interrupt routing, timer calibration, RTC/TSC clocks, PS/2 keyboard/mouse support, and PCI enumeration. Memory management uses page allocation with reference counts and four-level virtual memory that separates user address spaces.
Physical memory uses page allocation and reference counts. Four-level virtual memory separates user address spaces, validates user pointers, supports anonymous/private/shared file mappings and enforces writable/executable protections.
Filesystem and Networking
Aster features an original ext2 driver that reads and writes files, directories, metadata, hard links and symbolic links, including indirect block allocation and truncation. The system enforces root credentials, permissions, ownership, sticky directories and set-ID execution. Networking capabilities include original PCI drivers for Intel 82540EM/82545EM and Realtek RTL8139 devices, with a complete TCP/IP stack implemented in kernel/src/net without any imported network code.
The network stack provides Ethernet ARP, IPv4 routing, fragmentation/reassembly, ICMP handling, UDP with checksums, and TCP with active/passive opens, sequence tracking, sliding windows, congestion control, and retransmission timers. DNS resolves A records and CNAME chains with caching, while DHCP implements full lease management including discovery, requesting, renewal, rebinding and release.
Userspace and Utilities
The system includes 48 separate command ELF64 executables plus sh and init, with a full-screen editor supporting scrolling, cursor movement, and file operations. The shell implements scripting capabilities, variables, command substitution, pipelines, background jobs, and control structures. Networking utilities include ifconfig, udhcp, ping, wget and httpd, with the web server supporting GET and HEAD requests with proper header handling and timeouts.
Current limitations include x86_64-only support, no dynamic linking, kernel non-preemption in syscall handlers, ASCII-only console, and incomplete POSIX shell compliance. The ext2 filesystem rejects unsupported features like journaling and extents, and the system has been validated only in QEMU environments without certification on physical machines.