
A2 (operating system)

A2 (formerly named Active Object System (AOS), and then Bluebottle) is a modular, object-oriented operating system, with some unconventional features, including automatic garbage-collected memory management, and a zooming user interface. It was developed originally at ETH Zurich in 2002. It is free and open-source software under a BSD-like license.
History.
A2 is the next generation of Native Oberon, the x86 PC version of Niklaus Wirth's operating system Oberon. It is small, fast, supports multiprocessing computers, and provides soft real-time computing operation. It is entirely written in an upward-compatible dialect of the programming language Oberon named Active Oberon. Both languages are members of the Pascal family, along with Modula-2.
A2's design allows developing efficient systems based on "active objects" which run directly on hardware, with no mediating interpreter or virtual machine. Active objects represent a combination of the traditional object-oriented programming (OOP) model of an object, combined with a thread that executes in the context of that object. In the Active Oberon implementation, an active object may include activity of its own, and of its ancestor objects.
Other differences between A2 and more mainstream operating systems is a very minimalist design, completely implemented in a type-safe language, with automatic memory management, combined with a powerful and flexible set of primitives (at the level of programming language and runtime system) for synchronising access to the internal properties of objects in competing execution contexts.
Above the kernel layer, A2 provides a flexible set of modules providing unified abstractions for devices and services, such as file systems, user interfaces, computer network connections, media codecs, etc.
User interface.
Bluebottle replaced the older Oberon OS's unique text-based user interface (TUI) with a zooming user interface (ZUI), which is significantly more like a conventional graphical user interface (GUI). Like Oberon, though, its user interface supports a "point and click" interface metaphor to execute commands directly from text, similar to clicking hyperlinks in a web browser.