We have a new operating system! Well, no – we have a new operating environment, since it’s technically not an operating system. Pyxis 2 is an operating environment written in C# on the .NET Micro Framework. The goal of the project is to make it easier for developers to develop robust NETMF applications, while providing users with a common environment to launch applications in. It is open source (Apache 2.0).
While it look like your every day run-of-the-mill operating system, fact of the matter is that it’s a little harder to actually run Pyxis natively. Sure, you can run it in a NETMF emulator, but to run it natively, you’ll need to have the hardware that supports it. Currently, it only works on the ChipworkX Development System and FEZ Cobra. However, porting it to anything that runs the NETMF should be easy.
“Applications developed for Pyxis 2 follow almost the same methods as any other application,” developer Thomas Holtquist details, “You can access hardware, include your own libraries, control threads, and anything else you could normally do. The difference is you have the full power of a complete GUI behind you. Choose from an array of custom controls including button, checkbox, combobox, listbox, label, picturebox, filebox and many more! All of our controls also allow you to set specific X/Y coordinates on the screen and all applications have access to menus. You can even assign your own icon to your application.”
It also has one file application installs, an application store, and an updater that can update not only Pyxis itself, but also the firmware of the device it’s running on. In other words, you’ll only have to install Pyxis onto your device once. Speaking of installation, this’ll be familiar for people working in this field, but you install Pyxis using Visual Studio. You can also use the emulator inside Visual Studio.
The user guide has more information. I wish I was rich, because playing with hardware and software like this just for fun seems fascinating.
Seeing that video gave me flashbacks of the DOS version of AOL running in GEOS (i think it was GEOS).
Seems these microdevices (cellphones, SoC, and the like) are where the interesting stuff is happening. I am currently mucking around with a netduino, and a technorobot set i bought off of amazon. The micro framework is an amazing contribution to the opensource ether. Its around 300k or so, yet supports multi threading and a host of other things.
Anyone know if the microframework could be extended support any other .net languages? (ruby, vb.net, python etc?)
I am afraid not, because it lacks many of the .Net classes that those runtimes need.
Not trolling, just asking:
Are there any advantages to develop using the .NET MF instead of the full .NET implementation?
If this is a platform issue I will rephrase my question:
Are there any advantages to develop using the .NET MF instead of using Mono?
Apparently, an advantage is that some circuit boards are able to execute .net MF code directly, whereas for Mono you need a special interpreter or an underlying OS.
Edited 2011-02-08 17:43 UTC
Why? Mono also allows for AOT
http://www.mono-project.com/AOT
It only a matter of having a supported target platform.
Indeed, this full AOT thing seems to render .net MF useless if I’ve understood everything, though it’s not stable yet.
EDIT : Wait… You still need the Mono runtime to run Mono code, apparently, even after having AOTd it.
Edited 2011-02-08 18:31 UTC
Yes, for one the .Net MF is the real thing, while Mono usually needs to play catch up with .Net APIs.
Usually these types of environments are very resource constrained, so it does not make sense anyway to have access to the full .Net runtime.
The same applies to other languages.
You have Embedded C++
http://en.wikipedia.org/wiki/Embedded_C%2B%2B
Some extensions to C
http://en.wikibooks.org/wiki/Embedded_Systems/C_Programming
And Java Embedded
http://www.oracle.com/technetwork/java/embedded/overview/index.html
The only language that I am aware that is 100% supported in embedded systems is Ada, but that was part of its design anyway.
http://www.adacore.com/home/products/gnatpro/development_solutions/…
From what i understand, The microframework is an alternative to things like BusyBox or Micro C, etc (maybe even QNX). If you are developing for an OS (like Android, Windows Mobile 6, iOS, Windows, MacOS, PocketPC, etc) you want to look at Mono or the Compact Framework for development.
Its an interesting paradigm shift. I can see the advantage when developing for and/or designing a embedded device (microdevice). The microframework does not need an OS, it has low overhead (300k), communicates directly with hardware, supports C# syntax, and comes with a standard library. A big negative is hardware support (though projects like netduino show that its only a matter of time). The microframework is an interesting push into the RTOS space for microsoft.
So it’s like MS-DOS DeLuxe?