Update README.md

This commit is contained in:
secXsQuared 2018-02-17 23:22:46 -05:00
parent 0988ae8baf
commit c06b131b21

View File

@ -1,36 +1,34 @@
My Hobby x86-64 OS kernel.
# Building
### Environment
Any Linux distribution / Bash for Windows + GCC cross compiler.
Linux distribution / Bash for Windows.
### Required packages
Please use "sudo apt-get install" to install these:
nasm, xorriso, binutils-mingw-w64, gcc-mingw-w64, mtools
NASM (sudo apt-get install nasm)
GCC cross compiler (see the next section)
### Cross-compiler
##### Method 1 - Compile yourself.
Just follow the instructions here: https://wiki.osdev.org/GCC_Cross-Compiler
### GCC cross compiler
##### Method 1 - Compile from GCC source.
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.
Follow the instructions from https://wiki.osdev.org/GCC_Cross-Compiler
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
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 all" in the root directory
The makefile generates secxkrnl.iso (kernel image), secxkrnl.elf(kernel executable), secxkrnl.dmp(kernel disassembly) at the end.
The makefile generates secxkrnl.elf(kernel executable), secxkrnl.dmp(kernel disassembly).
To clean all generated files, run "make clean"