XuNet OS

A Mini OS Dr Chamyoung. Crafted in Bare Metal.

A 32-bit educational OS built in C and Assembly for x86, with its own kernel, bootloader, and GUI.

Overview

XuNet OS is an educational operating system designed to help developers understand the fundamentals of OS development. Built from scratch in C and Assembly, it provides a hands-on experience with low-level programming concepts and system architecture.

Our goal is to create a clean, well-documented codebase that serves as both a learning resource and a foundation for experimental OS development. Whether you're a student, researcher, or hobbyist, XuNet OS offers a practical platform for exploring operating system concepts.

Key Features

Custom Kernel

Bare-metal implementation with protected mode support and memory management

GUI Framework

Basic graphical interface with window management and drawing primitives

Bootloader

Custom bootloader for system initialization and kernel loading

File System

Basic file system implementation (Work in Progress)

Keyboard & Interrupts

Hardware interrupt handling and keyboard input processing

Shell Interface

Command-line interface with basic system commands

System APIs

Clean interface for system calls and hardware access

APM Support

Advanced Power Management for proper system shutdown

Technical Architecture

Applications
System APIs
GUI System
Shell
Kernel
Bootloader

Low-Level Mathematics

Binary & Hex Arithmetic

Core mathematical operations in binary and hexadecimal

Modular Arithmetic

Essential for memory addressing and circular buffers

Matrix & Pixel Math

2D graphics calculations and display transformations

Address Mapping

Memory address calculations and page table operations

PIT/Timing

Programmable Interval Timer calculations and scheduling

Changelog v1.1.1af1

Build & Run

# Clone the repository
git clone https://github.com/InboraStudio/XuNetOS-32-bit.git
cd XuNetOS-32-bit

# Build the OS
make all

# Run in QEMU
make run

# Create bootable ISO
make iso

Prerequisites

  • NASM (Netwide Assembler) 2.15.05 or later
  • GCC (GNU Compiler Collection) with 32-bit support
  • QEMU (for emulation)
  • z_tools (development tools)

Note: Make sure to set up z_tools directory before building. See documentation for details.

Learning & Research Goals

Internals & Roadmap

Subsystem Status Notes
Bootloader FAT12 support, kernel loading
Kernel Basic memory management
Filesystem ⚠️ Basic implementation
GUI ⚠️ Window management in progress
Network Stack 🔴 Planned for v2.0

Planned Features

  • Multitasking support with process scheduling
  • Basic network stack implementation
  • Advanced GUI toolkit with widgets
  • Package management system
  • USB device support
  • Sound system implementation