UX/RT is a QNX-like OS with influences from Linux and Plan 9, with a primary focus on workstations and embedded systems. Currently it is in a very preliminary state; it can run a shell and a few demo programs out of an in-memory filesystem, but not much more.

Download a demo VM for QEMU

The goal is to eventually make a better Linux than Linux and a better QNX than QNX for desktops and embedded systems.

Linux is held back on the desktop by its development model and architecture. Its decentralized development model with many projects developed by disparate groups with differing goals and packaged into distributions by groups separate from the developers of most of the included packages is always going to produce an OS with many rough edges that show up on client machines more than anywhere else. The architecture of Linux exacerbates these issues by lacking any coherent extensibility mechanism and using ad-hoc interfaces for different subsystems.

While QNX is well-suited to complex high-end embedded systems requiring a general-purpose real-time OS, it is proprietary and controlled by a single company, so developers of embedded systems have very little control over its development. Its extensible microkernel architecture does mitigate this to some extent, but an open-source QNX-like OS would allow significantly more control. Its proprietary nature with installation images locked behind a login wall also limits developer mind share and the pool of developers experienced with it. In addition, QNX only has a somewhat limited self-hosting desktop build; a self-hosting RTOS with a more full-featured desktop build with broad hardware support would reduce friction when developing embedded systems.

Unlike Linux, UX/RT is an integrated system with a generalized mechanism for extensibility in the form of the resource manager API and a standard RPC layer. It will have a custom desktop environment and window system that will take full advantage of all features provided by the base OS. Where third-party code is used, it is either easy to integrate without significant compromise or is forked and maintained separately from the original. Unlike QNX, UX/RT is open source and will have a full-featured desktop build with hardware support comparable to Linux (since it will have a compatibility layer for Linux drivers.

Current features:

  • Microkernel architecture with QNX-like message passing
  • Filesystem as the sole lookup primitive for services
  • Preference for memory-safe languages in new code
  • Runs a simple test shell from an in-memory filesystem

Planned features

  • Modular stateful init system (like Solaris SMF but no databases or XML), including a unified event manager to replace ad-hoc event managers like udev, udisks, NetworkManager, etc. with units that invoke commands
  • Linux-compatible driver layer based on LKL, supporting the majority of Linux drivers without modification and without running an entire Linux VM
  • Implementations of most Linux-specific APIs in order to ease porting of Linux programs
  • Modular container management system with an unopinionated base layer and higher-level managers on top of that
  • Package manager integrated with the container manager, including support for overlay containers that allow packages to see different dependencies without requiring full isolation
  • Linux user-level binary compatibility layer implemented as a combination of a library and a few resource managers, integrated with the container manager
  • QNX compatibility layer (might be source-level only)
  • Security model based on a combination of role-based access control and capability transfers (including roles for intra-account security), with no reversion to a special-cased root account outside a compatibility layer
  • Compositing window server with a nearly policy-free architecture (window management will be implemented in a separate window manager process) and global operations gated behind permissions instead of being left out of the core protocol as in Wayland
  • Modular desktop environment that is unapologetically desktop-first, not mobile-first
    • Fairly Mac-like by default, but will be highly customizable
    • BTRON-style compound documents and application embedding, as well as directories with extended semantics beyond traditional folders
    • Dynamic directories generated from saved searches (implemented as a resource manager, making them accessible to all programs including CLI ones)
    • Amiga-like datatype switch library providing generic cross-application support for file format plugins
    • Full integration with the container manager, including running applications in isolated containers, as well as applications distributed as containers within disk images

Screenshots