Skip to content

BubelOS is an educational operating system featuring a bootloader written in EDKII. It's an experimental playground where I'll periodically add new features and explore OS development concepts.

License

Notifications You must be signed in to change notification settings

LeftarCode/bubelos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BubelOS

Prerequisites

  • GCC 10.x required for building EDK2(stable/202011)

Clone repo

git clone --recurse-submodules https://github.com/LeftarCode/bubelos

Building

1. EDK 2

cd externals/edk2
source edksetup.sh
make -C BaseTools
cd -

2. OVMF image (very, very, veryyyyy long ~1h)

You may use your own pre-built OVMF image. If not, it's worth building a image with EDK2.

./externals/edk2/OvmfPkg/build.sh -a X64 -t GCC5 -b RELEASE -D PKG_OUTPUT_DIR=$PKG_OUTPUT_DIR

3. Kernel image

./build.sh

Run OS in QEMU

  • Spawn UEFI shell:
qemu-system-x86_64 -cpu qemu64 -net none -m 2G -machine q35 -drive if=pflash,format=raw,unit=0,file=./externals/edk2/Build/OvmfX64/RELEASE_GCC5/FV/OVMF_CODE.fd,readonly=on  -drive if=pflash,format=raw,unit=1,file=./externals/edk2/Build/OvmfX64/RELEASE_GCC5/FV/OVMF_VARS.fd -drive file=./build/uefi.img,if=ide
  • Single OVMF image:
qemu-system-x86_64 -cpu qemu64 -net none -m 4G -machine q35 -bios ./externals/edk2/Build/OvmfX64/RELEASE_GCC5/FV/OVMF.fd -drive file=./build/uefi.img,if=ide

TODO

  • Migrate to newer EDK2.
  • Fix style (debug prints, passing and returning params).
  • Add status print to every error message.
  • Make more GC in Bootloader.

About

BubelOS is an educational operating system featuring a bootloader written in EDKII. It's an experimental playground where I'll periodically add new features and explore OS development concepts.

Topics

Resources

License

Stars

Watchers

Forks