Ghost Kernel

First public demo release 2014/11/14, 21:30:41

The time has come! :)

I'm glad to announce the first demo release of Ghost. It demonstrates the boot process and the user interface. You can get the .iso from the downloads section! It's not a performance beast, but shows off what Ghost is capable of by now.

Here's a little video:


Forking and copy-on-write 2014/11/14, 21:28:15

To (get the possibility to) port some Unix programs to Ghost, the kernel now supports fork(). This also led to extending the physical memory management a little to keep reference counts for pages that are shared between processes. There is now also copy-on-write for physical pages within the image and heap area of a process.


UI work & website update 2014/11/07, 21:27:02

I've made some major changes to make updating this page a little easier, and also make it a little more beautiful. :)

Single-lined textfields do now work with full mouse-support, also there are checkboxes, labels and some other components. I added layout managers, which are similar to the ones of Java's Swing. Currently I work on shape painting and vectors to get some fast and scalable graphics for checkbox and stuff.


Multiprocessing works! 2014/10/13, 22:25:59

The kernel now supports multiple cores. This required some changes in the scheduling model and the use of locks for critical kernel sections; next will be some optimizations regarding these locking mechanisms to improve overall performance. Then I guess shared libraries will be the next major ToDo.


ACPI, APIC & I/O APIC 2014/10/13, 22:00:00

Today I started implementing multiprocessor support for Ghost. I'm switching from the older 8259 PIC to the new APIC and its counterpart, the I/O APIC. This included writing some logic to read the ACPI tables and get the necessary information from there - bad luck by now if you don't have a computer with ACPI tables or an APIC. I'll have to check if a PIC fallback makes sense.

The BSP's APIC and its timer are already working fine and the I/O APIC setup information is stored. Next I'll configure the I/O APIC so that it lets keyboard/mouse interrupts through, once this is done theres only the wonderful step of making the entire kernel reentrancy-safe left to actually get multiprocessor support. That's gonna be interesting!