bond is a hobby x86-64 kernel
Go to file
2018-02-13 13:29:45 -05:00
hal - Refactored Makefile + included dependencies. 2018-02-11 22:26:03 -05:00
include - Refactored Makefile + included dependencies. 2018-02-11 22:26:03 -05:00
kernel - Refactored Makefile + included dependencies. 2018-02-11 22:26:03 -05:00
lib - Refactored Makefile + included dependencies. 2018-02-11 22:26:03 -05:00
mk - Refactored Makefile + included dependencies. 2018-02-11 22:26:03 -05:00
test - Refactored Makefile + included dependencies. 2018-02-11 22:26:03 -05:00
.gitattributes line ending.... 2018-01-26 11:17:58 -05:00
.gitignore Non-recursive make + compiled + set up QEMU + GDB. 2018-02-07 00:42:59 -05:00
LICENSE Non-recursive make + compiled + set up QEMU + GDB. 2018-02-07 00:42:59 -05:00
Makefile - Refactored Makefile + included dependencies. 2018-02-11 22:26:03 -05:00
qemu_bios.bin I don't really need UEFI.. Let's see what grub does. 2018-02-07 02:54:26 -05:00
qemu.bat I don't really need UEFI.. Let's see what grub does. 2018-02-07 02:54:26 -05:00
qemugdb I don't really need UEFI.. Let's see what grub does. 2018-02-07 02:54:26 -05:00
ReadME.txt Update ReadME.txt 2018-02-13 13:29:45 -05:00
Rules.top - Refactored Makefile + included dependencies. 2018-02-11 22:26:03 -05:00

My Hobby x86-64 OS kernel.

# Building and Debugging Guide
## Environment
Any Linux distribution / Bash for Windows + GCC cross compiler.

## Required packages
To compile the kernel, the following modules are required on linux system, please install these:

nasm, xorriso, grub-common, grub-pc-bin

## Cross-compiler
### Method 1 - Compile one yourself.
Just follow the instructions here: https://wiki.osdev.org/GCC_Cross-Compiler
Remember to set the "TARGET" to x86_64-elf instead of i686-elf and build libgcc without redzone https://wiki.osdev.org/Libgcc_without_red_zone.

### Method 2 - Precompiled binaries
Here is my precompiled cross compiler. Feel free to use it.
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 https://drive.google.com/file/d/1ssQblBLk7I3ZqFPoeViVlsBvDMXcJFa1/view?usp=sharing

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

## Compilation
Run "make all" in the root directory
The makefile generates secxkrnl.iso (kernel image), secxkrnl.elf(kernel executable), secxkrnl.dmp(kernel disassembly) at the end.

To clean all generated files, run "make clean"

## Running
On windows run "qemu.bat"
On linux run "./qemu.bat"