Ghost Kernel

Started redux 2019/02/23, 13:18:34

Updated to binutils 2.31 and gcc 8.2.0. With this branch I've finally started what I planned for a longer time - doing a bigger refactoring of the codebase.

The main focus will be rewriting the taskign implementation. In my initial plan I thought it would be feasible to implement syscall-logic that takes some time within waiter structures. These waiters got pretty complex by now and I feel it makes more sense to use actual kernel threads for some tasks.

You can follow the progress on the redux branch on GitHub.

I've also updated the documentation on how to build Ghost on your local machine - I'm working on getting it on this website soon.

34 comments

Planning something new 2018/04/17, 06:14:39

As you maybe noticed, I've not been very active in the project within the last months. The main cause for this is that I've moved to a different city I was really quite busy.

Currently thinking about rewriting some parts, I want to clean up some things that are not quite as I want them to be. There are some smaller issues but there are also a few design flaws that might require reworking some parts of the codebase.

Nothing sure yet, but I will post updates here. If you have any suggestions, feel free to leave some comments!

Btw: check out MeetixOS, an OS based on Ghost Kernel and actively developed by Marco. Check his page for updates meanwhile!

9 comments

Meet MeetixOS, the first Ghost-derived OS project 2017/05/01, 14:22:49

Few days ago, a fellow programmer contacted me and revealed a project he has started:

MeetixOS - an operating system derived from the Ghost OS. It extends the kernel with some features and adds various applications.

https://github.com/MarcoCicognani/MeetiX-OS-Project

It is nice to see what's possible with the kernel already and what the Marco was able to build on top of it. Great work!

I'm very interested to see which way this project will go and how we can collaborate together.

Keep it up!

10 comments

Kernel improvements, pretty boot & started porting GNU bash 2017/04/20, 12:33:37

Sources version 0.5.6 are now in the GitHub repository! You can download the current demo file on the download page.

Made some improvements to the kernel and fixed a few minor issues in the libc and libapi. Improved how command line arguments are passed when loading binaries. Previously, the initialization routine running before the user's main function had to parse the arguments - now they are already parsed by gosh (the new Ghost shell) and provided bite-sized to the executable.

Most time was spent finishing the new terminal (that now responds well to escape sequences) and then starting a port of GNU bash. It depends on quite some POSIX/Unix functions that I had to implement/still have to implement to get it running. It compiles well now and tells me its version, but there is still some stuff to do.

Last but not least, I added a fancy boot screen to make it look a little nicer when starting up ;-)

9 comments

Terminal VT100 support, separate shell implementation 2017/01/14, 11:30:08

Happy new year to all of you! :)

I rewrote the terminal driver so that it now uses VT100 for output. With this it is now possible that applications can control their terminal window by sending escaped commands.

This also allowed me to finally separate the shell implementation from the terminal itself (it was basically a "built-in shell" before). The shell is now found in gosh - the Ghost shell. This shell is still work-in-progress but will soon be enriched with various features.

What you see in the screenshot is a little demo - I ported the Duktape JavaScript interpreter and made it run a script. I'm thinking about using this as a replacement for what bash/sh usually do, but this is just an idea for now.

10 comments