Un système Unix possède fondamentalement trois niveaux de fonctionnement :
hors service, i.e. non allumé.
mode mono-utilisateur.
mode multi-utilisateur (mode de fonctionnement normal).
Nous avons vu au paragraphe Section 4.2, « Niveaux ou Runlevel » ajoute d'autres niveaux à ces trois niveaux fondamentaux, ce qui n'est pas le cas de la famille BSD.
La distribution FreeBSD exécute le script /etc/rc au démarrage. Son but est de vérifier et monter les système de fichiers, d'activer les interfaces réseaux, de configurer les périphériques ... Plutôt que d'utiliser un long script monolithique, les développeurs de cette distribution ont opté pour de petits scripts réalisant chacun une tâche bien définie. Ils sont appelés depuis le script « maître » /etc/rc. En voici la liste :
/etc/rc.atm: configuration du réseau ATM./etc/rc.diskless1,/etc/rc.diskless2: utlisé pour lancer un système FreeBSD sans disque./etc/rc.firewall: activation du firewall (ipfw) pour la famille de protocole IPv4./etc/rc.firewall6: activation du firewall (ipfw) pour la famille de protocole IPv6./etc/rc.i386: script d'initialisation pour les systèmes basés sur l'architecture i386./etc/rc.isdn: configuration et activation de(s) l'interface(s) ISDN./etc/rc.network: activation du réseau en IPv4./etc/rc.network6: activation du réseau en IPv6./etc/rc.pccard: configuration de(s) l'interface(s) PCMCIA./etc/rc.resume: gestion de l'évènement APM resume./etc/rc.sendmail: démarrage du démon sendmail./etc/rc.serial: paramétrage des périphériques sériels./etc/rc.shutdown: pour l'arrêt des démons lors d'un arrêt ou lors de la transition mode multi-utilisateur vers le mode mon-utilisateur./etc/rc.suspend: gestion de l'évènement APM suspend./etc/rc.syscons: configuration des terminaux : type de clavier, screensaver .../etc/rc.sysctl: positionnement des valeurs sysctl, par lecture du fichier/etc/sysctl.conf
La configuration du script « maître » intervient dans deux fichiers /etc/default/rc.conf et /etc/rc.conf. Le premier contient de très nombreux paramètres réglables [tunable knobs en terminologie FreeBSD] avec leurs valeurs par défauts. Le second contient un sous-ensemble de ces paramètres avec les valeurs déterminées par l'administrateur. La personnalisation des paramètres intervient toujours dans ce second fichier, puisque ses définitions ont pour but de redéfinir les valeurs par défaut. Une lecture attentive du man section 5 de rc.conf permet de tout savoir sur les paramètres à régler.
Exemple 4. Un exemple de fichier de configuration /etc/rc.conf
keymap="fr.iso.acc" usbd_enable="YES" ifconfig_re0="inet 172.17.9.134 netmask 255.255.0.0" ifconfig_re0_alias0="inet 10.10.129.145 netmask 255.255.255.0" moused_flags="-3" moused_enable="YES" defaultrouter="172.17.0.1" nfs_client_enable="YES" hostname="arrakis.fremens.home" sshd_enable="YES"
Tableau 2. Quelques paramètres de personnalisation
| paramètre | sémantique associée |
|---|---|
hostname="arrakis.fremens.home" | Nom de la machine, au sens du DNS. |
defaultrouter="172.17.0.1" | adresse réseau de la passerelle. |
ifconfig_re0="inet 172.17.9.134 netmask 255.255.0.0" | Configuration de l'interface réseau. |
ifconfig_xl0_alias0="inet 10.10.129.145 netmask 255.255.255.0" | Permet d'associer une nouvelle adresse IP à la même interface. |
inetd_enable="NO" | Désactive le « démon » inetd. |
sshd_enable="YES" | Active le « démon » sshd. |
keymap="fr.iso.acc" | Clavier de type azerty français. |