[K42-discussion] K42 pieces

Patrick G. Bridges bridges at cs.unm.edu
Fri Oct 12 05:47:16 EST 2007


Thanks for the extra info, Bryan. Very useful stuff. A few questions:

> Dilma may correct me, but I think baseServers also supports NFS and  
> ramfs filesystems.

It does.

> exec.so isn't really linked with the application (dynamically or  
> otherwise).  It's a self-contained module that is injected into  
> each address space at a fixed address.

Gotcha. Just looked over that code.

> So far I've been talking about pure Linux applications.  The  
> story's a bit different for native K42 applications that want to  
> use K42 services directly.  For such programs, exec.so is still  
> loaded at the same location as it always is.  The app doesn't  
> really link to it directly, but instead links with -lk42sys.   
> libk42sys.so is a magic shared object that has no code or data of  
> its own but supplies all the same symbols as exec.so, and causes  
> all those symbols to be mapped to the corresponding addresses in  
> exec.so.

Hmm, I don't see how this happens - libk42sys.so.1 is about 6-7 megs  
in size and includes everything from a stripped exec.so on powerpc as  
far as I can see. How do we prevent ld.so from loading in all the  
symbols and data from libk42sys.so again and instead use the parts of  
exec.so already in the image?

Anyway, since exec.so doesn't need to be relocatable and libk42sys.so  
only needs to be able to vector into it, could we change the build  
system to generate exec.o as a fully resolved object, and then  
generate a dummy shared object with the right generated .got and .plt  
sections needed to allow a pure k42 app to vector into it?

-Patrick



More information about the K42-discussion mailing list