x64BareBones is a basic setup to develop operating systems for the Intel 64 bits architecture.
This project is based on a UNIX based operating system where we implement many key OS features:
- Syscalls
- Scheduling (Priority-Based Round-Robin)
- Memory Management (Buddy and Implicit List)
- Semaphores
- IPC (Pipes)
- Install the following packages before building the Toolchain and Kernel:
user@linux:$ nasm qemu gcc make
- Go inside the root directory of the repository and run the following command in order to start the Docker container:
user@linux:$ docker run -d -v ${PWD}:/root --security-opt seccomp:unconfined -ti --name dockerSO agodio/itba-so:1.0
from the directory where you have the x64Barebones project.
Inside the Docker container
- Compile the Toolchain
user@linux:$ cd root/x64Barebones/Toolchain
user@linux:~/x64Barebones/Toolchain$ make all
-
Compile the Kernel, there are two options depending on the memory manager you want to use:
-
Buddy
4.1. Go to Kernel/Makefile
4.2. Uncomment line 27
4.3. Comment line 29 -
Implicit List
4.1. Go to Kernel/Makefile
4.2. Uncomment line 29
4.3. Comment line 27
-
After that, compile the project. Go to the x64Barebones directory and run:
user@linux:~/x64Barebones$ make all
From Bash terminal
- Inside the x64barebones directory, run:
user@linux:~/x64barebones$ ./run.sh