Ghost (operating system)
Developer | Max Schlüssel |
---|---|
Working state | Alpha |
Source model | Open source |
Initial release | 2014 |
Latest preview | 0.5.6 / April 21, 2017 |
Marketing target | Personal computer |
Platforms | IA-32 |
Kernel type | Micro kernel |
License | GPLv3 |
Official website |
ghostkernel |
Ghost OS is a free and open-source[1] operating system for personal computers. It is under development since 2012[2] and currently compatible with the x86 platform.
The system is based on a microkernel named "Ghost Kernel" and features symmetric multi-processing and multitasking. Most of the kernel and system programs are written in C++. The project was started as a research system and now contains various advanced features like a graphical user interface and a custom C library.
Design
The architectural concept of the kernel focuses on implementing a pure microkernel that only allows user-space threads to run with appropriate permissions and doesn't support kernel level threads. Many of the functionalities that are usually integrated in the kernel in a monolithic or hybrid system are implemented as user-space applications. All drivers and some vital components (like the executable loader) are running as such processes. This approach was chosen to avoid system crashes due to faulty accesses, hardware uses or memory corruption.
Executables
Loading executables is done by the spawner process. The current implementation supports the loading of static 32-bit ELF binaries. Dynamic linking is not supported yet.
Kernel interface
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 standard C library (libc) is provided with the operating system. This implementation incorporates the Math library (libm) from the musl C library. The C++ standard 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.
References
- ↑ "Sources, released on GitHub". GitHub. Retrieved 2016-07-28.
- ↑ "First public demo release of version 0.3.0, OSDev forums". forum.osdev.org. Retrieved 2016-07-28.