SlideShare una empresa de Scribd logo
1 de 24
Principes de fonctionnement
d'UNIX
A. EL FERGOUGUI
plan
•
•
•
•
•
•

Tâches différées
Boot et lancement du noyau
Processus init
Services et démons
Les runlevels
Scripts de lancement des services
Exécution d’une tâche en différé
• Rapporter l’exécution d’une tâche à une date
précise
• Commande at et batch
• Syntaxe
at <heure> cmds
<heure> heure de lancement
cmds fichier qui contient les commandes à
exécuter
• Exemple
at 4 am < fichier-comds
• batch <nom-fichier>
Supprimer des tâches en différées
• at -r <tache>
supprime les tâches par leur n°
attention: c’est une tâche administrative
• at –l <taches>
donne la liste des n° de tache
Commande crontab
• /etc/cron
• Fonction
exécuter des commandes à date et heure fixe
• Syntaxe
crontab option fichier_crontab
• Options
-r détruit un fichier crontab utilisateur du
répertoire courant
-l liste les fichiers crontab de l'utilisateur en
question
suite
• Remarques
* le fichier /user/lib/cron/cron.allow
contient les utilisateurs autorisés à utilisés
crontab
* le fichier /user/lib/cron/cron.deny
contient les utilisateurs non autorisés à utilisés
crontab
suite
• Fichier crontab
chaque ligne de ce fichier à le format suivant:
mm hh dd mm jj commande
mm minute d'activation de la commande : 00 à
59
* veut dire n'importe quelle minute
hh heure d'activation de la commande :0-23
dd jour d'activation de la commande :1-31
mm mois d'activation de la commande :1-12
jj jour de la semaine : 0 dim, 1 lun,…, 6 sam
exemples
• Exemple de fichier crontab
0 0 * * 1 commande
exécuter la commande chaque lundi à minuit
0,15,30,45 * * * * commande
exécuter la commande tout les ¼ d'heure
0 18 * * 1-6 commande
tout les jours de la semaine à 18 h sauf
dimanche
Exemple 2
• 0 23 * * 1-5 /bin/tar –cvf archive
/usr/users/brahim/data
0 12 * * * /bin/wall < /usr/users/brahim/f0
avec f contien le message " il est temps de
déjouner"
Boot et lancement du noyau
• Au boot le BIOS exécute le MBR (Master Boot Reccord)
situé sur le premier secteur (512 octets) du support
bootable choisi (disque, CD, clef USB, ...)
• Le MBR :
- scanne le disque pour trouver LA partition bootable
(flag)
- lance le boot loader (chargeur de démarrage) du secteur
de boot (premier secteur) de la partition bootable
• Le bootloader :
- charge le noyau en mémoire et l'exécute
- charge le ramdisk initrd.img en mémoire
• 2 bootloader possibles:
Lilo (Linux Loader) Grub (Grand Unified Bootloader)
Lancement du système : boot -> init
• Une fois le noyau chargé en mémoire, il lance le
premier processus : /bin/init
• init est le père de tous les autres processus qui seront
créés par l'appel system fork()
• init lit le fichier /etc/inittab pour savoir :
- quel est le fichier à exécuter pour continuer le
hargement du système
- quel est le runlevel (niveau d'exécution) par défault
- comment lancer les services pour un runlevel donné
... -
Exple de fichier /etc/inittab
format des lignes:

id:runlevels:action:process

# inittab This file describes how the INIT process should set up
# the system in a certain runlevel.
# Default runlevel. The runlevels used by Mandrakelinux are:
# 0 halt (Do NOT set initdefault to this)
# 1 Single user mode
# 2 Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 Full multiuser mode
# 4 unused
# 5 X11
# 6 reboot (Do NOT set initdefault to this)
id:5:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Trap CTRLALTDELETE
ca::ctrlaltdel:/sbin/shutdown -t3 r now
... ...
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3

Le niveau d'exécution par défaut

Les niveaux d'exécution possibles

Action à faire sur l'évènement CTRL-ALT-DEL
Pour les niveaux 2 à 5, activer plusieurs
consoles en mode caractère
Exple de fichier /etc/inittab
format des lignes:

id:runlevels:action:process

# The default runlevel.
id:2:initdefault:
# Boottime system configuration/initialization script.
# This is run first except when booting in emergency (b) mode.
si::sysinit:/etc/init.d/rcS
# What to do in singleuser mode.
~~:S:wait:/sbin/sulogin
# /etc/init.d executes the S and K scripts upon change
# of runlevel.
# Runlevel 0 is halt, 1 is singleuser, 2 - 5 are multiuser, 6 is reboot.
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
... ...
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# What to do when CTRLALTDEL
is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown t1 -a -r now
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

Le niveau d'exécution par défaut

Les niveaux d'exécution possibles

Action à faire sur l'évènement CTRL-ALT-DEL
Pour les niveaux 2 à 5, activer plusieurs
consoles en mode caractère
Exemples d'actions courantes pour le
fichier inittab :
• respawn Le processus est redémarré à chaque fois qu'il se
termine
• wait Le processus n'est démarré qu'une seul fois
• boot Le processus est exécuté pendant le démarrage du
système
• initdefault indique le mode de démarrage une fois le
système opérationnel. Si aucun n'existe, init demandera un
runlevel sur la console
• sysinit Le processus est exécuté pendant le démarrage du
système. Il est exécuté avant les entrées boot ou bootwait
• ctrlaltdel Le processus est exécuté lorsque init reçoit le
signal SIGINT. (appui simultané des touches CTRL+ALT+DEL)
Nouveau mécanisme
init
upstart
Ce nouveau mécanisme utilise la notion de job
et d'événement. Les actions à réaliser sont
définies au sein d'un job, par un script shell. Le
job contient une liste d'actions sur ce qu'il doit
faire lorsqu'un événement donné se produit.
Les jobs sont placés dans /etc/events.d, dont
voici une liste typique
logd rc0 rc0-poweroff rc2 rc4 rc6 rcS-sulogin tty1
tty3 tty5 control-alt-delete rc-default rc0-halt
rc1 rc3 rc5 rcS sulogin tty2 tty4 …
services et démons
Lancement du système : boot -> init -> modules/services
Après le chargement du noyau, le script correspondant à
sysinit dans fichier inittab est chargé :
- Mandrake : /etc/rc.d/rc.sysinit
- Debian : /etc/rc.d/rcS lance les scripts /etc/rcS.d/S??*
Ce script d'initialisation est chargé de 2 tâches
fondamentales :
- charger les modules dans le noyau (gestion des
périphériques)
- démarrer les services en exécutant les processus
«Deferred Auxiliary Executive Monitor» (daemons)
correspondant, en français : démons
Exemple de démons :
kswapd
swap mémoire <-> disque
kflusd
écriture physique des données
nfsd
serveur fichiers réseaux (NFS)
portmap mise en correspondance numéro de ports
TCP/IP <-> numéro de processus RPC
xinetd
super-serveur de gestion des services réseau
ftpd
serveur de transfert de fichiers (FTP)
httpd
serveur HTTP
Les démons peuvent implémenter :
- un service noyau (kswapd, ...)
- un service réseau (httpd, ...)
les runlevels
• le répertoire /etc/init.d contient tous les scripts
de gestion des services installés
• les lignes «/etc/rc.d/rc x» du fichier /etc/inittab
déterminent le lancement des scripts pour le
runlevel x
• Le runlevel de l'action initdefault est lancé par le
ligne correspondante
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
... ...
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
les runlevels
• Le runlevel (numéro de 0 à 6) fixe le répertoire
de démarrage des services :
- Mandrake -> répertoires /etc/rc.d/rc[06].d
- Debian -> répertoires /etc/rc[06].d
• rcX.d : contient des liens symboliques vers les
scripts de gestions des services qui sont dans
le répertoire :
- /etc/rc.d/init.d (Mandrake, + lien symbolique
vers /etc/init.d)
- /etc/init.d (Debian/Ubuntu)
les runlevels
• Les liens sont formés selon la syntaxe :
[S|K]XX<nom_du_script>
- S lance le script avec l'argument start
(démarrage du service)
- K lance le script avec l'argument stop (arrêt du
service)
- XX est un rang qui fixe l'ordre dans lequel les
scripts sont lancés
Scripts de lancement
•
Extrait du fichier /etc/init.d/rc
for i in /etc/rc$runlevel.d/K[09][*[09 ; do
[ ! F $i ] && continue
# Stop the service.
startup $i stop
done
fi
# Now run the START scripts for this runlevel.
for i in /etc/rc$runlevel.d/S* ; do
[ ! F $i ] && continue
... ...
suffix=${i#/etc/rc$runlevel.d/S[09][ {[09
stop=/etc/rc$runlevel.d/K[09][
$[09 suffix
previous_start=/etc/rc$previous.d/S[09][
$[09
suffix
#
case "$runlevel" in
0|6)
startup $i stop
;;
*)
startup $i start
;;
esac
done
fi

•
Exemple de contenu du répertoire
/etc/rc5.d
lrwxrwxrwx 1 root root 14 20050919 09:42 S20apmd ->
../init.d/apmd
lrwxrwxrwx 1 root root 16 20050918 19:11 S20dbus1 ->
../init.d/dbus1
lrwxrwxrwx 1 root root 17 20050918 19:11 S20dirmngr ->
../init.d/dirmngr
lrwxrwxrwx 1 root root 15 20050918 20:03 S20exim4 ->
../init.d/exim4
lrwxrwxrwx 1 root root 15 20050918 20:03 S20inetd ->
../init.d/inetd
lrwxrwxrwx 1 root root 13 20050918 19:10 S20lpd ->
../init.d/lpd
Lancement du système : boot -> init ->
services
• Utilitaires en mode console :
- Debian : updaterc.d
- Mandrake : chkconfig, service
• le script /etc/rc.local peut contenir des personnalisations
locales qui seront lancées à la fin du processus init
• Pour démarrer un service sous mandrake, on peut taper :
service <nom_du_service> start
ou encore :
/etc/rc.d/init.d/<script_correspondant_au_service> action
action :
starp | stop | restart | status | ...

Más contenido relacionado

La actualidad más candente

Rapport Kernel Linux - Configuration – Compilation & installation
Rapport Kernel Linux - Configuration –  Compilation & installationRapport Kernel Linux - Configuration –  Compilation & installation
Rapport Kernel Linux - Configuration – Compilation & installationAyoub Rouzi
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de coursISIG
 
Chargez un noyau linux sans reboot avec kexec
Chargez un noyau linux sans reboot avec kexecChargez un noyau linux sans reboot avec kexec
Chargez un noyau linux sans reboot avec kexecThierry Gayet
 
Consul, un vrai couteau suisse
Consul, un vrai couteau suisseConsul, un vrai couteau suisse
Consul, un vrai couteau suisseXavierPestel
 
Cours linux complet
Cours linux completCours linux complet
Cours linux completaubin82
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linuxKhalid ALLILI
 
Commande rapide linux
Commande rapide linuxCommande rapide linux
Commande rapide linuxpatsiii
 
Compilation noyau linux depuis les sources
Compilation noyau linux depuis les sourcesCompilation noyau linux depuis les sources
Compilation noyau linux depuis les sourcesThierry Gayet
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...XavierPestel
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linuxEmmanuel Florac
 
SdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationAlexandru Radovici
 
Rapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 trRapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 trCheikh Tidiane DIABANG
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiationrobertpluss
 

La actualidad más candente (20)

Rapport Kernel Linux - Configuration – Compilation & installation
Rapport Kernel Linux - Configuration –  Compilation & installationRapport Kernel Linux - Configuration –  Compilation & installation
Rapport Kernel Linux - Configuration – Compilation & installation
 
lpi 101 notes de cours
lpi 101 notes de courslpi 101 notes de cours
lpi 101 notes de cours
 
SdE 6 - Planification
SdE 6 - PlanificationSdE 6 - Planification
SdE 6 - Planification
 
Linux Administrateur
Linux AdministrateurLinux Administrateur
Linux Administrateur
 
Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
 
Chargez un noyau linux sans reboot avec kexec
Chargez un noyau linux sans reboot avec kexecChargez un noyau linux sans reboot avec kexec
Chargez un noyau linux sans reboot avec kexec
 
2020 (1)
2020 (1)2020 (1)
2020 (1)
 
Consul, un vrai couteau suisse
Consul, un vrai couteau suisseConsul, un vrai couteau suisse
Consul, un vrai couteau suisse
 
Tp n 6 linux
Tp n 6 linuxTp n 6 linux
Tp n 6 linux
 
Cours linux complet
Cours linux completCours linux complet
Cours linux complet
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Commande rapide linux
Commande rapide linuxCommande rapide linux
Commande rapide linux
 
Commandes usuelle linux
Commandes usuelle   linuxCommandes usuelle   linux
Commandes usuelle linux
 
Compilation noyau linux depuis les sources
Compilation noyau linux depuis les sourcesCompilation noyau linux depuis les sources
Compilation noyau linux depuis les sources
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
Présentation unix linux
Présentation unix linuxPrésentation unix linux
Présentation unix linux
 
SdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et PlanificationSdE 5 - Communication entre processus et Planification
SdE 5 - Communication entre processus et Planification
 
Rapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 trRapport administration systèmes et supervision réseaux tp4 diabang master1 tr
Rapport administration systèmes et supervision réseaux tp4 diabang master1 tr
 
Formation Linux - Initiation
Formation Linux - InitiationFormation Linux - Initiation
Formation Linux - Initiation
 
Linux Scripting
Linux Scripting Linux Scripting
Linux Scripting
 

Destacado

JSS2014 – Optimisation many-to-many SSAS
JSS2014 – Optimisation many-to-many SSASJSS2014 – Optimisation many-to-many SSAS
JSS2014 – Optimisation many-to-many SSASGUSS
 
Passe compose imparfait (gpt)
Passe compose  imparfait (gpt)Passe compose  imparfait (gpt)
Passe compose imparfait (gpt)samanthablancher
 
LPIC1 08 01 démarrage
LPIC1 08 01 démarrageLPIC1 08 01 démarrage
LPIC1 08 01 démarrageNoël
 
LPIC1 08 02 grub legacy
LPIC1 08 02 grub legacyLPIC1 08 02 grub legacy
LPIC1 08 02 grub legacyNoël
 
LPIC1 11 02 sécurité système
LPIC1 11 02 sécurité systèmeLPIC1 11 02 sécurité système
LPIC1 11 02 sécurité systèmeNoël
 
Formation Linux lpi 101
Formation Linux lpi 101 Formation Linux lpi 101
Formation Linux lpi 101 Kais Baccour
 
Cours langage c
Cours langage cCours langage c
Cours langage ccoursuniv
 
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmationLe livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmationChingongou ­
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage Ccoursuniv
 
Virtualiastion des systèmes d'exploitations
Virtualiastion des systèmes d'exploitationsVirtualiastion des systèmes d'exploitations
Virtualiastion des systèmes d'exploitationsSGHIOUAR abdelfettah
 

Destacado (11)

Présentation sequoia - FR
Présentation sequoia - FRPrésentation sequoia - FR
Présentation sequoia - FR
 
JSS2014 – Optimisation many-to-many SSAS
JSS2014 – Optimisation many-to-many SSASJSS2014 – Optimisation many-to-many SSAS
JSS2014 – Optimisation many-to-many SSAS
 
Passe compose imparfait (gpt)
Passe compose  imparfait (gpt)Passe compose  imparfait (gpt)
Passe compose imparfait (gpt)
 
LPIC1 08 01 démarrage
LPIC1 08 01 démarrageLPIC1 08 01 démarrage
LPIC1 08 01 démarrage
 
LPIC1 08 02 grub legacy
LPIC1 08 02 grub legacyLPIC1 08 02 grub legacy
LPIC1 08 02 grub legacy
 
LPIC1 11 02 sécurité système
LPIC1 11 02 sécurité systèmeLPIC1 11 02 sécurité système
LPIC1 11 02 sécurité système
 
Formation Linux lpi 101
Formation Linux lpi 101 Formation Linux lpi 101
Formation Linux lpi 101
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmationLe livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
Le livre du_c_pour_les_vrais_d%c3%a9butants_en_programmation
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage C
 
Virtualiastion des systèmes d'exploitations
Virtualiastion des systèmes d'exploitationsVirtualiastion des systèmes d'exploitations
Virtualiastion des systèmes d'exploitations
 

Similar a Boot

Chapitre2-startup.pdf
Chapitre2-startup.pdfChapitre2-startup.pdf
Chapitre2-startup.pdfBoudarraWalid
 
systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124loffyhacker
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busyboxAyoub Rouzi
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderMohamed Ben Bouzid
 
Rapport openembedded
Rapport openembeddedRapport openembedded
Rapport openembeddedAyoub Rouzi
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linuxKhalid ALLILI
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système LinuxEL AMRI El Hassan
 
Gestion et surveillance du reseau syslogng
Gestion et surveillance du reseau  syslogngGestion et surveillance du reseau  syslogng
Gestion et surveillance du reseau syslogngKiemde Franck
 
A la découverte de redo
A la découverte de redoA la découverte de redo
A la découverte de redoThierry Gayet
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxThierry Gayet
 
QCM de question sur examen red hat 7.pptx
QCM de question sur examen red hat 7.pptxQCM de question sur examen red hat 7.pptx
QCM de question sur examen red hat 7.pptxloffyhacker
 
Install arch ultrabook full luks ssd
Install arch ultrabook full luks ssdInstall arch ultrabook full luks ssd
Install arch ultrabook full luks ssdAnthony Le Goff
 
C2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieC2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieLoic Yon
 

Similar a Boot (20)

Chapitre2-startup.pdf
Chapitre2-startup.pdfChapitre2-startup.pdf
Chapitre2-startup.pdf
 
systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124systemd red hat linux examen Ex200 rh124
systemd red hat linux examen Ex200 rh124
 
Rapport systéme embarqué busybox
Rapport systéme embarqué busyboxRapport systéme embarqué busybox
Rapport systéme embarqué busybox
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
Snort implementation
Snort implementationSnort implementation
Snort implementation
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
 
Rapport openembedded
Rapport openembeddedRapport openembedded
Rapport openembedded
 
Chapitre 4 Linux
Chapitre 4 LinuxChapitre 4 Linux
Chapitre 4 Linux
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système Linux
 
Gestion et surveillance du reseau syslogng
Gestion et surveillance du reseau  syslogngGestion et surveillance du reseau  syslogng
Gestion et surveillance du reseau syslogng
 
A la découverte de redo
A la découverte de redoA la découverte de redo
A la découverte de redo
 
Nagios twil
Nagios twilNagios twil
Nagios twil
 
Etude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU LinuxEtude DéTailléé de la pile réseau sous GNU Linux
Etude DéTailléé de la pile réseau sous GNU Linux
 
Meetup Systemd vs sysvinit
Meetup Systemd vs sysvinitMeetup Systemd vs sysvinit
Meetup Systemd vs sysvinit
 
threads.pdf
threads.pdfthreads.pdf
threads.pdf
 
QCM de question sur examen red hat 7.pptx
QCM de question sur examen red hat 7.pptxQCM de question sur examen red hat 7.pptx
QCM de question sur examen red hat 7.pptx
 
Install arch ultrabook full luks ssd
Install arch ultrabook full luks ssdInstall arch ultrabook full luks ssd
Install arch ultrabook full luks ssd
 
C2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partieC2 - Langage C - ISIMA 1 - Deuxieme partie
C2 - Langage C - ISIMA 1 - Deuxieme partie
 
Noyau
NoyauNoyau
Noyau
 

Boot

  • 2. plan • • • • • • Tâches différées Boot et lancement du noyau Processus init Services et démons Les runlevels Scripts de lancement des services
  • 3. Exécution d’une tâche en différé • Rapporter l’exécution d’une tâche à une date précise • Commande at et batch • Syntaxe at <heure> cmds <heure> heure de lancement cmds fichier qui contient les commandes à exécuter • Exemple at 4 am < fichier-comds • batch <nom-fichier>
  • 4.
  • 5. Supprimer des tâches en différées • at -r <tache> supprime les tâches par leur n° attention: c’est une tâche administrative • at –l <taches> donne la liste des n° de tache
  • 6. Commande crontab • /etc/cron • Fonction exécuter des commandes à date et heure fixe • Syntaxe crontab option fichier_crontab • Options -r détruit un fichier crontab utilisateur du répertoire courant -l liste les fichiers crontab de l'utilisateur en question
  • 7. suite • Remarques * le fichier /user/lib/cron/cron.allow contient les utilisateurs autorisés à utilisés crontab * le fichier /user/lib/cron/cron.deny contient les utilisateurs non autorisés à utilisés crontab
  • 8. suite • Fichier crontab chaque ligne de ce fichier à le format suivant: mm hh dd mm jj commande mm minute d'activation de la commande : 00 à 59 * veut dire n'importe quelle minute hh heure d'activation de la commande :0-23 dd jour d'activation de la commande :1-31 mm mois d'activation de la commande :1-12 jj jour de la semaine : 0 dim, 1 lun,…, 6 sam
  • 9. exemples • Exemple de fichier crontab 0 0 * * 1 commande exécuter la commande chaque lundi à minuit 0,15,30,45 * * * * commande exécuter la commande tout les ¼ d'heure 0 18 * * 1-6 commande tout les jours de la semaine à 18 h sauf dimanche
  • 10. Exemple 2 • 0 23 * * 1-5 /bin/tar –cvf archive /usr/users/brahim/data 0 12 * * * /bin/wall < /usr/users/brahim/f0 avec f contien le message " il est temps de déjouner"
  • 11. Boot et lancement du noyau • Au boot le BIOS exécute le MBR (Master Boot Reccord) situé sur le premier secteur (512 octets) du support bootable choisi (disque, CD, clef USB, ...) • Le MBR : - scanne le disque pour trouver LA partition bootable (flag) - lance le boot loader (chargeur de démarrage) du secteur de boot (premier secteur) de la partition bootable • Le bootloader : - charge le noyau en mémoire et l'exécute - charge le ramdisk initrd.img en mémoire • 2 bootloader possibles: Lilo (Linux Loader) Grub (Grand Unified Bootloader)
  • 12. Lancement du système : boot -> init • Une fois le noyau chargé en mémoire, il lance le premier processus : /bin/init • init est le père de tous les autres processus qui seront créés par l'appel system fork() • init lit le fichier /etc/inittab pour savoir : - quel est le fichier à exécuter pour continuer le hargement du système - quel est le runlevel (niveau d'exécution) par défault - comment lancer les services pour un runlevel donné ... -
  • 13. Exple de fichier /etc/inittab format des lignes: id:runlevels:action:process # inittab This file describes how the INIT process should set up # the system in a certain runlevel. # Default runlevel. The runlevels used by Mandrakelinux are: # 0 halt (Do NOT set initdefault to this) # 1 Single user mode # 2 Multiuser, without NFS (The same as 3, if you do not have networking) # 3 Full multiuser mode # 4 unused # 5 X11 # 6 reboot (Do NOT set initdefault to this) id:5:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 # Trap CTRLALTDELETE ca::ctrlaltdel:/sbin/shutdown -t3 r now ... ... # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 Le niveau d'exécution par défaut Les niveaux d'exécution possibles Action à faire sur l'évènement CTRL-ALT-DEL Pour les niveaux 2 à 5, activer plusieurs consoles en mode caractère
  • 14. Exple de fichier /etc/inittab format des lignes: id:runlevels:action:process # The default runlevel. id:2:initdefault: # Boottime system configuration/initialization script. # This is run first except when booting in emergency (b) mode. si::sysinit:/etc/init.d/rcS # What to do in singleuser mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # Runlevel 0 is halt, 1 is singleuser, 2 - 5 are multiuser, 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 ... ... l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # What to do when CTRLALTDEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown t1 -a -r now 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 Le niveau d'exécution par défaut Les niveaux d'exécution possibles Action à faire sur l'évènement CTRL-ALT-DEL Pour les niveaux 2 à 5, activer plusieurs consoles en mode caractère
  • 15. Exemples d'actions courantes pour le fichier inittab : • respawn Le processus est redémarré à chaque fois qu'il se termine • wait Le processus n'est démarré qu'une seul fois • boot Le processus est exécuté pendant le démarrage du système • initdefault indique le mode de démarrage une fois le système opérationnel. Si aucun n'existe, init demandera un runlevel sur la console • sysinit Le processus est exécuté pendant le démarrage du système. Il est exécuté avant les entrées boot ou bootwait • ctrlaltdel Le processus est exécuté lorsque init reçoit le signal SIGINT. (appui simultané des touches CTRL+ALT+DEL)
  • 16. Nouveau mécanisme init upstart Ce nouveau mécanisme utilise la notion de job et d'événement. Les actions à réaliser sont définies au sein d'un job, par un script shell. Le job contient une liste d'actions sur ce qu'il doit faire lorsqu'un événement donné se produit. Les jobs sont placés dans /etc/events.d, dont voici une liste typique logd rc0 rc0-poweroff rc2 rc4 rc6 rcS-sulogin tty1 tty3 tty5 control-alt-delete rc-default rc0-halt rc1 rc3 rc5 rcS sulogin tty2 tty4 …
  • 17. services et démons Lancement du système : boot -> init -> modules/services Après le chargement du noyau, le script correspondant à sysinit dans fichier inittab est chargé : - Mandrake : /etc/rc.d/rc.sysinit - Debian : /etc/rc.d/rcS lance les scripts /etc/rcS.d/S??* Ce script d'initialisation est chargé de 2 tâches fondamentales : - charger les modules dans le noyau (gestion des périphériques) - démarrer les services en exécutant les processus «Deferred Auxiliary Executive Monitor» (daemons) correspondant, en français : démons
  • 18. Exemple de démons : kswapd swap mémoire <-> disque kflusd écriture physique des données nfsd serveur fichiers réseaux (NFS) portmap mise en correspondance numéro de ports TCP/IP <-> numéro de processus RPC xinetd super-serveur de gestion des services réseau ftpd serveur de transfert de fichiers (FTP) httpd serveur HTTP Les démons peuvent implémenter : - un service noyau (kswapd, ...) - un service réseau (httpd, ...)
  • 19. les runlevels • le répertoire /etc/init.d contient tous les scripts de gestion des services installés • les lignes «/etc/rc.d/rc x» du fichier /etc/inittab déterminent le lancement des scripts pour le runlevel x • Le runlevel de l'action initdefault est lancé par le ligne correspondante l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 ... ... l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6
  • 20. les runlevels • Le runlevel (numéro de 0 à 6) fixe le répertoire de démarrage des services : - Mandrake -> répertoires /etc/rc.d/rc[06].d - Debian -> répertoires /etc/rc[06].d • rcX.d : contient des liens symboliques vers les scripts de gestions des services qui sont dans le répertoire : - /etc/rc.d/init.d (Mandrake, + lien symbolique vers /etc/init.d) - /etc/init.d (Debian/Ubuntu)
  • 21. les runlevels • Les liens sont formés selon la syntaxe : [S|K]XX<nom_du_script> - S lance le script avec l'argument start (démarrage du service) - K lance le script avec l'argument stop (arrêt du service) - XX est un rang qui fixe l'ordre dans lequel les scripts sont lancés
  • 22. Scripts de lancement • Extrait du fichier /etc/init.d/rc for i in /etc/rc$runlevel.d/K[09][*[09 ; do [ ! F $i ] && continue # Stop the service. startup $i stop done fi # Now run the START scripts for this runlevel. for i in /etc/rc$runlevel.d/S* ; do [ ! F $i ] && continue ... ... suffix=${i#/etc/rc$runlevel.d/S[09][ {[09 stop=/etc/rc$runlevel.d/K[09][ $[09 suffix previous_start=/etc/rc$previous.d/S[09][ $[09 suffix # case "$runlevel" in 0|6) startup $i stop ;; *) startup $i start ;; esac done fi •
  • 23. Exemple de contenu du répertoire /etc/rc5.d lrwxrwxrwx 1 root root 14 20050919 09:42 S20apmd -> ../init.d/apmd lrwxrwxrwx 1 root root 16 20050918 19:11 S20dbus1 -> ../init.d/dbus1 lrwxrwxrwx 1 root root 17 20050918 19:11 S20dirmngr -> ../init.d/dirmngr lrwxrwxrwx 1 root root 15 20050918 20:03 S20exim4 -> ../init.d/exim4 lrwxrwxrwx 1 root root 15 20050918 20:03 S20inetd -> ../init.d/inetd lrwxrwxrwx 1 root root 13 20050918 19:10 S20lpd -> ../init.d/lpd
  • 24. Lancement du système : boot -> init -> services • Utilitaires en mode console : - Debian : updaterc.d - Mandrake : chkconfig, service • le script /etc/rc.local peut contenir des personnalisations locales qui seront lancées à la fin du processus init • Pour démarrer un service sous mandrake, on peut taper : service <nom_du_service> start ou encore : /etc/rc.d/init.d/<script_correspondant_au_service> action action : starp | stop | restart | status | ...