Is L4Linux can use its existed Linux driver to access hardware device?

Matthias Lange matthias.lange at
Tue Sep 6 17:37:50 CEST 2016


On 09/05/2016 11:36 AM, Zhe Zhao wrote:
> Hi,
> Thanks for your answers, I really appreciate it.
> I tried to run L4Linux and L4Re in a qemu environment, is it support SMP
> already? I found I only have a single core L4Linux running. and Fiasco
> report only one scheduler instance.

Yes, SMP is supported. Have you configured the L4Re microkernel with
multiprocessing support? Did you start qemu with multiple CPUs? To
enable more CPUs in L4Linux you need to pass the 'l4x_cpus=<VALUE>'
parameter on the cmdline.

> And is it possible to direct reuse the L4Linux's driver instead of
> rewrite them in L4Re? is that IO manager used to mapping all needed
> device physical address to L4Linux's memory space? Is that mean I can map
> all device direct to L4Linux through IO manager?

Yes, but there might be work involved. First you should make yourself
familiar with the concepts of Io [0].

> Is there any work ongoing to support ARM64 on L4Re and L4Linux? It will
> be quite interesting consider most of the ARM device are moving to be 64
> bit arch.

We are looking at it but there is nothing to announce publicly right now

> Do you have some recommend documents for the newbie like me to get a
> quick start up?

The L4Re documentation [1].



> Br
> Alex
> 2016-09-02 14:24 GMT+08:00 Matthias Lange
> <matthias.lange at <mailto:matthias.lange at>>:
>     Hi,
>     On 08/31/2016 02:35 PM, Zhe Zhao wrote:
>     > Hi,
>     >
>     > After read the basic ideas of L4Linux I have some questions related to it.
>     >
>     > Is L4Linux run as a paravirtualization VM on L4Re? Then the traditional
>     > Linux Process just still compiled against Linux system and put them
>     > together with L4Linux disk image?
>     > so it means L4Re works like qemu and Linuxl?
>     No, L4Re does not work like qemu.
>     > or L4Re works as a micro kernel operating system, and L4Linux run as a
>     > process on it, all devices handled to L4Linux to reuse the drivers of
>     > L4Linux? and the previous Linux process
>     > compiled with Linux, but run direct on L4Re as L4 processes which
>     > communicate with L4Linux through IPC?
>     L4Linux is a modified version of the Linux kernel with the hardware
>     abstraction layer (HAL) implemented using L4Re primitives. Technically
>     L4Re appears to be "just" another hardware architecture for the Linux
>     kernel, just like ARM or MIPS.
>     L4Linux runs as a user space task on top of the L4Re microkernel and at
>     the (Linux) kernel ABI is unmodified which allows to run existing Linux
>     programs. That means, you can compile "normal" Linux programs with your
>     standard tool chain, put the binary onto a ramdisk or disk image and run
>     it with L4Linux.
>     > it is quite confused after read a little of the codes, in L4Linux, seems
>     > there is some injection of L4 task stuffs inside thread_struct of Linux,
>     > but also have some vCPU related stuffs,
>     > can you help me about what is the real behavior of L4Linux?
>     Each (Linux) process is actually an L4Re task with the exception and
>     page fault handler set to the L4Linux task. That's why some L4-specific
>     additions are required to Linux kernel data structures.
>     Matthias.
>     > I'm sorry to ask this basic questions, but after some digging I feel
>     > quite confused about how it works.
>     >
>     > Thanks
>     > Br
>     > Alex

More information about the l4-hackers mailing list