Interview with Philippe Gerum

Posted 20 Oct 2004 at 22:43 UTC by yeupou Share This

This is an interview of Philippe Gerum, co-leader of the Adeos project.

The purpose of Adeos is to provide a flexible environment for sharing hardware resources among multiple operating systems, or among multiple instances of a single OS.

This interview was made for Gna!'s hotspot #1.

The interview

Gna!: Hello, Can you give a two line description of Adeos your grandma(s) could understand? What is the intended audience of Adeos?

Philippe: Let's say that you want to write your own kernel aimed at delivering very specific services, but you don't want to take the burden of implementing the set of common tasks needed to build a full-fledged O/S, because: 1) it would divert you from your main goal, which is focusing on a specific technical area; 2) other kernel hackers would likely be much more up to this task than you are. This problem can be solved by hosting your kernel on the same hardware than an existing kernel like Linux, which will happily manage the tedious work for you, such as the boot process, the storage management and so on. To this end, you have to find a mean to efficiently share a few critical hardware resources, so that both kernels can run in parallel on the same box, and provide the kind of services they are best suited for to their respective applications. Adeos is such a sharing layer.

A direct application of Adeos is having a real-time system run in parallel of Linux on the same hardware. Because real-time applications are more prioritary than regular Linux ones with respect to hardware interrupt handling, the real-time machinery must always be given a chance to process any incoming interrupt before the Linux kernel, so that the real-time processing can take place as soon as possible. Real-time is all about being deterministic when processing events, and Adeos provides a convenient layer to RTOS for implementing this. In that sense, Adeos is a real-time system enabler.

Gna!: Who are you? How many developers contribute to Adeos regularly? How the project is leaded?

Philippe: I'm 39, working as a consultant for Openwide, a FOSS service & support company. I have written most of the Adeos codebase, at the notable exception of the PPC port for the 2.4 kernel which has been fully contributed by Wolfgang Grandegger. A few other people provided us with specific bug fixes and feedback.

Gna!: When was started the project and why?

Philippe: This project had two distinct phases. The first one dates back in 2000, when Karim published a paper called "Adaptive Domain Environment for Operating Systems", which described a simple and smart scheme for sharing common hardware resources between multiple kernels running on the same box. He then chose to illustrate the basic mechanism for sharing interrupts on a x86 hardware by mean of a "pipeline" abstraction, feeding each and every kernel in sequence with incoming interrupts according to their given priority in the whole system. Therefore, this paper was already calling for a new way of prioritizing hardware interrupts so that real-time extensions based on the Linux kernel could be developed without making use of the patented process some proprietary RTOS vendor had been granted at that time.

Two years later, as I was developing a Linux-based GPL real-time extension called Xenomai, the FUD surrounding the scope of this software patent had become so intense that any attempt to contribute a piece of GPLed real-time code unimpeded by such patent seemed impossible at that time. That's the very problem with software patents: they are granted to people who think they first "invented" what they have just eventually "understood", therefore those people must be either cynical to the bone or totally clueless, which should be enough to make you nervous in either case.

In response to such predatory threat, I decided to implement Karim's Adeos proposal, so that my GPL contribution with Xenomai could make use of it and would eventually not be impeded by proprietary considerations. As a result of this, the first Adeos patch against Linux 2.4.18 has been released on June 6, 2002.

Gna!: How things have gone for the project since then? What are your plans? How do you see the future of Adeos?

Philippe: A few months after its initial release, Adeos has been adopted by the RTAI project, the famous real-time extension to Linux; as you can imagine, this move gave a significant boost to the Adeos development. Obviously, having a large user base to test your software shortens the time it needs to reach maturity.

Since then, the basic scheme for pipelining interrupts to the clients kernels in a prioritized manner has constantly been improved, and also extended to other resources such as traps, faults and any kernel-originated events of interest.

Since day one, the idea was to provide an architecture-agnostic layer onto which one could run an independent kernel in parallel of Linux, by virtualizing key resources in a seamless way. Aside of x86, Adeos has been ported to ia64, arm with and without MMU and PPC. We also ported Adeos over the 2.6 kernel, which is currently our main development focus.

As a real-time system enabler, Adeos currently provides the core services needed to run a RTOS along with Linux on the same hardware. Most importantly, Adeos evolution is currently fueled by the work on the next RTAI technology dubbed "fusion"; with this approach, we want to integrate vanilla Linux and its RTAI extension up to the symbiotic level, providing stringent real-time guarantees to regular Linux tasks.

Future directions include porting it to other CPU architectures, and also working on a better componentization of its codebase. To this end, I'd like to make the basic interrupt pipelining core emerge as a standalone component, for use by people who are only interested in primitive interrupt handling services.

Gna!: Which license did you choose for Adeos and why?

Philippe: It's GPL because it's a piece of Free Software. Additionaly, It's GPL because the Adeos implementation knows and uses the Linux kernel internals to operate, so it conforms to the kernel license.

Gna!: Can you mention some real world use cases of Adeos?

Philippe: For the visible part of the iceberg, the most prominent user of Adeos is the RTAI project, which makes use of its pipelining technique to implement a full-fledged RTOS in a GNU/Linux environment. RTAI has a lot of users worldwide including in the industry, and a significant portion of the RTAI install base now runs over Adeos.

Philippe: The HYADES project which depends on the ITEA program (Information Technology for European Advancement) has also contributed an Itanium port of Adeos. This incarnation of the nanokernel currently enables their real-time system on large Linux/ia64-based SMP machines.

There is also the invisible part of the iceberg, I mean the various individuals and companies who use Adeos for implementing real-time applications, with not much noise in the news, and you just happen to know of them coincidentally. This is quite a good sign too: they don't make a fuss of it just because it works, period. And that's fine.

Gna!: Do you have any industrial or institutional support? If any, how so?

Philippe: As a member of the HYADES project consortium we have just talked about, the Thales Group has funded the ia64 port, and recently, Denx Software Engineering has kindly provided us with test platforms for the PPC port.

However, there is currently no sustained industrial or institutional sponsorship for the Adeos project.

Gna!: Are you looking for contributions? If so, what kind of contributions could be of use to the project?

Philippe: I guess that each and every Free Software project is looking for motivated contributors. First of all, we'd like Adeos to be ported over more architectures. We have very limited hardware at hand, so we mainly rely on opportunities like people giving us access to specific hardware, or contributing architecture ports themselves. Next, we'd like that people who have core software development skills work on optimizing the interrupt pipeline as much as possible, especially for non-x86 archs with low memory bandwidth. I'm convinced that the latter issue is going to be very important in the future.

Gna!: What tools do you use when working on Adeos? Why?

Philippe: As far as I'm concerned, my preferred tool is my brain; incidentally, this might explain why we issued more than 200 patches to fix bugs or limitations in previous releases for the last two years :o) I'd personally like to be able to use any existing debugger for working on Adeos, but this has not been an option when it would have been the most useful: when bugs are lying somewhere into the interrupt path, the debugger usually goes out of the window with the box when things are getting fishy. Now that the codebase is stable, I'm rather solving arch-specific interrupt latency issues using ad hoc instrumentation, because a debugger would be useless, or at the very least too intrusive when you are dealing with handfuls of microseconds. As you can see, there is nothing particularly spectacular in my toolset.

Gna!: Why did you choose Gna! as host?

Philippe: We switched to Gna! after the Savannah debacle in late 2003. It's not the compromise that motivated such move, but rather how it has been dealt with. So we moved for a cosy and reliable environment, and we are pretty happy with such decision.

Gna!: Anything else?

Philippe: Yes. Have fun.

Home of Adeos:
RTAI site on Gna!:
The Adeos mailing list (low traffic):
Home of the HYADES project:

Fluxos / Fox / OSKit project?, posted 23 Oct 2004 at 16:46 UTC by chalst » (Master)

Does this project have any relations to the Fluxos / Fox / OSKit project? It sound as if there is some wheel reinvention going on (or I don't really understand the idea), if not.

got a question or two, posted 27 Oct 2004 at 10:27 UTC by lkcl » (Master)

can i have two or more linux kernels running at the same time?

is this the beginnings of "virtual machines" for linux?

what happens if i run (like usermode linux) an experimental kernel and a stable one and the experimental one crashes: what recovery is there to deal with that sort of thing?

the reason i ask is because if it can be done it would be a good way to upgrade machines without powering them off.

i.e. set up a HA cluster but running on the same machine, upgrade the kernel on one of them [on the same machine] shut down the other one [on the same machine] HA failover makes the other kernel take over the services.

... or is that a bit too far off?

dual simultaneous disk access being a bit dodgy, that sort of thing...


in Grandma's terms, posted 1 Nov 2004 at 18:43 UTC by connolly » (Master)

after reading about Adeos a bit, I'd explain it to grandma thusly: Suppose 2 boys are fighting over a box on the playground. Adeos gives them some rules for sharing the box.

That's prorbably not quite right; one of the boys wants to use the box in the usual way, and the other wants to do something new and different with it. Or something...

But I think it's important that open source developers appreciate the importance of marketing.

If you don't have an explanation in Grandma's terms, just say "no, I don't have one. I'm not trying to deploy this to lots of end-users yet" please.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page