Monday, January 14, 2013

Working with different Architectures and operating systems.

One thing that I mentioned in the index post I did at new years was that I had a raspberry pi, cool.
something I said a long time ago was that I had a small box called an Emprex ME1 media centre, again cool

I also have a laptop, Cool...

Except, working with all of these can be problematic.

At the end of last year I started talking about client/server software and noted that if you want to program network enabled programs that Linux is a good place to start building programs for.

This is not because I'm some kind of evangelical free software nut case who thinks that bill gates should die.

Because I'm not, I make my living working with and supporting Microsoft software.

The reason that I think that you should learn to program for sockets on Linux is because it's easier. it's how most systems do it. it's how embedded libraries work. Microsoft are really on their own on this one.

Anyway... -not the point I'm making here.

the point is that my media centre,
runs Venus Linux, on a 200MHz MIPS processor.

My raspberry pi runs raspbian on a 700MHz ARM processor. (though I might try RISCOS or plan 9 eventually).

My laptop runs windows 7 64 bit.

and that's where the problem is...
My laptop is a 64bit big endian machine running Microsoft software.

My boxes I want to create projects on are 32 bit little endian machines.

The operating system of the machines is different, the byte order for storage on the machines is different.

This means that I can't compile software on my laptop, and expect it to run on the machines.
even if I run Linux inside of VMWare player, I can create a binary that would run on Linux systems on x86 processors. but not my Raspberry pi on ARM, or my media centre on MIPS.

These machines couldn't be more different if they tried.
and that is why making them all work together is going to be such a joy!

I'm going to spend some lessons in this new year investigating ways to code across platforms, and how to set-up Linux machines, so that I can make these boxes a little bit more than expensive toys.

No comments: