Ghost Kernel

Ghost is a hobby operating system for the Intel x86 platform. The project is licensed as GPLv3. It was started as a research project to learn more about low-level software programming and computer internals. The sources are available on GitHub.

Features

The kernel and the userspace applications are written from scratch in C++ and Assembly (and some C). It is not based on any existing kernel. There is a POSIX.1 compatibility layer that allows porting some software to the system.

The most advanced features are SMP support (symmetric multiprocessing) to run on multiple processors, a v8086 monitor for executing BIOS calls (which also introduced VESA support), support for ELF binary loading (including thread-local-storage and all the other little things), as well as signal support. And there is a fancy little GUI that makes it all good-looking :-)

  • Micro-kernel
  • Symmetric multi-processing
  • Preemptive scheduling
  • IPC - pipes, signals, messages, shared memory
  • Patched GCC (OS specific toolchain)
  • libc home-made
  • libstdc++ port
  • libghostapi, kernel API library
  • libghostuser for simplified file I/O, creating UIs etc.
  • VESA video driver
  • Window server (GUI with homemade toolkit)
  • PS/2 keyboard & mouse driver
  • ELF binary support
  • Userspace filesystem driver support
  • Serial COM1 debug interface
  • Virtual 8086 for BIOS calls
  • Copy-on-write implementation, fork()


About me

My name is Max and I'm a software developer from Bavaria, Germany. I started Ghost in 2014 because I wanted to gain knowledge about how operating systems work and what happens under the hood, and well - it's just fun to build something from scratch. The biggest sources of knowledge are the OSDev Forums and wiki and the LowLevel sites.

If you are interested in collaboration or have any questions, feel free to contact me at lokoxe@gmail.com.

- Max Schl├╝ssel