-
Notifications
You must be signed in to change notification settings - Fork 16
/
character_block_special_files.txt
70 lines (66 loc) · 5.02 KB
/
character_block_special_files.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
CHARACTER_BLOCK_SPECIAL_FILES
SPECIAL FILES ==> #Un special file est un fichier qui représente un
#périphérique dont les données peuvent être écrites et
#lues comme un fichier régulier grâce à un driver.
#Ce périphérique peut être physique, mais aussi
#virtuelle, ce dernier apportant une fonctionnalité
#fournie par le noyau (par exemple /dev/urandom)
#Dans les deux cas, supprimer un fichier special ne
#porte pas atteinte au périphérique ou à la
#fonctionnalité du noyau sous-jacent. Il faut juste
#retrouver les deux special file numbers, et faire un
#mknod.
#Les special files n'ont pas de taille, mais deux
#nombres les identifiants (que l'on peut voir avec
#ls -l), des ints :
# - le premier est le major number, identifiant souvent
# le driver utilisé
# - le second est le minor number, identifiant plus
# précisément le périphérique
#Ces nombres sont toujours les mêmes pour un OS donnée,
#et peuvent être les mêmes entre plusieurs OS
#Un special file peut être supprimé, déplacé, copié
#(avec cp -r), ... Cependant, cela ne modifie pas le
#périphérique lié au special file, mais cela supprime ou
#modifie seulement les fichiers spéciaux permettant
#d'accéder à ces périphériques.
#Cependant, cp -r --content-files permet de copier le
#contenu d'un fichier spécial
CHARACTER ET BLOCK #Un special file peut être un character special file ou
SPECIAL FILES ==> #un block special file. Voici les différences :
#
# CHARACTER | BLOCK
# |
# - Elles n'ont pas de | - Elles ont un buffer :
# buffer : elles ne sont | les données sont
# enregistrées nulle | conservees quelque part
# part, et un caractère | par l'OS lors de leur
# produit est tout de | redirection, puis le
# suite redirigé puis | buffer est supprimé
# perdu |
# - Les données sont donc | - Les données sont donc
# lues et écrites octet | lues et écrites block
# par octet | par block
# - Elles sont procédées | - Elles sont procédées par
# de manière séquentielle| random access et seeking
# l'une après l'autre | c'est-à-dire de manière
# | non séquentielle
# - souris, clavier, | - disque dur, CD, DVD,
# terminal virtuel, | RAM
# modem, ... |
BLOCKS ==> #Les blocks sont des ensemble d'octets de taille fixe.
#Sous Linux, un block est souvent 512 octets.
#Un block special file ne raisonne que par block.
#Ainsi un système de fichier allouera des blocks, et non
#des octets aux fichiers qu'il enregistre sur le disque
#dur. L'écart entre la taille réelle de ces fichiers et
#les blocks alloués créé des octets non utilisés et non
#utilisable, appelés slack spaces ou tails
#La multiplication des slack spaces crée une
#fragmentation interne.
#Certains système de fichier la combatte grâce au tail
#merging (aussi appelé block suballocation), qui
#consiste à allouer des sous-unités de block à des
#petits fichiers pour combler les slack spaces.