Skip to content

plos-clan/CoolPotOS

Repository files navigation

CoolPotOS

A simple toy operating system.

GitHub Repo stars GitHub issues GitHub License GitHub release (latest by date) Hardware Ask DeepWiki


Languages : English | 简体中文 | Français | 日本語

Introduction

This is a simple operating system for ia32 and amd64 architecture.

Modules

Build & Run

You need to install them on your computer:

  • xmake
  • xorriso
  • QEMU
  • NASM (i386 only)
  • Zig (i386 only, auto installed by xmake)
  • git (x86_64 only, for GIT_VERSION macro)
  • clang (x86_64 only)
  • lld (x86_64 only, for linking LTO objects)
  • Rust nightly toolchain (x86_64 only)
  • cbindgen (x86_64 only, use cargo install cbindgen)
  • oib (x86_64 & build img only, use cargo install oib)

Options

You can use the command to set the target architecture (x86_64 default):

xmake f -y --arch=i686

Commands

  • xmake run - Build and run the ISO image.
  • xmake build iso - Build a bootable ISO image.
  • xmake build img - Build a bootable disk image (x86_64 only).

Development

You can generate a compile_commands.json file by:

xmake project -k compile_commands

Then your editor knows how to find the source files and derives syntax highlighting.

License

This project is licensed under MIT License.

Feature

AMD64

Based on UEFI BIOS boot.
Use Limine bootloader.

  • 4 Level Page Table Memory Management
  • xAPIC and x2APIC
  • Kernel Module
  • AHCI Disk Driver
  • Multi-Task (Process and Thread)
  • PS/2 keyboard and Mouse
  • PCIE Device Enum
  • ACPI Power Management
  • VFS VDisk interface
  • IPC Message Queue
  • Process Signal
  • Multiprocessor Scheduler
  • User program
  • Device File System
  • Floating Point Unit
  • IIC Driver
  • Nvme and USB Driver
  • PCNET and Rtl8169 Driver
  • SB16 and PCSpeaker Driver
  • TTY Driver
  • SATA/SATAPI Driver

Contributing

Welcome to create pull requests or issues to this project. Then sit back and relax.

Contributors

Packages

No packages published

Contributors 22

Languages