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

Re: [MiNT] Re: fatal error handling



Guido Flohr <gufl0000@stud.uni-sb.de> writes:

|> On Wed, Dec 09, 1998 at 11:25:51AM +0100, Andreas Schwab wrote:
|> > Thomas Binder <gryf@hrzpub.tu-darmstadt.de> writes:
|> > 
|> > |> Anyone took a look at how Linux handles its loadable modules (which
|> > |> useually replace/enhance kernel calls) and whether the principle could
|> > |> be used somehow?
|> > 
|> > The way Linux does it is quite simple.  When a module is loaded some piece
|> > of kernel memory is allocated, the module code is put there and and
|> > relocated while resolving symbol references against the list of exported
|> > kernel symbols.  Then the module init function is called which registers
|> > itself with the kernel.  This is very much similar to the way dynamic
|> > linking was done on old BSD systems.  The modules are just ordinary object
|> > files, except that they must contain some special symbols for maintaining
|> > the necessary information that is needed by insmod.
|> 
|> Doesn't this require position independent code?

No, it just requires *relocatable* code, ie., object files (insmod does
all the relocation that a linker would do).

-- 
Andreas Schwab                                      "And now for something
schwab@issan.cs.uni-dortmund.de                      completely different"
schwab@gnu.org