diff options
| author | Alexey Gavrilov <alexey.gavrilov@mail.com> | 2026-06-09 11:16:44 +0700 |
|---|---|---|
| committer | Alexey Gavrilov <alexey.gavrilov@mail.com> | 2026-06-09 17:14:49 +0700 |
| commit | d8003ed52d7e360995edd112bdd0b53af8eea9b5 (patch) | |
| tree | cad3493af17da0e64768dd75495b9df070d92dc3 /BUILD.md | |
| parent | d26d2709f3233c87de6a81ae9db3c6ad1932012a (diff) | |
Root project documentation update
`README.md` is rework. Describe project concept description and
mention links. The old readme file build section move to the separate
file `BUILD.md`. It helps to fast read the corresponding file instead of
viewing a `README.md` table of content.
'CONTRIBUTING.md' file contents information to makes gain experience
and contribute in project easier.
'CHANGELOG.md' provide a detailed, chronological history of change
releases.
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
Diffstat (limited to 'BUILD.md')
| -rw-r--r-- | BUILD.md | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/BUILD.md b/BUILD.md new file mode 100644 index 0000000..2e9c87d --- /dev/null +++ b/BUILD.md @@ -0,0 +1,73 @@ +## Requirements + +1. Compiler toolset chose in the toolchain file + * GCC cross compiler toolchain (arch-elf-tool - i686-elf-g++ for compiler) + + To build and install from source refer to the [documentation](https://gcc.gnu.org/install) + + * Clang cross compiler toolchain + Clang support cross compile out the box. + + You can download *clang* from your package manager. + + Using *apt*: + + ```bash + apt-get update && apt-get install clang + ``` + + Using *pacman*: + + ```bash + pacman -Sy clang + ``` + + Or build from source consider the [documentation](https://clang.llvm.org/get_started.html) + +2. Nasm compiler (for x86 only) + + To download from package manager. + + Using *apt* + + ```bash + apt-get update && apt-get install nasm + ``` + + Using *pacman* + + ```bash + pacman -Sy nasm + ``` + +3. Grub bootloader (only it is currently supported) + + It is reccommended to build grub from source configured target as chose +architecture. + + To build grub from source refer to the [documentation](https://www.gnu.org/software/grub/manual/grub/html_node/Obtaining-and-Building-GRUB.html) + +## Kernel configuration +You can configure kernel using cmake -D option. All cmake options build-in are supported + +### Options +Not yet available options + +## Build instructions + +### On your host environment +``` +cmake -DCMAKE_TOOLCHAIN_FILE=<FILE> -D<OPTION>=<VALUE> -B build +cmake --build build +# Create iso file using *grub-mkrescue* +# Assume GRUB configured and built to a chose architecture +mkdir -p iso/os +cp build/Objective iso/os +grub-mkrescue -o build/kernel.iso iso +``` + +After you can create virtual machine or using emulator to run kernel. +For qemu and x86 architecture: +```bash +qemu-system-i386 -cdrom build/kernel.iso +``` |
