Phantom OS

Last updated

Phantom OS
Phantom screen 17.10.2019.png
OS Phantom screenshot for 17 October 2019
Developer Digital Zone
Written in C, Phantom, Java
OS family RTOS
Working stateActive
Source model FOSS
Latest release latest / October 17, 2019;4 years ago (2019-10-17)
Repository github.com/dzavalishin/phantomuserland
Available in Russian, English
Platforms IA-32
Kernel type Microkernel
License LGPL
Official website phantomos.org

Phantom OS is an orthogonally persistent managed code general-purpose operating system. It is based on a concept of persistent virtual memory, and executes bytecode in a virtual machine. It is one of a few OSes not based on the classic concepts of Unix-like systems. Phantom is based on the principle that "Everything is an object", in contrast to the Unix-like approach of "Everything is a file". [1]

Contents

Overview

Phantom was founded by Dmitry Zavalishin  [ ru ] [1] and is being developed mostly by Russian programmers. It is free and open-source software (FOSS) released under a GNU Lesser General Public License (LGPL).

Basics

Managed code – Memory protection on object level, rather than process level; absence of pointer arithmetic in managed code avoids many problems that exist and occur in unmanaged code. [2]

Global address space – Inexpensive inter-process communication (IPC). Single (flat) address space allows transfer of objects from one process (application) to another by transferring links to that object. Security is achieved by the absence of pointer arithmetic and the inability of an application to get linked to an object other than by calling a public method. [2]

Persistence – Application code does not see OS restarts and can live forever—this does not use the concept of a file and any variable or data structure can be stored forever and at the same time be available directly through a pointer. Contrary to hibernation, which is done in other OSs, persistence lies in the very core principles of the Phantom OS core. The implementation creates snapshots continuously and transparently to the applications maintaining consistent internal state without pausing applications. [1]

Compatibility

Two ways to migrate code are offered: [2]

Status

As of October 2019, the system exists as an alpha version for x86 IA-32 processors. Porting to ARM architecture is underway (currently being tested, not yet ready for use) and porting to MIPS architecture and x86-64 (AMD64) has begun. Kernel operation has been demonstrated at the biggest Russian IT-conferences RIT 2011, ADD 2010, [3] CC 2010, [4] and 2009.

A Genode-based fork has been in development since 2020. [2]

See also

Related Research Articles

<span class="mw-page-title-main">Java (programming language)</span> Object-oriented programming language

Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need to recompile. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The syntax of Java is similar to C and C++, but has fewer low-level facilities than either of them. The Java runtime provides dynamic capabilities that are typically not available in traditional compiled languages.

<span class="mw-page-title-main">Java virtual machine</span> Virtual machine that runs Java programs

A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes what is required in a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

A computing platform, digital platform, or software platform is the infrastructure on which software is executed. While the individual components of a computing platform may be obfuscated under layers of abstraction, the summation of the required components comprise the computing platform.

An object-oriented operating system is an operating system that is designed, structured, and operated using object-oriented programming principles.

HotSpot, released as Java HotSpot Performance Engine, is a Java virtual machine for desktop and server computers, developed by Sun Microsystems which was purchased by and became a division of Oracle Corporation in 2010. Its features improved performance via methods such as just-in-time compilation and adaptive optimization. It is the de facto Java Virtual Machine, serving as the reference implementation of the Java programming language.

Jazelle DBX is an extension that allows some ARM processors to execute Java bytecode in hardware as a third execution state alongside the existing ARM and Thumb modes. Jazelle functionality was specified in the ARMv5TEJ architecture and the first processor with Jazelle technology was the ARM926EJ-S. Jazelle is denoted by a "J" appended to the CPU name, except for post-v5 cores where it is required for architecture conformance.

Application virtualization software refers to both application virtual machines and software responsible for implementing them. Application virtual machines are typically used to allow application bytecode to run portably on many different computer architectures and operating systems. The application is usually run on the computer using an interpreter or just-in-time compilation (JIT). There are often several implementations of a given virtual machine, each covering a different set of functions.

<span class="mw-page-title-main">Java (software platform)</span> Set of computer software and specifications

Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. Java applets, which are less common than standalone Java applications, were commonly run in secure, sandboxed environments to provide many features of native applications through being embedded in HTML pages.

In computer programming, a green thread is a thread that is scheduled by a runtime library or virtual machine (VM) instead of natively by the underlying operating system (OS). Green threads emulate multithreaded environments without relying on any native OS abilities, and they are managed in user space instead of kernel space, enabling them to work in environments that do not have native thread support.

In software development, the programming language Java was historically considered slower than the fastest third-generation typed languages such as C and C++. In contrast to those languages, Java compiles by default to a Java Virtual Machine (JVM) with operations distinct from those of the actual computer hardware. Early JVM implementations were interpreters; they simulated the virtual operations one-by-one rather than translating them into machine code for direct hardware execution.

Eclipse OpenJ9 is a high performance, scalable, Java virtual machine (JVM) implementation that is fully compliant with the Java Virtual Machine Specification.

The Java Development Kit (JDK) is a distribution of Java technology by Oracle Corporation. It implements the Java Language Specification (JLS) and the Java Virtual Machine Specification (JVMS) and provides the Standard Edition (SE) of the Java Application Programming Interface (API). It is derivative of the community driven OpenJDK which Oracle stewards. It provides software for working with Java applications. Examples of included software are the Java virtual machine, a compiler, performance monitoring tools, a debugger, and other utilities that Oracle considers useful for Java programmers.

Java bytecode is the instruction set of the Java virtual machine (JVM), the language to which Java and other JVM-compatible source code is compiled. Each instruction is represented by a single byte, hence the name bytecode, making it a compact form of data.

HipHop Virtual Machine (HHVM) is an open-source virtual machine based on just-in-time (JIT) compilation that serves as an execution engine for the Hack programming language. By using the principle of JIT compilation, Hack code is first transformed into intermediate HipHop bytecode (HHBC), which is then dynamically translated into x86-64 machine code, optimized, and natively executed. This contrasts with PHP's usual interpreted execution, in which the Zend Engine transforms PHP source code into opcodes that serve as a form of bytecode, and executes the opcodes directly on the Zend Engine's virtual CPU.

<span class="mw-page-title-main">Genode</span> Free and open-source software operating system

Genode is a free and open-source software operating system (OS) framework consisting of a microkernel abstraction layer and a set of user space components. The framework is notable as one of the few open-source operating systems not derived from a proprietary OS, such as Unix. The characteristic design philosophy is that a small trusted computing base is of primary concern in a security-oriented OS.

References

  1. 1 2 3 Dziuba, Ted (3 February 2009). "Russian rides Phantom to OS immortality". The Register . Retrieved 27 April 2011. The iPhone that never dies
  2. 1 2 3 4 "Прототип отечественной ОС Phantom на базе Genode будет готов до конца года". www.opennet.ru. 24 January 2022. Retrieved 9 November 2023.
  3. Dmitry Zavalishin reports on ADD 2010 Archived 2012-07-07 at archive.today
  4. Dmitry Zavalishin reports on Chaos Constructions’2010 (Saint-Petersburg, Russia) Archived 2012-03-23 at the Wayback Machine

Sources