Skip to content

1. Building the Operating System.

Pradosh edited this page Jan 26, 2025 · 3 revisions

Prerequisites

Packages

  • For Debian based OS (Ubuntu, Pop_OS, Kali, etc.)
    sudo apt install -y make bison flex texinfo nasm mtools wget tar binutils build-essential doxygen git jq curl qemu-system-x86 xorriso
  • For Arch based OS (Arch, Manjaro etc.)
    sudo pacman -S make bison flex texinfo nasm mtools wget tar binutils base-devel doxygen git jq curl qemu qemu-system-x86 xorriso

The Window Manager!

Before building the OS itself, you have to build the window manager.

  • Get the Window Manager

    git clone https://github.com/Frost-Wing/FrostedWM.git
  • Build the Window Manager

    make
  • Copy the libFrostedWM.so

    You must copy the libFrostedWM.so if not (A) The OS would not build into a final OS. (B) Would have problems during booting. (C) Will have a older version of the window manager.

    You must copy the libFrostedWM.so to ./source/boot/ (assuming you are currently in the root path of the OS.)


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 the bootloader

    • 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
  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

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


Quick building the OS

If you quickly need to clean, compile, build-iso and test run it with QEMU all together. You can run:

make everything

Now you can scream "I use frostwing btw"

image