[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: New file system IDs and others.



> > Now one must also remember that ELF shared libs that Solaris and
Linux
> > have is only one way of implementing shared libraries. A MiNT shared
> > library scheme doesn't need to be based on ELF and also it doesn't
need
> > to be compatible with any other OS. 
> 
> Except perhaps to the extent that existing free utilities could
> be ported more easily if we adopt an existing standard? (But
> that need not be a decisive factor if we have other reasons to
> go our own way.  See below.) 

Naturally. And I should perhaps explain my point further.

Fenix libs is a very simple way of getting shared libs in a m680x0
environment. It works without any MMU and it provides the possibility to
make really nice stuff like caching of library routines and other
techniques that can reduce memory usage. I started working on the
library scheme in ?93 and after trying a vast number of different
alternatives the current version was settled in ?97.

The problems a library scheme in MiNT must cope with is:

1. lack of CPU power. Not even a 060 is fast today.
2. lack of memory. Most machines have 16Meg tops.

Fenix library scheme was designed with this in mind. It has been
optimised for optimum or near optimum performance on all CPU's ranging
from a 000 to a 060.

I do like ELF. Although it isn't perfect it is one of the best
executable file formats I have seen. In fact Fenix will support and use
ELF binaries by using a special relocation section so that the
executable can be relocated on systems with no MMU. On MMU equipped
systems demand paging can be used insted. However the GOT and PLT scheme
used in Linux for instance needs to be modified if you want to use it on
000 systems. This means that you would have to rewrite the utilities
anyway. I do not think it is very sane to lose 000 compatibility
especially since the 060 is optimised for running 000 code. If you
modify the linkage scheme you won't need neither 020 adr modes nor MMU.

To summaries:

*I don't think we should lose 000 comp. and therefore we should not use
ELF's scheme directly

> though, I think basically the first person to actually implement
> shared libs in a sane, practical way, will set the standard. 

I should perhaps add that Fenix libs is up and running in my current
Fenix micro-kernel version.

As a coincidence MagiC's shared library is more or less a subset of
Fenix's. 

Regards
 Sven