another hobby operating system :) https://www.benjidial.net/weblog/calcite
Find a file
2026-01-05 15:14:35 -05:00
disk refactor some kernel stuff, start terminal 2026-01-02 18:00:08 -05:00
include refactor some kernel stuff, start terminal 2026-01-02 18:00:08 -05:00
src custom linker script for user apps to guarantee that sections are page-aligned 2026-01-05 15:14:35 -05:00
.gitignore switch build system to generated ninja file 2025-07-05 20:11:15 -04:00
compile_flags.txt refactor some kernel stuff, start terminal 2026-01-02 18:00:08 -05:00
get-dependencies.sh refactor some kernel stuff, start terminal 2026-01-02 18:00:08 -05:00
license.txt first commit 2025-07-04 21:33:28 -04:00
make-build.sh custom linker script for user apps to guarantee that sections are page-aligned 2026-01-05 15:14:35 -05:00
qemu.gdb refactor some kernel stuff, start terminal 2026-01-02 18:00:08 -05:00
readme.txt refactor some kernel stuff, start terminal 2026-01-02 18:00:08 -05:00

  ____      _      _ _
 / ___|__ _| | ___(_) |_ ___
| |   / _` | |/ __| | __/ _ \
| |__| (_| | | (__| | ||  __/
 \____\__,_|_|\___|_|\__\___|

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 xorriso
 * NASM
 * Ninja build system

On Debian, it is sufficient to run this command:
  apt install binutils curl gcc nasm ninja-build xorriso

To build Calcite, run these commands:
  sh get-dependencies.sh
  sh make-build.sh release
  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. If you already built Calcite in "release" mode, run:
  rm -r build build.ninja
  sh make-build.sh debug
  ninja

If you did not already build Calcite, then you do not need the first command.

=== License

Calcite is Copyright 2025-2026 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, version 9.3.4. Limine is
Copyright 2019-2025 Mintsuki and contributors, and is released under the
BSD 2-Clause license. You can find Limine online at
  <https://codeberg.org/Limine/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".

The terminal, included in the disk image, is linked with the Flanterm library,
version 2.1.0. Flanterm is Copyright 2022-2025 minstuki and contributors, and
is released under the BSD 2-Clause license. You can find Flanterm online at
  <https://codeberg.org/Mintsuki/Flanterm>.
After running "sh get-dependencies.sh", you can find the license of Flanterm
at "dependencies/flanterm/LICENSE".