Hi, all!
I'm newbie on L4 microkernel, and have been confused by some questions of the L4 constructions!
Are there any avaliable Applications or Projects directly on the L4Re but not depending On L4Linux? Like gcc or other app? If existed, can we can directly bulild some application or tools after boot L4 microkernel?
Every feedbacks or documention links are appreciated! :>
Best, Chen
2012-11-23
zhengc
Hi,
On 23.11.2012 08:18, OSDepend wrote:
Are there any avaliable Applications or Projects directly on the L4Re but not depending On L4Linux? Like gcc or other app? If existed, can we can directly bulild some application or tools after boot L4 microkernel?
L4Re consists of libraries and applications. In a normal setup you are running native L4Re applications, like Moe, Ned or Mag. These applications mostly implement services. L4Linux just uses these services. So it is the other way around. Most native L4Re applications do not depend on each other. But L4Linux depends on a bunch of them.
You can find more information on the general system structure at http://os.inf.tu-dresden.de/L4Re/doc/. Note that L4Linux is nothing special with regards to the overall system structure. It is just another application.
Hope that helps.
On 23.11.2012, at 08:18, OSDepend wrote:
Are there any avaliable Applications or Projects directly on the L4Re but not depending On L4Linux? Like gcc or other app? If existed, can we can directly bulild some application or tools after boot L4 microkernel?
You may have a look at the Karma VMM (www.karma-vmm.org).
Matthias.
Every feedbacks or documention links are appreciated! :>
Best, Chen
2012-11-23 zhengc _______________________________________________ l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Hi Christian,
L4Re consists of libraries and applications. In a normal setup you are running native L4Re applications, like Moe, Ned or Mag. These applications mostly implement services. L4Linux just uses these services. So it is the other way around. Most native L4Re applications do not depend on each other. But L4Linux depends on a bunch of them. You can find more information on the general system structure at http://os.inf.tu-dresden.de/L4Re/doc/. Note that L4Linux is nothing special with regards to the overall system structure. It is just another application. Hope that helps.
Thanks for your kindly help, and i have had a quick look about the L4Re ducument! In your explanation, L4Re cosists of a bunch of services. So it just provides basic services for L4Linux, but not a enviroment for normal application! I describe my thought about L4 related stuff as below. For normal user, they can only use L4Linux or Karma VM, which provides a Linux enviroment. They can not use the L4Re as a enviroment because no Linux env? But for L4 developer, how can they build application derectly on microkernel? Just depend on the systemcall provided by microkernel and/or have some dependence on those existing service from L4Re?
Best, Chen
On Mon Nov 26, 2012 at 11:26:34 +0800, OSDepend wrote:
L4Re consists of libraries and applications. In a normal setup you are running native L4Re applications, like Moe, Ned or Mag. These applications mostly implement services. L4Linux just uses these services. So it is the other way around. Most native L4Re applications do not depend on each other. But L4Linux depends on a bunch of them. You can find more information on the general system structure at http://os.inf.tu-dresden.de/L4Re/doc/. Note that L4Linux is nothing special with regards to the overall system structure. It is just another application. Hope that helps.
Thanks for your kindly help, and i have had a quick look about the L4Re ducument! In your explanation, L4Re cosists of a bunch of services. So it just provides basic services for L4Linux, but not a enviroment for normal application! I describe my thought about L4 related stuff as below. For normal user, they can only use L4Linux or Karma VM, which provides a Linux enviroment. They can not use the L4Re as a enviroment because no Linux env? But for L4 developer, how can they build application derectly on microkernel? Just depend on the systemcall provided by microkernel and/or have some dependence on those existing service from L4Re?
To add to what Björn already mentioned: You are free to use whatever you like but for that you need to have an understanding on the options. L4Re is an offer that significantly reduces complexity for developing native L4 applications. For example, look at l4/pkg/hello/server/src/main.c, the "Hello World" greeting. This is a native L4 application, you do not need Linux to run it. However, L4Re, among many more things, makes it possible that this program is so common to you and you immediately understand what it is doing. But if you like you can also work directly on the kernel's interfaces only. However, then you are likely starting to develop an operating system layer before starting your application.
Adam
Hi
To add to what Björn already mentioned: You are free to use whatever you like but for that you need to have an understanding on the options. L4Re is an offer that significantly reduces complexity for developing native L4 applications. For example, look at l4/pkg/hello/server/src/main.c, the "Hello World" greeting. This is a native L4 application, you do not need Linux to run it. However, L4Re, among many more things, makes it possible that this program is so common to you and you immediately understand what it is doing. But if you like you can also work directly on the kernel's interfaces only. However, then you are likely starting to develop an operating system layer before starting your application. Adam
Thank you for your help. What i really care about is how well the L4Re is providing. Because i have a willing to port a search engine or a hadoop framework on L4Re to see if i can gain much more performance benifit. In L4Re, you have already present uclibc and pthread for programmer. But it seems like that I need to build the application (hello world) with the L4Re, and after that i can boot the system and run the app. Can i just build and run my applications on L4Re after the L4Re+Fiasco.OS has been boot? Is there any tools developed to dynamic build and load applications? (i'm not refereing to the Ned which inits and loads compiled apps.)
Hi,
On Wed Nov 28, 2012 at 12:44:04 +0800, OSDepend wrote:
To add to what Björn already mentioned: You are free to use whatever you like but for that you need to have an understanding on the options. L4Re is an offer that significantly reduces complexity for developing native L4 applications. For example, look at l4/pkg/hello/server/src/main.c, the "Hello World" greeting. This is a native L4 application, you do not need Linux to run it. However, L4Re, among many more things, makes it possible that this program is so common to you and you immediately understand what it is doing. But if you like you can also work directly on the kernel's interfaces only. However, then you are likely starting to develop an operating system layer before starting your application. Adam
Thank you for your help. What i really care about is how well the L4Re is providing. Because i have a willing to port a search engine or a hadoop framework on L4Re to see if i can gain much more performance benifit. In L4Re, you have already present uclibc and pthread for programmer. But it seems like that I need to build the application (hello world) with the L4Re, and after that i can boot the system and run the app.
Yes, that's the current workflow. Usually we use for example Qemu to launch and run systems on our laptops. Physical systems are usually booted via network.
Can i just build and run my applications on L4Re after the L4Re+Fiasco.OS has been boot? Is there any tools developed to dynamic build and load applications? (i'm not refereing to the Ned which inits and loads compiled apps.)
Indeed, there's no ready-to-use solution for that.
Adam
Hi Chen, I guess you want to compare the performance of L4Linux with non-L4Linux. It could be a little faster! But you have to write an OS layer and maintain it if any changes from your upper java framework.
josh zhao
2012/11/28 OSDepend osdepend@gmail.com
** Hi
To add to what Björn already mentioned: You are free to use whatever you like but for that you need to have an understanding on the options. L4Re is an offer that significantly reduces complexity for developing native L4 applications. For example, look at l4/pkg/hello/server/src/main.c, the "Hello World" greeting. This is a native L4 application, you do not need Linux to run it. However, L4Re, among many more things, makes it possible that this program is so common to you and you immediately understand what it is doing. But if you like you can also work directly on the kernel's interfaces only. However, then you are likely starting to develop an operating system layer before starting your application. Adam
Thank you for your help. What i really care about is how well the L4Re is providing. Because i have a willing to port a search engine or a hadoop framework on L4Re to see if i can gain much more performance benifit. In L4Re, you have already present uclibc and pthread for programmer. But it seems like that I need to build the application (hello world) with the L4Re, and after that i can boot the system and run the app. Can i just build and run my applications on L4Re after the L4Re+Fiasco.OS has been boot? Is there any tools developed to dynamic build and load applications? (i'm not refereing to the Ned which inits and loads compiled apps.)
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Hi,
Yes, that's the current workflow. Usually we use for example Qemu to launch and run systems on our laptops. Physical systems are usually booted via network.
Indeed, there's no ready-to-use solution for that.
Thank you for your answers, it was very helpful. Now I have some more questions:
I wanna to port some app on L4Re, like bash, sphinx. The only thing I can use is the C/C++ library you provide, so it seems like that i need to rebuild every library and dll for the current apps. Do you have some advices or guidlines for me?
Hi Chen, I guess you want to compare the performance of L4Linux with non-L4Linux. It could be a little faster! But you have to > > write an OS layer and maintain it if any changes from your upper java framework. josh zhao
Yes, I think the L4Linux may reduce the performance. If I write an OS layer for my ported application, the layer may also interfer the performance of pure Microkernel. That's why I want build/port my application directly on L4Re!
Best, Chen
On Thu Nov 29, 2012 at 20:27:09 +0800, OSDepend wrote:
Yes, that's the current workflow. Usually we use for example Qemu to launch and run systems on our laptops. Physical systems are usually booted via network.
Indeed, there's no ready-to-use solution for that.
Thank you for your answers, it was very helpful. Now I have some more questions:
I wanna to port some app on L4Re, like bash, sphinx. The only thing I can use is the C/C++ library you provide, so it seems like that i need to rebuild every library and dll for the current apps. Do you have some advices or guidlines for me?
I do not understand what you mean with rebuilding every library for an application. Do you mean those available on L4Re already or new ones?
Hi Chen, I guess you want to compare the performance of L4Linux with non-L4Linux. It could be a little faster! But you have to > > write an OS layer and maintain it if any changes from your upper java framework. josh zhao
Yes, I think the L4Linux may reduce the performance. If I write an OS layer for my ported application, the layer may also interfer the performance of pure Microkernel. That's why I want build/port my application directly on L4Re!
Actually it's an quite easy choice. L4Linux is an OS layer but not your choice for your target application. So you need a different one that better fits your target application, such as scalability. That can maybe be L4Re, maybe it's L4Re + some additions, maybe something different. Possibilities exist.
Adam
Hi.
I wanna to port some app on L4Re, like bash, sphinx. The only thing I can use is the C/C++ library you provide, so it seems like that i need to rebuild every library and dll for the current apps. Do you have some advices or guidlines for me?
I do not understand what you mean with rebuilding every library for an application. Do you mean those available on L4Re already or new ones?
We've developed and deployed several applications directly on top of L4Re. One of the applications for instance is a video streaming application which can be controlled from an external Android app. Just to be clear: we do not employ L4Linux for this in any way.
Personally, I don't really know why you want to run Bash and Sphinx on top of L4Re at this point, except as a proof of concept or something. Can you explain why you would want to do this? Perhaps it will clarify your question so we can assist you better.
Best regards, Johan
Hi all, Thanks a lot for your replies!
Could you please tell more about your project, what do you want to get and how do you want to use. That is can help us to assess needs. As I understand, you want to use something performance-critical in bash? In case of L4Linux you will have small loss of performance but you will have 'quick start'. And for several types of application, performance of L4Linux is equal to performance of independent L4Re application. btw, maybe Noux from Genode can be useful for you.
I just take bash and sphinx as examples, and i have not decided yet which software to port. Web Server maybe my first choice. According to Professor Liedtke's paper, specific software with synchronous L4 RPC (on L4) has much more performance benifit than the software in L4Linux. So I want to port some common application to prove that idea.
And I will check the Noux out, thanks bro.
I do not understand what you mean with rebuilding every library for an application. Do you mean those available on L4Re already or new ones?
Yes, I mean the new ones. L4Re has already rebuild many libraries, but when I try to port some complicated software on top of the L4Re, I may need to rebuild some new libraries. So I'd like to ask for your experience to evaluate the engnieer time it could take. It will decide the software i will port ultimately.
Actually it's an quite easy choice. L4Linux is an OS layer but not your choice for your target application. So you need a different one that better fits your target application, such as scalability. That can maybe be L4Re, maybe it's L4Re + some additions, maybe something different. Possibilities exist.
Indeed!:>
We've developed and deployed several applications directly on top of L4Re. One of the applications for instance is a video streaming application which can be controlled from an external Android app. Just to be clear: we do not employ L4Linux for this in any way. Personally, I don't really know why you want to run Bash and Sphinx on top of L4Re at this point, except as a proof of concept or something. Can you explain why you would want to do this? Perhaps it will clarify your question so we can assist you better.
That sounds amazing, and you did some solid work. Have your application been included in Genode or other released OS yet? The reason that I want to port software instead of developing from scratch is I want to know about the performance in L4 comparing with in L4Linux. So if i port a software onto L4Re, I can run the original app in L4Linux without any changes! That's my point, Do you have any advice or experiece to share?
If your applications are ported from Linux or unix-like OS, they maybe need some sysycalls or system functions that don't be implemented in L4Re, you may have to re-implement and maintain them. Those functions are also called the "Lightweight OS layer".
That's true! I just begin my journey on L4, and excited for what the ideal structure and benifit of the microkernel may bring us. I have already done my homework on the theory of L4, L4Re, and L4Linux, but I have no experience about the software-porting things on L4Re. So I'd like some helps or existing examples in advance, from which i could get a quick start to port some useful software to the L4Re (or native L4).
On Fri Nov 30, 2012 at 17:52:30 +0800, OSDepend wrote:
Could you please tell more about your project, what do you want to get and how do you want to use. That is can help us to assess needs. As I understand, you want to use something performance-critical in bash? In case of L4Linux you will have small loss of performance but you will have 'quick start'. And for several types of application, performance of L4Linux is equal to performance of independent L4Re application. btw, maybe Noux from Genode can be useful for you.
I just take bash and sphinx as examples, and i have not decided yet which software to port. Web Server maybe my first choice. According to Professor Liedtke's paper, specific software with synchronous L4 RPC (on L4) has much more performance benifit than the software in L4Linux. So I want to port some common application to prove that idea.
There's nothing _automatically_ faster here. Before starting to do practical work you should know pretty well where and why performance is lost. Looking at a webserver I think Linux is doing a pretty good job in that use-case, let alone because of sendfile and their TCP/IP stack. And there's one more problem: drivers. For a standalone webserver, you need at least a network card driver, and not the simple version of the driver but one that uses all the features of the device so you get all the features for performance. Same probably valid for disk if you'd want to go beyond benchmarking. And that's actually the tricky part...
I do not understand what you mean with rebuilding every library for an application. Do you mean those available on L4Re already or new ones?
Yes, I mean the new ones. L4Re has already rebuild many libraries, but when I try to port some complicated software on top of the L4Re, I may need to rebuild some new libraries. So I'd like to ask for your experience to evaluate the engnieer time it could take. It will decide the software i will port ultimately.
That depends on the library (of course!). Basically their dependencies to other libraries and the functionality they use. Generic ones just work out of the box, others need adaption work. Not easy to come up with a generic formula.
Actually it's an quite easy choice. L4Linux is an OS layer but not your choice for your target application. So you need a different one that better fits your target application, such as scalability. That can maybe be L4Re, maybe it's L4Re + some additions, maybe something different. Possibilities exist.
Indeed!:>
We've developed and deployed several applications directly on top of L4Re. One of the applications for instance is a video streaming application which can be controlled from an external Android app. Just to be clear: we do not employ L4Linux for this in any way. Personally, I don't really know why you want to run Bash and Sphinx on top of L4Re at this point, except as a proof of concept or something. Can you explain why you would want to do this? Perhaps it will clarify your question so we can assist you better.
That sounds amazing, and you did some solid work. Have your application been included in Genode or other released OS yet? The reason that I want to port software instead of developing from scratch is I want to know about the performance in L4 comparing with in L4Linux. So if i port a software onto L4Re, I can run the original app in L4Linux without any changes! That's my point, Do you have any advice or experiece to share?
Not sure I understand that right, but any original app can be run in L4Linux. That's the purpose of it. Using L4Re for an app has nothing to do with L4Linux. This L4Re-application is at the same level as L4Linux because L4Linux is also an L4Re-application.
If your applications are ported from Linux or unix-like OS, they maybe need some sysycalls or system functions that don't be implemented in L4Re, you may have to re-implement and maintain them. Those functions are also called the "Lightweight OS layer".
That's true! I just begin my journey on L4, and excited for what the ideal structure and benifit of the microkernel may bring us. I have already done my homework on the theory of L4, L4Re, and L4Linux, but I have no experience about the software-porting things on L4Re. So I'd like some helps or existing examples in advance, from which i could get a quick start to port some useful software to the L4Re (or native L4).
Well just start it and check what problems you run into.
Adam
Thus spake OSDepend osdepend@gmail.com:
Hi Matthias,
You may have a look at the Karma VMM (www.karma-vmm.org).
Matthias.
That helps me a lot. Karma is a new VMM on microkernel which looks much like L4Linux in my opinion! Is it now supporting java enviroment like nova?
I think you got something confused. NOVA does not directly support Java. You can run Java apps in a virtual machine, but so can you in L4Linux.
Julian
l4-hackers@os.inf.tu-dresden.de