Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/goneal26/bongos
- Owner: goneal26
- License: other
- Created: 2024-11-07T20:33:09.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-15T00:22:43.000Z (about 2 months ago)
- Last Synced: 2024-11-15T01:21:13.315Z (about 2 months ago)
- Language: C
- Size: 431 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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.