Building skiftOS requires
- A good Linux distribution
- nasm
- gcc
- binutils
- grub
- ImageMagick
And for testing and debugging
- qemu
- gdb
# On Debian or Debian-based distributions
$ sudo apt install nasm gcc make binutils grub-pc-bin qemu-system-x86 xorriso mtools imagemagick
# On Arch or Arch-based distributions
$ sudo pacman -S nasm gcc make binutils grub qemu libisoburn mtools imagemagick
It's possible to build skiftOS WSL1 and WSL2 but it's not well tested. If you have any problems consider upgrading to a GNU/linux distribution.
Clone the repository with all its submodules.
$ git clone --recursive https://github.com/skiftOS/skift
$ cd skift
Or if you have already cloned this repo without --recursive
do:
$ cd skift
$ git submodule init
Building the toolchain is pretty straight-forward, first make sure you have all GCC and binutils dependencies:
- build-essential
- bison
- flex
- libgmp3-dev
- libmpc-dev
- libmpfr-dev
- texinfo
You can run the following command on ubuntu:
# On Debian or Debian-based distributions
$ sudo apt install build-essential bison flex libgmp3-dev libmpc-dev libmpfr-dev texinfo
# On Arch or Arch-based distributions
$ sudo pacman -S base-devel bison flex mpc mpfr texinfo
Then for building the toolchain run the build-it.sh
script
## Build the tool chain
$ toolchain/build-it.sh
## Then wait for completion
The script will do the following operation without installing anything to the host system nor requiering root access:
- Download
gcc
andbinutils
from the GNU project - Patch them using binutils.patch and gcc.patch which are located in the toolchain directory.
- Then configure and build
From the root of this repo do:
$ make all
This command will build all the components of the operating system and generate an ISO bootable in QEMU or VirtualBox.
The compatibility with virtual box is not guaranteed, as we use QEMU primarly for debuging and testing the system.
The build system allows you to create and start a virtual machine of skiftOS by using one of the following commands:
$ make run CONFIG_VMACHINE=qemu # for QEMU
# or
$ make run CONFIG_VMACHINE=vbox # for Virtual Box
If you made any modification to the source code or the content of the sysroot/ directory, the build system should be able to rebuild the project from step 3 automagically :^)
You can change the default keyboard layout by passing CONFIG_KEYBOARD_LAYOUT="fr_fr" to make.
How to change the keyboard layout?
µ keyboardctl en_us
How to change display resolution?
µ displayctl -s 1920x1080
How to change to wallpaper?
µ wallpaperctl /Files/Wallpapers/paint.png
A bug? A Missing feature? Please consider contributing to the project 🤗 ❤️
See contributing.md