L4 implementations

Marcus Voelp voelp at os.inf.tu-dresden.de
Fri Jun 1 12:40:55 CEST 2007

Shams wrote:
> Hi
> I played with the demo cd and it works great..
> Just a few questions which I am having a hard time understanding:
> 1. L4 is itself a API/ABI reference, right?
L4 is a family of microkernels. There are two main APIs: L4-X.2 (aka 
L4-V.4) and L4-V.2, which include a binary interface (ABI) for each 
supported processor architecture. In addition there are two experimental 
APIs: L4.Sec and seL4 (see the Nicta homepage).
> 2. Are L4.Pistachio and L4.Fiasco are 2 different implementations of L4?
Yes, Pistachio implements the L4-X.2 API. Fiasco implements an improved 
version of L4-V.2 that incorporates some extensions inspired by L4-X.2 
(e.g., UTCBs) and by our local work here (e.g.,  support for real-time 
> 3. Is L4.Pistachio is the current official reference implementation?
When you look for a reference implementation for L4-X.2 maybe yes.

Both Fiasco and Pistachio origin from experiments but are right now 
widely used even by some industry partners.
> Do both of them only differ in internal code only?
No, they also differ in the API version they implement.
> 3. What is the difference between L4.Pistachio and L4.Fiasco?
> Why are there 2 separate implementations ie. why not just one codebase?
We have two code bases primarily for historic reasons. Fiasco was 
implemented in C++ at the time when the main stream L4 kernel was Jochen 
Liedke's assembler kernel implementing the L4-V2 API. Pistachio was 
developed later. One of the design goals was to restructure the code 
base to better support porting the kernel to different architectures. 
Fiasco was later on re-factored to support multiple architectures as well.
> Are you able to merge these 2 together or plan to?
Technically yes, but why should we do so? One can only learn from having 
two alternative implementations.
> 4. Is L4.Sec official and already in the process of being implemented?
We have a partial implementation of the L4.Sec API but there are no near 
term plans to release it.
> Is L4.Pistachio and L4.Fiasco going to be replaced by L4.Sec?
Probably not. The main objective of L4.Sec was to experiment with 
capabilities and kernel memory management.


Marcus Völp

Technische Universität Dresden
Department of Computer Science
Institute for System Architecture 

Tel: +49 (351) 463 38350
Fax: +49 (351) 463 38284

Email: voelp at os.inf.tu-dresden.de
Web: http://os.inf.tu-dresden.de/~voelp

More information about the l4-hackers mailing list