logo

AOS

(Alice Operating System)

About

Born from an interest in hobby operating system development, AliceOS is a small, partially UNIX-like and vaguely POSIX-compliant operating system.

Another of the driving reasons for its creation was the discomfort of the creator with the hostile *nix environment, specifically the constant fighting amongst different systems advocates, or the various software wars, or license wars, etc.

It is loosely inspired by many existing systems like GNU/Linux, Plan 9 and MINIX, and strongly inspired by other hobby OSes like ToAruOS. Adopting, changing, expanding and discarding many concepts from all of them.

The main focus of the project is the creation of a simple and efficient operating system built entirely from the ground up, by individuals with little to no actual experience in the field.

The entirety of the system is Free/Libre and Open Source Software, released under the MIT license. Development of its various components can be followed on Marisa's GitHub.

Kernel

AliceOS-kernel is a small monolithic kernel written mostly in C, with platform-dependent Assembly for lower level tasks the C language can't cover.

The kernel is designed to completely avoid BIOS calls due to reliability concerns (BIOS is usually proprietary).

Basic components of the kernel are separated in "compartments", a.k.a. "pseudo-namespaces", for the sake of keeping things well organized.

The kernel is composed of:

Initial stages of development in the kernel involve ocassional major rewrites as the developer(s) learn more and more in the process. The evolution of the project is very chaotic, sometimes unpredictable.

Coreutils

Known as "Alice in Userland" (Au in short), as a reference to a certain "children's" book (it's pretty easy to guess which one). This was the very first component of the AOS project to ever be created.

Au is a set of basic core utilities with a major focus on simplicity and avoidance of feature creep. Every single utility does only what's agreed on being "the very least that is needed".

This project is available separate from the AOS project as a not feature complete alternative to the GNU coreutils on Linux based environments. In fact, that is how it all started.

Please note that the Linux incarnation of the project isn't even POSIX compliant.

Init

Puppet Master is the reference init system and supervisor for AOS. Written entirely in Dollscript.

The core init is an extremely bare-bones doll that simply provides functions for three stages:

Puppet Master will also be available for Linux. Due to the inavailability of Dollscript support in the kernel (not likely to ever happen), the core init is written in C, containing an embedded Dollscript interpreter.

Compositor

The WALFAS reference compositor, accidentally named after Walfas (really). Provides basic windowing support on top of the kernel framebuffer.

AWE is a complementary project, providing a graphics toolkit for WALFAS clients. The AWE toolkit also contains a compositor on its own, named after itself, which allows windows to perform windowing inside themselves. The practicality of this is questionable, it is merely added "just for the hell of it".

Shell

Tsundere shell (Tsh). Mostly inspired by Zsh. Enough said.

C library

AlibC (with Spanish pronounciation it almost reads like "Alice"). It's a C11-compliant C library, with partial POSIX coverage, too.

Aims for being small and robust. Its direct source of inspiration is of course the brilliant Musl project.

Minor components

Standard

AOS (AOS (Alice Operating System) OS Standard). The standard made after the OS, purely for documentation purposes.

Not really a "standard", actually. It's more like a design document for the project, describing how it's done and all that jazz.

Linux and AOS

Tuxice is the name a future project, which will involve creating a partial AOS system using Linux as the kernel. Not much has been planned at the moment, so it's "just an idea".