Skip to content

Szymdows/SzymOS-kernel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

SzymOS Kernel πŸš€

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.

Please read everything inside of docs/ for more information and for guides!


✨ Features (v0.2.0)

  • βœ… 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

🧠 Architecture Overview

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

Components

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

πŸ–₯️ Current Boot Output

##################################################
#  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...

βš™οΈ Build Requirements

Toolchain


πŸ”¨ Building the Kernel

On Windows, run:

build.bat

The build process:

  1. Compiles kernel core
  2. Compiles drivers
  3. Compiles CPU architecture code
  4. Assembles boot entry
  5. Links kernel using linker.ld
  6. Creates a bootable GRUB ISO
  7. Launches QEMU automatically

▢️ Running Manually

qemu-system-x86_64 -cdrom SzymOS-kernel-0.2.0.iso

πŸ“ Project Structure

SzymOS-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

🎯 Project Goals

  • 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

🀝 Contributing

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 and CONTRIBUTING.md for how to contribute.

πŸ“œ License

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.


⭐ Acknowledgements

Inspired by the OS development community and educational resources focused on understanding how operating systems work from the ground up.


🚧 Project Status

Early Development β€” core kernel infrastructure is being actively developed.

Expect breaking changes as the architecture evolves.

About

A hobby operating system project: a monolithic 32-bit kernel written from scratch in C and x86 assembly, exploring low-level programming, hardware interaction, and OS design.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors