Karlsruhe Operating System
Find a file
2025-02-21 03:32:49 +01:00
include some code reuse in printf 2025-02-21 03:32:49 +01:00
src some code reuse in printf 2025-02-21 03:32:49 +01:00
.gitignore Initial printf 2025-02-19 18:27:21 +01:00
bootboot.cfg Imported bootboot's mykernel sample code 2025-01-15 18:18:02 +01:00
config.default.mk MKBOOTIMG to config.default.mk 2025-02-06 10:20:41 +01:00
debug-run-qemu.sh minimal debug setup 2025-02-20 21:50:38 +01:00
font.psf Imported bootboot's mykernel sample code 2025-01-15 18:18:02 +01:00
HOW_TO_DEBUG.md minimal debug setup 2025-02-20 21:50:38 +01:00
kernel.json Building a disk image 2025-01-15 20:19:22 +01:00
kernel.ld Building a disk image 2025-01-15 20:19:22 +01:00
Makefile minimal debug setup 2025-02-20 21:50:38 +01:00
Readme.md Documented how to configure the build 2025-01-17 19:37:55 +01:00
run-qemu.sh add virtio drive; check PCI config space; find drive at slot 4 2025-01-30 15:27:41 +01:00

KarlOS

KarlOS is a student effort in Karlsruhe to create a hobbyist Operating System from scratch. The current goal of the project is to develop a simple monolithic kernel for 64-bit Intel / AMD PCs, which could serve as a platform for experimentation in the future.

Build Dependencies

You will need:

  • A x86_64 cross-compiler GNU toolchain
  • GNU make (the current Makefile is unfortunately not compatible with BSD make)
  • mkbootimg (part of [^BOOTBOOT])
  • qemu-system-x86_64 to run the kernel in an emulator

Building

make all builds the entire kernel and creates a bootable disk image in build/disk.img. Building for the first time copies the file config.default.mk to config.mk. The latter can be used to configure the build and to adapt it to the host machine. config.mk is not checked into the git repository.

References

[^BOOTBOOT] [https://gitlab.com/bztsrc/bootboot](The BOOTBOOT boot protocol and reference implementation)