Monday, January 3, 2011

Observations on HelenOS device drivers framework

Some time ago we merged Lenka's new Device Drivers Framework (DDF henceforth) to HelenOS mainline. When I finally read through her thesis and had a closer look at the code I promised to do a writeup of my observations. Here it is. A bit of a long read though, be warned.

Let's start with a quick overview. Lenka's contribution can be broken down into several parts. First there is the devman server which (a) manages the physical device topology, driver task life cycle, driver attaching and detaching, (b) maintains a 'logical' device topology (devices grouped by their class).

Second, Lenka proposed that for any IPC communication between two drivers or an application and driver should be strictly defined in terms of function calls and the client- and server-side IPC glue code should be kept strictly separate in a library to be reused by all servers and clients using such code.

Third, when mapping the function calls to IPC, Lenka reserved the first field of the message for an interface id. This allowed her to communicate with a driver using several different protocols, namely a protocol for talking to the driver as such (create new instance) and for talking to the device itself (e.g. read/write, etc.).

Tuesday, December 28, 2010

Mister triple W. meets miss H.

I think the following image speaks for itself.



After my recent bug fixes, HelenOS is able to serve a web page from inside Qemu. TCP is still shaky, sometimes it works, sometimes it does not. But it's still progress :-). In the past weeks and months I got my hands dirty in the networking stack and I tell you, the code is weird throughout!

The web server is mostly fake, but it does serve its purpose :-) I should be committing it shortly.

Friday, December 3, 2010

A moment to remember

If you don't understand Czech, turn on CC (captions) in the player before starting the video.

Tuesday, November 30, 2010

Nuts and bolts

Today I'm back with a now familiar picture of the Fanatik 1, this time with the major parts labeled.



The system is divided roughly in two halves, the left half being the 'compute' part and the right half being the 'graphic' part.

Let's start with the CP (Central Processor). This is an Atmel AVR microcontroller, specifically ATMega162. This chip acts as the CPU, having access to the system's memory and some of the peripherals.

Wednesday, November 17, 2010

Faster than a speeding Panda

It's been more than a hundred days since I placed a pre-order on the demonic box. While those guys are still trying to sort out their nubs I certainly haven't been biting my nails idly.

Immediately after placing my order I set upon a quest. A quest to construct my own computing device. An so, after more than three months of planning, designing, etching, drilling and soldering I proudly present to you (lots of drum rolls and dramatic chords..) the one, the only, Fanatik 1!



Fanatik 1 is a one-of-a-kind computer heavily inspired by the classic 80's microcomputers, specifically the ZX Spectrum.



I should get back to you soon with more details on the F-1. I will also present you with a series of quizzes. Today the question is simple: Try to name as many Speccy computer game protagonists as you can recognize etched on the Fanatik board. The winner will receive an original browser cookie.

Saturday, November 6, 2010

And you though your dreams were weird

Last night I dreamt I was trying to provoke William Murdoch into inventing the water turbine. WTH?!

Monday, October 25, 2010

One, two, three... testing!

Many of you already know I've been busy with a 'top secret' electronics project. Especially Jakub has been nagging me to reveal something. Today I can share with you this photo of some mysterious tests that I've been performing. The results were satisfactory. That's all I will say for now. Mwahahaha!

For those less versed in electronics let me describe the action for you. What you see in the picture are three joined-up breadboards. On the breadboards we see some DIL ICs plus a bunch of wires and other stuff. The thing on the middle breadboard is a surface-mounted IC soldered to a home-made PCB which has pins on the bottom side and allows one to plug the chip into the breadboard.

And yes, the thing on the left side is a Logitronik II because George says every mad scientist should have a Logitronik II in their basement.