The team blog. Find the very latest news here.
As you might know, compilation of cosmos is a two-phase thing. First we compile to an .asm file, which is then compiled to a binary file by NAsm. We decided to go this path (last year) to let us get forward easily, and not being hindered by implementing an assembler for the complex assembler scheme of Intel x86.
I always felt the Asus Eee would be a great target for Cosmos. I finally picked up one and gave it a try. A few BIOS settings to get it to boot over USB or LAN, and here it is running Cosmos.
Posted at CodeProject with lots of good comments and votes. It is already one of the most popular articles!
Unlike most service packs, this service pack adds many new API's. We are already using these API's.
Our debugger now works with VMWare and QEMU.
We've cleaned up the build screen a bit.
Currently we only support the RTL8139 Ethernet chip, and UDP. But RTL8139 is one of the most common chip sets used today, so this covers quite a bit.
The first bits of VGA are working thanks to Stephen Remde.
We modified our compiler to compile in two stages. First stage is doing analysis, the second stage the actual compiling.
I have just successfully sent a UDP packet over Ethernet from Cosmos and it was received by a .NET application on a Windows box on the same network.
We had planned to release Milestone 3 a few weeks back. But we've been fighting a few core bugs that have surfaced during development, several of which were blocking.
Cosmos is written in C#. Cosmos developers including kernel developers stay in C#. However our IL2CPU libraries have to deal with assembly, and the few of us who deal with the compiler code of course muck about with X86. Previously we had our own class based "inline compiler". It worked reasonably well, but I always wanted something more. Finally I took the time, and I am affectionately calling it X# (from X86).
A video showing user kit installation and creation of a new bootable project is now online.
With luck, this weekend we will have stepping and breakpoints fully enabled. Here is an updated screenshot with tracing.
Currently we have full trace logging over serial. Its useful, but very slow. We are working towards the ability to set breakpoints, do tracing, variable evaluations and more. Here is a small preview.
A picture from my Cosmos session in Cairo. Thanks to Ahmed Mahdy.