Skip to content
Roberto Valenzuela edited this page Dec 7, 2024 · 6 revisions

Welcome to the OSo wiki!

OSo ("bear" in Spanish) is a microkernel for embedded systems. It currently supports Raspberry Pi 4 Model B.

OSo is an uninterruptable micro-kernel with minimal functionality:

  • Create, destroy, and schedule tasks
  • Communication between tasks
  • Handle interrupts

Everything else, including device management, is left to tasks, which can be prioritized.

Privileged code, but memory protection is optional. Though no memory protection, sharing memory between tasks is avoided (because sharing requires synchronization).

Toolchain

Before you can compile OSo, you first need to install the cross-compiler:

  1. Download the aarch64-none-elf cross compiler for your development system from ARM website. This project is using version (Arm GNU Toolchain 12.3.Rel1 (Build arm-12.35)) 12.3.1 20230626.
  2. Untar it to your desired location by running:
$ bash tar -xaf arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-elf.tar.xz -C /path/to/cross_toolchain

The /path/to/cross_toolchain will be passed to make to build the project.

Build

To build for Raspberry Pi 4, run:

$ make

For Qemu, use:

$ make TARGET=qemu

Clone this wiki locally