Keyronex is a hobby operating system. It makes no pretences to be anything novel or exciting, and doesn't do anything likely to be interesting to anyone.
The long-term goal is to build a fairly competent operating system by the standards of the early 90s, with as much scalability and as many mod-cons as is reasonably possible for a single person to implement. The system combines technical influences from both the Unix tradition (particularly Mach/NeXTSTEP, NetBSD, and Solaris) with influences from the VMS tradition (particularly OpenVMS itself, Mintia, and Windows NT). Special attention has been given to the virtual memory system.
Keyronex is a portable system. Supported platforms are summarised below; more detailed information is available in the Platforms document.
| Platform | Architecture | Status |
|---|---|---|
| ACPI 64-bit PC | amd64 | Well-supported |
| ACPI AArch64 | aarch64 | Poorly supported1 |
| ACPI RISC-V 64 | riscv64 | Partly supported2 |
| Amiga | m68k | Planned |
| QEMU Virt m68k | m68k | Well-supported |
Some manual pages for the kernel have been written. An introduction to the kernel manual pages section can be found at the Introduction.
[ This is a rewrite branch which currently lacks features; the previous, more
featured branch is 23-jul, which features ports of such apps as the GNU
Coreutils, BASH shell, Binutils, and GCC, as well as Xorg and some basic X11
apps such as Twm and Xeyes, and the Links text-mode web browser. ]
In kernel mode, a rough distinction can be drawn between the kernel, executive services, and the driver framework. This is a non-inclusive list of the features of Keyronex:
Kernel
Virtual Memory
Executive Services
Drivers & Filesystems
Miscellaneous Kernel:
POSIX subsystem server:
Several third-party components are used. These are some of them:
queue.h and tree.h, generic type-safe list/queue and tree
macros for C.cia.h, custom.h.kprintf and family.Code original to Keyronex is licenced under the Mozilla Public Licence v2.0
(MPLv2).
Other components are under their own licences, all of which are MPL compatible;
these are mostly under the BSD or similar licences.
See the vendor and subprojects folders where the licences of the third-party
components can be found.
To build Keyronex and all of the userspace you will need the following dependencies:
autopoint
gettext
git
gperf
help2man
libgmp-dev
libmpc-dev
libmpfr-dev
libtool
m4
meson (>= 0.57.0)
pkg-config
python3
python3-mako
python3-pip
texinfo
yacc
xbstrap
xorriso
These packages are gotten with apt install on Ubuntu, except for xbstrap,
which is gotten with pip install xbstrap.
The AArch64 port has only had limited testing. ↩
The RISC-V 64 port has only been tested under QEMU with -M virt and does
not support SMP yet. ↩