I am looking for libraries to do coding on pistachio. As I understand L4Env gives a bunch of libraries - memory management libraries (dm_phys,...), l4io, etc. Could someone answer these questions:
1. From L4Env's docs I see it being used only with fiasco source code. Haven't come across any project that uses L4Env with pistachio. Any dependencies that I don't know of? If not are there any examples? 2. I want libraries for some basic functions - malloc, free, printf, etc. L4Env needs oskit, l4linux2.2 and fiasco L4 kernel. Aren't there any lightweight ways of getting such libraries for L4? Can parts of L4Env used seperately in pistachio tree? 3. I came across libCLight library which is the light implementation of libc. I could get it compiled in my pistachio tree, as done in IoL4 project. Can anyone compare using malloc in libCLight and using DMPhys of L4Env?
Hope these questions are not that naive.
Thanks in advance.
- I want libraries for some basic functions - malloc, free, printf, etc.
In developing the Hurd port to L4 pistachio, we've had the same need and filled them in on our own. You may want to check out how e.g. our root server does this [1].
Neal
http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/hurd/hurd-l4/
On Thu Jun 09, 2005 at 10:49:15 -0500, Jayesh Salvi wrote:
I am looking for libraries to do coding on pistachio. As I understand L4Env gives a bunch of libraries - memory management libraries (dm_phys,...), l4io, etc. Could someone answer these questions:
- From L4Env's docs I see it being used only with fiasco source code.
Haven't come across any project that uses L4Env with pistachio. Any dependencies that I don't know of? If not are there any examples?
Pistachio implements the X.2 API, L4Env uses the V2 API. That's the main reason why they don't play together.
- I want libraries for some basic functions - malloc, free, printf, etc.
L4Env needs oskit, l4linux2.2 and fiasco L4 kernel. Aren't there any lightweight ways of getting such libraries for L4? Can parts of L4Env used seperately in pistachio tree?
L4Env by no means needs oskit or l4linux2.2. It needs a libc, one can currently choose between oskit and dietlibc. l4linux has nothing to do with L4Env, except that l4linux may use it. There's no dependency in the other direction.
Our dietlibc uses several backends, e.g. it has different backends for memory allocation using different methods. dietlibc has no API dependencies and should work everywhere. Backends are API dependent but should be easily adoptable.
- I came across libCLight library which is the light implementation of
libc. I could get it compiled in my pistachio tree, as done in IoL4 project. Can anyone compare using malloc in libCLight and using DMPhys of L4Env?
Well, I do not know libCLight nor its malloc implementation but both things are different. dm_phys is a dataspace manager that operates on pyhsical memory and can hand out chunks of memory to clients. Its granularity are pages. One can use dataspaces to provide memory for a malloc implementation but dm_phys itself does not provide one. E.g. the 'simple_mem' backend for dietlibc provides an mmap via dm_phys so that malloc in dietlibc works.
Adam
L4Env by no means needs oskit or l4linux2.2. It needs a libc, one can currently choose between oskit and dietlibc. l4linux has nothing to do with L4Env, except that l4linux may use it. There's no dependency in the other direction.
I hoped so. But the COMPILATION readme file in L4Env package made me think that there was dependency.
Our dietlibc uses several backends, e.g. it has different backends for memory allocation using different methods. dietlibc has no API dependencies and should work everywhere. Backends are API dependent but should be easily adoptable.
- I came across libCLight library which is the light implementation of
libc. I could get it compiled in my pistachio tree, as done in IoL4
project.
Can anyone compare using malloc in libCLight and using DMPhys of L4Env?
Well, I do not know libCLight nor its malloc implementation but both things are different. dm_phys is a dataspace manager that operates on pyhsical memory and can hand out chunks of memory to clients. Its granularity are pages. One can use dataspaces to provide memory for a malloc implementation but dm_phys itself does not provide one. E.g. the 'simple_mem' backend for dietlibc provides an mmap via dm_phys so that malloc in dietlibc works.
Thanks very much for such good explanation. I will explore your suggestions to find the library most suitable for my means.
On Thu Jun 09, 2005 at 10:49:15 -0500, Jayesh Salvi wrote:
I am looking for libraries to do coding on pistachio. As I understand L4Env gives a bunch of libraries - memory management libraries (dm_phys,...), l4io, etc. Could someone answer these questions:
- From L4Env's docs I see it being used only with fiasco source code.
Haven't come across any project that uses L4Env with pistachio. Any dependencies that I don't know of? If not are there any examples? 2. I want libraries for some basic functions - malloc, free, printf, etc. L4Env needs oskit, l4linux2.2 and fiasco L4 kernel. Aren't there any lightweight ways of getting such libraries for L4? Can parts of L4Env used seperately in pistachio tree? 3. I came across libCLight library which is the light implementation of libc. I could get it compiled in my pistachio tree, as done in IoL4 project. Can anyone compare using malloc in libCLight and using DMPhys of L4Env?
Hope these questions are not that naive.
You should try out Kenge. http://www.disy.cse.unsw.edu.au/Software/Kenge.
We provide a small libc that can be targeted to a variety of environments.
There are also a number of other libraries that might be of use.
Cheers,
Benno
You should try out Kenge. http://www.disy.cse.unsw.edu.au/Software/Kenge.
We provide a small libc that can be targeted to a variety of environments.
There are also a number of other libraries that might be of use.
That's very helpful. I will have a look at it. I had heard of Iguana, Mungi, but maybe missed this one. Thanks a bunch.
l4-hackers@os.inf.tu-dresden.de