Ghost, a micro-kernel based operating system for the x86 architecture.
Switch branches/tags
Nothing to show
Clone or download
Latest commit ce8dad1 Dec 4, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.settings Working on the canvas implementation Aug 18, 2016
applications Implementation of tetris game example Jul 20, 2017
documentation Update compilation.adoc Dec 4, 2018
kernel Version 0.5.6 Apr 11, 2017
libapi Version 0.5.6 Apr 11, 2017
libc Version 0.5.6 Apr 11, 2017
libuser Version 0.5.6 Apr 11, 2017
patches Version 0.5.4 Nov 17, 2016
tools Version 0.5.3 May 13, 2016
.gitignore Removing .hg from git history Dec 20, 2016
.hgignore Working on the canvas implementation Aug 18, 2016
.hgtags Version 0.5.4 Nov 17, 2016
.project Sources 0.4.1 Jul 26, 2015
CHANGELOG Version 0.5.6 Apr 11, 2017
GHOST-COPYRIGHT Update GHOST-COPYRIGHT Apr 28, 2017
IDEEN Version 0.5.3 May 13, 2016
LICENSE Sources 0.4.1 Jul 26, 2015
README.md Update README.md Dec 4, 2018
USBSTICK.md Version 0.5.3 May 13, 2016
ghost.sh Version 0.5.3 May 13, 2016
i686-ghost-toolchain.cmake Version 0.5.2 Mar 20, 2016
toolchain.sh Version 0.5.4 Nov 17, 2016

README.md

ABOUT GHOST

Ghost is an 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. This repository is occasionally updated with the new sources.

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

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 :-)

Status

This is the bleeding edge source version of April 12, 2017. Version 0.5.6

Current highres-screenshot

Features

  • Pure micro-kernel
  • Multiprocessor- & multitasking support
  • IPC - pipes, signals, messages, shared memory
  • Window server (GUI with homemade toolkit)
  • Patched GCC (OS specific toolchain)
  • self-made libc
  • libghostapi, extensive kernel API library
  • libstdc++ port
  • libghostuser for simplified file I/O, creating UIs & more...
  • VESA video driver
  • PS/2 keyboard & mouse driver
  • ELF binary support
  • Userspace filesystem driver support
  • Serial COM1 kernel logging
  • Virtual 8086 for BIOS calls
  • Copy-on-write implementation, fork()

Ported software

  • musl (libm part of Ghost's libc)
  • cairo
  • freetype
  • libpng
  • pixman
  • zlib
  • nasm
  • bash (in progress)

Documentation

See the documentation folder for documentation. It contains information about the technical design as well as building instructions.

Contact

If you want to get in contact, contribute to the project or have any questions, feel free to contact me at:

max.schluessel@gmail.com

-Max Schlüssel