Skip to content

Frost-Wing/osdev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FrostWing Operating System

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.

GitHub all releases GitHub GitHub code size in bytes GitHub repo size GitHub Workflow Status (with event)

Note

To get a really good overview of this repository please visit https://repo-tracker.com/r/gh/Frost-Wing/osdev

Table of Contents

Images

Running (Early Booting)

https://imgur.com/xY5Qzac.png

Running (Graphics Screen)

https://imgur.com/22Uwf8a.png

Meltdown (Panic) Screen

https://imgur.com/HqYJvMK.png

Currently working Features

  • 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
  • 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
  • Serial communications (with Arduino, NodeMCU, Sparkfun, etc.)
  • Audio
    • PC Speaker

Getting Started

Prerequisites

Before you start building FrostWing, ensure that you have the following dependencies installed:

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

Building FrostWing

  1. Clone this repository to your local machine

    git clone https://github.com/pradosh-arduino/FrostWing
  2. Change into the FrostWing directory:

    cd FrostWing
  3. Install all required dependencies

    It is provided in Prerequisites

  4. 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
  1. (Optional - Recommened) To use custom cross compiler:
    make -C source ARCH="xx" CC="xx" LD="xx"
    make

Building the FrostWing Doxygen documentation

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.

Hardware/Software (Emulator) Requirements

Minimum Requirements (BIOS)

  • CPU Currently any x86_64 proccessor
  • RAM 75 MB
  • Storage Nothing required yet.
  • Graphics Only Framebuffer.

Minimum Requirements (UEFI)

  • CPU Currently any x86_64 proccessor
  • RAM 170 MB
  • Storage Nothing required yet.
  • Graphics Only Framebuffer.

Recommended Requirements (BIOS)

  • CPU Currently any x86_64 proccessor
  • RAM 128 MB
  • Storage Nothing required yet.
  • Graphics Integrated Graphics

Recommended Requirements (UEFI)

  • CPU Currently any x86_64 proccessor
  • RAM 256 MB
  • Storage Nothing required yet.
  • Graphics Integrated Graphics

Running FrostWing

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.

Booting to real machine

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

Contributing

We welcome contributions to FrostWing! If you'd like to contribute code, report bugs, or suggest enhancements, please check our contribution guidelines.

License

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.

FrostWing Team