Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
course
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
gc_courses
sys-exploit
course
Commits
5d2a71cd
Commit
5d2a71cd
authored
8 months ago
by
Guillaume Chanel
Browse files
Options
Downloads
Patches
Plain Diff
Updates after first reading
parent
c7fe49f4
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
9.filesystems/01_Systemes_fichiers_intro.md
+13
-11
13 additions, 11 deletions
9.filesystems/01_Systemes_fichiers_intro.md
with
13 additions
and
11 deletions
9.filesystems/01_Systemes_fichiers_intro.md
+
13
−
11
View file @
5d2a71cd
...
...
@@ -6,10 +6,10 @@
## Historique
<div
class=
"cols"
>
<
small
>
<
div
style=
"font-size: 0.7em"
>
-
Les systèmes de fichiers ont été conçu pour accéder, avec une interface simple, à des périphériques de stockage de masse (persistents)
-
P
remiers périphériques de stockage de masse étaient basé sur des disques magnétiques appelés
*Hard Disk Drive*
-
Les p
remiers périphériques de stockage de masse étaient basé
s
sur des disques magnétiques appelés
*Hard Disk Drive*
-
La plus petite unité de lecture/écriture adressable est le secteur
-
Adressable par le triplet CHS :
\
{ Cylinder, Head, Sector }
...
...
@@ -21,7 +21,7 @@ D. Cylindre = coupe transversale des plateaux \
E. Pistes = groupe de secteurs contigüs
\
F. Secteur angulaire
</
small
>
</
div
>
<div>

<!-- .element width="90%" -->
...
...
@@ -69,12 +69,16 @@ Premier disque dur conçu en 1956 pour le super-computer IBM 305 Ramac
-
la plupart des périphiques de stockage à base de flash sont similaires (clés USB, cartes SD, etc.)
Notes:
SSD -> solid state drive
Les disque dure SSD utilisent des "floating gates transistors", transistor à grille flottante, qui matiennent l'état. On parle de cellule mémoire.
--
## Structure d'un disque
-
Un disque est divisé en unités de taille identique appelées
**secteurs**
-
La taille
typique
d'un secteur
est 512 bytes, mais il existe des secteurs plus grands (
2KB, 4KB, etc.
)
-
La taille d'un secteur
dépend du support:
**512 bytes**
,
2KB,
**
4KB
**
, etc.
-
Un secteur est la plus petite unité physique pouvant être lue ou écrite
-
La lecture ou l'écriture d'un secteur est une opération
**atomique**
...
...
@@ -85,18 +89,19 @@ Premier disque dur conçu en 1956 pour le super-computer IBM 305 Ramac
## UNIX et blocs
-
Dans un OS de type UNIX, on parle de blocs plutôt que de secteurs
-
Dans un OS de type UNIX, on parle de blocs plutôt
<sup>
1
</sup>
que de secteurs
-
**But : s'abstraire du type de périphérique**
-
Tout périphérique dont on peut lire/écrire les données par unités de 512, 1024, etc. bytes est géré par le module noyau de
gestion de lecture/écriture par blocs
-
La taille d'un bloc est potentiellement plus grande que la taille d'un secteur
-
Permet d'être indépendant du type de périphérique $
\r
ightarrow$ généricité
<small>
1: Microsoft appelle un bloc un
*cluster*
</small>
--
## Secteurs, blocs et clusters
-
L'unité d'allocation de base des systèmes de fichiers n'est pas le secteur, mais une unité plus grande (ou égale) appelée
**bloc**
<sup>
1
</sup>
-
**Un bloc est une collection contiguë de secteurs**
-
Un système de fichiers (FS) divise l'espace disque en blocs de taille égale
-
Généralement, un bloc fait entre 1KB et 8KB
...
...
@@ -105,9 +110,6 @@ gestion de lecture/écriture par blocs

<!-- .element width="80%" -->
<small>
1: Microsoft appelle un bloc un
*cluster*
</small>
--
## Interface périphérique bloc
...
...
@@ -143,9 +145,9 @@ Exemple : périphérique de 10MB (1024 * 1024 * 10 bytes), taille de bloc de 102
-
Quelle est l'intervalle des offsets des bytes du bloc numéro 17 ?
\
`$[1024*17,1024*(17+1)-1] = [17408,18431]$`
<!-- .element: class="fragment" data-fragment-index="0" -->
-
Dans quel bloc se trouve le byte localisé à l'offset 7000 du périphérique ?
\
`$7000/1024
=
6.8359375 = 6$`
<!-- .element: class="fragment" data-fragment-index="1" -->
`$
\lfloor{
7000/1024
}\rfloor = \lfloor{
6.8359375
}\rfloor
= 6$`
<!-- .element: class="fragment" data-fragment-index="1" -->
-
À quel offset du bloc est localisé le byte se trouvant à l'offset 7000 du périphérique ?
\
`$7000
\%
1024 = 856$`
<!-- .element: class="fragment" data-fragment-index="2" -->
`$7000
- 6 *
1024 = 856
= 7000 \% 1024
$`
<!-- .element: class="fragment" data-fragment-index="2" -->

<!-- .element width="70%" -->
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment