Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/goneal26/bongos

BongOS, A 64-bit hobby OS
https://github.com/goneal26/bongos

Last synced: 25 days ago
JSON representation

BongOS, A 64-bit hobby OS

Awesome Lists containing this project

README

        

# BongOS -> A 64-bit hobby operating system

![Temporary Logo](bongos_logo.png)

Pronounced like the drum or the drug apparatus, whichever you prefer.

Built off of the Limine bootloader C template.

## Roadmap

- [x] Limine Bare Bones Kernel & build system
- [x] VGA graphics interfacing
- [x] Basic font rendering (8x8 font)
- [x] Basic text buffer display + formatted printing
- [x] Getting and displaying hardware info (memory layout, tables, etc)
- [ ] Interrupt handling and keyboard input

## Dependencies

Any `make` command depends on GNU make (`gmake`) and is expected to be run using
it. This usually means using `make` on most GNU/Linux distros, or `gmake` on
other non-GNU systems.

It is recommended to build this project using a standard UNIX-like system, using
a Clang/LLVM toolchain capable of cross compilation (the default, unless `KCC`
and/or `KLD` are explicitly set).

Additionally, building an ISO with `make all` requires `xorriso`, and building a
HDD/USB image with `make all-hdd` requires `sgdisk` (usually from `gdisk` or
`gptfdisk` packages) and `mtools`.

## Architectural targets

The `KARCH` make variable determines the target architecture to build the kernel
and image for.

The default `KARCH` is `x86_64`. Other options include: `aarch64`,
`loongarch64`, and `riscv64`.

## Makefile targets

Running `make all` will compile the kernel (from the `kernel/` directory) and
then generate a bootable ISO image.

Running `make all-hdd` will compile the kernel and then generate a raw image
suitable to be flashed onto a USB stick or hard drive/SSD.

Running `make run` will build the kernel and a bootable ISO (equivalent to make
all) and then run it using `qemu` (if installed).

Running `make run-hdd` will build the kernel and a raw HDD image (equivalent to
make all-hdd) and then run it using `qemu` (if installed).

For x86_64, the `run-bios` and `run-hdd-bios` targets are equivalent to their
non `-bios` counterparts except that they boot `qemu` using the default SeaBIOS
firmware instead of OVMF.