Skip to content

An x86 bootloader written in assembly from scratch. Work inspired by Nick Blundell's "Writing a Simple Operating System - From Scratch"

Notifications You must be signed in to change notification settings

abrantesarthur/gos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GOS

I wanted to understand how an OS gets loaded into memory at boot time so I wrote an X86 bootloader from scratch.

Development

Gos requires Make >= 3.

Setting Up

You need a crosscompiler to compile the kernel on MacOS, since your default system compiler assumes you are writing code that will run on your hosted operating system. You can install one by running the install_cross_compiler.sh script.

This installs a gcc crosscompiler targeting the x86-64 architecture. Once it completes in potentially a few minutes, the binary will be available at ~/opt/cross/bin as x86_64-elf-gcc.

Running

To compile the bootloader and run it on qemu:

make run

If it goes well, you should see a message saying "X" on the top-left corner of the screen. Pretty cool, huh?

About

An x86 bootloader written in assembly from scratch. Work inspired by Nick Blundell's "Writing a Simple Operating System - From Scratch"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published