Hi,
This thread is just a sequel from http://os.inf.tu-dresden.de/pipermail/l4-hackers/2013/006108.html
Is it possible to run my application on top l4linux; like, if I want to run hello world application over l4linux (not just booting it over l4/fiasco)? I tried to run it by using this configuration:
-- Start Hello loader:start( { caps = {}, l4re_bdg = L4.Dbg.Warn, log = {"hello","red"}, }, "rom/hello");
-- Start Linux loader:start( { caps = { log = L4.Env.log:m("rws"), fb = mag_svc:create(L4.Proto.Goos, "g=640x480"); vbus = vbus_l4linux; }, l4re_dbg = L4.Dbg.Warn, log = { "l4linux", "yellow" }, }, "rom/" .. lxname .. " mem=64M console=tty0 l4x_rd=rom/ramdisk-" .. L4.Info.arch() .. ".rd root=1:0 ramdisk_size=4000 init=linuxrc");
But I think it only run two different applications over l4/fiasco.
Do you have any idea how to run the hello application over l4linux?
Bjoern said:
The idea behind L4Linux is to run native Linux applications, so hello world in L4Linux works just as the version you would write in your local Linux.
Running an application that communicates with both L4 and Linux is a bit more involved. L4Linux applications don't talk to L4 apps directly. The L4Linux kernel is an L4 app though, so it can do this talking for you. The missing link then is to write a Linux device driver that allows your Linux program to talk to the L4Linux kernel, which then in turn communicates with an external L4 application.
In term of running hello world in L4Linux, I can run it by passing -m32 -static in the compilation process. But, now I'm having a problem in running the mpi-based application on L4Linux which this apps needs the mpi library to be able to run. I have ported the mpi library and run the apps over L4Re by using Ned. So, based on the explanation above, I don't understand how to run the mpi-based program on top L4Linux in which the L4Linux definitely doesn't have mpi-library because the mpi-library is existed in L4Re. Is it like this, the l4linux kernel needs the device driver to communicate with external L4 apps (in my case mpi-base apps), then to trigger the communication we should make the kernel module (linux program to talk to the l4linux kernel). Am I right? Can you point one example, which is similar with my case, that can be followed by me?
Thanks, Irvanda
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi,
In term of running hello world in L4Linux, I can run it by passing -m32 -static in the compilation process. But, now I'm having a problem in running the mpi-based application on L4Linux which this apps needs the mpi library to be able to run. I have ported the mpi library and run the apps over L4Re by using Ned. So, based on the explanation above, I don't understand how to run the mpi-based program on top L4Linux in which the L4Linux definitely doesn't have mpi-library because the mpi-library is existed in L4Re. Is it like this, the l4linux kernel needs the device driver to communicate with external L4 apps (in my case mpi-base apps), then to trigger the communication we should make the kernel module (linux program to talk to the l4linux kernel). Am I right? Can you point one example, which is similar with my case, that can be followed by me?
I see two different scenarios here:
1. Your MPI application is supposed to run as a Linux application in L4Linux - -> In this case all you need is an MPI library installed in the Linux distribution that you boot L4Linux into. E.g., if you are using some custom ramdisk, simply add a (Linux) MPI library to this disk and your program will then use it. No L4 magic necessary at all.
2. Your MPI application is supposed to run directly on L4Re - -> In this case you don't need any Linux or L4Linux in the setup. You build your L4Re program and link it with your ported MPI library and then it should run.
Does that answer your question or am I missing your point?
Regarding MPI and L4Re: We had a student port MPICH to L4Re last year. His thesis is at http://os.inf.tu-dresden.de/papers_ps/jahn-beleg.pdf but I'm not sure if his code ever made it to a public repository (aka: i don't have it ;) ).
Cheers, Bjoern
On Fri, Apr 25, 2014 at 4:24 PM, Björn Döbel doebel@os.inf.tu-dresden.dewrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hi,
In term of running hello world in L4Linux, I can run it by passing -m32 -static in the compilation process. But, now I'm having a problem in running the mpi-based application on L4Linux which this apps needs the mpi library to be able to run. I have ported the mpi library and run the apps over L4Re by using Ned. So, based on the explanation above, I don't understand how to run the mpi-based program on top L4Linux in which the L4Linux definitely doesn't have mpi-library because the mpi-library is existed in L4Re. Is it like this, the l4linux kernel needs the device driver to communicate with external L4 apps (in my case mpi-base apps), then to trigger the communication we should make the kernel module (linux program to talk to the l4linux kernel). Am I right? Can you point one example, which is similar with my case, that can be followed by me?
I see two different scenarios here:
- Your MPI application is supposed to run as a Linux application in
L4Linux
- -> In this case all you need is an MPI library installed in the Linux distribution that you boot L4Linux into. E.g., if you are using some custom ramdisk, simply add a (Linux) MPI library to this disk and your program will then use it. No L4 magic necessary at all.
- Your MPI application is supposed to run directly on L4Re
- -> In this case you don't need any Linux or L4Linux in the setup. You build your L4Re program and link it with your ported MPI library and then it should run.
Does that answer your question or am I missing your point?
Yes it does. In my case I think I only need to run my application on L4linux, but since the beginning I misunderstood that I have to port the library on L4. I have wasted so much time in doing scenario 2.
What is the differences between running application over L4linux and running application as a task in L4Re? Can I say that both of them are Operating System that run over virtualization? Then, let's say Task A run mpi-based application over L4Linux, and Task B run mpi-based application directly form L4re. if I run 2 VMs which each VM contains task A (scenario A), and then after that I run 2 VMs which each VM contains task B (scenario B), which each VM use the same number of cpu cores, then do both of scenarios perform the same virtualization?
Regarding MPI and L4Re: We had a student port MPICH to L4Re last year. His thesis is at http://os.inf.tu-dresden.de/papers_ps/jahn-beleg.pdf but I'm not sure if his code ever made it to a public repository (aka: i don't have it ;) ).
It's OK Bjoern, I had contacted the author of that thesis and got the code.
Thanks,
Irvanda
l4-hackers@os.inf.tu-dresden.de