Ghost Kernel

Rendering improvements and a calculator 2016/01/23, 14:15:43

I wrote a small calculator to test the UI interface of the window server. The application is all implemented in client side, using the API that the server provides.

It only does integer calculation at the moment though, because I was too lazy to implement strtod. :D Here's a little video of it in action. See the source code on GitHub to get an idea of how the UI API is used here.

The latest changes overall are a lot of improvements in the client-windowserver protocol, a login screen and some cleaning up in the terminal (occasional deadlocks fixed). Currently working on making the ramdisk filesystem writable to have a temporary storage, fixing the new scheduler implementation on multi-core systems (has some bugs), and then implementing a desktop application with nice little icons.


Merry christmas! And some SSL for 2015/12/16, 13:52:42

Merry christmas everyone! I'm not too busy developing during christmas time. Wish all of you nice holidays and a good slide into the new year. :-)

I added a nice little SSL certificate to the site, thanks to Great project!

At the moment I'm still (re)working the window server. There are some issues with memory allocation in multithreaded applications of which I need to find the cause (this kind of sucked up my development time for quite some time now). Will post more updates when I have details.

1 comment

0.5.0 - New scheduler & window server 2015/10/25, 14:25:09

*Wohoo!* The update is done. Took quite some time: it introduces changes in the kernel, a new scheduler, and also a rewrite of the window server. These had to be revised a lot - yet there are still some bugs (which are already being hounded). :-)

The new scheduler implementation is based on wait and run queues. The internal system call handler interface was refurbished and the handling cleaned up. Changing the scheduler required modifying some of the handlers, as they were implemented based on the assumption that the "current thread" given by the tasking facilities is consistent; with the new queue implementation, a task that is told to wait is immediately moved to the wait queue, thus being no more the _current thread_. A system call handler now gets the last executed thread passed as a parameter and can use it immediately (without asking the schedulers for the current thread). This will also help improve performance of some interprocess functions and made it possible to improve the idling of the scheduler.

The window server was completely rewritten and cleansed from the obsolete interface, and a new (variable-sized-messages) based interface was introduced. This simplifies communication a lot. The old windowmanager application is now obsolete.

Next things to do will be fixing a bug that freezes the window server for some reason and then extending the UI interface to make it possible to implement the first applications that actually have a working user interface.

  • major kernel update
  • new, cleaned up window server implementation
  • example filesystem driver updated
  • PS/2 driver toggleable for IRQ or polling mode
  • interface for process configuration (tasks now know their executable source path)
  • new utils "lines" and "read"
  • tests cleaned up
  • read-directory fixed

    Website update 2015/10/05, 19:12:08

    I did some major changes to the website, including a new comment section (and better markdown functionality). You can now comment on news posts and see what other users say about a specific topic. Also, there are now links accessible for each single news post.

    *About the documentation*: I'm working on a dynamic part that generates documentation from the markup files in the project repository. Once this is finished, the documentation part will be back.