The third rewrite of MinOS
- Musl 1.2.3
- Lua 5.4.4
- Doom :-)
- Scalable Screen Font 2.0
MinOS uses Musl as its standard library, and uses Clang to build it. For userspace, a GCC cross-compiler is used (i686-minos-gcc).
On Fedora:
- clang
- gcc
- g++
- lld
- nasm
- binutils
- cmake
- xorriso
- grub2-pc
- grub2-tools-extra
- clang-tools-extra
- texinfo
- wget
- patch
The full toolchain can be built like so:
./scripts/build_musl.sh &&\
./scripts/build_toolchain.sh
Then build the project:
# (after adding toolchain/prefix/bin to path)
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain/CMake/toolchain.cmake .. -G Ninja
ninja
- src/thread/i386/__set_thread_area.s has been commented out, and a stub provided in __init_tls.c instead (which avoids manipulating segment registers)
- arch/i386/pthred_arch.h has been stubbed out (for the same reason as above)
- crt/crt1.c supports the change above with a false pthread (and is patched to fix a clang build error with memset being undeclared)
- this all means that TLS is not supported yet
qemu-system-i386 -cdrom build/MinOS.iso -serial mon:stdio
- Uses the Perfect DOS VGA 437 font
- Toolchain built with patches from Nightingale and SerenityOS
- MinOS 1 - mostly written in the summer of 2021, C and C++
- MinOS 2 - written a few months ago (mid 2022), in Rust
- MinOS 3 - written now (from August 2022), back in C and C++