Work on TP3
This commit is contained in:
parent
d3abdfa1d1
commit
1aa9530f3a
8 changed files with 130 additions and 103 deletions
|
|
@ -6,10 +6,14 @@ Pseudos systèmes de fichiers
|
|||
## Rappels sur les points de montage
|
||||
|
||||
Les systèmes Unix définissent le système de fichiers comme étant un arbre
|
||||
unique partant d'une racine[1] et où l'on peut placer au sein de son arborescence
|
||||
unique partant d'une racine[^FHS] et où l'on peut placer au sein de son arborescence
|
||||
des points de montage. Ainsi, l'utilisateur définit généralement deux points de
|
||||
montage :
|
||||
|
||||
[^FHS]: Consultez
|
||||
<https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard> pour
|
||||
plus de détails sur l'arboresence.
|
||||
|
||||
<div lang="en-US">
|
||||
```
|
||||
/dev/sda1 on / type ext4 (rw,relatime,data=ordered)
|
||||
|
|
@ -38,10 +42,10 @@ Linux emploie de nombreux systèmes de fichiers virtuels :
|
|||
|
||||
- `/proc` : contient, principalement, la liste des processus (`top` et ses
|
||||
dérivés se contentent de lire les fichiers de ce point de montage) ;
|
||||
- `/proc/sys` : configuration du noyau ;
|
||||
- `/sys` : contient des informations à propos du matériel (utilisées
|
||||
notamment pour peupler `/dev`) et des périphériques (taille des
|
||||
tampons, clignottement des DELs, ...) ;
|
||||
- `/proc/sys` : contient la configuration du noyau ;
|
||||
- `/sys` : contient des informations à propos du matériel (utilisées notamment
|
||||
par `udev` pour peupler `/dev`) et des périphériques (taille des tampons,
|
||||
clignottement des DELs, ...) ;
|
||||
- `/sys/firmware/efi/efivars` : pour accéder et modifier les variables de
|
||||
l'UEFI ;
|
||||
- ...
|
||||
|
|
@ -53,33 +57,25 @@ exemple, pour modifier les paramètres du noyau, on passe par le fichier
|
|||
`/etc/sysctl.conf` et du programme `sysctl`.
|
||||
|
||||
|
||||
## Exercices
|
||||
### Consultation et modification
|
||||
|
||||
### `rev_kdb_leds.sh`
|
||||
La consultation d'un élément se fait généralement à l'aide d'un simple `cat` :
|
||||
|
||||
Explorons le pseudo système de fichiers `/sys` pour écrire un script
|
||||
qui va inverser l'état des diodes de notre clavier.
|
||||
|
||||
Si vous avez :
|
||||
|
||||
* numlock On,
|
||||
* capslock Off,
|
||||
* scrolllock Off ;
|
||||
|
||||
Après avoir exécuté le script, nous devrions avoir :
|
||||
|
||||
* numlock Off,
|
||||
* capslock On,
|
||||
* scrolllock On.
|
||||
|
||||
Voici un exemple d'utilisation :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
42sh$ ./rev_kdb_leds.sh input20
|
||||
42sh$ cat /sys/power/state
|
||||
freeze mem
|
||||
```
|
||||
</div>
|
||||
|
||||
La modification d'un élément se fait avec `echo`, comme ceci :
|
||||
|
||||
```shell
|
||||
echo mem > /sys/power/state
|
||||
```
|
||||
|
||||
Vous devriez constater l'effet de cette commande sans plus attendre !
|
||||
|
||||
|
||||
## Exercices
|
||||
|
||||
### `procinfo`
|
||||
|
||||
|
|
@ -124,25 +120,28 @@ uts:[4026531838]
|
|||
```
|
||||
</div>
|
||||
|
||||
## Rendu
|
||||
|
||||
### Questions
|
||||
### `rev_kdb_leds.sh`
|
||||
|
||||
Sur le serveur `antares`, un serveur applicatif critique tourne aux côtés de sa
|
||||
base de données PostgreSQL. Le serveur applicatif étant connu pour produire un
|
||||
grand nombre de leak, il est relancé chaque nuit. Le serveur applicatif tourne
|
||||
en root car plus personne ne sait le paramétrer ; la base de données a été
|
||||
installé par le système de paquets de la distribution.
|
||||
Explorons le pseudo système de fichiers `/sys` pour écrire un script
|
||||
qui va inverser l'état des diodes de notre clavier.
|
||||
|
||||
Il arrive quelque fois que le serveur de base de données soit tué par
|
||||
l'OOM-killer alors que le serveur applicatif utilise largement plus de mémoire
|
||||
à la fin de la journée.
|
||||
Si vous avez :
|
||||
|
||||
1. Quel paramètre du processus pourrait-on modifier pour que ce soit le serveur
|
||||
applicatif qui aie plus de chance de se faire tuer par l'OOM-killer ?
|
||||
* numlock On,
|
||||
* capslock Off,
|
||||
* scrolllock Off ;
|
||||
|
||||
2. Pourquoi est-ce le serveur de base de données qui est principalement tiré au
|
||||
sort pour être tué en cas de manque de mémoire plutôt que le serveur
|
||||
applicatif qui occupe pourtant bien plus de mémoire ?
|
||||
Après avoir exécuté le script, nous devrions avoir :
|
||||
|
||||
[1]: Consultez <https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard> pour plus de détails sur l'arboresence.
|
||||
* numlock Off,
|
||||
* capslock On,
|
||||
* scrolllock On.
|
||||
|
||||
Voici un exemple d'utilisation :
|
||||
|
||||
<div lang="en-US">
|
||||
```shell
|
||||
42sh$ ./rev_kdb_leds.sh input20
|
||||
```
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue