Hello,
I think that the best way to "port" GNAT on top of L4 is to port GNARL and rewrite GNULL lib.
GNAT is the run time library but is almost portable. Modification in this package will be minor
(Exception, interuption, etc).
GNULL (Low Level lib) have to be rewritten entierly. Actually GNULL is port on Pthead lib & win
thread. There are minor port to jtk (an other implementation of thread on linux computer .. it's a
native one) or FSU. There are also port on micro kernel as Ravenskar …
[View More]or Mach (See MarteOS
project).
Maybe it could be cool to implements the GNULLI on top of L4, by define an interface beetween L4 &
GNULLI to make it portable beetween implementation.
After we could write some servers to implements the entire GNAT lib and Posix 1003.5 binding. But
it's another story. Some specialized annexes could be implemented too (Real time, Distributed sys,
etc.)
best regards ..
Frederic.
___________________________________________________________
Do You Yahoo!? -- Un e-mail gratuit @yahoo.fr !
Yahoo! Courrier : http://fr.mail.yahoo.com
[View Less]
Hello,
Just a little word about GNAT library design.
GNAT lib is design over 3 layers.
1/ Applications
2/ The second layer (GNARL) is a threads independant manipulation lib. This lib is needed by the
compiler and is the Run Time Lib of GNAT.
3/ the GNULL (Low level) is the OS/Hardware dépendant lib to implements Thread system. The lib is
often build on Posix Thread. On W2000, this lib is implemented on top of win32 lib.
Interface beetween Application & GNARL is called GNARLI, interface …
[View More]beetween GNARL & GNULL is
called GNULLI.
If you want to write servers in Ada with GNAT on top of L4, you can do it in several ways :
1/ Use pragma No_Run_Time. In this case, GNAT never use is lib. You can no more use task, hight
level array fonctionnalities, .. see GNORT (no_run_time) documentation on adacore web site
2/ Implement the GNULLI interface. Ravenskar ORK use this way to port GNAT on their micro kernel.
3/ Implement the GNARL ..
I gonna to choose the second way. Maybe we could defined a interface beetween GNULL & L4 to be
hardware/kernel independ, to make our version of GNULL portable beetween L4 implementation.
best regards ..
Frederic.
___________________________________________________________
Do You Yahoo!? -- Un e-mail gratuit @yahoo.fr !
Yahoo! Courrier : http://fr.mail.yahoo.com
[View Less]
Hello,
My project is not a real project in sens that it's
only for fun.
My main goal is to provide a little (R.T. if possible)
Unix like O.S. as QNX or Plan9 on top of L4. I start
on top of a micro kernel write in C, but if an Ada
implementation exists (and works ;)), I will choose it
will be choosen in priority.
For now a study design concept of the O.S. By now, I
follow exactly the User Guide Manual, with the typical
OS example.
I've created a sourceforge site & M.Ls. (search ADX).
…
[View More]There is no traffic actually.
Best regards ..
Frédéric.
___________________________________________________________
Do You Yahoo!? -- Un e-mail gratuit @yahoo.fr !
Yahoo! Courrier : http://fr.mail.yahoo.com
[View Less]
Hello ..
I'd like to find people here who can help me to build
GNURL on top of L4 (GNAT Run time lib). I'd like to
use L4 to develop an RT unix like O.S., but I'd like
to implement it in Ada.
Any people interested ? Is there people who know Ada
here ?
bye bye
Frederic BOYER.
___________________________________________________________
Do You Yahoo!? -- Un e-mail gratuit @yahoo.fr !
Yahoo! Courrier : http://fr.mail.yahoo.com
Frédéric BOYER <askliepios(a)yahoo.com> writes:
> I'd like to find people here who can help me to build
> GNURL on top of L4 (GNAT Run time lib). I'd like to
> use L4 to develop an RT unix like O.S., but I'd like
> to implement it in Ada.
>
> Any people interested ? Is there people who know Ada
> here ?
This sounds like a cool project. Do you envision a particular
application, or are you interested in it just for hack value?
Our group in Dresden currently has no …
[View More]ADA expertise or experience.
However, depending on your project's focus, we might be willing to
help out by directing students to your project and allowing them to
earn credits this way.
Michael
--
hohmuth(a)innocent.com, hohmuth(a)inf.tu-dresden.de
http://home.pages.de/~hohmuth/
[View Less]
Martin Young <my(a)siroyan.com> writes:
> Thinking it through however it's obvious that a task A can map a page P
> to task B which can then map it back to task A at a different virtual
> address. Is this allowed in L4? (I assume it is) Is it useful? Could
> I get away with not allowing it? I ask because my initial
> implementation includes a quick index from a taskid to a node in the
> mapping tree (to avoid recursion rather than for speed) but this
> requires …
[View More]that each task has only a single entry.
L4Linux would not work on your L4 implementation, since we need more
then one mapping for a page in the same address space to be able to
implement vmalloc() and friends. To do this we currently map one page
to a special helper task which immidiatly grants it back those
creating a new mapping for the same page in the address space of
L4Linux (we do this since for some reasons Jochen's L4 version didn't
support intra task mappings, but I forgot the reasoning behind this
design decision).
Jean
--
I get up each morning, gather my wits.
Pick up the paper, read the obits.
if I'm not there I know I'm not dead.
So I eat a good breakfast and go back to bed. Peete Seeger
[View Less]
Hi,
I've been adding mapping trees to my implementation of L4 and I have a
question...
The L4 reference manual states that address spaces are constructed
recursively. Up 'till now I'd assumed that this was merely notional and
that in real systems address spaces would be strictly n-ary trees, not
graphs with cycles.
Thinking it through however it's obvious that a task A can map a page P
to task B which can then map it back to task A at a different virtual
address. Is this allowed in L4? (I …
[View More]assume it is) Is it useful? Could
I get away with not allowing it? I ask because my initial
implementation includes a quick index from a taskid to a node in the
mapping tree (to avoid recursion rather than for speed) but this
requires that each task has only a single entry.
Additionally, what effect should an unmap have: if task A unmaped P from
task B, would the second mapping in task A disappear? I'd imagine that
it would indeed remove the second mapping.
I've had a look at the Fiasco souce and it wasn't clear to me where
these situations are handled.
Thanks.
--
Martin Young, working for: | Phone: +44(0) 1454 615151
Siroyan Limited, Bristol Design Centre, | Mobile: +44(0) 7855 758771
West Point Court, Great Park Road, | web: www.siroyan.com
Bradley Stoke, Bristol BS32 4QG. UK | email: my(a)siroyan.com
**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.
This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.
www.mimesweeper.com
**********************************************************************
[View Less]
Are there any papers that discuss the merits of
microkernel and monolithic kernels in terms of
race conditions?
Regards Edsel
__________________________________________________
Do You Yahoo!?
Get email alerts & NEW webcam video instant messaging with Yahoo! Messenger
http://im.yahoo.com
Hi,
while trying to compile the L4 system binaries and support servers, I ran into errors. Following is the snapshot of my system screen.
---
make[2]: Entering directory `/root/Fiasco/l4/oskit/libc'
gcc -c -MD -DHAVE_CONFIG_H -I. -I../libc/x86 -I../libc/stdio -I../libc/stdlib -I../libc/string -I../libc/gen -I../libc/malloc -I- -I.. -I.. -I../flux/c -nostdinc -DASSEMBLER -MD ../libc/x86/i16_bcopy.S
/tmp/ccZPy7Kx.s: Assembler messages:
/tmp/ccZPy7Kx.s:235: Error: `8(%ebp)' is not a valid 16 …
[View More]bit base/index expression
/tmp/ccZPy7Kx.s:236: Error: `12(%ebp)' is not a valid 16 bit base/index expression
/tmp/ccZPy7Kx.s:238: Error: `16(%ebp)' is not a valid 16 bit base/index expression
/tmp/ccZPy7Kx.s:239: Error: `(%esi,%edx)' is not a valid 16 bit base/index expression
/tmp/ccZPy7Kx.s:242: Error: `(%edi,%edx)' is not a valid 16 bit base/index expression
/tmp/ccZPy7Kx.s:259: Error: `8(%ebp)' is not a valid 16 bit base/index expression
/tmp/ccZPy7Kx.s:278: Error: `8(%ebp)' is not a valid 16 bit base/index expression
/tmp/ccZPy7Kx.s:291: Error: `8(%ebp)' is not a valid 16 bit base/index expression
/tmp/ccZPy7Kx.s:292: Error: `12(%ebp)' is not a valid 16 bit base/index expression
----
I am running Debian Linux 2.2.3 on pentium II on my laptop.
Looking forward for help.
Reagards,
Himanshu
[View Less]
> When I boot l4ka-i586-dbg-vga (same problem happens with
> l4ka-i686-rel-vga) I get a kernel panic. The message is:
> startup.c:592: assertion failed (mbi->flags & MULTIBOOT_MODS)
>
> When I hit "k" to enter the kernel debugger, my machine
> simply restarts and POSTs again, followed by my GRUB boot menu.
Hi Karl,
this sounds like you have problems with your version of GRUB.
The error message you get is the resource manager complaining that you
did not load any …
[View More]modules. Therefore, "k" reboots (bug/feature in RMGR)
because no kernel is started yet.
Try to run the ready-to-go grub image from
http://i30www.ira.uka.de/~ud3/mkgrubdisk/.
Volkmar
PS: We try to keep L4Ka related technical problems off of l4-hackers.
Please use l4ka(a)ira.uka.de instead.
[View Less]