2. Thema 2: Speichermedien

21.04.2022 Gruppe 52

2.1. Einleitung

Speichermedien sind etwas, was im heutigen Alltag unausweichlich sind, von einfachem Stift und Papier bis zu den Festplatten, die man in einem Computer oder einem Smartphone findet, Speichermedien sind allgegenwärtig. Speichermedien treten in allen möglichen Formen und Arten auf. Ob Physikalische Speichermedien wie die mittlerweile veralteten Lochkarten bis zu Speichern die noch in Entwicklung sind wie der Glasspeicher, aber auch Magnetische Speicher wie ein Magnetstreifen oder ein Tonband oder elektronische Speicher wie eine Flash-Speicherkarte. Dann kommt noch die Benutzung dieser Speicher im Alltag, wie die Interaktion eines Betriebssystems und dem Speicher des Geräts.

2.2. Motivation

Die Motivation des Teams, Speichermedien zu thematisieren, kommt zum einen von dem Faktor, dass Speichermedien allgegenwärtig sind und dies ist ein Fakt, der sich durch die ganze Menschliche Geschichte zieht. Von den Wandmalereien der Primitiven Höhlenmenschen zu den Festplatten der modernen PCs. Dazu kommt, dass sich Speichermedien in dem Lauf der Geschichte immer weiter und weiter entwickelt haben und diese Entwicklung wird sich in absehbarer Zukunft auch nicht ändern.

2.3. Physische Speichermedien

Physikalische Speichermedien gibt es seit hunderten von Jahren, die ersten Physischen Speichermedien, die von der Menschheit benutze, wurden, waren die Felswände auf denen die Höhlenmenschen ihre Malereien verewigten. Natürlich haben sich als sich die Menschen weiterentwickelten, die von ihnen benutzten Speichermedien mitentwickelt, von den ersten auf Lehmtafeln und ähnlichem Festgehaltenen Schriften zu dem Papier das heute noch in Verwendung ist. Die erst Revolution der Speichermedien kam im 18. Jahrhundert mit der Lochkarte, diese Datenträger wurde von Herman Hollerith entwickelt und wurde aus einem dünnen stabilen Karton gefertigt, der Hauptverwendungszweck war im Bereich der Automatisierung verwendet, um wiederkehrende Ablaufe rational zu wiederholen. Diese Lochkarten wurden immer weiter und weiterentwickelt, selbst in den Heutigen Tagen verwenden manche Hotels noch kleine Lochkarten als Schlüsselkarten für Zimmer.

Weitere Physische Speichermedien sind die sogenannten Phonographenwalzen, dies ist ein Medium zu Tonaufzeichnung, welches im Jahre 1885 von Chichester Alexander Bell und Charles Summer Tainter entwickelt wurden und zwei Jahre später von Thomas Alva Edinson zu einem Phonographen verbessert wurden. Nachdem Thomas Alva Edinson aus finanziellen Gründen nicht daran, interessiert war, seinen Phonographen weiterzuentwickeln, haben Bell und Tainer dies auf sich genommen, diese Weiterentwicklung wurde schließlich zu dem als Graphophon bezeichneten Sprachmaschine weiterentwickelt.

Selbst in der Moderne gibt es noch relevante physische Speichermedien. Im Jahre 2016 wurde in England von Forschern auf einer Glasscheibe in der Größe einer 2-Euro-Münze 360 TByte gespeichert. Dies wurde bewerkstelligt, in dem mit einem Famtolaser im Abstand von 5 Mikrometer Nanopunkte in mehreren Schichten beschrieben wurden. Als Lesegerät diente eine Mischung aus einem optischen Mikroskop und einem Polarisationsfilter. Durch die Eigenschaften des Glases ist es möglich, die Nanostruktur fünfdimensional aufzubauen, zu den x-, y-, z-Achsen kommen noch die Größe sowohl die Ausrichtung der Nanostruktur, die sich auf die Lichtbrechung auswirkt. Der einzige Nachteil bei diesem Verfahren ist die Schreibgeschwindigkeit, im Jahre 2017 war es nur möglich einige hundert Byte pro Sekunde zu schreiben, dies hat sich im Jahre 2020 schon vertausendfacht zu 300 Kilobyte pro Sekunde. In der Zukunft ist es geplant, mithilfe von mehreren Laserstrahlen parallel einige Gigabyte pro Sekunde zu schreiben.

2.4. Magnetische Speichermedien

Magnetischer Speicher sind Festplatten, Disketten unterschiedlicher Bauart, Ton und Videobänder.

Bei Magnetspeichern wird eine dünne magnetische Schicht durch einen Schreibkopf entsprechend der einzuprägenden Informationen magnetisiert. Durch einen Lesekopf können diese Informationen wieder abgerufen werden.

Früher waren hauptsächlich Tonbänder und Videobänder (VHS) verbreitet. Von 1971 bis Anfang der 2000er wurden für Computer Floppy-Disks als tragbarer Speicher verwendet. Diese wurden alle jedoch von CD-ROM und DVDs komplett abgelöst. Seit Mitte der 2010er Jahre spielt jedoch nur noch die Magnetfestplatte eine Rolle. Doch auch diese wird jedoch immer mehr von elektromagnetischen Speichern abgelöst. Moderne Festplatten haben eine hohe Speicherkapazit und drehen sich mit bis zu 7200rpm. Normale Festplatten erreichen dabei eine Schreibgeschwindigkeit von etwa 160mb/s und eine Lesegeschwindigkeit von 500mb/s.

https://cdn.britannica.com/63/74063-050-2714FB88/hard-drive.jpg

Das Grundprinzip der magnetischen Speicherung ist überall gleich:

  • Auf eine meist flexible Trägerschicht ist eine sehr dünne, magnetisierbare Schicht aus einem ferromagnetischen Stoff aufgebracht. Moderne Speichermedien haben viele dieser Scheiben übereinander gestapelt, um die Speicherkapazität zu erhöhen.

  • Die Elementarmagnete dieser Schicht sind zunächst ungeordnet. Zum Speichern wird das Magnetband oder die Magnetplatte an einer Spule, dem Aufnahmekopf oder Schreibkopf, vorbeigeführt.

  • Durch das Magnetfeld dieser Spule, das sich entsprechend den Signalen ändert, erfolgt eine Ausrichtung der Elementarmagnete und damit eine Magnetisierung des Speichermediums in einem kleinen Bereich, einer Spur oder einem Segment.

  • Damit ist das Signal in der Ausrichtung der Elementarmagnete gespeichert.

  • Beim Auslesen des Signals wird das magnetisierte Band bzw. die Scheibe am Wiedergabekopf oder Lesekopf vorbeigeführt, wobei durch das sich ändernde Magnetfeld in der Spule eine Spannung induziert wird, die ein Abbild der gespeicherten Information ist.

  • Diese Informationen werden dann von den Programmen wieder zu Daten zusammengesetzt.

https://www.computerhope.com/jargon/m/magnetic-media.jpg

2.4.1. Übliche Speichergrößen für verschiedene Speichermedien sind:

  • Diskette: 1,44MB

https://upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Floppy_disk_2009_G1.jpg/1200px-Floppy_disk_2009_G1.jpg
@https://upload.wikimedia.org/wikipedia/commons/thumb/a/aa/Floppy_disk_2009_G1.jpg/1200px-Floppy_disk_2009_G1.jpg
  • Tonband: 113-170MB

https://assets.kartenmacherei.de/produktbilder/CEL30B3-MediumPortraitGreyDetailImage/Geburtstagseinladung-Tonband-orange-0201000011de_DE.jpg
@https://assets.kartenmacherei.de/produktbilder/CEL30B3-MediumPortraitGreyDetailImage/Geburtstagseinladung-Tonband-orange-0201000011de_DE.jpg
  • Videoband: 2GB

https://upload.wikimedia.org/wikipedia/commons/a/ab/VHS-Kassette_01_KMJ.jpg
@https://upload.wikimedia.org/wikipedia/commons/a/ab/VHS-Kassette_01_KMJ.jpg
  • Festplatte: 4-18TB

https://contentlounge-s3.bf-contentlounge-production.aws.bfops.io/was-ist-eine-hdd-festplatte-_bafaaa4e.jpg
@https://contentlounge-s3.bf-contentlounge-production.aws.bfops.io/was-ist-eine-hdd-festplatte-_bafaaa4e.jpg

2.5. Elektronischer Speicher

2.5.1. Allgemein

Als elektronische Speichermedien werden Speicher bezeichnet, die Daten auf oder auf Basis von elektronischen Halbleiterbausteinen speichern.

Vor allem für den Endnutzer erhältlichen Halbleiterspeicher, werden oft als kombiniertes Produkt mit integriertem Controller hergestellt. Damit bilden sie einen integrierten Schaltkreis (IC) beziehungsweiße einen Teil desselben, meist als „eingebetteter Speicher“ zu bezeichnen.

[Speichermedien]

2.5.2. Klassen von Halbleiterspeichern

2.5.2.1. nach Art der Datenhaltung

Ein gängiges Kriterium zur Klassifizierung von Halbleiterspeichern, sind die Arten der Datenhaltung:

Datenhaltung

änderbar

Beispiel

Nutzungsgründe

Nutzungsbeispiele

flüchtig

ja

RAM

schnell

Arbeitsspeicher, Cache

permanent

nein

ROM

persistent, unveränderbar

Betriebssystem, Firmware

semi-permanent

ja

Flash-Speicher

persistent, veränderbar

USB-Sticks, SD-Karten, SSDs

2.5.2.1.1. flüchtiger Speicher

Flüchtige Halbleiterspeicher verlieren ihren Speicherinhalt, sobald die Energieversorgung ausgeschaltet wird. Eine dauerhafte Speicherung ist nur mit unterbrechungsfreien Stromversorgung möglich. Da sie besonders schnell sind und damit gut als Arbeitsspeicher geeignet sind, werden sie dennoch aktiv genutzt.

RAM

Random Access Memory – (wahlfreier Zugriff)

DRAM

Dynamic Random Access Memory

SRAM

Static Random Access Memory

2.5.2.1.2. permanenter Speicher

Permanente Halbleiterspeicher sind nicht neu programmierbar oder beschreibbar. Ihr Speicherinhalt ist dauerhaft unveränderlich. Typischerweise enthalten permanente Halbleiterspeicher Betriebssysteme, Anwendungsprogramme und Firmware an denen während des Betriebs keine Änderungen vorgenommen werden müssen. In der Regel werden ROM- und PROM-Bausteine austauschbar auf der Platine befestigt.

ROM

Read Only Memory – (nur lesender Zugriff)

PROM

Programmable ROM

Heute dient meist Flash-Speicher als EPROM- und EEPROM-Ersatz.

2.5.2.1.3. semi-permanenter Speicher

Semi-permanente Halbleiterspeicher sind digitale Festwertspeicher, die wiederholt neu programmiert werden können.

EPROM

Erasable Programmable ROM – (lesend und schreibend)

EEPROM

Electrically Erasable Programmable ROM

Flash-Speicher

Flash-EEPROM – (blockweise gleichzeitig)

FRAM

Ferroelectric RAM

MRAM

Magnetoresistive RAM

PCRAM

Phase Change RAM

RRAM / ReRAM

Resistive RAM

Heute dient meist Flash-Speicher als ROM- und PROM-Ersatz.

2.5.2.2. nach Art des Speicherzugriffs

Alternativ können Halbleiterspeicher zum Beispiel auch nach der Art des Speicherzugriffs klassifiziert werden.

_images/halbleiterspeicher_klasse_nach_speicherzugriff.gif

Abb. 2.5.1 [Elektronik-Kompendium]

[Elektronik-Kompendium]

2.5.3. Technik

Einige Beispiele zur technischen Funktionsweiße von elektrischen Speichermedien:

2.5.3.1. flüchtiger Speicher

RAM

Zu RAM Arbeitsspeichern zählen alle Schreib-Lese-Speicher mit wahlfreiem Zugriff.

Die Speicherzellen sind in einer zweidimensionalen Matrix angeordnet. Mit dem Kreuzungspunkt des Reihen- und Spaltenzählers als eindeutige Adresse, sind sie gezielt ansprechbar. Der Speicherzustand jeder so ausgewählten Zelle kann beliebig oft gelesen oder verändert werden. Ein Ausfall der Betriebsspannung löscht alle im RAM gespeicherten Informationen.

_images/RAM_architektur.png

Abb. 2.5.2 [Fernmaster]

SRAM

SRAM speichert den jeweiligen Binärwert in einem Flipflop, welches in bipolarer TTL- und ECL-Technik sowie mit MOS-Feldeffekttransistoren hergestellt werden kann.

Bipolare Transistortechnik

Prinzipschaltung in TTL-Technik für eine Flipflop Speicherzelle:

_images/RAM_bipolare_speicherzelle.png

Abb. 2.5.3 [Elektroniktutor]

Aktivierung

Die Speicherzelle wird durch eine anliegende Betriebsspannung aktiviert. Der Emitterstrom des leitenden Transistors kann nur noch über seine Schreib-Lese-Leitung fließen.

Lesevorgang
  • Bei einem in der Zelle gespeicherten Binärwert 1 ist der Transistor K2 gesperrt und K1 leitend.

    1. Aktivierung

    2. Transistor K1 frei / Transistor K2 gesperrt

    3. Strom fließt durch SL1 / SL2 bleibt stromlos

    4. Q hat High Pegel -> Speicherzustand 1 / Q-Nicht hat Low Pegel

  • Bei einem in der Zelle gespeicherten Binärwert 0 ist der Transistor K1 gesperrt und K2 leitend.

    1. Aktivierung

    2. Transistor K2 frei / Transistor K1 gesperrt

    3. Strom fließt durch SL2 / SL1 bleibt stromlos

    4. Q hat Low Pegel -> Speicherzustand 0 / Q-Nicht hat High Pegel

Schreibvorgang

  1. Aktivierung

  2. High Pegel an SL1 & Low Pegel an SL2

  3. sperrt K1 & schaltet K2 frei -> Speicherzustand 0

  1. Aktivierung

  2. Low Pegel an SL1 & High Pegel an SL2

  3. sperrt K2 & schaltet K1 frei -> Speicherzustand 1

DRAM

DRAM speichert die Information als Kondensatorladungen. Ein aufgeladener Kondensator entspricht der logischen 1, ein entladener Kondensator der logischen 0. Einer oder mehrere Transistoren schalten den Kondensator an die Schreib-Lese-Leitungen.

Die Aktivierung der Zeile erfolgt mit dem „row address strobe“ RAS-Signal gefolgt von der Spaltenadresse, dem „column address strobe“ CAS-Signal zum Auslesen der gespeicherten Zustände.

_images/DRAM_kondensator_speicherzelle.png

Abb. 2.5.4 [Elektroniktutor]

Für den Lese- und Schreibvorgang gibt es getrennte Auswahl- und Datenleitungen.

Leseprozess
  • Bei einem in der Zelle gespeicherten Binärwert 1 ist das Gate des Transistor K1 positiv geladen:

    1. High Pegel an Datenausgangsleitung

    2. gleicht den Einfluss der unterschiedlichen Leitungskapazitäten aus

    3. positiver Spannung an Leseauswahlleitung

    4. Transistor K2 leitend

    5. positives Potenzial am Drain des Speichertransistors K1

    6. K1 leitet

    7. zieht das Potenzial der Datenausgangsleitung

    8. invertierter Datenausgangspegel -> Speicherzustand 1

  • Bei einem in der Zelle gespeicherten Binärwert 0 ist das Gate des Transistor K1 nicht geladen:

    1. High Pegel an Datenausgangsleitung

    2. gleicht den Einfluss der unterschiedlichen Leitungskapazitäten aus

    3. positiver Spannung an Leseauswahlleitung

    4. Transistor K2 leitend

    5. positives Potenzial am Drain des Speichertransistors K1

    6. K1 gesperrt

    7. Datenleitung behält High Pegel

    8. invertierter Datenausgangspegel -> Speicherzustand 0

Schreibprozess

In die Zelle soll eine logische 1 geschrieben werden:

  1. High Pegel an Dateneingang

  2. High Pegel an der Schreibauswahlleitung

  3. Transistor K3 leitend

  4. lädt die Gatekapazität von K1 positiv auf

  5. Low Pegel an Schreibauswahlleitung

  6. Transistor K3 gesperrt -> Speicherzustand 1

Da auch MOS-Transistoren im Sperrzustand keine idealen Nichtleiter sind, muss der Ladezustand des Speicherkondensators regelmäßig aufgefrischt werden.

Burst-Refresh:

Der Refresh erfolgt für alle Speicherzellen gleichzeitig. Der normale Speicherbetrieb ist um 40 µs relativ lange unterbrochen.

Cycle-Stealing:

Der Refresh erfolgt verteilt nacheinander auf jeweils nur eine Zeilenadresse. Durch ein WAIT-Signal gesteuert ist der normale Zugriff bei 128 Zeilen nur noch für rund 300 ns unterbrochen.

Hidden-Refresh:

Der Refresh ist so auf den Prozessortakt synchronisiert und erfolgt nur, wenn dieser keine Speicherzugriffe ausführt. Die Speicherbausteine werden als (synchrone) SDRAM bezeichnet.

2.5.3.2. Festwertspeicher

2.5.3.2.1. permanenter Speicher

ROM

Festwertspeicher mit wahlfreiem Zugriff sind vom Hersteller vorprogrammiert oder vom Nutzer einmalig programmierbar. Die gespeicherten logischen Zustände lassen sich beliebig oft lesen.

Schreibprozess durch Maskenprogrammierung

Eine aufgelegte Maske bestimmt beim Ätzprozess, wo aktive Koppelelemente zwischen den Wort- und Bitleitungen entstehen und wo sie fehlen.

_images/ROM_maskenprogrammiert.png

Abb. 2.5.5 [Elektroniktutor]

Maskenprogrammierung ist für kleinere Stückzahlen und spezielle Anwendungen nicht rentabel.

PROM – Programmierbare Festwertspeicher

PROM sind einmalig programmierbar und arbeiten danach als ROM.

Die Zellen sind als Dioden- oder Transistormatrix aufgebaut, deren Verbindungspunkte bei der Programmierung nicht umkehrbar hochohmig oder niederohmig zerstört werden.

_images/PROM_prinzipschaltung.png

Abb. 2.5.6 [Elektroniktutor]

In einer Variante ist jedes Zellenelement mit einem sehr dünnen Chrom-Nickel-Sicherungsdraht verbunden, der bei der Programmierung überlastet und hochohmig zerstört wird.

In einer anderen Variante führt ein Spannungsimpuls auf der jeweiligen Bitleitung zum Kurzschluss der Diode.

2.5.3.2.2. semi-permanenter Speicher

EPROM Festwertspeicher

EPROM-Speichertransistoren haben ein zusätzliches vollkommen isoliertes „Floating-Gate“, welches mit seiner elektrischen Ladung den Speicherzustand der Zelle bestimmt. Nach der Herstellung und im gelöschten Zustand ist das Floating-Gate ladungsneutral. Es ist mit energiereicher UV-C Strahlung komplett löschbar und kann danach neu programmiert werden.

_images/EPROM_floating_gate.png

Abb. 2.5.7 [Elektroniktutor]

Leseverfahren

  1. Niedrige Spannung an Adressleitung, die den Transistor mit dem negativ geladenen Floating-Gate nicht mehr leitend schalten kann

  2. Das Potenzial auf der Bitleitung wird nicht nach Masse gezogen und bleibt auf High Pegel. -> Speicherzustand 1

  1. Niedrige Spannung an Adressleitung, die den Transistor mit dem negativ geladenen Floating-Gate nicht mehr leitend schalten kann

  2. Eine Zelle mit nicht geladenem Floating-Gate leitet und die Bitleitung wechselt auf Low Pegel. -> Speicherzustand 0

Schreibprozess (Programmierung nach dem HCI-Verfahren)

  1. Hohe Spannung, welche Elektronen stark beschleunigt (hot electrons)

  2. Diese können sowohl die Energiebarriere zum Leitungsband überwinden als auch durch Stoßionisation weitere Ladungsträgerpaare erzeugen.

  3. Energiereiche Elektronen aus diesem Lawineneffekt (Avalanche-Effekt) gelangen in das Leitungsband, wodurch dieses negativ aufgeladen wird.

  4. Die Ladung bleibt nach dem Abschalten der Programmierspannung erhalten. -> Speicherzustand 1

Löschverfahren

Mit kurzwelliger, energiereicher Strahlung kann sich das Floating-Gate entladen. Die energiereichen Photonen erzeugen in der Isolierschicht Elektronen-Lochpaare und die im Floating-Gate gespeicherte Ladung kann bei anliegender Spannung abfließen.

EEPROM Festwertspeicher

Das Programmieren und Löschen erfolgt ohne externes Programmiergerät in der Einsatzschaltung. Die Ladungsverschiebung auf das Floating-Gate erfolgt nach einem von Fowler und Nordheim mathematisch beschriebenen quantenmechanischen Tunneleffekt.

_images/EEPROM_speicherzelle.png

Abb. 2.5.8 [Elektroniktutor]

Leseverfahren

  1. normale niedrige Betriebsspannung an Wort- und Bitleitung

  2. Schalttransistor leitend

  3. selbe Spannung an Control-Gate

  4. Ist das Floating-Gate negativ geladen, so bleibt der Transistor gesperrt und die Spannung auf der Bitleitung hoch.

  5. Der Leseverstärker gibt High Pegel aus. -> Speicherzustand 1

  1. Mit dem Anlegen der normaler niedriger Betriebsspannung an die Wort- und Bitleitung wird der Schalttransistor leitend.

  2. Mit ebenfalls 5 V am Control-Gate wird der Speicherzustand gelesen.

  3. Ist keine Ladung auf dem FG gespeichert, dann wird der Transistor leitend geschaltet und zieht die Spannung der Bitleitung nach Masse

  4. Der Leseverstärker gibt Low Pegel aus. -> Speicherzustand 0

Schreibprozess (Programmierung)

  1. Grundzustand: Geladenes Floating-Gate

  2. Programmierspannung an Adressleitung mit dem Gate des Schalttransistors und das Steuergate CG des Speichertransistors

  3. Schalttransistor leitet

  4. Programmierspannung an CG verursacht Tunneleffekt und zieht Elektronen aus dem Drainbereich auf das Floating-Gate

  5. Floating-Gate speichert negative Ladung und erhöht damit das Potenzial zwischen Gate und Source

  6. Speichertransistor wird leitend geschalten -> Speicherzustand 1

Löschverfahren

  1. Das Floating-Gate kann entladen und somit umprogrammiert werden, wenn an der Adress- und Bitleitung die Programmierspannung anliegt und das Control-Gate Massepotenzial hat.

  2. Der Schalttransistor leitet und die Drainspannung unter dem FG ist gleich der Programmierspannung. Der Speichertransistor bleibt mit CG = 0 V gesperrt.

  3. Die vom Drain ausgehende hohe Feldstärke zieht mit dem Tunneleffekt die negative Ladung vom FG ab.

2.5.3.3. NAND- vs. NOR-Flash

Die NAND- und NOR-Architekturen unterscheiden sich grob gesehen in der Speicherdichte und der Zugriffsgeschwindigkeit.

NOR-Flash

_images/NOR-Flash.gif

Abb. 2.5.9 NOR-Flash [Elektronik-Kompendium]

  • Speicherzellen parallel verschaltet

    • geringeren Widerstand zwischen Stromquelle und Auswerteschaltung

    • wahlfreier und direkter Zugriff -> kurze Zugriffszeiten

  • Nutzung: Programmspeicher von Mikrocontrollern (z.B. als nichtflüchtiger Speicher für das BIOS)

NAND-Flash

_images/NAND-Flash.gif

Abb. 2.5.10 NAND-Flash [Elektronik-Kompendium]

  • Speicherzellen intern seriell verschaltet -> Lesen und Schreiben nur in Blöcken möglich

  • geringe Anzahl an Datenleitungen -> weniger Platz

  • Nutzung: Massenspeicher, wie Speicherkarten, USB-Sticks und SSDs (geeignet, da diese blockweise lesen)

  • Vergleich zu anderen nichtflüchtigen Speicherarten:

    • höhere Speicherdichte zu geringen Kosten

    • schnelle Schreibgeschwindigkeit

    • geringer Stromverbrauch

[Fernmaster] [Elektroniktutor]

2.6. Einblick in die Implementierung des Dateisystems in UNIX

Ein Dateisystem ist eine Sequenz logischer Blöcke, die 512, 1024, 2048 oder (je nach Implementierung) ein n-faches von 512 Bytes umfassen. Große Blöcke lassen sich schneller in den Arbeitsspeicher lesen als kleinere Blöcke, aufgrund des Overheads pro Block. Andererseits können größere Blöcke zu einer stärkeren Fragmentierung des Dateisystems führen.

2.6.1. Struktur des Dateisystems:

Das Unix-Dateisystem kann in folgende Blöcke unterteilt werden, beginnend mit dem Boot Block:

Boot Block

Super Block

Inode List

Data Block

  • Der Boot Block wird dazu genutzt das Betriebssystem zu initialisieren. Allerdings muss sich kein Bootloader im Boot Block befinden und der Boot Block kann leer sein.

  • Der Super Block beschreibt das Dateisystem z.B. dessen Größe.

    Hier ein beispielhafter Dump eines Super Blocks:

    root$ dumpe2fs -h /dev/sda2

    Filesystem volume name

    <none>
    Last mounted on

    /media/s/dfa1bd88-8ee6-47e5-9665-b6460b2b4121
    Filesystem UUID

    dfa1bd88-8ee6-47e5-9665-b6460b2b4121
    Filesystem magic number

    0xEF53
    Filesystem revision #

    1 (dynamic)
    Filesystem features

    has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
    Filesystem flags

    signed_directory_hash
    Default mount options

    user_xattr acl
    Filesystem state

    clean
    Errors behavior

    Continue
    Filesystem OS type

    Linux
    Inode count

    30433280
    Block count

    121715200
    Reserved block count

    6085760
    Free blocks

    61949685
    Free inodes

    27845214
    First block

    0
    Block size

    4096
    Fragment size

    4096
    Reserved GDT blocks

    994
    Blocks per group

    32768
    Fragments per group

    32768
    Inodes per group

    8192
    Inode blocks per group

    512
    Flex block group size

    16
    Filesystem created

    Sat Dec 21 16:26:11 2019
    Last mount time

    Sat Apr 1 12:51:22 2022
    Last write time

    Sat Apr 1 12:51:22 2022
    Mount count

    366
    Maximum mount count

    -1
    Last checked

    Sat Dec 21 16:26:11 2019
    Check interval

    0 (<none>)
    Lifetime writes

    4975 GB
    Reserved blocks uid

    0 (user root)
    Reserved blocks gid

    0 (group root)
    First inode

    11
    Inode size

    256
    Required extra isize

    28
    Desired extra isize

    28
    Journal inode

    8
    Default directory hash

    half_md4
    Directory Hash Seed

    e48bb016-896d-4cd6-a9da-2550e6ba4d3b
    Journal backup

    inode blocks
    Journal features

    journal_incompat_revoke
    Journal size

    128M
    Journal length

    32768
    Journal sequence

    0x00110cf8
    Journal start

    1
  • In der Inode List sind Inodes anhand der i-number indexiert. Ein Inode speichert Metadaten einer Datei, z.B, die Storage Blöcke der Datei. Es gibt ein root Inode des Dateisystems, von dem aus der Zugriff auf die Ordnerstruktur gegeben wird.

    $ touch test
    $ stat test
    File: test
    Size: 4096 Blocks: 8 IO Block: 4096 directory
    Device: fd01h/64769d Inode: 29366818 Links: 3
    Access: (0775/drwxrwxr-x) Uid: ( 1000/ s) Gid: ( 1000/ s)
    Access: 2022-04-19 20:05:13.995866411 +0100
    Modify: 2022-04-19 20:05:13.995866411 +0100
    Change: 2022-04-19 20:05:13.995866411 +0100
    Birth: -

Das ist die Struktur eines Inodes: Inode struct source code

Inode Struktur

Owner ID

Access Permissions

Link Count

File Mode (In welchen Mode ist die Datei geöffnet (Lesen, Schreiben))

Last-manipulated Time

File Type (Ordner, Pipe, Socket, Link, etc.)

File Disk Access (Zeiger zu den Daten in der Datei)

  • Data Blocks umfassen Dateien und Ordner sowie administrative Daten. Einem Datenblock kann genau eine Datei zugeordnet werden.

2.7. Die Alloc-Strategie in einem Unix Dateisystem

Das verwaltet der Super Block bezüglich der Allokation:

  • Freie Inodes in einer Liste

  • Die Anzahl der freien Inodes

Der Kernel füllt diese Liste von Zeit zu Zeit. Ist die Liste freier Inodes leer, iteriert der Kernel über die Inode Liste auf der Suche nach freien Inodes. Als Optimierung merkt sich der Kernel die Stelle an der er den letzten Inode in der Inode Liste gefunden hat, um nicht den bereits abgescannten Teil der Inode Liste wiederholt zu bearbeiten. Die Liste freier Inodes wird nach der LIFO-Strategie verwaltet.

Weiter verwaltet der Super Block:

  • Ein Array von Referenzen auf freie Blöcken (Blöcken im Data Block) Einer der referenzierten Blöcke ist dann wieder ein Array von Zeigern auf freie Blöcke.

Das Array im Super Block wird bei Bedarf gefüllt und geleert. Hier gibt es zwei Besondere Fälle. Ist das Super Block Array leer, bis auf die Referenz auf ein weiteres Array, wird der Inhalt dieses Arrays in das Super Block Array übertragen. Ist das Super Block Array voll und eine weitere Referenz auf einen freien Block übertragen, wird der aktuelle Inhalt des Super Block Arrays in den freien Block kopiert. Dann wird dieser eben übergebene Block die einzige Referenz aus dem Super Block Array angelegt.

Quelle:

ISBN: 978-3-642-20432-6

2.8. Quellen

Physische Speichermedien

Magnetische Speichermedien

Elektronische Speichermedien

Speichermedien
Elektronik-Kompendium(1,2,3,4)
Fernmaster(1,2)
Elektroniktutor(1,2,3,4,5,6,7)
IC