About

Threos is a microkernel operating system designed from the ground up. The OS project is part of a bigger IoT development project. The project mainly focuses on distributed embedded devices.

The system is written in C and preprocessed Assembly (share headers with C).

The current version is a brand new rewrite and redesign started around the second half of 2015.

This version supports only x86_64, but other platforms (ARM, PowerPC) are planned and prepared, and will be available if the porting is finished.

The x86_64 version is quite stable and runs well on different virtual and native machines, but the system is still in development, and we cannot guarantee that all the features are working flawlessly.

Features

  • Modular and object oriented designed
  • Multitasking multi-threading real time operation
  • Single virtual address space with memory management protection
  • On demand loading and relocation using ELF format
  • Dynamically linked libraries
  • Message based and shared memory based inter-process communication
  • Supports a commonly used subset of the POSIX
  • 32-bit and 64-bit aware
  • Small memory footprint
  • Package manager

Network

  • TCP/IP, IPv4, DHCP, DNS, UDP
  • HTTP, FTP and Telnet servers
  • BSD socket API

Filesystems

  • VFS (Virtual File system)
  • FAT32
  • ext2
  • custom flash filesystem
  • boot filesystem

Services

  • Registry
  • Devman (Device Manager) that resolves dependency between drivers

Userland

  • UNIX like command line utils
  • libc (custom implementation with some parts from musl)
  • compiler: tcc
  • text editor: joe
  • web browser: links

Supported native platforms

  • x86_64 (currently Intel only, prepared for other vendors, no 32 bit support)
    (prepared for other platforms)

Drivers on x86_64

  • ACPI
  • AHCI (SATA)
  • IDE bus master
  • APIC with MSI interrupts
  • PIIX and general chipset
  • Display in text mode only
  • Ethernet
    • Intel NICs: e1000, e1000e
    • Realtek NICs: RT8139, RT8168, RT8169
  • PCI
  • PS/2 keyboard and mouse
  • Serial (ns16550)