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 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 has been founded by Dmitry Zavalishin  [ ru ] [1] and is being developed by mostly 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 via 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 could live forever—this does not use the concept of a file and any variable or data structure could be stored forever and at the same time be available directly through a pointer. Differently from hibernation that 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 in 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 is being developed 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 an environment in which software is executed. It may be the hardware or the operating system (OS), a web browser and associated application programming interfaces, or other underlying software, as long as the program code is executed. Computing platforms have different abstraction levels, including a computer architecture, an OS, or runtime libraries. A computing platform is the stage on which computer programs can run.

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 and now maintained and distributed by Oracle Corporation. It features improved performance via methods such as just-in-time compilation and adaptive optimization.

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 3rd 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 virtual machine, a compiler, performance monitoring tools, a debugger, and other utilities that Oracle considers useful for a Java programmer.

Java bytecode is the instruction set of the Java virtual machine (JVM), crucial for executing programs written in the Java language and other JVM-compatible languages. Each bytecode operation in the JVM is represented by a single byte, hence the name "bytecode", making it a compact form of instruction. This intermediate form enables Java programs to be platform-independent, as they are compiled not to native machine code but to a universally executable format across different JVM implementations.

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