Valhalla Logo


i'm adding font support and some basic ui controls.


after fixing another 10'000 bugs i started work on the gui server. i added a screenshot of it.

i couldn't get gcc and newlib to compile. all the config-files and linker-scripts confused me.


mouse driver is up and running. i fixed a couple of bugs in valhalla's rtl. the kernel and drivers now handle interrupts differently in order to support shared level-triggered irq's.

i'm thinking about porting a java vm to valhalla. that would require newlib and gcc. just because i like java's collections so much.


i managed to get freepascal to compile multi-threaded programs for valhalla. but the freepascal rtl for valhalla is not yet mt-safe. while doing this i fixed tons of bugs. i wonder how it worked in the first place.

the next step is to code a ps2 mouse driver.


i found a useful link which shows how to access the emulated video card of bochs. by now i have two graphics drivers, one for the bochs video card and a generic one for vga compatible cards. the latter uses antialiasing and error diffusion dithering to show 640x400x32 graphics on a 320x200x8 screen at 60+ fps on my machine.

while implementing something similar to beos' app_server i thought about notifications and asynchronou sevents. and communication channels instead of connection-less ipc-messaging. i wonder which way's the best...


i'm working on valhalla again. it's impressive what valhalla has become - and i only realize it now. it's fun to work on a long forgotten project and come to realize that everything's (excuse my enthusiasm) perfectly designed.

with the newest additions i now have a display driver working. it tries to show 32bit graphics on a 320x200 screen with 8bit color.

interrupt handling works as well. that's the reason why valhalla has a keyboard driver. but it doesn't yet support "fancy" buttons... like return or space...


the kernel supports now a virtually unlimited number of processes and threads (thanks to dynamic growing of in-kernel data structures). only the size of all memory related structures is fixed.

each thread belongs to a priority class (irq, high, normal, low, idle) and has an additional "nice" value.

at the moment i'm thinking about a universal way to add capability-support to valhalla.


ipc works like a charm. right now the kernel uses only static arrays as data structures. i'd like to change this, but right now my own rtl does not support allocating dynamic memory.


did some refactoring. the code looks even better now. valhalla supports auto-growing of stack and heap memory.

time to add ipc.


yippie, the first two concurrent processes run. now it's time to add some basic api calls and test the kernel.

the kernel is able to catch all exceptions.


the scheduler should be able to give control to the first created process. but something with the tss is not right...

right now a bug in the free pascal compiler prevents me from doing further work.

expect more screenshots and progress soon.

older news

2006-10-08 > scheduler design finished
2006-10-02 > exception handlers
2006-09-12 > basic interrupt handling
2006-09-08 > kernel runs in pmode
2006-09-05 > vds-tool and bootloader updated
2006-09-03 > another revision of vds done
2006-08-03 > ssb identifies hardware and memory
2006-07-31 > second stage can read fs
2006-07-12 > bootsector rewritten
2006-07-05 > fs redesigned & tool finished
2005-12-20 > design of new fs finished
2005-10-19 > major rewrite planned
2005-05-17 > new ipc subsystem is in the works
2005-03-02 > all old servers work with the new ipc
2005-02-22 > ipc redesign finished
2005-02-14 > registrar finished
2005-01-24 > message-subsystem revised
2005-01-23 > simple registrar created
2005-01-03 > improved build-process, now 5x faster
2005-01-03 > tested & fixed several bugs in the vdstool
2004-12-23 > valhalla disk system-tool finished
2004-12-20 > 1.5mb source code (pascal + asm)
2004-12-16 > webpage
2004-12-14 > mini ide-driver
2004-12-06 > 80% api
2004-11-22 > pci scanner
2004-11-11 > api design
2004-11-06 > memory manager
2004-11-04 > multitasking
2004-10-25 > kernel-stacktrace
2004-10-19 > elf-loader
2004-10-17 > pascal kernel
2004-09-27 > asm second stage bootloader
2004-09-19 > asm mbr/bootsector
2004-08-05 > planning


valhalla is just for me. i don't want to take over the world, pinky. every single codeline of valhalla is produced exclusively by me. valhalla is just a playfield for new designs and unordinary ideas.


> second try <
> first try <