Next: About this document ...
Systemdienste und Betriebssystemadministration
BSD Bootvorgang
init, runlevel, rc-Skripte
Stephan Uhlmann <su@su2.info>
05.07.2002
Copyright 2002 Stephan Uhlmann
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version
1.1 or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts and no Back-Cover
Texts. A copy of the license can be obtained from http://www.gnu.org/licenses/fdl.html.
0
Betrachtete Betriebssysteme
- FreeBSD 4.5
- NetBSD 1.5.2
- MacOS X 10.1.3
1
Gemeinsamkeiten
- nur einen Haupt-Runlevel: Multi-User
- /sbin/init erster Prozess
- /etc/rc verantwortlich für die Bootskripte
- /etc/ttys für die Terminals
(== /etc/inittab in System V)
1
Bootvorgang
- Kernel startet /sbin/init als ersten Prozess
- init: Kernel Security-Level +1 (0->1 (secure))
- /etc/rc wird ausgeführt -> Bootskripte
- OK: Multi-User -> /etc/ttys
- Terminals: /usr/libexec/getty
- beliebige Daemons
- FAIL: Single-User
- root Shell -> D: Multi-User
- tty 'insecure' (/etc/ttys) -> root Passwort
1
FreeBSD
- /etc/defaults/rc.conf - Standardeinstellungen
- /etc/rc.conf - systemspezifische Einstellungen
- /etc/rc.network, /etc/rc.firewall, ..., /etc/rc.local
- local_startup=''/usr/local/etc/rc.d
/usr/X11R6/etc/rc.d''
- /etc/rc:
for script in ${dir}/*.sh; do
${script} start
1
FreeBSD
- bei reboot/halt: /etc/rc.shutdown
führt ``${script} stop'' in umgekehrter Reihenfolge aus
- Signale an init (kill -s SIGNAL 1):
- USR{1,2} / init 0 : Halt (+ power off)
- TERM / init 1 : Single-User
- INT / init 6 : Reboot
- TSTP / init c : keine neuen Prozesse
- HUP / init q : /etc/ttys neu einlesen
1
NetBSD
- /etc/defaults/rc.conf - Standardeinstellungen
- /etc/rc.conf - systemspezifische Einstellungen
- /etc/rc.d/* - Startskripte
- ``rcorder'' löst Abhängigkeiten auf
dazu: PROVIDE, REQUIRE, BEFORE keywords im Header
- Bsp:
...
# PROVIDE: nfsd
# REQUIRE: mountd
. /etc/rc.subr
...
1
NetBSD
- /etc/rc.shutdown
- Signale an init:
- init -s : Single User
- init
- kill -s HUP 1 : /etc/ttys neu einlesen
- kill -s TERM 1 : halt
1
MacOS X
- /etc/rc -> /etc/rc.common (Funktionen & wichtige Einstellungen)
- /etc/hostconfig - durch Tools editierbar
- /sbin/SystemStarter
- -> /system/Library/StartupItems/*/
- Resources/
- StartupParameters.plist
- Script
1
StartupParameters.plist:
{
Description = "Sun network
file system";
Provides = ("NFS");
Requires = ("Portmap",
"Resolver");
OrderPreference = "None";
Messages =
{
start = "Starting network file
system";
stop = "Stopping network file
system";
};
}
1
MacOS X
- Signale an init:
- kill -s TSTP 1 : keine neuen Prozesse
- kill -s TERM 1 : Single User
1
Literatur
- man init, man rc
- FreeBSD Bootvorgang: http://www.freebsd.org/de/handbook/boot.html
- MacOS X Bootvorgang: http://www.mac-club.de/tip_Trick/MacOSX/macostipps/KnowHow/knowhow-macosxboot.html
Next: About this document ...
2002-09-09