Jump to content

Draft:Ghost (operating system)

From Wikipedia, the free encyclopedia
Ghost (operating system)
DeveloperMax Schlüssel
Written inC, C++
OS familyPOSIX compatible
Working stateCurrent
Source modelOpen source
Initial releaseJune 26, 2015; 9 years ago (2015-06-26)
Latest releasev0.18.0 / February 3, 2025; 8 days ago (2025-02-03)
Platformsx86
Kernel typeMicrokernel
Default
user interface
Custom window manager
LicenseGNU General Public License
Official websitewww.ghostkernel.org

Ghost is an open-source hobbyist operating system project and micro kernel for the Intel x86 platform. It provides a modular, clean codebase for exploring modern operating system concepts, especially related to microkernel architectures. The project was first publicly released in 2015 under the GNU General Public License.[1]

Technical overview

[edit]

Architecture

[edit]

The kernel employs a microkernel architecture, where core functionalities such as inter-process communication, memory and task management reside in a minimal kernel. The system emphasizes a modular user-space driver concept where system components such as device drivers, the windowing system and other system services run in user space.

This design enhances system stability by isolating failures to individual modules rather than the entire system. Communication between these modules is facilitated via a message queue-based mechanism, which supports the system's modularity and fault isolation.

Key features

[edit]

The project is primarily written in C/C++[1] with parts of Assembly for low-level hardware interaction. It supports symmetric multiprocessing and preemptive multitasking[2]. The system offers a variety of system calls and inter-process communication methods available through the libapi application library.

A basic graphical user interface is provided by a compositing window management server. The server uses the Cairo graphics library and freetype for font rendering. A toolkit library (libwindow) is available for applications to create windows and react on component events, where the interface works similar to the Swing (Java) widget toolkit.

The implemented drivers support video output for the VMWare SVGA graphics controller, VESA VBE support on real hardware as well as PS/2 mouse and keyboard input. Due to basic POSIX compatibility, a set of open-source libraries like zlib are ported to the system. The documentation[3] describes details about the system.

Asynchronous handling

[edit]

This principle of separation into asynchronous operations in the context of drivers and applications can be well observed in the implementation of the terminal application. In GUI mode, the terminal requests a shared memory buffer from the window server to perform all rendering. The window server in turn communicates with the respective video driver to set up graphics and provide the framebuffer. Mouse and keyboard input are again isolated in a separate PS/2 driver process that sends input through a pipe to the window server.

Reception

[edit]

Within open-source and educational communities, Ghost OS has attracted attention[4] for its clean code structure and modular design. It is often compared to other educational OS projects like ToaruOS and SerenityOS.

The project has a derivate[5] called the MeetixOS project, an independent fork of the system with focus on modern C++20 support.

History

[edit]

The Ghost operating system was started in 2015[2] by German software developer Max Schlüssel as a personal project for exploring microkernel design approaches.

It was first released publicly[1] on GitHub in 2015 under the GNU General Public License v3 (GPLv3), a license chosen to ensure the project and its derivatives remained open-source.

See also

[edit]
  • HelenOS - another operating system with a similar approach
  • ToaruOS - a hobbyist operating system developed from scratch
  • Sortix - a self-hosting modern POSIX operating system
  • TempleOS - an esoteric lightweight operating system

References

[edit]
  1. ^ a b c "maxdev1/ghost". GitHub. June 16, 2015.
  2. ^ a b Schlüssel, Max (February 2, 2025). "About Ghost". Retrieved February 2, 2025.
  3. ^ "Ghost system documentation". February 2, 2025. Retrieved February 2, 2025.
  4. ^ Termansen, Jonas (March 6, 2018). "Notable projects of OSDev community". Retrieved February 2, 2025.
  5. ^ Cicognani, Marco (August 5, 2021). "The MeetixOS project".
[edit]