bond is a hobby x86-64 kernel
Go to file
2018-02-17 23:50:22 -05:00
hal Space to Tab 2018-02-17 23:06:57 -05:00
include Space to Tab 2018-02-17 23:06:57 -05:00
kernel Space to Tab 2018-02-17 23:06:57 -05:00
lib Space to Tab 2018-02-17 23:06:57 -05:00
mk - Removed bogus 32-bit and 64-bit mixed hal entrance. The new entrance is ke_main. 2018-02-17 23:00:54 -05:00
test Space to Tab 2018-02-17 23:06:57 -05:00
.gitattributes line ending.... 2018-01-26 11:17:58 -05:00
.gitignore Identity mapping in 64 bit mode and ++output directory 2018-02-14 02:31:50 -05:00
LICENSE Non-recursive make + compiled + set up QEMU + GDB. 2018-02-07 00:42:59 -05:00
Makefile - Removed bogus 32-bit and 64-bit mixed hal entrance. The new entrance is ke_main. 2018-02-17 23:00:54 -05:00
README.md Update README.md 2018-02-17 23:50:22 -05:00
Rules.top - Removed bogus 32-bit and 64-bit mixed hal entrance. The new entrance is ke_main. 2018-02-17 23:00:54 -05:00

Building

Environment

Linux distribution / Bash for Windows.

Required packages

NASM (sudo apt-get install nasm)

GCC cross compiler (see the next section)

GCC cross compiler

Method 1 - Compile from GCC source.

Follow the instructions from wiki.osdev.org/GCC_Cross-Compiler

Set the "TARGET" to "x86_64-elf" instead of "i686-elf" and build libgcc without redzone wiki.osdev.org/Libgcc_without_red_zone.

Method 2 - Precompiled binaries

VERSION: GCC 7.3 + Binutils 2.30

HOST: x86_64-pc-linux-gnu

CONFIGURED WITH: --target=x86_64-elf --disable-nls --enable-languages=c,c++ --without-headers

  1. Download "cross.tar.gz" from the Github release page.

  2. Run "tar -xvf cross.tar.gz -C $HOME/opt/cross"

Compiling

Run "make" in the root directory.

This will generate secxkrnl.elf (kernel executable) and secxkrnl.dmp (kernel dump).

Run "make clean" to clean a build.

Running

secX requires bootloader secboot (github.com/secXsQuared/secboot).

See secboot repository for more information.