SzymOS Kernel is a hobby operating system project: a monolithic 32-bit x86 kernel written from scratch in C and x86 assembly, focused on exploring low-level programming, hardware interaction, and operating system design.
The project aims to provide a clean and understandable learning environment for kernel development while gradually evolving into a fully featured experimental operating system.
- β Multiboot-compliant kernel (GRUB bootable)
- β Custom x86 assembly boot entry
- β Stack initialization in protected mode
- β Global Descriptor Table (GDT) setup
- β VGA text-mode terminal driver
- β Kernel version/build information banner
- β Modular source layout (CPU, drivers, kernel core)
- β ISO image generation and QEMU boot support
SzymOS Kernel follows a monolithic kernel design, where core subsystems run in kernel space.
Boot flow:
BIOS β GRUB β Kernel Entry (_start) β kmain()
β
Initialize VGA
β
Load GDT (memory segmentation)
β
Kernel Ready State
| Component | Description |
|---|---|
boot/ |
Multiboot header and kernel entry assembly |
kernel/ |
Core kernel logic and initialization |
cpu/ |
CPU architecture setup (GDT) |
drivers/ |
Hardware drivers (VGA text output) |
include/ |
Shared kernel headers |
linker.ld |
Kernel memory layout |
build script |
Automated compile + ISO generation |
##################################################
# SzymOS kernel 0.2.0 (i386-pc)
# Built: <date> at <time>
##################################################
[ OK ] Video Driver Initialized
[....] Initializing GDT (Memory Segmentation)...
[ OK ] GDT Loaded Successfully
SzymOS kernel is ready. Awaiting input...
x86_64-elf-gcc(cross compiler) - which can be downloaded from https://github.com/lordmilko/i686-elf-tools/releases/tag/15.2.0 - you need to download 'x86_64-elf-tools-windows.zip' - these are the gnu binutils you need.- NASM / GAS (assembly support)
- GRUB 2
- QEMU
- WSL (used for ISO creation on Windows)
On Windows, run:
build.batThe build process:
- Compiles kernel core
- Compiles drivers
- Compiles CPU architecture code
- Assembles boot entry
- Links kernel using
linker.ld - Creates a bootable GRUB ISO
- Launches QEMU automatically
qemu-system-x86_64 -cdrom SzymOS-kernel-0.2.0.isoSzymOS-Kernel/
βββ boot/ # Kernel entry & multiboot header
βββ kernel/ # Core kernel code
βββ cpu/ # Architecture initialization (GDT)
βββ drivers/ # Hardware drivers
βββ include/ # Header files
βββ iso/ # GRUB configuration
βββ linker.ld # Memory layout
βββ build.bat # Build automation
βββ docs/ # SzymOS Kernel docs
- Learn operating system internals
- Implement low-level hardware interaction
- Develop clean kernel architecture
- Experiment with system design concepts
- Build a foundation for future OS features
Planned future work includes:
- Interrupt handling (IDT)
- Keyboard input driver
- Memory management
- Basic shell
- Filesystem experimentation
Contributions are welcome!
You can help by:
- Opening issues
- Suggesting improvements
- Adding drivers or kernel subsystems
- Improving documentation
Please keep code readable and well-commented.
- See
docs/for instructions andCONTRIBUTING.mdfor how to contribute.
This project is licensed under the MIT License.
You are free to use, modify, distribute, and learn from this project with proper attribution.
See the LICENSE file for details.
Inspired by the OS development community and educational resources focused on understanding how operating systems work from the ground up.
Early Development β core kernel infrastructure is being actively developed.
Expect breaking changes as the architecture evolves.