Tuesday, June 9, 2009

Orangutans: He can talk! He can talk!

Another step closer to a working kernel called PsychOS; our little baby tasks can talk now.. :) We have successfully implemented the Send/Receive/Reply message passing primitives that give our user tasks ability to communicate with each other. This simple, yet robust, technique is used in many real-world operating systems, such as QNX.

In fact, for those who don't know, QNX is a commercially successful real-time OS, which is based on a project from CS 452 (the course we're taking). The two fellas, who took the course, are now millionaires and QNX is used in things, such as your car, medical equipment, communication devices and many more.. We hope to follow in their footsteps...

There is a new component in PsychOS, which makes use of the Send/Receive/Reply, namely the name server. The name server, as the name suggests, manages mapping of task IDs to their registered names. So if Task A wants to talk to Task B, it asks the name server what B's task ID is and can start sending messages to it. Cool, eh?

We also managed to hack together a witty Makefile that automatically takes care of all the dependencies and includes any new source files in the build process. It is very reusable and worth looking at if you are sick of adding make targets for each new file.

Next on TODO list: Interrupts

Stay tuned for more updates! :)

1 comment: