Skip to content

EhlOps/ehlos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

EhlOS

About

EhlOS is a simple OS designed to be virtualized. EhlOS is buildt using C and the GNU development tools for operating systems.

How to install tools for OS work:

The source code of most packages can be found here

Preparation
Please run this in your current terminal:

sudo apt install libgmp3-dev
sudo apt install libmpc-dev
sudo apt install libmpfr-dev
sudo apt install texinfo
sudo apt install bison
sudo apt install flex
export PREFIX="$HOME/opt/cross"
export TARGET=i686-elf
export PATH="$PREFIX/bin:$PATH"

Binutils

cd $HOME/src

mkdir build-binutils
cd build-binutils
../binutils-x.y.z/configure --target=$TARGET --prefix="$PREFIX" --with-sysroot --disable-nls --disable-werror
make
make install

GDB

../gdb.x.y.z/configure --target=$TARGET --prefix="$PREFIX" --disable-werror
make all-gdb
make install-gdb

GCC

cd $HOME/src

# The $PREFIX/bin dir _must_ be in the PATH. We did that above.
which -- $TARGET-as || echo $TARGET-as is not in the PATH

mkdir build-gcc
cd build-gcc
../gcc-x.y.z/configure --target=$TARGET --prefix="$PREFIX" --disable-nls --enable-languages=c,c++ --without-headers
make all-gcc
make all-target-libgcc
make install-gcc
make install-target-libgcc

Adding to PATH
Please add export PATH="$HOME/opt/cross/bin:$PATH" to ~/.profile.

Compiling the OS

The command used to assemble boot.s is i686-elf-as boot.s -o boot.o

This command uses the boot assembler we created earlier in How to install tools for OS work

You can compile the kernel by running i686-elf-gcc -c kernel.c -o kernel.o -std=gnu99 -ffreestanding -O2 -Wall -Wextra

The kernel can then be linked to the bootloader by running i686-elf-gcc -T linker.ld -o ehlos.bin -ffreestanding -O2 -nostdlib boot.o kernel.o -lgcc

You can verify that ehlos.bin is multiboot compliant by moving to the src directory and running ./check-multiboot.sh

To create the ISO, run grub-mkrescue -o ehlos.iso iso from the root directory of this repo

Running the OS

To run a virtual version of the system, run the following command: qemu-system-i386 -cdrom ehlos.iso

IMPORTANT: QEMU must be configured to boot things from BIOS, not just UEFI

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published