another hobby operating system :)
https://www.benjidial.net/weblog/calcite
disk/limine | ||
kernel | ||
.gitignore | ||
compile_flags.txt | ||
get-dependencies.sh | ||
license.txt | ||
make-build.sh | ||
qemu.gdb | ||
readme.txt |
____ _ _ _ / ___|__ _| | ___(_) |_ ___ | | / _` | |/ __| | __/ _ \ | |__| (_| | | (__| | || __/ \____\__,_|_|\___|_|\__\___| Calcite is a hobby operating system. I am maintaining a weblog with occasional status updates at <https://www.benjidial.net/weblog/calcite>. Calcite is very much alpha software. Do not expect it to do anything useful. === Building Calcite requires some software to be installed before it can be built: * curl * GCC (Any C compiler supporting both C99 and C23 should work.) * GNU Binutils (Specifically, "ld" is used to link the kernel.) * GNU tar (Any POSIX tar should be fine.) * GNU xorriso * NASM * Ninja build system On Debian, it is sufficient to run this command: apt install binutils curl gcc nasm ninja-build tar xorriso To build Calcite, run these commands: sh get-dependencies.sh sh make-build.sh ninja This will build a disk image at "build/disk.iso" that can be booted with either BIOS or UEFI. === Debugging Once Calcite has been built, some more software is required to debug it: * GNU's GDB * QEMU, including the x86_64 system On Debian, it is sufficient to run this command: apt install gdb qemu-system-x86 Then, just run "gdb -x qemu.gdb". Calcite will be booted in QEMU, and GDB will be attached to it. Use "c" or "continue" in GDB to start execution. While debugging, it is useful to disable optimizations and enable debugging information. In "make-build.sh", under COMMON_CC_EXTRA_FLAGS, you can change "-O3" to "-Og -ggdb". Then, run these commands to rebuild: rm -r build rm build.ninja sh make-build.sh ninja === License Calcite is Copyright 2025 Benji Dial, and licensed under the GNU GPL v3. See "license.txt" for the text of the license. The disk image includes the Limine bootloader. Limine is Copyright 2019-2025 Mintsuki and contributors, and is released under the BSD 2-Clause license. You can find Limine online at <https://github.com/limine-bootloader/limine>. After running "sh get-dependencies.sh", you can find the license of Limine at "dependencies/limine/LICENSE". Limine also has its own dependencies. In the source repository of Limine, you can find a list of these with their licenses at "3RDPARTY.md".