Welcome to FrostWing, a lightweight and flexible operating system designed for x86_64, ARM64 (aarch64), and RISC-V (riscv64) architectures. This README will guide you through the process of building and running FrostWing, along with an overview of its features and architecture.
Note
To get a really good overview of this repository please visit https://repo-tracker.com/r/gh/Frost-Wing/osdev
- Interrupts
- ACPI
- Shutdown
- Reboot
- AHCI
- Detecting Disks
- CPU-ID
- GDT
- BIOS
- UEFI
- Hardware abstraction layer
- Memory
- Heap memory allocator
- malloc
- free
- Paging
- allocate pages
- free pages
- Heap memory allocator
- PCI
- Probing
- Initializing required drivers
- Storing the devices list
- Timing
- Real Time Clock
- Programmable Interval Timer
- Secure Boot
- UEFI
- BIOS
- PS/2
- Keyboard
- Mouse
- Graphics
- OpenGL Renderer
- Terminal emulator
- Graphics card support
- Networking
- Ethernet
- RTL Cards
- RTL-8139 Networking
- RTL Cards
- Ethernet
- Serial communications (with Arduino, NodeMCU, Sparkfun, etc.)
- Audio
- PC Speaker
Before you start building FrostWing, ensure that you have the following dependencies installed:
- Latest Version of Limine Bootloader
git clone https://github.com/limine-bootloader/limine.git --branch=v6.x-branch-binary --depth=1
- Compile the Limine bootloader
make -C limine
Note
A suitable cross-compiler for your target architecture (x86_64, ARM64, or RISC-V) is always recommended but the os is never tested with a cross-compiler and therefore it is optional
- QEMU System Emulator
-
Clone this repository to your local machine
git clone https://github.com/pradosh-arduino/FrostWing
-
Change into the FrostWing directory:
cd FrostWing
-
Install all required dependencies
It is provided in Prerequisites
-
Build FrostWing for your target architecture:
- For x86_64:
make -C source make
- For aarch64 (ARM64):
make -C source ARCH="aarch64" make
- For riscv64 (RISC-V):
make -C source ARCH="riscv64" make
- (Optional - Recommened) To use custom cross compiler:
make -C source ARCH="xx" CC="xx" LD="xx" make
Note
Slower Method below
If you want to have the doxygen documentation (for some reason), it's enough to just run
doxygen
inside the repository folder. A directory called docs
will be created which should contain the generated html documentation.
The main html file is located at: docs/html/index.html
Note
Better Method below
Visit Doxygen Documentation for FrostWing for pre-compiled documentations.
- CPU Currently any x86_64 proccessor
- RAM 75 MB
- Storage Nothing required yet.
- Graphics Only Framebuffer.
- CPU Currently any x86_64 proccessor
- RAM 170 MB
- Storage Nothing required yet.
- Graphics Only Framebuffer.
- CPU Currently any x86_64 proccessor
- RAM 128 MB
- Storage Nothing required yet.
- Graphics Integrated Graphics
- CPU Currently any x86_64 proccessor
- RAM 256 MB
- Storage Nothing required yet.
- Graphics Integrated Graphics
After building FrostWing, you can run it using a virtual machine or on real hardware. The specific steps for running it will depend on your chosen target architecture. Read the main Markdown to run FrostWing.
This operating system is real machine bootable and tested under the following circumstances:
Boot Disk information:
- Using 32 GB Pendrive
- GPT Disk (MBR Also works)
- Both BIOS / UEFI supported
- Ventoy loaded
- FrostWing.iso in the root directory
Important
It is recommended to use Ventoy because you will not have the risk of flashing and failing of USB-Drives
We welcome contributions to FrostWing! If you'd like to contribute code, report bugs, or suggest enhancements, please check our contribution guidelines.
FrostWing is open-source software released under the CC0-1.0 License. Feel free to use, modify, and distribute it as per the terms of this license.
- Owner and founder - Pradosh (@PradoshGame)
- OpenGL & Head Developer - GAMINGNOOB (@GAMINGNOOBdev)
- Sources
- Flanterm from Mintsuki
- ACPI and Shutdown from Mintsuki
- Floating Point Arithmetic from Kevin Lange
- UEFI Binary from BlankOn
- Interrupts from MakenOS Kernel