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

Re: Loading the kernel.




Some of the keys steps in initialising a kernel are (in one possible order):

initialising lib_anno (sometimes used in interrupt handlers)
initialising the CPU (segments, etc)
initialising phys_lmm (the memory pool used by malloc and osenv_mem)
initialising services (registry containing pointers to the memory allocator, sockets, console, etc).
initialising osenv_drivers (registry containing pointers to device drivers)
initialising osenv_isabus
initialising the linux_dev library
initialising argc/argv and the environment
 (can happen anytime after phys_lmm and before the console)
initialising base_console
 (Do this as early as possible to get debugging output as early as possible.
  Could/should happen before device driver initialisation)
initialising individual linux device drivers
probe for devices


(Note that this list comes from a program that figures out which order
to initialise things in so it's different from the order used in the
oskit.  It also doesn't include SVM at the moment so I can't tell you
what its dependencies are.)

--
Alastair


References: