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 
scheduling).
> 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

-- 
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