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. A2 incorporates a
minimalist design, implemented in a
type-safe language with
automatic memory management, combined with a set of
primitives (at the level of
programming language and
runtime system) for synchronizing access to the internal properties of objects in competing
execution contexts. Above the
kernel layer, A2 provides a set of modules providing unified abstractions for devices and services, such as
file systems,
user interfaces,
computer network connections, media
codecs, etc. ==See also==