This is the git repository for RefOS. This repository is meant to be used as part of a Google repo setup. Instead of cloning it directly, please go to the following repository and follow the instructions there:
https://github.com/seL4/refos-manifest
RefOS is currently supported on iMX3.1 KZM and iMX6 Sabre Lite hardware platforms, and on qemu-ARM kzm.
The repository is organised as follows.
impl/apps
: RefOS system and userlevel applicationsbootstrap
: Bootstrap application, responsible for starting new userlevel processesprocess_server
: The process server, which runs as the root task and is responsible for providing process and thread abstraction, and also responsible for initialising the entire system.file_server
: The CPIO file server, which stores files and executables in a CPIO archive and exposes them via a dataspace interface.console_server
: The console server, a system process which acts as the console device driver, managing serial input / output and EGA text mode output.timer_server
: The timer server, a userland driver process which manages the timer device, and provides gettime and sleep functionality.terminal
: The interactive terminal application.test_os
: RefOS OS-level test application, responsible for testing the OS environment.test_user
: RefOS user-level test application, responsible for testing the OS user environment.snake
: Example snake game, as a demo.tetris
: Example tetris game, as a demonethack
: Port of Nethack 3.4.3 roguelike game, as a demo.
impl/libs
: RefOS system and userlevel applicationslibdatastruct
: Provides simple C data structures such as vectors, hash tables, allocation tables...etc.librefos
: RefOS user / server shared definitions, RPC specs and generated stubs, low level helper libraries.librefossys
: Implements some POSIX syscalls using low-level RefOS, for the C library to work. This is to simplify RefOS userlevel and make porting things easier.
impl/docs
: RefOS Doxygen documentation.design
: The RefOS protocol design document.
The files in this repository are released under standard open source
licenses. RefOS code is released under the BSD license where possible, and GPL for some
external software. Please see the individual file headers and
LICENSE_BSD2.txt
for details.
Please note that RefOS is intended to be sample code and is not high assurance software. We are not reponsible for any consequences if you choose to deploy this software in production.