Wouldn't using mailing list help others to get involved, especially
those from other time zones ??
Absolutely. Here's the thing: we just didn't realize that anyone outside of our core group even cared. We used to post some things to the ML, but with no responses, you tend to quit doing it, you know? This is something we should probably get better at.
So it only runs on the bochs emulator at the moment, not on any real hardware -- correct ??
Anyway, while I'm here, what is the status of xomb ??
Well, in the past few days, we've gotten grub updated to grub2, we have C programs working and compiling properly, (well, ones that don't use too much of the standard library, anyway. ;), I'm working on starting to cross-compile llvm, gcc, and rubinius (a ruby implementation) to run on xomb itself, so we can start doing dev work in xomb itself. This summer we're getting an intern from the university, so we'll have 3 or 4 people working on it basically all summer. Enemy #1 is getting a NIC up and running.
What would be a good target application for an embedded device ??Is it ready to run on embedded systems ?? e.g on a MIPS64 embedded
platform with multiple processing cores ??
Theoretically. It still isn't quite USEFUL yet, though, but we're very close!
When do you think this will likely happen ?? Is anyone working on it now ??Can it run GNU Linux (e.g Debian or Unbuntu) ??
I bet you've guessed by now: not yet.I presume all the
linux/os stuff is just a library.
Yep, if we build a POSIX-compatible libOS (and I can't imagine we won't) then you should be able to run a Linux on top of it.
OK. so longs as there are OS libraries for the various languages (C, C++, D, ...) then you can use any lanaguge :)
I'm particularly interested in using a 'D' operating system. I don't if
anything exists, or whether it's just a matter of getting D wrappers to
existing C based apps/libraries ??
Nope, you can use C based languages too. It's just like using an operating system in C, doesn't mean you can't run D programs, just means that the system itself is written in D.
On May 10, 2011 7:54 PM, "Brendan Simon (eTRIX)" <brenda...@etrix.com.au> wrote:
>
> On 11/05/11 2:23 AM, Steve Klabnik wrote:
>>>
>>> Wouldn't using mailing list help others to get involved, especially
>>> those from other time zones ??
>>
>>
>> Absolutely. Here's the thing: we just didn't realize that anyone outside of our core group even cared. We used to post some things to the ML, but with no responses, you tend to quit doing it, you know? This is something we should probably get better at.
>
>
> I got pointed to XOmB from the GNU D (GDC) mailing list, and found it a very interesting concept. Ideally I'd like to use XOmB on a real embedded product, presuming there benefits over existing OSes.
>
> I'm leaning towards D, as I understand it is much better/cleaner than C++. I don't know how much OO and GC is used in D, but I imagine that it is limited to things that make sense at low levels such that there are no unnecessary overheads. i.e. performance should is equivalent to C ??
>
> The other languages I'm interested in is Python and Cobra for high level stuff. Cobra is Python like but has some enhanced features (e.g. late or early binding = speed, inbuilt tests, contracts). Only minor issue is that it targets .NET (or Mono) as the VM.
>
> So I'm looking at XOmB, D and Cobra (or Python). I'm sure other existing opensource packages are likely to be needed as I'm sure there are no D or Cobra or Python versions of all the packages required .... maybe one day ???
>
> Anyway it still sounds very early. Are the Roadmap and Things To Port wiki pages up to date ?? I don't know D very well so maybe I could look at porting some user space apps ?? When you say "port", do you mean "make work on XOmB" or do you mean "rewrite in D" ?
Get the existing code running on xomb. I don't think any of us could devote the time to re-implement something like GHC :)
>
>>
>>> Anyway, while I'm here, what is the status of xomb ??
>>
>>
>> Well, in the past few days, we've gotten grub updated to grub2, we have C programs working and compiling properly, (well, ones that don't use too much of the standard library, anyway. ;), I'm working on starting to cross-compile llvm, gcc, and rubinius (a ruby implementation) to run on xomb itself, so we can start doing dev work in xomb itself. This summer we're getting an intern from the university, so we'll have 3 or 4 people working on it basically all summer. Enemy #1 is getting a NIC up and running.
>
> So it only runs on the bochs emulator at the moment, not on any real hardware -- correct ??
No, runs fine on intel machines, tho we are currently crashing during boot on AMD. We'll launch a bughunt for that one soon.
>
>>
>>>
>>> Is it ready to run on embedded systems ?? e.g on a MIPS64 embedded
>>> platform with multiple processing cores ??
>>
It would need to be ported to this architecture. The architecture dependent portion of the code its not very big, Primarily this would involve figuring out the booting process for any OS on the architecture, and implementing our virtual memory interface (page table manipulation is the primary task of the XOmB kernel) which is maybe 10 functions.
>>
>> Theoretically. It still isn't quite USEFUL yet, though, but we're very close!
>
> What would be a good target application for an embedded device ??
> Something that responds to a ping packet, or echo server, or web server ??
> (my project is network product)
> Something that flashes LEDs or displays stuff to and LCD screen ??
>
>>
>>>
>>> Can it run GNU Linux (e.g Debian or Unbuntu) ??
>>
>>
>> I bet you've guessed by now: not yet.
>>
>>>
>>> I presume all the
>>> linux/os stuff is just a library.
>>
>>
>> Yep, if we build a POSIX-compatible libOS (and I can't imagine we won't) then you should be able to run a Linux on top of it.
>
> When do you think this will likely happen ?? Is anyone working on it now ??
We currently have ported a libc, dirent.h will be supported soon to get the postmark benchmark going, sockets interface will come from lwip, after we be a network driver this summer, pthreads would be easy to stub out basic functionality... basically when porting a piece of software we add the required dependencies.
The POSIX API is not the XOmB API, but rather built on top of it, so native D apps will have an advantage. This means, for example, we will probably write our own web server instead of worrying about porting apache... tho it might not require anything beyond the pieces I mentioned above.
> Just enquiring to see what the latest state of play is. Has there been much progress on the POSIX API ??
>
We've been headed down (device support - SATA and e1000 are both one tricky bug fix away from shipping data :) rather than up (software support). Honestly we aren't all fired up about POSIX support (unless you are paying :), but rather about Djehuty support (wilkie's composable (un)standard library specs/tests and reference implementation). But if it's something that motivates you we'd love to help :)
> Also, I'm interested in using D in a real-time environment. i.e. on a real-time OS. Does XOMB have any real-time support ?? Has there been any effort to support real-time in an exokernel ?? I presume that the exokernel would have to have the real-time support, right ??
>
the XOmB kernel does not have a scheduler in the traditional sense. Scheduling is handled in userspace, not in the kernel. Our design is based on these research papers: Scheduler Activations and CPU Inheritance Scheduling
http://wiki.xomb.org/index.php?title=Related_Work#Scheduling
CPU inheritance scheduling is specifically designed to support Real Time scheduling classes alongside best effort.
> Anyone know if XOMB or D can be run on top of FreeRTOS ??
>
you can certainly compile D code to executables to run on whichever OS you choose, however both of the major standard libraries - phobos and tango - are not really designed for use in a real time environment (and allocate garbage collected objects implicitly), so you would likely need to use C bindings for things like I/O.
It is not difficult to write D code that uses explicit memory management (and/or static allocation); the XOmB kernel is written in this fashion.
I don't know anything about FreeRTOS, but unless it supports virtualization I'm having trouble imagining what running XOmB on it would mean. We are not currently interested in porting our userspace to a different kernel.
cheers,
wolfwood