This repository has been archived on 2025-10-27 . You can view files and clone it. You cannot open issues or pull requests or push a commit.
main
Appa-OS
An hobby OS project focused on nothing currently being made for learning purposes.
Learning resources
- OSDev Wiki
- Kernel Development Tutorial by Bran
- Roll your own toy UNIX-clone OS by Jammes Molloy
- Memory Allocation Strategies by Ginger Bill
- Building An Operating System by eprograms
- x86 Operating Systems by OliveStem
- osdev repository by szhou42
Building Appa-OS
First of, build your toolchain for x86
Setup your toolchain.cmake file, e.g.:
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR "i686")
set(CMAKE_STAGING_PREFIX ${CMAKE_SOURCE_DIR}/toolchain/)
set(CMAKE_SYSROOT ${CMAKE_SOURCE_DIR}/toolchain/i686-elf)
set(tools ${CMAKE_SOURCE_DIR}/toolchain/bin)
set(CMAKE_ASM_COMPILER ${tools}/i686-elf-as)
set(CMAKE_C_COMPILER ${tools}/i686-elf-gcc)
set(CMAKE_CXX_COMPILER ${tools}/i686-elf-g++)
set(CMAKE_C_COMPILER_WORKS TRUE)
set(CMAKE_CXX_COMPILER_WORKS TRUE)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
Then use CMake 3.30 or greater to build:
cmake -S $(pwd)/ -B build -G "Unix Makefiles" -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=toolchain.cmake
cmake --build build -j 4 --
Create an ISO with
./scripts/create_iso.sh
And spinup qemu with:
qemu-system-i386 -cdrom appa-os.iso
Description
Languages
C
64.5%
CMake
19.6%
Assembly
8.6%
Python
3.9%
Shell
3.4%