Forest OS

A free and open source operating system, written from scratch. A Bluethefox project, hosted by Enclica.

Source

Everything lives in one repository:

github.com/Enclica-Forest/Forest

git clone https://github.com/Enclica-Forest/Forest.git

Repository layout

DirectoryWhat's in it
fern/Fern, the kernel — plus the build system, Kconfig-style conf.sh, and the initrd/ tree.
foreboots/foreboots, the bootloader. Raw MBR/BIOS stages and a UEFI application.
forestos-toolchain/The cross-toolchain source package and build-toolchain.sh.
libs/Shared libraries — libc/ (forestlibs), forestcore, and vendored uacpi.
userspace/The userspace applications, including forest-shell.
MAKE_AN_OS.mdThe full build guide, start to finish. Read this first.
createos.shMenu-driven build tool, if you'd rather not drive make directly.
LICENSEThe full text of the GNU GPL v3.

Generated directories — fern/build/, forestos-toolchain/install/ and sysroot/, foreboots/build/ — are gitignored and appear once you build.

Licence

Forest OS is released under the GNU General Public License v3. In short: you may use, study, modify and redistribute it, provided you pass on the same freedoms and make your source available. The full terms are in the LICENSE file, and they are what actually governs your use — this paragraph is only a summary.

This website

The site you are reading is static HTML and one stylesheet. No JavaScript, no build step, no trackers — view source and you have all of it. It is published alongside the project so you can copy it, fix it, or host your own mirror.

Contributing

Patches are welcome, especially from people learning OS development.

  1. Fork the repository and make a branch for your change.
  2. Keep commits focused — one logical change each, with a message that says what and why.
  3. Match the style of the surrounding code.
  4. Say how you tested it. "Boots in QEMU, reaches the shell" is enough — include the ARCH and boot mode you used.
  5. Open a pull request.

Found a bug or a mistake in these docs? Open an issue. A report with the exact command, the emulator you used, and what you saw is worth ten vague ones.