Ghost Kernel

Capri & some eye candy 2014/09/29, 22:00:00

Quite some stuff happened in the last month. My development mostly focused on Capri, the build tool used for Ghost (will soon create a subpage here to allow everyone to use it). As it basically has all the features that you would want from a simple script language, the decision was made to publish it as a multi-purpose scripting language, not only as a build tool. More info comes soon.

I rewrote some parts of the window manager, that gives much better performance now. Each windows has its own buffer now, and may request when it needs to be repainted. The log output was reduced and seperated in debug, info and error levels. This makes booting even faster and less verbose, except you need the information. The text rendering was also cleant up a little, and I wrote the first usable text component:

Once the basic components like buttons, combo-boxes, scrollbars and more are implemented, I'll write a UI programming interface to allow programs to create their own interaces. Stay tuned!


First window manager attempts 2014/08/25, 22:00:00

Lately I've been reworking the input & windowing system. A bug that caused the PS/2 driver to send wrong mouse coordinates in movement messages when overflow packets were received is also fixed.

Mouse input is now dispatched into different types of events which then are dispatched and can be handled by the affected components (by now only from within the window manager itself). Currently there are some windows implemented which handle drag events and thereby allow resizing/moving:

The next steps regarding the window manager will be creating an API, so programs can create, manipulate components and draw on the screen.


VFS uses shared memory 2014/08/20, 21:51:25

The virtual filesystem is a central application that handles any file-related requests from other applications. It registers itself at the port distributor using the name "vfs".

Absolute paths to files on any device are formatted in the way deviceIdentifier://path/to/file. I decided for this style because I neither like the idea of mountpoints, nor the drive-letter stuff that Windows does. This makes it very clear which device you access using an absolute path, like cdrom0://docs/hello.txt would lead you a file which is then loaded by the VFS by for example contacting the responsible ATA driver. Currently there is an implementation for reading files from the ramdisk, using "ramdisk" as the device identifier.

Data was previously transferred using streams, but now is implemented via shared memory. This allows much higher transfer rates and better performance in general. Detailed information will be added to the documentation pages.


Ghost News! 2014/08/20, 00:03:10

This is the news blog for the project. I'll update this page and add new information from time to time to notify you about the status of Ghost. If you have any feedback, feel free to contact me.