Before compiling this project, ensure the following tools are installed on your system:
mkfs.fat
nasm
i686-elf-gcc
i686-elf-ld
⚠️ Important: These tools must be referenced using their absolute paths in the mainMakefile
.
Before starting the build process, open the main Makefile
and make sure to:
- Set the absolute path to each required tool:
mkfs.fat
nasm
i686-elf-gcc
i686-elf-ld
- Specify the absolute path to
libgcc.a
.
This is necessary becausei686-elf-gcc
does not include it automatically during linking.
FAT=mkfs.fat
ASM=nasm
CC=/home/novice/cross/i686-elf/bin/i686-elf-gcc
LD=/home/novice/cross/i686-elf/bin/i686-elf-ld
LIBGCC_PATH=/home/novice/cross/i686-elf/lib/gcc/i686-elf/14.2.0
Once all paths are correctly configured, run the following command to build the project:
make
The compiled binary will be generated in the output directory specified in your Makefile
.
After compilation, you can run the NOVIX operating system using one of the following options:
Run the following script to launch NOVIX with QEMU:
./run.sh
Alternatively, to launch NOVIX using Bochs, run:
./runbochs
Make sure that both scripts (
run.sh
andrunbochs
) are executable:chmod +x run.sh runbochs
-
✅ You must use the cross-compiler
i686-elf-gcc
.
❌ Do not use your system’s defaultgcc
. -
🔍 If you're unsure where
libgcc.a
is located, you can search for it with:find / -name "libgcc.a" 2>/dev/null
Then, update the
LIBGCC_PATH
variable in yourMakefile
with the absolute path found.
I would love to hear your suggestions and feedback on my Discord 🚀