Linked by nfeske on Tue 28th Feb 2012 11:51 UTC
OSNews, Generic OSes The just released version 12.02 of the Genode OS Framework takes the first steps to carry out the plan to turn the framework into a general-purpose OS for the daily use by its developers until the end of the year. It features a new ACPI driver, the first bits of a device-driver manager, support for using the fork syscall in GNU programs, and a PDF rendering engine. The most significant point of this release, however, is the way it was conducted. It represents the first version carried out using a completely open development process.
Order by: Score:
Good
by zizban on Tue 28th Feb 2012 16:13 UTC
zizban
Member since:
2005-07-06

If more developers "dog fooded" by using their own os only, it make life a lot better because things speople actually need to get productive would get worked on. I once heard a developer of a small OS say "I use Linux and only boot into <my os> to do develeopment on it". Seriously, if your own OS isn't good enough for you, why should anyone else care?

Reply Score: 3

RE: Good
by ebasconp on Tue 28th Feb 2012 17:14 UTC in reply to "Good"
ebasconp Member since:
2006-05-09

The problem is that turning your hobby OS in something usable (more yet with the current high standards) is a titanic task.

Genode OS guys are going by the right way! ;)

Reply Score: 4

RE[2]: Good
by Alfman on Tue 28th Feb 2012 21:44 UTC in reply to "RE: Good"
Alfman Member since:
2011-01-28

ebasconp,

"The problem is that turning your hobby OS in something usable (more yet with the current high standards) is a titanic task."

You got that right. For most users, what makes an OS "usable" is the apps. You might have a great functioning kernel + desktop environment, but without the apps it's useless to a great majority of users.

Even windows itself would be useless if it were a hobby os which worked as it does now but had no software for it... The property which makes it useful is the software.

For better or worse, the only way for hobby OSes to get real apps is to run them in a compatibility layer. But implementing another OS's APIs is a significant and thankless commitment. Look at the wine project, they've done a lot of good work, but it's still hit or miss and nearly everyone buying windows software runs it on windows.

The big questions are:
How should a hobby OS dev convince users to run foreign software on a compatibility layer in the new OS?
How should a hobby OS dev convince devs to write/port software to the new OS?

Reply Score: 2

RE[3]: Good
by nfeske on Wed 29th Feb 2012 10:10 UTC in reply to "RE[2]: Good"
nfeske Member since:
2009-05-27

Let me shed light on your questions from Genode's point of view:

"The big questions are:
How should a hobby OS dev convince users to run foreign software on a compatibility layer in the new OS?"

Genode has not started as hobby OS. It was originally created as a tool kit to build special-purpose systems, i.e., for application areas where the use of microkernels or separation kernels is anticipated (such as high-security computing). Now the project has reached a state where general-purpose computing comes within reach. So we start to target specific end users - namely ourselves. There is no convincing needed here. :-)

At a later stage, Genode will hopefully evolve into something that other end users will use. But they will probably not be aware of that. (similar to how many Android users are not aware that they are using Linux)

For us, end users are actually not the target audience to convince. It would be indeed near to impossible to convince them because they would not gain any functional advantage. And that's what users ultimately care about. The target audiences are the ones who build platforms. Here the use of Genode makes a difference.

"How should a hobby OS dev convince devs to write/port software to the new OS? [/q]"

If the OS is a hobby? I think plainly, because it is fun. I am a proponent of porting existing software instead of implementing new software wherever feasible. For doing this, we don't need to convince authors of existing (OSS/FS) projects to explicitly support our platform if their software can be integrated as is.

Reply Score: 2

RE[4]: Good
by Alfman on Wed 29th Feb 2012 15:41 UTC in reply to "RE[3]: Good"
Alfman Member since:
2011-01-28

nfeske,

Thank you for the response! It's very nice to hear from people directly involved.

"At a later stage, Genode will hopefully evolve into something that other end users will use. But they will probably not be aware of that."

Some kind of special purpose rebranded OEM arrangement, I understand. Yes that does do away with the "end user problem" nicely ;)


"I am a proponent of porting existing software instead of implementing new software wherever feasible. For doing this, we don't need to convince authors of existing (OSS/FS) projects to explicitly support our platform if their software can be integrated as is."

Clearly being able to run portable software helps offset the fact that not much native software is available. But it seems to me that this this might impede the development/use of more ideal/redesigned/cleaner programming interfaces for the sake of compatibility. For example, I read about your foray with the notorious "fork". Many developers are fans of it, but many also may not realize how many subtle problems it has under the hood: threads, leaking file handles, overcommit, inefficient clone/exec sequences, etc. Also, I imagine deviating from linux's libc, TLS and threading implementations has it's own set of compatibility problems. Have there been instances when compatibility restraints forced you to alter your ideal implementation design?

I'm actually impressed that you guys are tackling these things and I think it's high time complex & baggy monolithic kernels get a run for their money.

Edited 2012-02-29 15:42 UTC

Reply Score: 2

RE[5]: Good
by nfeske on Wed 29th Feb 2012 18:27 UTC in reply to "RE[4]: Good"
nfeske Member since:
2009-05-27

Thanks for your nice words!

"For example, I read about your foray with the notorious fork. Many developers are fans of it, but many also may not realize how many subtle problems it has under the hood: threads, leaking file handles, overcommit, inefficient clone/exec sequences, etc."

From Genode's viewpoint, I am not a fan of fork at all because it contradicts badly with Genode's principles (i.e., with respect to the accounting of resources). However, I recognise the beauty of its concept when looking from the perspective of the original Unix design. (although, in my opinion, this beauty was seriously spoiled with the addition of later POSIX APIs such as pthreads)

"Have there been instances when compatibility restraints forced you to alter your ideal implementation design?"

Sure. Those temptations are lurking everywhere. Fortunately, the cross-kernel portability of Genode positively reinforces careful API design. Often, taking a shortcut that works on a specific kernel would quickly solve a problem at hand. But because we need to take all the other base platforms into consideration, the costs of such narrow-sighted decisions become immediately visible. Taking fork as an example, it was not until the third attempt of implementing this feature until we found a way that would fit nicely with the existing framework design and would not need a special case for each platform. If had only one kernel to consider, we would certainly ended up with a less elegant solution.

Another pretty painful example is the C++ runtime, which is normally expected to run on top of a C library. We want to use C++ but we don't want to have a C library as a mandatory part of the framework. Here GCC's C++ support libraries pose a good deal of challenges. For example, during the initialization of exception support, malloc() is called. On Genode, there is no malloc(). So we have to provide a custom malloc() that uses Genode's allocators. But those are written in C++. Chicken or egg? In this case we decided against changing GCC's support libraries because this looked to us like opening a can of worms. Consequently, we ended up with a solution that is not completely in line with our principles. We opted for the practical way. It's not black and white but always a question of judgement.

Reply Score: 1

Impressive system
by jayrulez on Tue 28th Feb 2012 19:37 UTC
jayrulez
Member since:
2011-10-17

This is one impressive system. I am looking forward to seeing it mainstream some day.

Reply Score: 2

How about Genode as mobile OS?
by wannabe geek on Sun 4th Mar 2012 21:54 UTC
wannabe geek
Member since:
2006-09-27

I've been following the news about Genode from the beginning, and it really sounds amazing. Even the earliest demos were. I like the capability-based security model and particularly the emphasis on real-time performance. I think it would be a great OS for mobile phones. IMHO, pretty much every mainstream OS with multi-processing and virtual memory gets it wrong. There are no real-time guarantees. I mean, some do it better than others, but in the end, if there are too many processes, the OS starts to swap like crazy and ALL apps run like molasses. Not to speak of the security aspect, where you have to decide between letting every process do everything they want, or resort to complicated MAC schemes that will cause mysterious errors. Capabilities seem an obviously better approach. I'm eager to see real end-user apps, like web browsers, running as standalone Genode processes. If I understand correctly, the end user experience would be immensely better.

Reply Score: 2