Unununium (short uuu) is a free operating system development project with the goal of creating a highly componentized graphical real-time operating system. It is nicknamed after the 111th chemical element roentgenium, whose temporary IUPAC name up to November 2004 was Unununium. The project team describes their goal as follows: We want a completely dynamic system, where absolutely no single component is required to stay in memory at all times, where speed of the running applications is of prime importance, and where the programmers have total control over the machine. Components One of the primary goals is to greatly enhance and simplify communication between different components. There is also no difference between an application and a program library. Unlike most operating system architectures in which applications can utilize existing shared libraries, Unununium's environment is built out of a hierarchy of components where each of them is designed for one specific task, like editing text input. By means of the Unununium Operating Engine each component shall be able to be dynamically loaded, unloaded, or replaced during runtime. Access to all data, independent of its nature, shall be performed in a universal way. In most of today's operating systems data either can be accessed from local file systems or by several different interfaces which handle data (e.g. on the internet). The goal of Unununium is that every information accessible to the system can be accessed by an uniform method. Orthogonal persistence Persistent data objects have the attribute that they exist longer than the lifetime of its creating program or component. In most of today's operating systems, this is implemented in the form of a file system. The disadvantage of this strategy is that data needs to be explicitly loaded or stored. This makes handling data unnecessarily difficult because the user has to distinguish if that which can be seen on the screen is in the volatile primary storage or persistent on the hard disk (e.g. "Did I save that or not?"). In Unununium the whole hard disk is utilized as virtual memory. Therefore the primary storage serves like a cache for the data on the hard disk which is swapped in and out on demand. Thus there is no need to convert data into files of linear data streams when storing it on the hard disk. Objects still remain as objects, even if they are swapped out to the hard disk. Orthogonal persistence in this context denominates the attribute that the operating system manages all used data independently of their editing programs or components. Unununium's persistence is fault-tolerant, complete, automatic, and fast. In the case of an unpredictable system shutdown or crash (e.g. one caused by power loss) the whole state of the system remains consistent and gets restored immediately after turning on the machine again. System architecture Due to the consequent division into particular components as well as their extensive communication abilities, there is no need of an operating system kernel. This architecture is also called VOiD. Unununium is designed from the ground up to be a graphical real-time operating system for the desktop. It is mainly written in the Python programming language and most development work is done on Linux. System time Unununium Time is a new way of storing time used by the Unununium operating system. Internally, Unix systems store time as the number of seconds since midnight Jan 1, 1970. Other systems do something similar. But this would be quite a problem if in 2038 the same 32 bit signed representation is used, because there won't be enough bits to hold the time. Thus, Unununium uses the number of microseconds since midnight, Jan 1, 2000 TAI. TAI means "Temps Atomique International", or in English, "International Atomic Time". It differs from UTC (what you would hear on the radio, for example) in that UTC introduces a notion of leap seconds to keep it less than one second in error of Earth's rotational time. At Uuu's epoch, TAI was ahead of UTC by 32 seconds. The time since the epoch is stored as a signed 64 bit integer. This gives it enough time to represent just shy of 300 millennia with microsecond resolution. Because it's signed, it also extends in the past just as far. Hopefully, by the time we run out of time, we will have some new ideas on how to store it. Status At the moment the project is in an early development phase. The current stable version is version 0.1, which was released on September 26, 2004; development versions are automatically generated on a regular basis. Up to now a bootable system has been developed which runs the Python interpreter in it. Additionally there already exist a couple of fundamental components like a shell as well as ext2, ISO 9660 and RAM disk file system drivers. Until the release of version 0.2 Unununium will be ported to Linux and therefore run in its user space to substantially simplify development works. An initial implementation of orthogonal persistence shall be available too.