Ghost (operating system)

Ghost OS is an open-source[1] hobby operating system and kernel. It is under development since 2014[2] and currently compatible with the x86 platform.

Ghost OS
DeveloperMax Schlüssel
Working stateAlpha
Source modelOpen source
Initial release2014 (2014)
Latest preview0.5.6b / December 17, 2018 (2018-12-17)
Repository
Marketing targetPersonal computer
PlatformsIA-32
Kernel typeMicro kernel
LicenseGPLv3
Official websiteghostkernel.org

The system is based on a microkernel and features symmetric multi-processing and multitasking. Most of the kernel and system programs are written in C++.

Design

The architectural concept is a micro-kernel design. Many of the functionalities that are usually integrated in the kernel in a monolithic or hybrid system are implemented as user-level applications. Drivers and some vital components (like the executable loader) are running as such processes. This approach tries to improve stability and avoid crashes due to faulty accesses, hardware uses or memory corruption.

There is a userspace spawner process used to load executables. The current implementation supports static 32-bit ELF binaries. Dynamic linking is not supported yet.

The kernel provides an application programming interface that is used for all inter-process communications and system commands. Driver processes access this interface to manage memory or request direct resource access. The interface functions are C-compatible.

Library support

A custom implementation of the libc is provided. This implementation incorporates the libm from the musl C library. libstdc++ is available as a default part when setting up the Ghost specific compiler toolchain.

POSIX compatibility

The system is partially POSIX.1 compatible. This was introduced to allow porting of third-party software, especially from the GNU environment, which heavily depend on standard C and POSIX functions.

gollark: I am not exis, no.
gollark: Imagine utilizing C.
gollark: It's ☭.osmarks.net.
gollark: It works for me.
gollark: If it was on my main server, I would also need to edit a configuration file and run a command to reload it.

See also

  • ToaruOS – hobby operating system by K. Lange

References

  1. "Sources, released on GitHub". GitHub. Retrieved 2016-07-28.
  2. "First public demo release of version 0.3.0, OSDev forums". forum.osdev.org. Retrieved 2016-07-28.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.