On Tue, 29 Aug 2000, Nitebirdz wrote:

>I'd really appreciate if you guys can help me clarify the initialization
>process in Red Hat Linux, since I'd like to start "studying" the scripts
>to learn something along the way.  Here is the way I see it:
>
>
>
>BIOS --> MBR (LILO) --> (initrd) --> kernel --> init --> daemons/services
>                                       |         |
>                                      |         |
>                                 conf.modules    |
>                                      |         |
>                                      |         |
>                                       /lib/modules/*   |
>                                                |
>                                              inittab
>                                                |
>                                                |
>                                           /etc/rc.d/rc
>                                                |
>                                                |
>                                        /etc/rc.d/rc.local
>                                                |
>                                                |
>                                       /etc/rc.d/rc.sysinit
>                                                |
>                                                |
>                                         /etc/rc.d/rcX.d
>
>
>Is there anything incorrect here?  Anything that will change with the next
>release of Red Hat (Red Hat 7.0)?  By the way, could someone clarify when
>the initrd is actually run (that's why I typed it between
>parenthesis)?  Thanks.

LILO loads the kernel, which then loads the initrd.  The kernel
does not read conf.modules nor load any modules.  The init
process is documented completely in one of the Red Hat books on
the Documentation CDROM.  I think it is Red Hat Users Guide.

init has nothing to do with the loading of modules either.  Init
runs rc.sysinit, which calls rc.modules, rc.serial if they exist.
init then calls "rc" script which in turn determines the
runlevel, and then calls all scripts in rcX.d in order, where X
is the runlevel.  The last symlink in each rcX.d directory is
S99local which runs rc.local dead last.  The scripts in the rcX.d
directories are actually symlinks to scripts in init.d dir, which
do the loading of daemons, and various other things.

Modules are loaded either in rc.modules, or in rc.local or
wherever you manually put them.  If no such manual module loading
is done, then no modules get loaded.  If you've got kmod built
into your kernel, the kernel automatically loads modules as they
are needed using kmod, but this isn't necessarily part of the
boot process, but can be if a device or kernel feature is used
during initscript processing requiring the kernel to load such.

kmod calls modprobe to load a module, which in turn reads in
conf.modules as needed.

Reading the scripts is the best way to understand them though, of
course with the documentation in hand as well. 

Hope this helps.
TTYL


--
Mike A. Harris                                     Linux advocate     
Computer Consultant                                  GNU advocate  
Capslock Consulting                          Open Source advocate

If you're interested in computer security, and want to stay on top of the
latest security exploits, and other information, visit:

http://www.securityfocus.com



_______________________________________________
Redhat-devel-list mailing list
[EMAIL PROTECTED]
https://listman.redhat.com/mailman/listinfo/redhat-devel-list

Reply via email to