Hi folks,

just curious: which binfmt does Plan9 use ?
How are share libraries handled (if they exist at all) ?

Inspired by recent discussions @ gentoo-user, I'm thinking a bit
how an simple and efficient binfmt could look like. Some key
ideas are:

* purely runtime information (no debug stuff, etc)
* everthing's sharable/relocatable module, with strict dependencies
* on exec() the process image will be constructed the modules along
  the dependency tree (the main program as root)
* each module may have an entry point (main module w/o is allowed,
  even if it wouldn't make much sense ;-o), these are called after
  relocation, along the dependency tree, from leaf to root.
* the whole loader sits in the kernel (maybe w/ some additional
  helper deamon in userland), but userland can pass parameters
  like search pathes, etc via env.

IMHO having the dynamic loader in kernel-land (in contrary to ELF 
on GNU) not just removes the need for lots of syscalls, but allows
a lot of optimizations, eg. code sharing w/ mmap() or caching
relocation data.


cu
-- 
----------------------------------------------------------------------
 Enrico Weigelt, metux IT service -- http://www.metux.de/

 phone:  +49 36207 519931  email: weig...@metux.de
 mobile: +49 174 7066481   icq:   210169427         skype: nekrad666
----------------------------------------------------------------------
 Embedded-Linux / Portierung / Opensource-QM / Verteilte Systeme
----------------------------------------------------------------------

Reply via email to