Skip to content

Features of DragonOS

Specifications

  • [x] Bootloader: Multiboot2

  • [x] Interface: POSIX 2008

Kernel Layer

Memory Management

  • [x] Page Frame Allocator
  • [x] Small Object Allocator
  • [x] VMA (Virtual Memory Area)
  • [x] Automatic MMIO Address Space Allocation
  • [x] Page Mapper
  • [x] Hardware Abstraction Layer
  • [x] Independent User Address Space Management Mechanism
  • [x] C Interface Compatibility Layer

Multicore

  • [x] Multicore Boot
  • [x] IPI (Inter-Processor Interrupt) Framework

Process Management

  • [x] Process Creation
  • [x] Process Reclamation
  • [x] Kernel Threads
  • [x] Fork
  • [x] Exec
  • [x] Process Sleep (Supports High-Precision Sleep)
  • [x] Kthread Mechanism
  • [x] Extensible Binary Loader

Synchronization Primitives

  • [x] Mutex
  • [x] Semaphore
  • [x] Atomic Variables
  • [x] Spinlock
  • [x] Wait Queue

Scheduling

  • [x] CFS Scheduler
  • [x] Real-Time Scheduler (FIFO, RR)
  • [x] Single-Core Scheduling
  • [x] Multi-Core Scheduling
  • [x] Load Balancing

IPC (Inter-Process Communication)

  • [x] Anonymous Pipe
  • [x] Signal

File System

  • [x] VFS (Virtual File System)
  • [x] FAT12/16/32
  • [x] Devfs
  • [x] RamFS
  • [x] Procfs
  • [x] Sysfs

Exception and Interrupt Handling

  • [x] APIC
  • [x] Softirq (Soft Interrupt)
  • [x] Kernel Stack Traceback

Kernel Utility Library

  • [x] String Operation Library
  • [x] ELF Executable Support
  • [x] printk
  • [x] Basic Math Library
  • [x] Screen Manager
  • [x] TextUI Framework
  • [x] CRC Function Library
  • [x] Notification Chain

System Calls

See System Call Documentation

Test Framework

  • [x] ktest

Drivers

  • [x] ACPI (Advanced Configuration and Power Interface) Module
  • [x] IDE Hard Disk
  • [x] AHCI Hard Disk
  • [x] PCI, PCIe Bus
  • [x] XHCI (USB 3.0)
  • [x] PS/2 Keyboard
  • [x] PS/2 Mouse
  • [x] HPET (High Precision Event Timer)
  • [x] RTC (Real-Time Clock)
  • [x] Local APIC Timer
  • [x] UART Serial Port
  • [x] VBE (Video BIOS Extension) Display
  • [x] VirtIO Network Card
  • [x] x87 FPU
  • [x] TTY Terminal
  • [x] Floating Point Processor

User Layer

LibC

  • [x] Basic System Calls
  • [x] Basic Standard Library Functions
  • [x] Partial Mathematical Functions

Shell Command Line Programs

  • [x] Parsing Based on String Matching
  • [x] Basic Commands

Http Server

  • A simple Http Server written in C, capable of running static websites.

Software Portability