ModOS is a modular operating system designed to be customizable, lightweight, and optimized, particularly suited for IoT environments, embedded systems, and video game development. It allows granular control over resources and supports loading/unloading of modules in real-time without requiring a reboot.
Currently, we have a 64-bit OS that displays pixels on the screen using a framebuffer. The next steps are to handle memory management and the filesystem.
Install dependencies
For Ubuntu:
sudo apt update && sudo apt install -y qemu-system-x86 grub-pc-bin mtools xorriso build-essential nasm bison flex libgmp3-dev libmpfr-dev libmpc-dev texinfo
For Fedora:
sudo dnf update && sudo dnf install -y qemu-system-x86 grub2-tools mtools xorriso make gcc nasm bison flex gmp mpfr mpc texinfo
Extract sources
mkdir -p ~/cross-compiler && cd ~/cross-compiler
Install binutils
Compile binutils
mkdir binutils-build && cd binutils-build
../binutils-X.XX/configure --target=x86_64-elf --prefix=/opt/cross --with-sysroot --disable-nls --disable-werror
make -j$(nproc)
sudo make install
cd ..
Compile GCC
mkdir gcc-build && cd gcc-build
../gcc-XX.X.X/configure --target=x86_64-elf --prefix=/opt/cross --disable-nls --enable-languages=c,c++ --without-headers
make -j$(nproc) all-gcc
sudo make install-gcc
cd ..
echo 'export PATH=/opt/cross/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Try
x86_64-elf-gcc --version
make build-x86_64 && make qemu
For now, there are no interactions; the OS can only display pixels.
You're invited to join this project ! Check out the contributing guide.
If you're interested in how the project is organized at a higher level, please contact the current project manager.
Developers
![]() Lou Onézime |
![]() Laurent Gonzalez |
![]() Mounia Arjdal |
![]() Luc Simon |
![]() Séphorah Aniambossou |
---|
Manager
![]() Pierre Lissope |
---|
🚀 Don't hesitate to follow us on our different networks, and put a star 🌟 on
PoC's
repositories
Made with ❤️ by PoC