Skip to content

1. Building the Operating System.

Pradosh edited this page Mar 8, 2026 · 5 revisions

Note

Code - OSS + clangd IntelliSense setup

If you use Code - OSS with clangd, this repository now includes workspace settings and a Makefile helper:

  1. Install the clangd language server and the Code - OSS extension llvm-vs-code-extensions.vscode-clangd.
  2. From repo root run:
    make clangd
    This generates source/compile_commands.json using the same include paths and compile flags as source/Makefile.
  3. Open the repo in Code - OSS. clangd will automatically use .vscode/settings.json and index the code.

Regenerate compile_commands.json whenever you change compiler flags or add/remove C source files.


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

Building the Cross Compiler.

It is simple, just open your terminal git clone fwtoolchain repository by,

git clone https://github.com/Frost-Wing/fwtoolchain.git

then cd into the cloned directory and just run

./build.sh

Build executables

After installation, the standard GNU tools are available under custom names for convenience:

gcc      -> fwgcc
g++      -> fwg++
ld       -> fwld
as       -> fwas
ar       -> fwar
objcopy  -> fwobjcopy
objdump  -> fwobjdump
nm       -> fwnm

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:

    make -C source
    make
  5. (Optional - Untested) To use your own custom cross compiler:

    make -C source CC="xx" LD="xx"
    make

Note

A suitable cross-compiler was built for x86_64 and the OS is meant to work for it. Other cross compilers are not tested thus use it with your own risk.


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

Clone this wiki locally