zaterdag 17 mei 2008

porting vs. Porting

Open-source is all about sharing code. Getting involved with open-source is committing yourself to share all the code you write and let everyone else use it, mostly free charge (I’m not gonna go into a license-type here). With this project I want to take that commitment one step further: sharing code is one thing, sharing knowledge something totally different. My intention is to share all the knowledge I gain with this project with the rest of the world. And with ‘all’ knowledge, I really mean ALL knowledge, including the parts that don’t seem directly relevant to the core goal of the project itself. If I learned it somehow in relation with this project, I’ll share it with you. And what better way to share free knowledge is there than through a dedicated project blog? Right.

That said, let’s begin with the first important information I’ve learned: There’s porting, and there’s Porting. When you take an existing operating system (OS), or application for that matter, and you want run it on some specific hardware, you’ll have to port (with a small ‘p’) it to the platform in question. If, however, you want it to be able to run on a different processor, you’ll have to Port. As a general rule, you’ll mostly be porting applications and Porting operating systems, which is of course not an absolute rule. Take Linux, for example. The chance the you’ll have to Port it is very, very small, since most processor architectures are already supported by the kernel. You’ll often want to port it though, because it does not include support for every type of hardware platform. So basically ‘porting’ is mostly writing drivers for peripherals on your target hardware platform so that you’ll be able to control them through your OS or application. It’s adding support for certain devices in your program. ‘Porting’, on the other hand, is adapting the core of your application (e.g. the kernel) to a specific, no-yet-supported, processor architecture. It’s like explaining to your application how to be friends with the processor. And making new friends can often be hard, way harder than just getting used to a new environment.

I’ll be Porting Minix 3 to the embedded ARM platform this summer. I use the word ‘platform’ here instead of ‘architecture’, because I’ll actually be Porting and porting, which is the only humanly-possible way of Porting I can think of. The target platform for this project – that is, the development board used – is the TS-7250 which has been selected by my mentor Bert Thomas. The processor is the Cirrus EP9302 ARM9 CPU, which is relatively standard nowadays for newer embedded ARM devices.



More info on the board can be found here http://www.embeddedarm.com/products/board-detail.php?product=TS-7250 .

Some first experiences with the board and Minix will be the topic of my next blog post, which you may expect a few days after the official start of the program. Until then, all comments on this writing are more than welcome :).

zondag 4 mei 2008

Excitement

It's been nearly two weeks now since I've been accepted into GSoC and I'm still not entirely over the huge excitement, but maybe that's beacuse I don't really get much time to be excited while I'm reading all the porting-minix-arm-architecture-stuff. Not that the literature isn't exciting, it's just another kind of excitement, if you know what I mean...

It's also been nearly two weeks that you've been waiting to read a bit more about myself, which is actually awfully long... I know, I should blog more often, mea culpa.

My name is Emmanuel Lesser, but in the digital universe I often refer to myself with nicks like 'elesser' (how original) or 'stunix'. I live in Antwerp, one of the bigger cities in Belgium. I'm currently finishing my Bachelor degree in Applied Engineering: Electronics-ICT, which I hope to get in the first week of July if all goes well. I'm into hardware and software engineering, with a special focus on digital signal processing and artificial intelligence. Re-read the previous phrase if you want to know what my hobbies are. Yes, that's true :)

You can talk (or write) to me in English, Dutch, French, C, C++, C# and VHDL. With some good-will, I'll also understand Spanish, Chinese, Java and Assembly. This list is certainly not complete, but hey, I don't want to show off. I use my CV to do that.

The project is still in its preparation phase, so no code has been written yet. The official starting date given by Google is May 26, but that won't stop me from doing some 'preliminary' coding in the next few weeks. So that's something to look forward to.

I wont tell you what my next blog post will be about, just be aware that it will be a technical one, like most of the posts from now on. And also, you won't have to wait two weeks to read it, so keep an eye on your RSS-reader!

donderdag 24 april 2008

Welcome!

Hey everyone!

So as you may have guessed I have been accepted into the Google Summer of Code program, edition 2008. I'm going to work with the Computer Systems Research Group at the Vrije Universiteit Amsterdam to port their well-known MINIX operating system to the popular embedded ARM platform. As a mentor for the project I got this great guy who calls himself Bert Thomas, which is the next best thing to a guarantee for success!

Of course, whoever says MINIX also says Tanenbaum, and yes, indeed, the project is supervised by the one and only Prof. Dr. A. S. Tanenbaum.

Every great project starts with a good deal of documentation to work through. It's like peeling an orange (or an apple, or whatever). If you want to get to the coding and hacking part, which is obviously what everything is about, you have to get through the existing documentation first. So that's what I'm doing now, reading. Reading about the ARM architecture, reading about MINIX, reading about porting kernels... I surely must be reading too much, but I really want to be well-prepared for this one. Better get all the peeling off.

Look out for my next post, where I'll be telling you a bit more about myself.