bond is a hobby x86-64 kernel
Go to file
2018-03-23 20:58:24 -04:00
hal switched to llvm 2018-03-23 20:58:24 -04:00
include switched to llvm 2018-03-23 20:58:24 -04:00
kernel switched to llvm 2018-03-23 20:58:24 -04:00
lib switched to llvm 2018-03-23 20:58:24 -04: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 switched to llvm 2018-03-23 20:58:24 -04: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 switched to llvm 2018-03-23 20:58:24 -04:00
README.md update readme 2018-02-17 23:53:25 -05:00
Rules.top switched to llvm 2018-03-23 20:58:24 -04: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

Set the "TARGET" to "x86_64-elf" instead of "i686-elf" and build libgcc without redzone.

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.

See secboot repository for more information.