Entdecken Sie eBooks
Kategorien
Entdecken Sie Hörbücher
Kategorien
Entdecken Sie Zeitschriften
Kategorien
Entdecken Sie Dokumente
Kategorien
H. Sasshofer
BTS - Sasshofer 1
Geschichte und Grundlagen
in Anlehnung an
den Foliensatz zu Betriebssysteme,
Prof. Dr. Christian Baun
Fachhochschule Frankfurt am Main
BTS - Sasshofer 2
Lehrveranstaltung
BTS - Sasshofer 3
Lernziele dieses Foliensatzes
BTS - Sasshofer 4
Kernfunktionalitäten von Betriebssystemen
BTS - Sasshofer 6
Also
BTS - Sasshofer 7
Prinzipieller Aufbau eines Betriebssystems
BTS - Sasshofer 8
Generationen von Computern und Betriebssystemen
BTS - Sasshofer 9
Generationen von Computern und Betriebssystemen
BTS - Sasshofer 10
0. Generation (bis 1940)
▶ Mechanische/elektromechanische Rechenmaschinen
▶ Beispiele:
▶ Rechenmaschine von Wilhelm Schickard (1623)
▶ Bietet Addition, Subtraktion und Zehnerübertragung
▶ Rechenmaschine Pascaline von Blaise Pascal (1643)
▶ Bietet Addition, Subtraktion, ≤ 8 Stellen und Zehnerübertragung
▶ Leibniz’sche Rechenmaschine von Gottfried Wilhelm Leibniz (1673)
▶ Bietet alle 4 Grundrechenarten, ≤ 6 Stellen und Zehnerübertragung
BTS - Sasshofer 11
0. Generation (bis 1940)
▶ Weiteres Beispiel:
▶ Differenzmaschine Nr.1 zum Lösen polynomialer Funktionen von
Charles Babbage (1832)
BTS - Sasshofer 12
0. Generation (bis 1940)
▶ Weiteres Beispiel:
▶ Hollerithmaschine von Herman Hollerith (1888)
▶ Besteht aus: Tabelliermaschine, Lochkartensortierer,
Lochkartenlocher und Lochkartenleser
▶ 1890: Einsatz bei der amerikanischen Volkszählung
▶ 1924: Die Firma von Hollerith wird in International Business
Machines Corporation (IBM) umbenannt
BTS - Sasshofer 13
1. Generation (1940 bis 1955)
BTS - Sasshofer 14
Bekannte Vertreter der 1. Generation
BTS - Sasshofer 15
1. Generation: ENIAC (1944)
BTS - Sasshofer 16
2. Generation (1955 bis 1965)
BTS - Sasshofer 17
2. Generation: Stapelbetrieb bzw. Batchbetrieb (1/4)
Bildquelle: IBM (Das Bild zeigt eine IBM 7090 von 1959)
http://www.computer-history.info/Page4.dir/pages/IBM.7090.dir/images/ibm.7090.jpg
BTS - Sasshofer 18
2. Generation: Stapelbetrieb bzw. Batchbetrieb (2/4)
BTS - Sasshofer 19
2. Generation: Stapelbetrieb bzw. Batchbetrieb (3/4)
▶ Diese schreiben Daten direkt in den Hauptspeicher und holen von dort
BTS - Sasshofer Ergebnisse 20
2. Generation: Stapelbetrieb bzw. Batchbetrieb (4/4)
BTS - Sasshofer 21
2. Generation: Lochkarten
BTS - Sasshofer 22
3. Generation (1960 bis 1980)
▶ Frühe 1960er Jahre: Integrierte Schaltungen sind verfügbar ⇒
Leistungsfähigere, kleinere und billigere Computer
▶ 1960er Jahre:
▶ Weiterentwicklung der Stapelverarbeitungssysteme um mehrere
Jobs gleichzeitig abzuarbeitende ⇒ Multitasking
▶ Erste einfache Speicherverwaltung (Fixed Partitions)
▶ 1970er Jahre: Dialogbetrieb (Time Sharing) bzw. Zeitteilbetrieb
▶ Eine Zentraleinheit, mehrere Terminals (Dialogstationen)
▶ Jeder Benutzer erhält beim Anmelden einen Benutzerprozess
▶ Ende der 1970er Jahre: Entwicklung des Mikroprozessors ⇒
Entwicklung des Heimcomputers / Personal Computers (PC)
▶ 1977: Apple II. Erster Heimcomputer
▶ 1981: IBM PC. Meist verkaufte Rechnerarchitektur (Intel 80x86)
Einige Betriebssysteme der 3. Generation
BESYS, CTSS, OS/360, CP/CMS, Multics, Unics (später Unix), DEC
DOS-11, DEC RT-11, Version 6/7 Unix, DEC CP/M, Cray Operating System,
DEC VMS
BTS - Sasshofer 23
Bekannte Vertreter der 3. Generation
BTS - Sasshofer 24
3. Generation: Dialogbetrieb – Time Sharing (1/2)
BTS - Sasshofer 26
4. Generation (1980 bis 2000)
▶ Hochintegrierte Schaltkreise und exponentiell wachsende
Integrationsdichte der elektronischen Komponenten
▶ Prozessoren werden immer leistungsfähiger und preiswerter
▶ Speicherbausteine haben eine immer höhere Kapazität
▶ Hohe Rechenleistung kann an jedem Arbeitsplatz installiert werden
▶ Workstations setzten sich im professionellen Umfeld durch
▶ Immer größerer Erfolg von Heimcomputern und Personal
Computern
▶ Hauptaufgabe der Betriebssysteme: Bereitstellung intuitiver
Benutzeroberflächen für Benutzer, die von der zu Grunde liegenden
Hardware nichts wissen wollen
▶ Etablierung von Computernetzen mit offenen Standards
▶ Ethernet, Token Ring, WLAN
BTS - Sasshofer 28
BTS 02 - Klassifikation
H. Sasshofer
BTS - Sasshofer 1
Klassifikation
in Anlehnung an
den Foliensatz zu Betriebssysteme,
Prof. Dr. Christian Baun
Fachhochschule Frankfurt am Main
BTS - Sasshofer 2
Lernziele dieses Foliensatzes
BTS - Sasshofer 3
Einzelprogrammbetrieb und Mehrprogrammbetrieb
▶ Einzelprogrammbetrieb (Singletasking)
▶ Zu jedem Zeitpunkt läuft nur ein einziges Programm
▶ Mehrere gestartete Programme werden nacheinander ausgeführt
▶ Mehrprogrammbetrieb
(Multitasking)
▶ Mehrere Programme können
gleichzeitig (bei mehreren
CPUs/Kernen) oder zeitlich
verschachtelt (quasi-parallel)
ausgeführt werden
BTS - Sasshofer 4
Warum Mehrprogrammbetrieb (Multitasking)?
Wir wissen. . .
▶ Bei Mehrprogrammbetrieb laufen mehrere Prozesse nebenläufig
▶ Die Prozesse werden in kurzen Abständen, abwechselnd aktiviert ⇒ Dadurch
entsteht der Eindruck der Gleichzeitigkeit
▶ Nachteil: Das Umschalten von einem Prozess zu anderen, erzeugt
Verwaltungsaufwand (Overhead)
▶ Einzelbenutzerbetrieb (Single-User)
▶ Der Computer steht immer nur einem einzigen Benutzer zur
Verfügung
▶ Mehrbenutzerbetrieb (Multi-User)
▶ Mehrere Benutzer können gleichzeitig mit dem Computer arbeiten
▶ Die Benutzer teilen sich die Systemressourcen (möglichst gerecht)
▶ Benutzer müssen (u.a. durch Passwörter) identifiziert werden
▶ Zugriffe auf Daten/Prozesse anderer Benutzer werden verhindert
BTS - Sasshofer 6
8/16/32/64 Bit-Betriebssysteme
▶ Die Bit-Zahl gibt die Länge der Speicheradressen an, mit denen das
Betriebssystem intern arbeitet
▶ Ein Betriebssystem kann nur so viele Speichereinheiten ansprechen,
wie der Adressraum zulässt
▶ Die Größe des Adressraums hängt vom Adressbus ab ⇒ Foliensatz 3
▶ 8 Bit-Betriebssysteme können 28 Speichereinheiten adressieren
▶ z.B. GEOS, Atari DOS, Contiki
▶ 16 Bit-Betriebssysteme können 216 Speichereinheiten adressieren
▶ z.B. MS-DOS, Windows 3.x, OS/2 1.x
▶ 32 Bit-Betriebssysteme können 232 Speichereinheiten adressieren
z.B. Windows 95/98/NT/Vista/7/8/10, OS/2 2/3/4, eComStation,
Linux, BeOS, MacOS X (bis einschließlich 10.7)
▶ 64 Bit-Betriebssysteme können 264 Speichereinheiten adressieren
z.B. Linux (64 Bit), Windows 7/8/10 (64 Bit), MacOS X (64 Bit)
BTS - Sasshofer 7
Echtzeitbetriebssysteme (Real-Time Operating Systems)
BTS - Sasshofer 8
Harte und Weiche Echtzeitbetriebssysteme
▶ Harte Echtzeitbetriebssysteme
▶ Zeitschranken müssen unbedingt eingehalten werden
▶ Verzögerungen können unter keinen Umständen akzeptiert werden
▶ Verzögerungen führen zu katastrophalen Folgen und hohen Kosten
▶ Ergebnisse sind nutzlos wenn sie zu spät erfolgten
▶ Einsatzbeispiele: Schweißroboter, Reaktorsteuerung, ABS,
▶ Flugzeugsteuerung, Überwachungssysteme auf der Intensivstation
▶ Weiche Echtzeitbetriebssysteme
▶ Gewisse Toleranzen sind erlaubt
▶ Verzögerungen führen zu akzeptablen Kosten
▶ Einsatzbeispiele: Telefonanlage, Parkschein- oder
Fahrkartenautomat, Multimedia-Anwendungen wie Audio/Video on
Demand
BTS - Sasshofer 9
Architekturen von Echtzeitbetriebssystemen
▶ Thin-Kernel
▶ Der Betriebssystemkern selbst läuft als Prozess
mit niedrigster Priorität
▶ Der Echtzeit-Kernel übernimmt das Scheduling
▶ Echtzeit-Prozesse haben die höchste Priorität
⇒ minimale Reaktionszeiten (Latenzzeiten)
▶ Nano-Kernel
▶ Neben dem Echtzeit-Kernel kann eine beliebige
Anzahl anderer Betriebssystem-Kernel laufen
▶ Pico-Kernel, Femto-Kernel, Atto-Kernel
▶ Marketingbegriffe der Hersteller von
Echtzeitsystemen, um die Winzigkeit ihrer
Echtzeit-Kernel hervorzuheben
BTS - Sasshofer 10
Einsatzgebiete von Echtzeitbetriebssystemen
BTS - Sasshofer 11
Die QNX Demo Disc von 1999. . .
BTS - Sasshofer 12
Verteilte Betriebssysteme
▶ Verteiltes System
▶ Steuert die Prozesse auf mehreren Rechner eines Clusters
▶ Die einzelnen Rechner bleiben den Benutzern und deren Prozessen
transparent verborgen
▶ Das System erscheint als ein einzelner großer Rechner
▶ Prinzip des Single System Image
BTS - Sasshofer 13
Verteilte Betriebssysteme heute
BTS - Sasshofer 15
Monolithische Kerne (1/2)
▶ Vorteile:
▶ Weniger Kontextwechsel als Mikrokernel ⇒ höhere Geschwindigkeit
▶ Gewachsene Stabilität
▶ Mikrokernel sind in der Regel nicht stabiler als monolithische Kerne
▶ Nachteile:
▶ Abgestürzte Komponenten des Kerns können nicht separat neu
gestartet werden und das gesamte System nach sich ziehen
▶ Hoher Entwicklungsaufwand für Erweiterungen am Kern, da dieser
bei jedem Kompilieren komplett neu übersetzt werden muss
BTS - Sasshofer 16
Monolithische Kerne (2/2)
▶ Hardware- und
Dateisystem-Treiber im
Linux-Kernel können in Module
auslagert werden
▶ Die Module laufen jedoch im
Kernelmodus und nicht im
Benutzermodus
▶ Darum ist der Linux-Kernel ein
monolithischer Kernel
BTS - Sasshofer 17
Minimale Kerne (1/2)
BTS - Sasshofer 18
Minimale Kerne (2/2)
▶ Vorteile:
▶ Einfache Austauschbarkeit der Komponenten
▶ Theoretisch beste Stabilität und Sicherheit
▶ Grund: Es laufen weniger Funktionen im Kernelmodus
▶ Nachteile:
▶ Langsamer wegen der größeren
Zahl von Kontextwechseln
▶ Entwicklung eines neuen
(Mikro-)kernels ist eine
komplexe Aufgabe
BTS - Sasshofer 19
Hybride Kerne / Hybridkernel / Makrokernel
▶ Kompromiss zwischen monolithischen Kernen und minimalen
Kernen
▶ Enthalten aus Geschwindigkeitsgründen Komponenten, die bei
minimalen Kernen außerhalb des Kerns liegen
▶ Es ist nicht festgelegt, welche Komponenten bei Systemen mit
hybriden Kernen zusätzlich in den Kernel einkompiliert sind
▶ Die Vor- und Nachteile von hybriden Kernen zeigt Windows NT 4
▶ Das Grafiksystem ist bei Windows NT 4 im Kernel enthalten
▶ Vorteil: Steigerung der Performance
▶ Nachteil: Fehlerhafte Grafiktreiber führen zu häufigen Abstürzen
▶ Vorteile:
▶ Bessere Geschwindigkeit als minimale Kerne da weniger
Kontextwechsel
▶ Höhere Stabilität (theoretisch!) als monolithische Kerne
Beispiele für Betriebssysteme mit hybriden Kernen
Windows seit NT 3.1, ReactOS, MacOS X, BeOS, ZETA, Haiku, Plan 9,
DragonFly BSD
BTS - Sasshofer 20
Linus Torvalds vs. Andrew Tanenbaum (1992)
A. Tanenbaum (30. Januar 1992): „I still maintain the point that designing a monolithic
kernel in 1991 is a fundamental error. Be thankful you are not my student. You would not
get a high grade for such a design :-)“.
Die Zukunft kann nicht vorhergesagt werden
BTS - Sasshofer 21
Ein trauriges Kernel-Beispiel – HURD
BTS - Sasshofer 22
Ein extremes Kernel-Beispiel – kHTTPd
BTS - Sasshofer 23
Schichtenmodell (1/2)
BTS - Sasshofer 24
Schichtenmodell (2/2)
BTS - Sasshofer 26
BTS 03 - Rechnerarchitektur+Speicher
H. Sasshofer
BTS - Sasshofer 1
Rechnerarchitektur und Speicher
in Anlehnung an
den Foliensatz zu Betriebssysteme,
Prof. Dr. Christian Baun
Fachhochschule Frankfurt am Main
BTS - Sasshofer 2
Lernziele dieses Foliensatzes
BTS - Sasshofer 3
Warum das Ganze?
Edsger W. Dijkstra
„In der Informatik geht es genau so wenig um Computer, wie in der
Astronomie um Teleskope.“
▶ Betriebssysteme erleichtern den Benutzern und deren Prozessen
die Nutzung der Hardware
▶ Wer die Arbeitsweise der CPU, des Speichers und der Bussysteme
nicht kennt und versteht, versteht auch nicht die Arbeitsweise der
Betriebssysteme
BTS - Sasshofer 4
Von-Neumann-Architektur
BTS - Sasshofer 5
Der Hauptprozessor – Central Processing Unit (CPU)
BTS - Sasshofer 6
Komponenten der CPU
▶ Speicher
▶ Register zur kurzfristigen
Speicherung von Operanden und
Adressen
▶ Arbeiten mit der selben
Geschwindigkeit, wie der Rest
der CPU
▶ Cache und Hauptspeicher
▶ Speicher für Programme und
Daten
BTS - Sasshofer 7
Von-Neumann-Zyklus (Fetch-Decode-Execute Cycle)
BTS - Sasshofer 9
Adressbus
▶ Überträgt Speicheradressen
▶ Speicheradressen und E/A-Geräte
werden über den Adressbus
angesprochen (adressiert)
▶ Anzahl der Busleitungen legt die
maximale Anzahl adressierbarer
Speicheradressen fest
Adressbusbreite einiger CPUs
BTS - Sasshofer 10
Steuerbus
BTS - Sasshofer 11
Busse in modernen Rechnersystemen
BTS - Sasshofer 12
Ausgewählte Bussysteme
BTS - Sasshofer 13
Verlagerung des Speichercontrollers in die CPU
▶ Ergebnis: Die Northbridge enthält nur noch den Controller für PCIe
BTS - Sasshofer 14
Verlagerung der Northbridge in die CPU
BTS - Sasshofer 15
Zeichenorientierte und Blockorientierte Geräte
▶ Blockorientierte Geräte
▶ Datenübertragung findet erst statt, wenn ein
kompletter Block (z.B. 1-4 kB) vorliegt
▶ Beispiele: Festplatte, SSD, CD-/DVD-Laufwerk und
Disketten-Laufwerk
▶ Die meisten blockorientierten Geräte unterstützen
Direct Memory Access (DMA), um Daten ohne
CPU-beteiligung zu übertragen
BTS - Sasshofer 16
Daten einlesen
▶ Soll z.B. ein Datensatz von einer Festplatte gelesen werden, sind
folgende Schritte nötig:
1. Die CPU bekommt von einem Prozess die Anforderung, einen
Datensatz von einer Festplatte zu lesen
2. Die CPU schickt dem Controller mit Hilfe des Treibers einen
I/O-Befehl
3. Der Controller lokalisiert den Datensatz auf der Festplatte
4. Der Prozess erhält die angeforderten Daten
▶ Es gibt 3 Konzepte, wie Prozesse im Computer Daten einlesen
können:
▶ Busy Waiting (geschäftiges bzw. aktives Warten)
▶ Interrupt-gesteuert
▶ Direct Memory Access (DMA)
BTS - Sasshofer 17
Busy Waiting (geschäftiges bzw. aktives Warten)
▶ Der Treiber sendet die Anfrage an das Gerät und wartet in einer
Endlosschleife, bis der Controller anzeigt, dass die Daten bereit
stehen
▶ Stehen die Daten bereit, werden sie in den Speicher geschrieben
und die Ausführung des Prozesses geht weiter
▶ Beispiel: Zugriffsprotokoll Programmed Input/Output (PIO)
▶ Die CPU greift via Lese- und Schreibbefehle auf die Speicherbereiche
der Geräte zu und kopiert so Daten zu und von diesen Geräten
▶ Vorteil:
▶ Keine zusätzliche Hardware nötig
▶ Nachteile:
▶ Belastet die CPU
▶ Verlangsamt die gleichzeitige Abarbeitung mehrerer
Prozesse
▶ Grund: Regelmäßig muss die CPU überprüfen, ob die
Daten bereit stehen
BTS - Sasshofer 18
Interrupt-gesteuert
▶ Voraussetzung: Ein Interrupt-Controller und Leitungen im
Steuerbus für das Senden der Interrupts
▶ Der Treiber initialisiert die E/A-Aufgabe und wartet auf einen
Interrupt (Unterbrechung) durch den Controller ⇒ Der Treiber
schläft
▶ Die CPU ist während des Wartens auf den Interrupt nicht blockiert
und das Betriebssystem kann die CPU anderen Prozesse zuweisen
▶ Kommt es zum Interrupt, wird der Treiber dadurch geweckt ⇒
bekommt Zugriff auf die CPU
▶ Danach holt die CPU die Daten vom Controller und legt sie in den
Speicher
▶ Anschließend wird die CPU dem unterbrochenen Prozess zugewiesen,
der seine Abarbeitung fortsetzen kann
▶ Vorteile:
▶ Die CPU wird nicht blockiert
▶ Gleichzeitige Abarbeitung mehrerer Prozesse wird nicht verlangsamt
▶ Nachteil:
▶ Zusätzliche Hardware (Interrupt-Controller) ist nötig
BTS - Sasshofer 19
Direct Memory Access
▶ Voraussetzung: DMA-Controller
▶ Kann Daten direkt zwischen Arbeitsspeicher und E/A-Gerät
übertragen
▶ Beispiele: HDD/SSD, Soundkarte, Netzwerkkarte, TV-/DVB-Karte
▶ Löst nach der Datenübertragung einen Interrupt aus
BTS - Sasshofer 21
Digitale Datenspeicher
▶ Wahlfreier Zugriff heißt, dass das Medium nicht – wie z.B. bei
Bandlaufwerken – von Beginn an sequentiell durchsucht werden
muss, um eine bestimmte Stelle (Datei) zu finden
▶ Die Köpfe von Magnetplatten oder ein Laser können in einer
bekannten maximalen Zeit zu jedem Punkt des Mediums springen
BTS - Sasshofer 22
Mechanische Datenspeicher
BTS - Sasshofer 23
Magnetische Datenspeicher
BTS - Sasshofer 24
Magneto-optische Datenspeicher
▶ Rotierendes Speichermedium
▶ Wird magnetisch beschrieben
▶ Der Datenträger muss zum Schreiben erhitzt
werden
▶ Erst oberhalb der Curie-Temperatur ist die
magnetische Information änderbar
▶ Vorteil: Unempfindlich gegen Magnetfelder
▶ Das Erhitzen erfolgt via Laserstrahl
▶ Wird optisch ausgelesen
▶ Unterschiedlich magnetisierte Bereiche
reflektieren Licht unterschiedlich
BTS - Sasshofer 25
Elektronischer Datenspeicher
BTS - Sasshofer 26
Speicherpyramide
▶ Primärspeicher und
Sekundärspeicher sind permanent
mit dem Computer verbunden
▶ Vorteil: Geringe Zugriffszeiten
auf gespeicherte Daten
BTS - Sasshofer 27
Arbeitsweise der Speicherhierarchie
▶ Beim ersten Zugriff auf ein Datenelement, wird eine Kopie erzeugt,
die entlang der Speicherhierarchie nach oben wandert
BTS - Sasshofer 28
Cache-Schreibstrategien
Bild: Ein Prozess möchte eine Schreibanweisung abarbeiten. Er schreibt (1) die Daten in den Cache und
übergibt dem Controller die Schreibanweisung. Der Controller meldet (2) sofort das erfolgreiche Schreiben der
Daten an den Prozess. Das Schreiben (3) der Daten auf dem Datenspeicher erfolgt asynchron zur
Schreibanweisung im Prozess
BTS - Sasshofer 29
Register, Cache und Hauptspeicher (1/4)
▶ Register enthalten die Daten, auf die die CPU sofort zugreifen kann
▶ Die Register sind genauso schnell getaktet wie die CPU selbst
Das Bild zeigt eine Intel Mobile Pentium II „Tongae“ 233 MHz CPU mit externem 512 kB L2-Cache.
Der L2-Cache läuft mit halber Taktfrequenz
BTS - Sasshofer 31
Register, Cache und Hauptspeicher (3/4)
▶ Einige
Prozessor-Architekturen
haben einen L4-Cache
▶ Intel Itanium 2 (2003):
64 MB
▶ Einige Intel Haswell
CPUs (2013): 128 MB
BTS - Sasshofer 32
Register, Cache und Hauptspeicher (4/4)
Wiederholung
▶ Bislang haben wir bzgl. Speicher geklärt:
▶ Er nimmt Daten und die auszuführenden Programme auf
▶ Er bildet eine Hierarchie (⇒ Speicherpyramide)
▶ Grund: Preis/Leistungsverhältnis
▶ Je schneller ein Speicher ist, desto teurer und knapper ist er
▶ Beim ersten Zugriff auf ein Datenelement, wird eine Kopie erzeugt,
die entlang der Speicherhierarchie nach oben wandert
▶ Da die obersten Speicherebenen praktisch immer voll belegt sind,
müssen Daten verdrängt/ersetzt werden
▶ Änderungen müssen durchgereicht (zurückgeschrieben) werden
Es ist zu klären:
▶ Speicherverwaltung ⇒ Foliensatz 5
▶ Speicheradressierung ⇒ Foliensatz 5
BTS - Sasshofer 34
BTS 04 - Massenspeicher
H. Sasshofer
BTS - Sasshofer 1
Massenspeicher
in Anlehnung an
den Foliensatz zu Betriebssysteme,
Prof. Dr. Christian Baun
Fachhochschule Frankfurt am Main
BTS - Sasshofer 2
Lernziele dieses Foliensatzes
BTS - Sasshofer 3
Festplatten
BTS - Sasshofer 4
Logischer Aufbau von Festplatten (1/2)
BTS - Sasshofer 5
Logischer Aufbau von Festplatten (2/2)
BTS - Sasshofer 6
Adressierung der Daten auf Festplatten (1/4)
BTS - Sasshofer 7
Adressierung der Daten auf Festplatten (2/4)
BTS - Sasshofer 8
Adressierung der Daten auf Festplatten (3/4)
BTS - Sasshofer 9
Erweitertes CHS – Bessere Erklärung (1/2)
▶ The IDE/ATA standard allows more cylinders than the BIOS does,
and the BIOS allows more heads than IDE/ATA does
▶ Remember: These are logical disk parameters, not physical ones
▶ The BIOS takes the logical geometry that the hard disk specifies
according to the IDE/ATA standard, and translates it into an
equivalent geometry that will „fit“ into the maximums allowed by
the BIOS
▶ This is done by dividing the number of logical cylinders by an
integer, and then multiplying the number of logical heads by the
same number
BTS - Sasshofer 10
Erweitertes CHS – Bessere Erklärung (2/2)
▶ Let’s take the case of a 3.1 GB Western Digital Caviar hard drive, AC33100
▶ This drive actually has a capacity of 2.95 binary GB, and logical geometry of 6,136
cylinders, 16 heads and 63 sectors. This is well within the bounds of the IDE/ATA
limitations, but exceeds the BIOS limit of 1,024 cylinders
▶ The BIOS picks a translation factor such that dividing the logical number of
cylinders by this number will produce a number of cylinders below 1,024
▶ Usually one of 2, 4, 8, or 16 are selected; in this case the optimal number is 8
▶ BIOS divides the number of cylinders by 8 and multiplies the number of heads by 8
▶ This results in a translated geometry of 767 cylinders, 128 heads and 63 sectors.
The capacity is of course unchanged, and the new geometry fits quite nicely into
the BIOS limits
BTS - Sasshofer 11
Adressierung der Daten auf Festplatten (4/4)
BTS - Sasshofer 12
Logical Block Addressing (LBA)
BTS - Sasshofer 13
Zugriffszeit bei Festplatten
BTS - Sasshofer 14
Solid State Drives (SSD)
▶ Nachteile:
▶ Höherer Preis im Vergleich zu Festplatten gleicher Kapazität
▶ Sicheres Löschen bzw. Überschreiben ist schwierig
▶ Eingeschränkte Anzahl an Schreib-/Löschzyklen
BTS - Sasshofer 15
Arbeitsweise von Flash-Speicher
BTS - Sasshofer 16
Daten aus Flash-Speicherzellen lesen
BTS - Sasshofer 17
Daten in Flash-Speicherzellen schreiben
▶ Flash-Speicherzellen
werden durch den
Fowler-Nordheim-
Tunneleffekt beschrieben
BTS - Sasshofer 18
Daten in Flash-Speicherzellen löschen
▶ Um eine Flash-Speicherzelle zu
löschen, wird eine negative
Spannung (-6 bis -20V) am
Control-Gate angelegt
▶ Die Elektronen werden dadurch
in umgekehrter Richtung aus
dem Floating-Gate
herausgetunnelt
BTS - Sasshofer 19
Arbeitsweise von Flash-Speicher
BTS - Sasshofer 20
Unterschiede beim Flash-Speicher
BTS - Sasshofer 21
NOR-Speicher
BTS - Sasshofer 22
NAND-Speicher
▶ Vorteil:
▶ Weniger Datenleitungen ⇒ Benötigt < 50% Fläche von
NOR-Speicher
▶ Herstellung ist preisgünstiger im Vergleich zu NOR-Flash-Speicher
▶ Nachteil:
▶ Kein wahlfreier Zugriff
⇒ Schlechtere Zugriffszeit als NOR-Speicher
▶ Lese- und Schreibzugriffe sind nur für ganze Seiten möglich
▶ Löschoperationen sind nur für ganze Blöcke möglich
BTS - Sasshofer 23
Single/Multi/Triple/Quad-Level Cell
▶ Wear
Leveling-Algorithmen
verteilen
Schreibzugriffe
gleichmäßig
▶ Dateisysteme, die speziell für Flash-Speicher ausgelegt sind, und
darum Schreibzugriffe minimieren, sind u.a. JFFS, JFFS2, YAFFS
und LogFS
▶ JFFS enthält einen eigenen Wear Leveling-Algorithmus *Das ist bei
eingebetteten Systemen häufig nötig, wo Flash-Speicher direkt
angeschlossen wird
BTS - Sasshofer 25
Zugriffszeiten bei Festplatten
▶ Die Geschwindigkeit von Prozessoren, Cache und Hauptspeicher
wächst schneller als die Zugriffsgeschwindigkeit der Festplatten:
▶ Die Zugriffszeit von SSDs ist ≤ 1 µs ⇒ ≈ 100x besser als bei HDDs
▶ Dennoch vergrößert sich der Abstand in Zukunft weiter wegen der
Leistungsgrenzen der Schnittstellen und Mehrkernprozessoren
▶ Weitere Herausforderung
▶ Laufwerke können ausfallen ⇒ Gefahr des Datenverlustes
▶ Zugriffszeit und Datensicherheit bei HDDs/SSDs erhöhen ⇒ RAID
BTS - Sasshofer 26
Redundant Array of Independent Disks (RAID)
BTS - Sasshofer 27
RAID 0 – Striping – Beschleunigung ohne Redundanz
▶ Keine Redundanz
▶ Steigert nur die Datentransferrate
▶ Aufteilung der Laufwerke in Blöcke gleicher Größe
▶ Sind die Ein-/Ausgabeaufträge groß genug (> 4 oder 8 kB), können
die Zugriffe parallel auf mehreren oder allen Laufwerken
durchgeführt werden
BTS - Sasshofer 28
RAID 1 – Mirroring – Spiegelung
BTS - Sasshofer 29
RAID 3 – Byte-Level Striping mit Paritätsinformationen
▶ Jede
Schreiboperation auf
das RAID führt zu
Schreiboperationen
auf das
Paritätslaufwerk
⇒ Flaschenhals
▶ Wurde durch RAID 5
ersetzt
▶ Benutzte Rechenoperation für Parität: XOR (exklusives Oder)
▶ Durch XOR-Verknüpfung aller verbliebenen Blöcke lässt sich der
ausgefallene wieder herstellen
▶ “Degraded”-RAID mit schlechter Performance, bis ausgefallenes
Laufwerk ersetzt wird
BTS - Sasshofer 30
RAID 5 – Block-Level Striping mit verteilten
Paritätsinformationen
BTS - Sasshofer 31
Übersicht über die RAID-Level
BTS - Sasshofer 33
Hardware-/Host-/Software-RAID (1/2)
▶ Hardware-RAID
▶ Ein RAID-Controller mit Prozessor berechnet die
Paritätsinformationen und überwacht den Zustand
▶ Vorteile:
▶ Betriebssystemunabhängigkeit
▶ Keine zusätzliche CPU-Belastungh
▶ Nachteil:
▶ Hoher Preis (ca. € 200)
▶ Host-RAID
▶ Entweder ein preiswerter RAID-Controller oder der
Chipsatz erbringen die RAID-Funktionalität
▶ Unterstützt meist nur RAID 0 und RAID 1
▶ Vorteile:
▶ Betriebssystemunabhängigkeit
▶ Geringer Preis (ca. € 50)
▶ Nachteile:
▶ Zusätzliche CPU-Belastung
BTS - Sasshofer 34
Hardware-/Host-/Software-RAID (2/2)
▶ Software-RAID
▶ Linux, Windows und MacOS ermöglichen das Zusammenschließen
von Laufwerken zu einem RAID auch ohne RAID-Controller
▶ Vorteil:
▶ Keine Kosten für zusätzliche Hardware
▶ Nachteile:
▶ Betriebssystemabhängigkeit
▶ Zusätzliche CPU-Belastung
BTS - Sasshofer 35
Software-RAID unter Linux
▶ Beispiel: RAID 1 (md0) mit den Partitionen sda1 und sdb1 erstellen:
mdadm --create /dev/md0 --auto md --level=1
--raid-devices=2 /dev/sda1 /dev/sdb1
BTS - Sasshofer 36
BTS 05 - Speicherverwaltung
H. Sasshofer
BTS - Sasshofer 1
Speicherverwaltung
in Anlehnung an
den Foliensatz zu Betriebssysteme,
Prof. Dr. Christian Baun
Fachhochschule Frankfurt am Main
BTS - Sasshofer 2
Lernziele dieses Foliensatzes
BTS - Sasshofer 3
Speicherverwaltung
▶ Gibt auch Teile des Speichers frei, die Diese Konzepte sind schon etwas älter
BTS - Sasshofer 4
Konzept 1: Statische Partitionierung
BTS - Sasshofer 5
Statische Partitionierung (1/2)
BTS - Sasshofer 6
Statische Partitionierung (2/2)
BTS - Sasshofer 7
Konzept 2: Dynamische Partitionierung
▶ Jeder Prozess erhält im Hauptspeicher eine zusammenhängende
Partition mit exakt der notwendigen Größe
▶ First Fit
▶ Sucht ab dem Anfang des Adressraums einen
passenden freien Block
▶ Schnelles Verfahren
▶ Next Fit
▶ Sucht ab der letzten Zuweisung einen passenden
freien Block
▶ Zerstückelt schnell den großen Bereich freien
Speichers am Ende des Adressraums
▶ Best Fit
▶ Sucht den freien Block, der am besten passt
▶ Produziert viele Minifragmente und ist langsam
BTS - Sasshofer 9
Konzept 3: Buddy-Speicherverwaltung von Donald Knuth
▶ Zu Beginn gibt es nur einen Block, der den gesamten Speicher
abdeckt
▶ Fordert ein Prozess einen Speicher an, wird zur nächsthöheren
Zweierpotenz aufgerundet und ein entsprechender, freier Block
gesucht
▶ Existiert kein Block dieser Größe, wird nach einem Block doppelter
Größe gesucht und dieser in 2 Hälften (sogenannte Buddies)
unterteilt
▶ Der erste Block wird dann dem Prozess zugewiesen
▶ Existiert auch kein Block doppelter Größe, wird ein Block vierfacher
Größe gesucht, usw. . .
▶ Wird Speicher freigegeben, wird geprüft, ob 2 Hälften gleicher
Größe sich wieder zu einem größeren Block zusammenfassen
lassen
▶ Es werden nur zuvor vorgenommene Unterteilungen rückgängig
gemacht!
Buddy-Speicherverwaltung in der Praxis
Der Linux-Kernel verwendet eine Variante der Buddy-Speicherverwaltung für die Zuweisung der
Seiten
BTS - Sasshofer 10
Beispiel zum Buddy-Verfahren
BTS - Sasshofer 11
Informationen zur Fragmentierung des Speichers
▶ Die DMA-Zeile zeigt die ersten 16 MB im System
▶ Die Adressbusbreite des Intel 80286 ist 224 => 16 MB max.
adressierbarer Speicher
▶ Die DMA32-Zeile zeigt den Speicher > 16 MB und < 4 GB im System
▶ Die Adressbusbreite beim Intel 80386, 80486, Pentium I/II/III/IV,
… ist 232 => 4 GB max. adressierbarer Speicher
▶ Die Normal-Zeile zeigt den Speicher > 4 GB im System
▶ Moderne Systeme haben meist eine Adressbusbreite von 36, 44
oder 48 Bits
BTS - Sasshofer 12
Speicheradressierung
! ! ! Frage ! ! !
Wie greifen Prozesse auf den Speicher zu?
▶ Auf 16 Bit-Architekturen sind 216 Speicheradressen und damit bis
zu
65.536 Byte, also 64 kB adressierbar
▶ Auf 32 Bit-Architekturen sind 232 Speicheradressen und damit bis
zu
4.294.967.296 Byte, also 4 GB adressierbar
▶ Auf 64 Bit-Architekturen sind 264 Speicheradressen und damit bis
zu
18.446.744.073.709.551.616 Byte, also 16 Exabyte adressierbar
BTS - Sasshofer 13
Idee: Direkter Zugriff auf den Speicher
BTS - Sasshofer 14
Real Mode (Real Address Mode)
▶ Betriebsart x86-kompatibler Prozessoren
▶ Kein Zugriffsschutz
▶ Jeder Prozess kann auf den gesamten adressierbaren Speicher
zugreifen
▶ Inakzeptabel für Multitasking-Betriebssysteme
▶ Maximal 1 MB Hauptspeicher adressierbar
▶ Maximaler Speicherausbau eines Intel 8086
▶ Grund: Der Adressbus des 8088/8086 verfügt nur über 20
Adressleitungen
▶ 20 Busleitungen ⇒ 20 Bits lange Speicheradressen ⇒ Die CPU kann
220 = ca. 1 MB Speicher adressieren
▶ Nur die ersten 640 kB (unterer Speicher) stehen für das
Betriebssystem (MS-DOS) und die Programme zur Verfügung
▶ Die restlichen 384 kB (oberer Speicher) enthalten das BIOS der
Grafikkarte, das Speicherfenster zum Grafikkartenspeicher und das
BIOS ROM des Mainboards
▶ Die Bezeichnung „Real Mode“ wurde mit dem Intel 80286
eingeführt
▶ Im Real Mode greift die CPU wie ein 8086 auf den Hauptspeicher zu
BTS - Sasshofer ▶ Jede x86-kompatible CPU startet im Real Mode 15
Real Mode – Adressierung
BTS - Sasshofer 16
Real Mode – Segmentregister seit 8086
▶ DS (Data Segment)
▶ Enthält die globalen Daten des aktuellen Programms
▶ SS (Stack Segment)
▶ Enthält den Stack für die lokalen Daten des Programms
▶ ES (Extra Segment)
▶ Segment für weitere Daten
▶ Ab dem Intel 80386 existieren 2 weitere Segmentregister (FS und
GS) für zusätzliche Extra-Segmente
▶ Die Segmentbereiche realisieren einen einfachen Speicherschutz
BTS - Sasshofer 17
Real Mode bei MS-DOS
BTS - Sasshofer 18
Real Mode bei Microsoft Windows
BTS - Sasshofer 19
Anforderungen an die Speicherverwaltung (1/2)
▶ Relokation
▶ Werden Prozesse aus dem Hauptspeicher verdrängt, ist nicht
bekannt, an welcher Stelle sie später wieder in den Hauptspeicher
geladen werden
▶ Erkenntnis: Prozesse dürfen keine Referenzen auf physische
Speicheradressen enthalten
▶ Schutz
▶ Speicherbereiche müssen geschützt werden vor unbeabsichtigtem
oder unzulässigem Zugriff durch anderen Prozesse
▶ Erkenntnis: Zugriffe müssen (durch die CPU) überprüft werden
▶ Gemeinsame Nutzung
▶ Trotz Speicherschutz muss eine Kooperation der Prozesse mit
gemeinsamem Speicher (Shared Memory) möglich sein ⇒
Foliensatz 10
BTS - Sasshofer 20
Anforderungen an die Speicherverwaltung (2/2)
▶ Vergrößerte Kapazität
▶ 1 MB ist nicht genug
▶ Es soll mehr Speicher verwendet werden können, als physisch
existiert
▶ Erkenntnis: Ist der Hauptspeicher voll, können Daten ausgelagert
werden
▶ Lösung: Protected mode und virtueller Speicher
BTS - Sasshofer 21
Protected Mode (Schutzmodus)
BTS - Sasshofer 22
Virtueller Speicher (1/2)
BTS - Sasshofer 23
Virtueller Speicher (2/2)
BTS - Sasshofer 24
Paging: Seitenorientierter Speicher
▶ Virtuelle Seiten der Prozesse werden auf physische Seiten im
Hauptspeicher abgebildet
▶ Alle Seiten haben die gleiche Länge
▶ Die Seitenlänge ist üblicherweise 4 kb (bei der Alpha-Architektur: 8
kB)
▶ Vorteile:
▶ Externe Fragmentierung is irrelevant
▶ Interne Fragmentierung kann nur in der letzten
Seite jedes Prozesses auftreten
▶ Das Betriebssystemen verwaltet für jeden Prozess eine
Seitentabelle
▶ In dieser steht, wo sich die einzelnen Seiten des Prozesses befinden
▶ Prozesse arbeiten nur mit virtuellen Speicheradressen
▶ Virtuelle Speicheradressen bestehen aus 2 Teilen
▶ Der werthöhere Teil enthält die Seitennummer
▶ Der wertniedrigere Teil enthält den Offset (Adresse innerhalb einer
Seite)
BTS - Sasshofer
▶ Die Länge der virtuellen Adressen ist architekturabhängig (hängt von 25
Zuweisung von Prozessseiten zu freien physischen Seiten
BTS - Sasshofer 26
Adressumwandlung durch die Memory Management Unit
▶ Virtuelle Speicheradressen übersetzt die CPU mit der MMU und der
Seitentabelle in physische Adressen
▶ Das Betriebssystem prüft, ob sich die physische Adresse im
Hauptspeicher, oder auf der SSD/HDD befindet
BTS - Sasshofer 27
Implementierung der Seitentabelle
BTS - Sasshofer 28
Struktur der Seitentabellen (Page Table)
BTS - Sasshofer 29
Adressumwandlung beim Paging (einstufig)
BTS - Sasshofer 31
Warum mehrstufiges Paging?
BTS - Sasshofer 32
Page Fault Ausnahme (Exception) – Seitenfehler
BTS - Sasshofer 33
Access Violation Ausnahme (Exception) oder
▶ Real Mode
▶ Betriebsart x86-kompatibler Prozessoren
▶ Die CPU greift wie ein Intel 8086 auf den Hauptspeicher zu
▶ Kein Zugriffsschutz
▶ Jeder Prozess kann auf den gesamten Hauptspeicher zugreifen
▶ Protected Mode (Schutzmodus)
▶ Moderne Betriebssysteme (für x86) arbeiten im Protected Mode und
verwenden Paging
BTS - Sasshofer 35
Hitrate und Missrate
BTS - Sasshofer 36
Seiten-Ersetzungsstrategien
BTS - Sasshofer 37
Optimale Strategie (OPT)
Die Anfragen sind Anforderungen an Seiten im virtuellen Adressraum eines Prozesses. Wenn eine
angefragte Seite nicht schon im Cache ist, wird sie aus dem Hauptspeicher oder dem
Auslagerungsspeicher (Swap) nachgeladen
BTS - Sasshofer 38
Least Recently Used (LRU)
BTS - Sasshofer 39
Least Frequently Used (LFU)
BTS - Sasshofer 40
First In First Out (FIFO)
BTS - Sasshofer 41
Belady’s Anomalie (1969)
BTS - Sasshofer 42
Clock / Second Chance
Linux, BSD-UNIX, VAX/VMS (ursprünglich von Digital Equipment Corporation) und Microsoft Windows NT 4.0 auf
Uniprozessor-Systemen verwenden Clock oder Varianten davon
BTS - Sasshofer 43
Weitere Ersetzungsstrategien
Die Betriebssysteme IBM OS/390 und Windows NT 4.0 auf SMP-Systemen verwenden die Ersetzungsstrategie Random
Die Intel i860 RISC-CPU verwendet die Ersetzungsstrategie Random für den Cache
BTS - Sasshofer 44
BTS 06 - Dateisysteme
H. Sasshofer
BTS - Sasshofer 1
Dateisysteme
in Anlehnung an
den Foliensatz zu Betriebssysteme,
Prof. Dr. Christian Baun
Fachhochschule Frankfurt am Main
BTS - Sasshofer 2
Lernziele dieses Foliensatzes
BTS - Sasshofer 3
Dateisysteme. . .
BTS - Sasshofer 4
Technische Grundlagen der Dateisysteme
▶ Dateisysteme adressieren Cluster und nicht Blöcke des
Datenträgers
▶ Jede Datei belegt eine ganzzahlige Menge an Clustern
▶ In der Literatur heißen die Cluster häufig Zonen oder Blöcke
▶ Das führt zu Verwechslungen mit den Sektoren der Laufwerke, die in
der Literatur auch manchmal Blöcke heißen
▶ Die Größe der Cluster ist wichtig für die Effizienz des Dateisystems
▶ Je kleiner die Cluster. . .
▶ Steigender Verwaltungsaufwand für große Dateien
▶ Abnehmender Kapazitätsverlust durch interne Fragmentierung
▶ Je größer die Cluster. . .
▶ Abnehmender Verwaltungsaufwand für große Dateien
▶ Steigender Kapazitätsverlust durch interne Fragmentierung
Je größer die Cluster, desto mehr Speicher geht durch interne Fragmentierung verloren
Dateigröße: 1 kB. Clustergröße: 2 kB ⇒ 1 kB geht verloren
Dateigröße: 1 kB. Clustergröße: 64 kB ⇒ 63 kB gehen verloren!
▶ Wird eine Datei angelegt, wird auch ein Inode (Index Node) angelegt
▶ Er speichert die Verwaltungsdaten (Metadaten) einer Datei, außer
dem Dateinamen
▶ Metadaten sind u.a. Dateigröße, UID/GID, Zugriffsrechte und Datum
▶ Jeder Inode hat eine im Dateisystem eindeutige Inode-Nummer
▶ Im Inode wird auf die Cluster der Datei verwiesen
▶ Alle Linux-Dateisysteme basieren auf dem Funktionsprinzip der
Inodes
▶ Auch ein Verzeichnis ist eine Datei
▶ Inhalt: Dateiname und Inode-Nummer für jede Datei des
Verzeichnisses
▶ Arbeitssweise der Linux-Dateisysteme traditionell:
Blockadressierung
▶ Eigentlich ist der Begriff irreführend, weil Dateisysteme immer
Cluster adressieren und nicht Blöcke (des Datenträgers)
▶ Der Begriff ist aber seit Jahrzehnten in der Literatur etabliert
BTS - Sasshofer 6
Blockadressierung am Beispiel ext2/3/4
▶ Jeder Inode speichert die Nummern von bis zu 12 Clustern direkt
BTS - Sasshofer 7
Direkte und indirekte Adressierung am Beispiel ext2/3/4
BTS - Sasshofer 8
Minix
▶ Unix-ähnliches Betriebssystem
▶ Wird seit 1987 von Andrew S. Tanenbaum als Lehrsystem entwickelt
▶ Aktuelle Version: 3.3.0 aus dem Jahr 2014
BTS - Sasshofer 9
Bereiche in einem Minix-Dateisystem
BTS - Sasshofer 10
ext2/3
▶ Die Cluster des Dateisystems werden in Blockgruppen gleicher
Größe zusammengefasst
▶ Die Informationen über die Metadaten und freien Cluster jeder
Blockgruppe werden in der jeweiligen Blockgruppe verwaltet
BTS - Sasshofer 11
Schema der Blockgruppen bei ext2/3
Das Dateisystem FAT wurde 1980 mit QDOS, später umbenannt in MS-DOS,
veröffentlicht
QDOS = Quick and Dirty Operating System
BTS - Sasshofer 13
Bereiche in einem FAT-Dateisystem (1/2)
BTS - Sasshofer 14
Bereiche in einem FAT-Dateisystem (2/2)
BTS - Sasshofer 16
Struktur der Einträge im Stammverzeichnis
BTS - Sasshofer 17
Gefahr von Inkonsistenzen im Dateisystem
BTS - Sasshofer 18
FAT12
BTS - Sasshofer 19
FAT16
BTS - Sasshofer 20
FAT32
BTS - Sasshofer 21
exFAT
BTS - Sasshofer 22
Längere Dateinamen durch VFAT
▶ VFAT ist ein interessantes Beispiel für die Realisierung einer neuen Funktionalität
unter Beibehaltung der Abwärtskompatibilität
▶ Lange Dateinamen (max. 255 Zeichen) werden auf max. 20
Pseudo-Verzeichniseinträge verteilt
▶ Dateisysteme ohne Long File Name Support ignorieren die
Pseudo-Verzeichniseinträge und zeigen nur den verkürzten Namen an
▶ Bei einem VFAT-Eintrag in der FAT, haben die ersten 4 Bits im Feld Dateiattribute
den Wert 1
▶ Besonderheit: Groß/Kleinschreibung wird angezeigt, aber ignoriert
BTS - Sasshofer 23
Kompatibilität zu MS-DOS
▶ VFAT und NTFS speichern für jede Datei einen eindeutigen
Dateinamen im Format 8.3
▶ Betriebssysteme ohne die VFAT-Erweiterung ignorieren die
Pseudo-Verzeichniseinträge und zeigen nur den verkürzten
Dateinamen
▶ So können Microsoft-Betriebssysteme ohne VFAT-Unterstützung auf
Dateien mit langen Dateinamen zugreifen
▶ Problem: Die kurzen Dateinamen müssen eindeutig sein
▶ Lösung:
▶ Alle Sonderzeichen und Punkte innerhalb des Namens werden
gelöscht
▶ Alle Kleinbuchstaben werden in Großbuchstaben umgewandelt
▶ Es werden nur die ersten 6 Zeichen beibehalten
▶ Danach folgt ein ~1 vor dem Punkt
▶ Die ersten 3 Zeichen hinter dem Punkt werden beibehalten und der
Rest gelöscht
▶ Existiert schon eine Datei gleichen Namens, wird ~1 zu ~2, usw.
Beispiel: Die Datei “Ein ganz langer Dateiname.test.pdf” wird unter MS-DOS so dargestellt: EINGAN~1.pdf
BTS - Sasshofer 24
FAT-Dateisysteme analysieren (1/2)
BTS - Sasshofer 25
FAT-Dateisysteme analysieren (2/2)
BTS - Sasshofer 26
Problematik von Schreibzugriffen
BTS - Sasshofer 27
Journaling-Dateisysteme
BTS - Sasshofer 28
Metadaten-Journaling und vollständiges Journaling
▶ Metadaten-Journaling (Write-Back)
▶ Das Journal enthält nur Änderungen an den Metadaten (Inodes)
▶ Nur die Konsistenz der Metadaten ist nach einem Absturz garantiert
▶ Änderungen an Clustern führt erst das sync() durch (⇒ Write-Back)
▶ Der Systemaufruf sync() übertragt die Änderungen im Page Cache,
auch = Buffer Cache genannt, auf die HDD/SDD
▶ Vorteil: Konsistenzprüfungen dauern nur wenige Sekunden
▶ Nachteil: Datenverlust durch einen Systemabsturz ist weiterhin
möglich
▶ Optional bei ext3/4 und ReiserFS
▶ NTFS und XFS bieten ausschließlich Metadaten-Journaling
▶ Vollständiges Journaling
▶ Änderungen an den Metadaten und alle Änderungen an Clustern der
Dateien werden ins Journal aufgenommen
▶ Vorteil: Auch die Konsistenz der Dateien ist garantiert
▶ Nachteil: Alle Schreiboperation müssen doppelt ausgeführt werden
▶ Optional bei ext3/4 und ReiserFS
BTS - Sasshofer 31
Extent-basierte Adressierung
▶ Ergebnis: Weniger
Verwaltungsaufwand
▶ Beispiele: JFS, XFS,
btrfs, NTFS, ext4
BTS - Sasshofer 32
Extents am Beispiel von ext4
BTS - Sasshofer 33
Vorteil von Extents am Beispiel von ext4
BTS - Sasshofer 34
NTFS – New Technology File System
Verschiedene Versionen des NTFS-Dateisystems Aktuelle Versionen von NTFS bieten zusätzlich. . .
existieren ▶ Unterstützung für Kontingente (Quota) ab
▶ NTFS 1.0: Windows NT 3.1 Version 3.x
▶ NTFS 1.1: Windows NT 3.5/3.51 ▶ transparente Kompression
▶ NTFS 2.x: Windows NT 4.0 bis SP3 ▶ transparente Verschlüsselung (Triple-DES und
▶ NTFS 3.0: Windows NT 4.0 ab SP3/2000 AES) ab Version 2.x
▶ NTFS 3.1: Windows XP/2003/Vista/7/8/10
BTS - Sasshofer 36
ReFS (Resilient File System)
BTS - Sasshofer 37
Modernstes Konzept: Copy-On-Write
▶ Beim Schreibzugriff im
Dateisystem wird nicht der Inhalt
der Originaldatei geändert,
sondern der veränderte Inhalt als
neue Datei in freie Cluster
geschrieben
▶ Anschließend werden die
Metadaten auf die neue Datei
angepasst
▶ Bis die Metadaten angepasst sind, bleibt die Originaldatei erhalten
und kann nach einem Absturz weiter verwendet werden
▶ Vorteile:
▶ Die Datensicherheit ist besser als bei Dateisystemen mit Journal
▶ Snapshots können ohne Verzögerung erzeugt werden
▶ Beispiele: ZFS, btrfs und ReFS
BTS - Sasshofer 38
Datenzugriffe mit einem Cache beschleunigen (1/2)
BTS - Sasshofer 39
Datenzugriffe mit einem Cache beschleunigen (2/2)
$ free -m
total used free shared buffers cached
Mem: 7713 6922 790 361 133 1353
-/+ buffers/cache: 5436 2277
Swap: 11548 247 11301
BTS - Sasshofer 40
Fragmentierung
BTS - Sasshofer 41
Defragmentierung (1/3)
BTS - Sasshofer 42
Defragmentierung (2/3)
▶ Singletasking-Betriebssysteme (z.B. MS-DOS)
▶ Es kann immer nur eine Anwendung laufen
▶ Wenn diese Anwendung hängt, weil sie auf die Ergebnisse von Lese-
und Schreibanforderungen wartet, verringert das die
Systemgeschwindigkeit
▶ Multitasking-Betriebssysteme
▶ Es laufen immer mehrere Programme
▶ Anwendungen können fast nie große Datenmengen am Stück lesen,
ohne dass andere Anwendungen ihre Lese- und
Schreibanforderungen dazwischenschieben
▶ Damit sich gleichzeitig laufende Programme nicht zu sehr
gegenseitig behindern, lesen Betriebssysteme mehr Daten ein als
angefordert
▶ Das System liest einen Vorrat an Daten in den Cache ein, auch wenn
dafür noch keine Anfragen vorliegen
Erkenntnis 3: In Multitasking-Betriebssysteme können Anwendungen fast nie große Datenmengen
am Stück lesen
BTS - Sasshofer 43
Defragmentierung (3/3)
BTS - Sasshofer 44
BTS 07 - Prozesse
H. Sasshofer
BTS - Sasshofer 1
Prozesse
in Anlehnung an
den Foliensatz zu Betriebssysteme,
Prof. Dr. Christian Baun
Fachhochschule Frankfurt am Main
BTS - Sasshofer 2
Lernziele dieses Foliensatzes
BTS - Sasshofer 3
Prozess und Prozesskontext
▶ Ein Prozess (lat. procedere = voranschreiten) ist eine Instanz eines Programms, das
ausgeführt wird
▶ Prozesse sind dynamische Objekte und repräsentieren sequentielle Aktivitäten im Computer
▶ Auf Computern sind immer mehrere Prozesse in Ausführung
▶ Die CPU wird bei Multitasking im raschen Wechsel zwischen den Prozessen hin- und
hergeschaltet
BTS - Sasshofer 4
Hardwarekontext
▶ Der Hardwarekontext sind die Inhalte der Register in der CPU zum
Zeitpunkt der Prozess-Ausführung
▶ Register, deren Inhalt bei einem Prozesswechsel gesichert werden
muss:
▶ Befehlszähler (Program Counter, Instruction Pointer) – enthält die
▶ Speicheradresse des nächsten auszuführenden Befehls
▶ Stackpointer – enthält die Speicheradresse am Ende des Stacks
▶ Basepointer – zeigt auf eine Adresse im Stack
▶ Befehlsregister (Instruction Register) – speichert den aktuellen
Befehl
▶ Akkumulator – speichert Operanden für die ALU und deren Resultate
▶ Page-table base Register – Adresse wo die Seitentabelle des
laufenden Prozesses anfängt
▶ Page-table length Register – Länge der Seitentabelle des laufenden
Prozesses
Einige dieser Register wurden in Foliensatz 3 und Foliensatz 5 vorgestellt
BTS - Sasshofer 5
Systemkontext
BTS - Sasshofer 6
Prozesstabelle und Prozesskontrollblöcke
BTS - Sasshofer 7
Prozesswechsel
BTS - Sasshofer 8
Prozesszustände
Frage
Wie viele Prozesszustände braucht ein Prozessmodell mindestens?
BTS - Sasshofer 9
2-Zustands-Prozessmodell
BTS - Sasshofer 10
2-Zustands-Prozessmodell (Implementierung)
Die Priorität (anteilige Rechenleistung) hat unter Linux einen Wert von -20 bis +19 (in ganzzahligen Schritten). -20 ist die höchste
Priorität und 19 die niedrigste Priorität. Die Standardpriorität ist 0. Normale Nutzer können Prioritäten von 0 bis 19 vergeben. Der
Systemverwalter (root) darf auch negative Werte vergeben.
BTS - Sasshofer 11
Konzeptioneller Fehler des 2-Zustands-Prozessmodells
⇒ 3-Zustands-Prozessmodell
BTS - Sasshofer 12
3-Zustands-Prozessmodell (1/2)
▶ bereit (ready):
▶ Der Prozess könnte unmittelbar Instruktionen auf der CPU
ausführen und wartet aktuell auf die Zuteilung der CPU
▶ blockiert (blocked):
▶ Der Prozess kann momentan nicht weiter ausgeführt werden und
wartet auf das Eintreten eines Ereignisses oder die Erfüllung einer
Bedingung
▶ Dabei kann es sich z.B. um eine Nachricht eines anderen Prozesses
oder eines Eingabe-/Ausgabegeräts oder um das Eintreten eines
Synchronisationsereignisses handeln
BTS - Sasshofer 13
3-Zustands-Prozessmodell (2/2)
BTS - Sasshofer 14
3-Zustands-Prozessmodell – Realisierung (1/2)
BTS - Sasshofer 15
3-Zustands-Prozessmodell – Realisierung (2/2)
BTS - Sasshofer 16
5-Zustands-Prozessmodell
BTS - Sasshofer 17
6-Zustands-Prozessmodell
▶ Ist nicht genügend physischer Hauptspeicher für alle Prozesse
verfügbar, müssen Teile von Prozessen ausgelagert werden ⇒
Swapping
▶ Das Betriebssystem lagert Prozesse aus, die im Zustand blockiert
sind
▶ Im
6-Zustands-Prozessmodell
fehlt die Möglichkeit, die
ausgelagerten Prozesse zu
unterscheiden in:
▶ blockierte ausgelagerte
Prozesse
▶ nicht-blockierte
ausgelagerte Prozesse
BTS - Sasshofer 19
Prozessmodell von Linux/UNIX (etwas vereinfacht)
▶ Der Zustand rechnend (running) wird unterteilt in die Zustände. . .
▶ Benutzer rechnend (user running) für Prozesse im Benutzermodus
▶ Kernel rechnend (kernel running) für Prozesse im Kernelmodus
Ein Zombie-Prozess ist fertig abgearbeitet (via Systemaufruf exit), aber sein Eintrag in der
Prozesstabelle existiert so lange, bis der Elternprozess den Rückgabewert (via Systemaufruf wait)
abgefragt hat
BTS - Sasshofer 20
Prozesse unter Linux/UNIX erzeugen mit fork (1/2)
▶ Der Systemaufruf fork() ist die üblicherweise verwendete
Möglichkeit, einen neuen Prozess zu erzeugen
▶ Ruft ein Prozess fork() auf, wird eine identische Kopie als neuer
Prozess gestartet
▶ Der aufrufende Prozess heißt Vaterprozess oder Elternprozess
▶ Der neue Prozess heißt Kindprozess
▶ Der Kindprozess hat nach der Erzeugung den gleichen
Programmcode
▶ Auch die Befehlszähler haben den gleichen Wert, verweisen also auf
die gleiche Zeile im Programmcode
▶ Geöffnete Dateien und Speicherbereiche des Elternprozesses
werden für den Kindprozess kopiert und sind unabhängig vom
Elternprozess
▶ Kindprozess und Elternprozess besitzen ihren eigenen
Prozesskontext
Mit vfork existiert eine Variante von fork, die nicht den Adressraum des Elternprozesses kopiert, und
somit weniger Verwaltungsaufwand als fork verursacht. Die Verwendung von vfork ist sinnvoll, wenn
BTS - Sasshofer
der Kindprozess direkt nach seiner Erzeugung durch einem anderen Prozess ersetzt werden soll. 21
Prozesse unter Linux/UNIX erzeugen mit fork (2/2)
▶ Ruft ein Prozess fork() auf, wird eine exakte Kopie erzeugt
▶ Die Prozesse unterscheiden sich nur in Rückgabewerten von fork()
1 # include <stdio.h>
2 # include <unistd.h>
3 # include <stdlib.h>
4
5 void main () {
6 int rueckgabewert = fork () ;
7
8 if (rueckgabewert < 0) { // -1
9 // Speicher oder Prozesstabelle sind voll
10 }
11 if (rueckgabewert > 0) { // positiv, im Elternprozess
12 // Der Rückgabewert ist die PID des neu erzeugten Kindprozesses
13 }
14 if (rueckgabewert == 0) { // 0
15 // Hat fork () den Rückgabewert 0, sind wir im Kindprozess
16 }
17 }
BTS - Sasshofer 22
Prozessbaum
▶ Durch das Erzeugen immer neuer Kindprozesse mit fork()
entsteht ein beliebig tiefer Baum von Prozessen (⇒
Prozesshierarchie)
▶ Das Kommando pstree gibt die laufenden Prozesse unter
Linux/UNIX als Baum entsprechend ihrer Vater-/Sohn-Beziehungen
aus
$ pstree
init-+-Xprt
|-acpid
...
|-gnome-terminal-+-4*[bash]
| |- bash --- su --- bash
| |- bash -+- gv --- gs
| | |- pstree
| | |- xterm --- bash --- xterm --- bash
| | |- xterm --- bash --- xterm --- bash --- xterm --- bash
| | `- xterm --- bash
| |- gnome-pty-helpe
| `-{gnome-terminal}
|-4*[gv---gs]
BTS - Sasshofer 23
Informationen über Prozesse unter Linux/UNIX
$ ps -aF
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
root 1 0 0 517 700 0 Nov10 ? 00:00:00 init
user 4311 1 0 9012 20832 0 Nov10 ? 00:00:05 xfce4-terminal
user 4321 4311 0 951 1984 0 Nov10 pts/0 00:00:00 bash
root 4380 4347 0 753 1128 0 Nov10 pts/3 00:00:00 su
root 4381 4380 0 920 1972 0 Nov10 pts/3 00:00:00 bash
user 20920 1 0 1127 2548 0 09:45 pts/1 00:00:00 gv SYS_WS0708.ps
user 20923 20920 0 4587 9116 0 09:45 pts/1 00:00:10 gs -sDEVICE = x11
user 21478 4321 0 1570 2996 0 10:28 pts/0 00:00:00 xterm
user 21479 21478 0 950 1936 0 10:28 pts/4 00:00:00 bash
user 21484 21479 0 1993 5036 0 10:28 pts/4 00:00:00 xterm
user 21485 21484 0 949 1936 0 10:28 pts/5 00:00:00 bash
user 21491 21479 0 1569 2872 0 10:29 pts/4 00:00:00 xterm
user 21492 21491 0 949 1924 0 10:29 pts/6 00:00:00 bash
user 21497 21479 0 1570 2880 0 10:29 pts/4 00:00:00 xterm
user 21498 21497 0 949 1924 0 10:29 pts/7 00:00:00 bash
user 21556 21485 0 672 976 0 10:31 pts/5 00:00:00 ps -AF
BTS - Sasshofer 24
Unabhängigkeit von Eltern- und Kindprozess
BTS - Sasshofer 25
Die PID-Nummern von Eltern- und Kindprozess (1/2)
BTS - Sasshofer 26
Die PID-Nummern von Eltern- und Kindprozess (2/2)
▶ Die Ausgabe ist üblicherweise mit dieser vergleichbar:
Vater : PID : 20952
Vater : PPID : 3904
Kind : PID : 20953
Kind : PPID : 20952
BTS - Sasshofer 28
Beispiel zum Systemaufruf exec
$ ps -f
UID PID PPID C STIME TTY TIME CMD
user 1772 1727 0 May18 pts /2 00:00:00 bash
user 12750 1772 0 11:26 pts /2 00:00:00 ps -f
$ bash
$ ps -f
UID PID PPID C STIME TTY TIME CMD
user 1772 1727 0 May18 pts /2 00:00:00 bash
user 12751 1772 12 11:26 pts /2 00:00:00 bash
user 12769 12751 0 11:26 pts /2 00:00:00 ps -f
$ exec ps -f
UID PID PPID C STIME TTY TIME CMD
user 1772 1727 0 May18 pts /2 00:00:00 bash
user 12751 1772 4 11:26 pts /2 00:00:00 ps -f
$ ps -f
UID PID PPID C STIME TTY TIME CMD
user 1772 1727 0 May18 pts /2 00:00:00 bash
user 12770 1772 0 11:27 pts /2 00:00:00 ps -f
▶ Durch das exec hat ps -f die Bash ersetzt und deren PID (12751)
und PPID (1772) übernommen
BTS - Sasshofer 29
3 Möglichkeiten um einen neuen Prozess zu erzeugen
BTS - Sasshofer 30
Spaß haben mit Forkbomben
BTS - Sasshofer 31
Struktur eines UNIX-Prozesses im Speicher (1/6)
BTS - Sasshofer 33
Struktur eines UNIX-Prozesses im Speicher (3/6)
BTS - Sasshofer 34
Struktur eines UNIX-Prozesses im Speicher (4/6)
BTS - Sasshofer 35
Struktur eines UNIX-Prozesses im Speicher (5/6)
BTS - Sasshofer 36
Struktur eines UNIX-Prozesses im Speicher (6/6)
BTS - Sasshofer 37
Wiederholung: Virtueller Speicher (Foliensatz 5)
BTS - Sasshofer 38
Benutzermodus und Kernelmodus
BTS - Sasshofer 39
Systemaufrufe (1/2)
Wir wissen bereits...
Alle Prozesse außerhalb des Betriebssystemkerns dürfen ausschließlich auf ihren eigenen virtuellen
Speicher zugreifen
▶ Ein Prozess gibt die Kontrolle über die CPU an den Kernel ab und ist unterbrochen bis die
Anfrage fertig bearbeitet ist
▶ Nach dem Systemaufruf gibt der Kernel die CPU wieder an den Prozess im Benutzermodus ab
▶ Der Prozess führt seine Abarbeitung an der Stelle fort, an der der Kontextwechsel zuvor
angefordert wurde
BTS - Sasshofer 40
Systemaufrufe (2/2)
▶ Systemaufrufe (System Calls) sind die Schnittstelle, die das
Betriebssystem den Prozessen im Benutzermodus zur Verfügung
stellt
▶ Systemaufrufe erlauben den Prozessen im Benutzermodus u.a.
Prozesse und Dateien zu erzeugen und zu verwalten und auf
Hardware zuzugreifen
Einfach gesagt...
Ein Systemaufruf ist eine Anfrage eines
Prozesses im Benutzermodus an den Kernel,
um einen Dienst des Kernels zu nutzen
BTS - Sasshofer 41
Ein Beispiel für einen Systemaufruf: ioctl()
▶ Mit ioctl() setzen Linux-Programme gerätespezifische Befehle ab
▶ Er ermöglicht Prozessen die Kommunikation mit und Steuerung von:
▶ Zeichenorientierten Geräten (Maus, Tastatur, Drucker, Terminals, . . . )
▶ Blockorientierten Geräten (SSD/HDD, CD-/DVD-Laufwerk, . . . )
▶ Syntax:
ioctl (Filedeskriptor, Aktionsanforderung,
Integer-Wert oder Zeiger auf Daten);
BTS - Sasshofer 44
Schritt für Schritt (2/4) – read(fd, buffer, nbytes);
▶ In 6 wird der
Softwareinterrupt
(Exception) 0x80 (dezimal:
128) ausgelöst, um vom
Benutzermodus in den
Kernelmodus zu wechseln
▶ Der Softwareinterrupt
unterbricht die
Programmausführung im
Benutzermodus und
erzwingt das Ausführen
eines
Exception-Handlers im
Kernelmodus
Der Kernel verwaltet die System Call Table, eine Liste mit allen Systemaufrufen
Jedem Systemaufruf ist dort eine eindeutige Nummer und eine Kernel-interne Funktion zugeordnet
BTS - Sasshofer 45
Schritt für Schritt (3/4) – read(fd, buffer, nbytes);
▶ Der aufgerufene
Exception-Handler ist eine
Funktion im Kernel, die das
Register EAX ausliest
▶ Die
Exception-Handler-Funktion
ruft in 7 die entsprechende
Kernel-Funktion aus der
System Call Table mit den in
den Registern EBX, ECX und
EDX liegenden Argumenten
auf
▶ In 8 startet der
Systemaufruf
BTS - Sasshofer 46
Schritt für Schritt (4/4) – read(fd, buffer, nbytes);
▶ In 9 gibt der
Exception-Handler die
Kontrolle an die Bibliothek
zurück, die den
Softwareinterrupt auslöste
▶ Die Funktion kehrt danach in
10 zum Benutzerprozess so
zurück, wie es auch eine
normale Funktion getan
hätte
▶ Um den Systemaufruf abzuschließen, muss der Benutzerprozess in
11 genau wie nach jedem Funktionsaufruf den Stack aufräumen
▶ Anschließend kann der Benutzerprozess weiterarbeiten
BTS - Sasshofer 47
Beispiel für einen Systemaufruf unter Linux
BTS - Sasshofer 48
Auswahl an Systemaufrufen
BTS - Sasshofer 49
Systemaufrufe unter Linux
BTS - Sasshofer 50
BTS 12 - Distributionen 1
H. Sasshofer
BTS - Sasshofer 1
Distributionen im Überblick
BTS - Sasshofer 2
Teil 1 - Geschichtlicher Hintergrund
BTS - Sasshofer 3
Richard Stallman
BTS - Sasshofer 4
Das GNU Projekt
BTS - Sasshofer 5
FSF - Free Software Foundation
▶ Gegründet 1985
▶ Organisatorischer Sponsor des GNU Projektes
▶ Finanzierung
▶ Mitgliedsbeiträge/Spenden (2013: 99%)
▶ Erträge aus Copyleft-Verletzungen (2009: 30%)
▶ Unterstützung von Firmen und Stiftungen
BTS - Sasshofer 6
Freie Software
BTS - Sasshofer 7
GNU General Public License
BTS - Sasshofer 8
Freie Software
BTS - Sasshofer 9
Exkurs: Freie Software nur für Linux Systeme?
BTS - Sasshofer 10
Exkurs: Urheberrecht/Copyright
▶ Urheberrecht
▶ Alternativ: Copyright (USA)
▶ Recht des Autors an seinem Werk
▶ »automatisch«
▶ Lizenz
▶ Rechte des Benutzers
▶ z.B. Single/Multi-User, Public Domain, Shareware
▶ Creative Commons
BTS - Sasshofer 11
Exkurs: Betriebssystem
▶ Aufgaben:
▶ Verwaltung der HW und SW-Ressourcen (Speicher, Ein- und
Ausgabe, Netzwerk, Dateien, Geräten, Prozesse…)
▶ Schnittstelle zwischen Anwendungen und Hardware
▶ Steuerung der Ausführung der Anwendungsprogramme
▶ Kommunikation mit Benutzern
▶ Benutzer (und manche Hersteller) sehen Standardprogramme oft
auch als Teil des Betriebssystems!
BTS - Sasshofer 12
Exkurs: Betriebssystem
2 wesentliche Teile:
1. Betriebssystem-Kern
(Kernel)
2. Dienst- und
Anwendungsprogramme
BTS - Sasshofer 13
GNU Projekt
BTS - Sasshofer 14
GNU Projekt
▶ Textbasierten Anwendungsprogrammen
▶ Bibliotheken
Freie Software wurde primär auf UNIX Systemen verwendet
KEIN KERNEL
BTS - Sasshofer 15
Linus Torvalds
“I’m doing a (free) operating system (just a hobby, won’t be big and
professional like gnu) for 386(486) AT clones.” (August 1991)
“Software is like sex. It’s better when it’s free.” (November 1993)
BTS - Sasshofer 16
GNU/Linux
▶ Linux Kernel
▶ “Nur” Kernel
▶ Keine Anwendungs-/Dienstprogramme
▶ GNU Software
▶ “Nur” Anwendungs-/Dienstprogramme
▶ Kein Kernel
BTS - Sasshofer 17
TUX
Ein Pinguin als Symbol für Linux, durch einen Wettbewerb 1996
entstanden - auf Anregung von Linus Torvalds
BTS - Sasshofer 18
BTS 13 - Distributionen 2
H. Sasshofer
BTS - Sasshofer 1
Distributionen im Überblick
BTS - Sasshofer 2
Teil 2 – Linux-Distributionen
BTS - Sasshofer 3
Distributionen
▶ Linux ist ja nur ein Kernel, GNU ist (größtenteils) nur Text basierend!
▶ Es fehlen:
▶ grafische Oberfläche
▶ Anwendungsprogramme
▶ Office
▶ Internet (Browser, Mail,…)
▶ Multimedia (MP3, Video,..)
▶ Grafik (Fotoverwaltung, ….)
▶ Spiele
▶ Hilfsprogramme (CD-Brenner,…)
▶ … und es gibt zu viele davon (bei Debian fast 60.000)!!
BTS - Sasshofer 4
Vergleich
BTS - Sasshofer 5
Was ist eine Linux Distribution?
BTS - Sasshofer 6
Einige Distributionen
BTS - Sasshofer 7
Live System auf USB/CD/DVD
BTS - Sasshofer 8
Distribution: Ubuntu Linux
BTS - Sasshofer 9
Mark Shuttleworth
▶ Südafrikanischer Millionär
▶ 2002 erster Weltraumtourist
▶ Gründer und Sponsor von Ubuntu
▶ Firmeninhaber von Canonical
▶ Canonical versendete CDs gratis (bis 04 ’11)
BTS - Sasshofer 10
Ubuntu - Eigenschaften
BTS - Sasshofer 11
Ubuntu Long Term Support
BTS - Sasshofer 12
Ubuntu Installation
BTS - Sasshofer 13
Ubuntu Software-Komponenten
BTS - Sasshofer 14
Eigenschaften von Ubuntu
▶ Ubuntu + KDE
▶ Offizielle Ubuntu-Schiene
(→ Flavours)
▶ Installation und
Vorgehensweise wie Ubuntu
▶ www.kubuntu.org
BTS - Sasshofer 16
xubuntu
▶ Ubuntu + XFCE
▶ Offizielle Ubuntu-Schiene
▶ Installation und
Vorgehensweise wie Ubuntu
▶ www.xubuntu.org
BTS - Sasshofer 17
Linux Mint
▶ Aufbauend auf
Ubuntu-Grundgerüst mit
eigener, eleganter Optik
(Cinnamon, Mate)
▶ Volle Multimedia-
Unterstützung (Codecs,
Plug-Ins…) von Haus aus
▶ Aktuelle Version 20.1
Ulyssa (alphabetisch,
Ubuntu LTS seit 17)
▶ SW/Update-Manager
▶ Flavours (XFCE, KDE) ▶ Apropos → “Mate”
▶ Steigende Beliebtheit
BTS - Sasshofer 18
Distribution: openSUSE
BTS - Sasshofer 19
YaST – Yet another Setup Tool
BTS - Sasshofer 20
YaST – Yet another Setup Tool
BTS - Sasshofer 21
SUSE Linux Produkte
BTS - Sasshofer 22
openSUSE – Die Stärken
▶ KDE
▶ Yast
▶ Gute Hardware-Unterstützung
▶ Gut für Umsteiger, dennoch reich
konfigurierbar
▶ LSB-zertifiziert
▶ Große Software-Auswahl
▶ SUSE-Support-DB/OpenSUSE Wiki
BTS - Sasshofer 23
Distribution: Debian
Gilt als sehr stabil, aber meist älterer Kernel (Buster: 4.19, Bullseye
5.10), Unterstützung aktueller HW nicht immer vorhanden
BTS - Sasshofer 24
Debian Paketanzahl
BTS - Sasshofer 25
Debian Veröffentlichungen
BTS - Sasshofer 26
Debian Architekturen
▶ 64-Bit-PC (AMD64)
▶ 32-Bit-PC (i386)
▶ EABI ARM (inkl. aarch64)
▶ PowerPC
▶ Hard Float ABI ARM
▶ SPARC
▶ Intel Itanium IA-64
▶ MIPS (Little endian)
BTS - Sasshofer 27
Debian Veröffentlichungen
BTS - Sasshofer 28
Debian Lebenszyklen
BTS - Sasshofer 29
Distribution: Fedora / RHEL
BTS - Sasshofer 30
RHEL Releases
BTS - Sasshofer 31
Fedora
BTS - Sasshofer 32
Fedora Einsatzgebiete
BTS - Sasshofer 33
RHEL Derivate
BTS - Sasshofer 34
Distribution: Gentoo Linux
BTS - Sasshofer 35
Paketmanager Portage
▶ Steuerprogramm emerge
▶ Sucht Abhängigkeiten
▶ Lädt Quellcode
▶ Kontrolliert Vollständigkeit des Quellcodes
▶ Lädt patches
▶ Kompiliert
▶ Installiert (incl. Man-Pages)
▶ Anpassung mittels USE-Flags
▶ Nicht versionsorientiert (versionless)
BTS - Sasshofer 36
Distribution: Kali Linux
BTS - Sasshofer 37
Distribution: Damn Small Linux
BTS - Sasshofer 38
Distribution: Alpine Linux
BTS - Sasshofer 39
Nützliche Links
www.ubuntu.com openbook.rheinwerk-verlag.de/ubuntu
www.xubuntu.com www.rheinwerk-verlag.de/openbook
www.kubuntu.org www.fsf.org bzw. www.gnu.org
www.edubuntu.org www.wikipedia.org
www.opensuse.org www.opensource.org
www.redhat.com www.stallman.org
www.knoppix.org lwn.net/Gallery
www.gentoo.org www.debian.org
shop.linupfront.de/product/lxes/ www.damnsmalllinux.org
www.distrowatch.org
BTS - Sasshofer 40
BTS 14 - Shell 1
H. Sasshofer
BTS - Sasshofer 1
Die Kommandozeile unter Linux
BTS - Sasshofer 2
Befehle in der Shell
BTS - Sasshofer 3
Optionen und Argumente
BTS - Sasshofer 4
Allgemeines zu Befehlen
BTS - Sasshofer 5
History
BTS - Sasshofer 6
Wichtige Steuerungszeichen
BTS - Sasshofer 7
Die Unix-Philosophie
BTS - Sasshofer 8
Absolute und relative Pfade
BTS - Sasshofer 9
Verzeichnisse
▶ Aktuelles Verzeichnis: .
▶ Eltern-Verzeichnis des aktuellen Verzeichnisses: ..
▶ Home-Verzeichnis: ~
▶ Kombination mit relativen Pfaden:
▶ ~/Bilder/tux.png
▶ ../irgend/wo/anders/notizen.txt
BTS - Sasshofer 10
Übersicht
▶ ls : Verzeichnisinhalt auflisten
▶ cd : Verzeichnis wechseln
▶ mkdir und rmdir : Verzeichnisse anlegen und löschen
▶ rm : Dateien löschen
▶ mv : Dateien und Verzeichnisse verschieben
▶ cp : Dateien und Verzeichnisse kopieren
BTS - Sasshofer 11
Sonderzeichen in Dateinamen
BTS - Sasshofer 12
Globs
BTS - Sasshofer 13
Beispiele zu Globs
▶ a?c: passt z. B. auf abc, a.c, a?c, a0c, aDc aber nicht auf
adec
▶ a*c: passt z. B. auf abc, a?c, a0c, adec, aaaaaac
▶ a[xyz]c: passt nur auf axc, ayc und azc
▶ a[a-z]c: passt z. B. auf aac, axc, je nach Spracheinstellung
auch Großbuchstaben
▶ a[0-9]c: passt z. B. auf a0c, a3c, a9c
▶ Kombination mehrerer Globs auch möglich:
▶ a[bc][de]f: passt auf abdf, acdf, abef,acef
BTS - Sasshofer 14
ls
BTS - Sasshofer 15
ls
BTS - Sasshofer 16
cd
BTS - Sasshofer 17
mkdir und rmdir
BTS - Sasshofer 18
mkdir und rmdir
▶ Beispiele:
▶ mkdir Dokumente/Studium/Linuxkurs1
▶ Das Verzeichnis „Dokumente/Studium/“ muss existieren
▶ mkdir -p Dokumente/Studium/Linuxkurs1
▶ „Dokumente/Studium/Linuxkurs1“ wird angelegt, existieren seine
Elternverzeichnisse noch nicht werden diese ebenfalls angelegt
▶ rmdir Dokumente/Studium/Linuxkurs1
▶ Verzeichnis „Linuxkurs1“ aus dem Verzeichnis
„Dokumente/Studium/“ löschen
BTS - Sasshofer 19
rm
BTS - Sasshofer 20
rm
BTS - Sasshofer 21
Dateien anlegen
BTS - Sasshofer 22
mv
BTS - Sasshofer 23
mv
▶ Beispiele:
▶ mv geheim unwichtig
▶ Datei „geheim“ in „unwichtig“ umbenennen
▶ mv shell1/ shell2/ Teilnehmer.txt VL/
▶ Verzeichnisse „shell1“ und „shell2“, sowie „Teilnehmer.txt“ in das
Verzeichnis „VL“ verschieben
BTS - Sasshofer 24
cp
BTS - Sasshofer 25
nano
BTS - Sasshofer 26
vi / vim
BTS - Sasshofer 27
Spickzettel
BTS - Sasshofer 28
BTS 15 - Shell 2
H. Sasshofer
BTS - Sasshofer 1
Übersicht - Dateiinhalte anzeigen
BTS - Sasshofer 2
cat
▶ cat („concatenate“): gibt den Inhalt von Dateien direkt auf die
Shell aus
▶ Wichtige Optionen:
▶ -A: nicht darstellbare Zeichen (Tabs, Zeilenumbrüche, etc.) werden
durch Ersatzzeichen dargestellt
▶ Argumente: eine oder mehrere Dateien
▶ Mehrere Dateien werden zusammenhängend ausgegeben
BTS - Sasshofer 3
less
BTS - Sasshofer 4
head
BTS - Sasshofer 5
tail
BTS - Sasshofer 6
Pipes
BTS - Sasshofer 7
Pipes – Beispiele
▶ ls -lha | less
▶ Zeigt alle Dateien, Verzeichnisse und deren Unterverzeichnisse mit
Zusatzinformationen an
▶ Die Ausgabe kann mit less seitenweise betrachtet und durchsucht
werden
▶ tail -n 42 /var/log/syslog | head -n 12 | less
▶ Zeigt von den letzten 42 Zeilen der Datei „/var/log/syslog“ nur die
ersten 12 an
▶ Die Ausgabe kann mit less betrachtet werden
BTS - Sasshofer 8
Ein-/Ausgabe in Dateien
BTS - Sasshofer 9
Ein-/Ausgabe in Dateien
▶ Beispiele
▶ ls -la > liste
▶ Datei liste enthält Auflistung des Inhalts des aktuellen
Verzeichnisses
▶ Wenn die Datei bereits existiert, wird sie überschrieben
▶ ls -la / >> rootliste
▶ Datei rootliste enthält Auflistung des Inhalts des Verzeichnisses
/
▶ Wenn die Datei bereits existiert: Auflistung wird an das Ende der
Datei angefügt
▶ Wenn nicht wird sie angelegt
BTS - Sasshofer 10
Standard-Kanäle
BTS - Sasshofer 11
Standard-Kanäle – Umleitungen
BTS - Sasshofer 12
Umleitungen – Reihenfolge
BTS - Sasshofer 13
Übersicht - Text verarbeiten
BTS - Sasshofer 14
sort
BTS - Sasshofer 15
cut
BTS - Sasshofer 16
cut
▶ Beispiele
▶ cut -d : -f 5 /etc/passwd
▶ Gibt die langen Namen aller Benutzer des Systems aus
▶ ls -lh | cut -c 55I
▶ Gibt alles ab dem 55. Zeichen von ls -lh aus
BTS - Sasshofer 17
wc
BTS - Sasshofer 18
wc
▶ Beispiele
▶ ls -A | wc -l
▶ Gibt die Anzahl der Dateien und Verzeichnisse im aktuellen
Verzeichnis an
▶ wc -w /usr/share/common-licenses/GPL-3
▶ Gibt die Anzahl der Wörter der GPLv3-Lizenz aus
BTS - Sasshofer 19
Spickzettel
BTS - Sasshofer 20
BTS 16 - Pipes Redirection and RegEx
H. Sasshofer
BTS - Sasshofer 1
Command Line Pipes
BTS - Sasshofer 2
Command Line Pipelines
BTS - Sasshofer 3
I/O Redirection
BTS - Sasshofer 4
I/O Redirection Symbols
BTS - Sasshofer 5
The null device
BTS - Sasshofer 6
STDIN or 0
BTS - Sasshofer 7
STDIN from keyboard
BTS - Sasshofer 8
Redirecting STDIN from file
BTS - Sasshofer 9
STDOUT or 1
BTS - Sasshofer 10
Redirecting STDOUT
BTS - Sasshofer 11
Appending STDOUT redirection
BTS - Sasshofer 12
STDERR or 2
BTS - Sasshofer 13
Redirecting STDERR
BTS - Sasshofer 14
Disposing of STDERR
BTS - Sasshofer 15
Working with STDERR and STDOUT
BTS - Sasshofer 16
STDERR and STDOUT Example
BTS - Sasshofer 17
Isolating STDERR
BTS - Sasshofer 18
Isolating STDOUT
BTS - Sasshofer 19
Redirecting Multiple Streams Separately
▶ In the next example, the STDERR output is sent to the crt.err file
and the STDOUT output is sent to the crt.txt file:
BTS - Sasshofer 20
Redirecting Multiple Streams Combined
▶ In this example, both STDOUT and STERR are redirected into the
same file, crt.all:
BTS - Sasshofer 21
Searching with find command
BTS - Sasshofer 22
Syntax of find command
▶ The search option (search_op) is how the search will be done. For
example, use the -name option to search by name.
BTS - Sasshofer 23
Syntax of find command (cont’d)
▶ The search criteria (criteria) is the data to be used with the search
option. So, if the search option was -name, then the search criteria
would be the name of the file to find.
▶ The result option (result) defaults to -print, which will output the
names of the files that are found. Other result options can perform
actions on the files that are found.
BTS - Sasshofer 24
Searching by file name
BTS - Sasshofer 25
Displaying file detail
BTS - Sasshofer 26
Searching by file size
BTS - Sasshofer 27
Useful options for find command
BTS - Sasshofer 28
less Command
BTS - Sasshofer 29
The help screen in less
▶ Once in the less program, pressing the “h” key will display the help
screen:
BTS - Sasshofer 30
less movement commands
BTS - Sasshofer 31
less searching commands
BTS - Sasshofer 32
Filtering with head
▶ The head command displays the first ten lines of a file by default.
▶ The -n option allows for the number of lines to be displayed to be
specified.
BTS - Sasshofer 33
head with negative lines
BTS - Sasshofer 34
Filtering with tail
▶ The tail command displays the last ten lines of a file by default.
▶ The -n option allows for the number of lines to be displayed to be
specified:
BTS - Sasshofer 35
tail with positive lines
▶ If the -n option specifies the number of lines to be displayed with a
plus (+) prefix, then the tail command interprets that to mean to
display from that line number to the end of the file:
▶ The tail command is able to monitor changes a file and print them
out as they occur by using -f option.
▶ System administrators frequently follow log files in order to
troubleshoot system problems.
▶ The user must terminate the tail command when following with
the –f option by using CTRL-C.
BTS - Sasshofer 36
Sorting files or input
▶ The sort command will rearrange its output lines according to one
or more fields you specify for sorting.
▶ Fields are separated by whitespace, although with the –t option,
you can specify the delimiter.
▶ The default fields (keys) to sort are all from the first, but you can use
the -k option to select specific fields
▶ The default sort is in ascending order, but you can use the -r option
to reverse the sorting of a field.
▶ The default sort is a dictionary sort, but you can use the -n option
to make it a numeric sort.
BTS - Sasshofer 37
Example of sort
BTS - Sasshofer 38
File statistics with wc command
BTS - Sasshofer 39
Example of wc command
BTS - Sasshofer 40
Using wc with pipes
BTS - Sasshofer 41
Filtering with cut command
BTS - Sasshofer 42
Example of cut command
BTS - Sasshofer 43
Filtering with grep command
BTS - Sasshofer 44
Common grep options
BTS - Sasshofer 45
Basic Regular Expressions
▶ Basic Regular Expressions (BRE) are able to be used with the grep
command without requiring an option to use them (unlike Extended
Regular Expression show later).
▶ The simplest regular expressions are just alphabetic or numeric
characters that match themselves.
▶ The backslash \ can be used to escape the meaning of regular
expression meta-characters, including the backslash itself.
BTS - Sasshofer 46
BRE: the . example
BTS - Sasshofer 47
BRE: the [ ] example
BTS - Sasshofer 48
BRE: the * example
BTS - Sasshofer 49
BRE: the ^ example
BTS - Sasshofer 50
BRE: the $ example
▶ The $ (dollar sign), when appearing at the end of the pattern, means
that pattern must appear at the end of the line.
▶ The $ not at the beginning of a pattern matches itself.
BTS - Sasshofer 51
BRE: Combining ^ and $
BTS - Sasshofer 52
Extended Regular Expressions
BTS - Sasshofer 53
ERE: the + example
BTS - Sasshofer 54
ERE: the ? example
BTS - Sasshofer 55
ERE: the | example
▶ The | (vertical bar) character will act like an “or” operator between
two regular expressions.
▶ This alternation operator is useful to be able to match multiple
patterns:
BTS - Sasshofer 56
The xargs command
BTS - Sasshofer 57
BTS 17 - File Locations and Links
H. Sasshofer
BTS - Sasshofer 1
Filesystem Hierarchy Standard
BTS - Sasshofer 2
Filesystem Hierarchy Standard
BTS - Sasshofer 3
Filesystem Hierarchy Standard
BTS - Sasshofer 4
Filesystem Hierarchy Standard
BTS - Sasshofer 5
The root (/) hierarchy
BTS - Sasshofer 6
The root (/) hierarchy
BTS - Sasshofer 7
The root (/) hierarchy
BTS - Sasshofer 8
The root (/) hierarchy
BTS - Sasshofer 9
The /usr hierarchy
BTS - Sasshofer 10
The /usr hierarchy
BTS - Sasshofer 11
The /usr/local hierarchy
BTS - Sasshofer 12
The /usr/localhierarchy
BTS - Sasshofer 13
The /var hierarchy
BTS - Sasshofer 14
Organizing within the FHS
BTS - Sasshofer 15
User Home Directories
BTS - Sasshofer 16
User Binary Directories
BTS - Sasshofer 17
System Binary Directories
BTS - Sasshofer 18
PATH and Binary Directories
BTS - Sasshofer 19
Software Application Directories
BTS - Sasshofer 20
Software Application Directories
BTS - Sasshofer 21
Library Directories
▶ Libraries are files that contain code with is shared between multiple
programs.
▶ Using libraries saves disk space and memory as multiple programs
can share them and don’t need a separate copy.
▶ Library file names typically end in “.so” to indicate that they are
”shared objects“.
▶ It is common for a 64 bit system to have both 64 bit and 32 bit
versions of libraries.
BTS - Sasshofer 22
Library Directories
BTS - Sasshofer 23
Variable Data Directories
BTS - Sasshofer 24
Variable Data Directories
▶ While the log files found in /var/log may be extremely helpful for
troubleshooting problems, they might become a problem
themselves if they fill up the filesystem.
▶ Having services like mail and printing available may be useful, but if
they cause your system to crash, then that can be a problem.
▶ Mounting /var on a separate partition is often done as a precaution
to prevent activity under /var from filling up the root filesystem
and crashing the system.
BTS - Sasshofer 25
Hard Links and Symbolic Links
▶ Both hard and soft (also called symbolic) links are useful for
providing alternative names for files and directories.
BTS - Sasshofer 26
Hard Links vs. Symbolic Links
BTS - Sasshofer 27
Understanding the Filesystem
▶ For every file that is created, there is one block of data called an
inode table that stores the meta-information of the file, such as
permissions, ownerships, timestamps and pointers to where the
file’s contents are stored.
▶ The inode table includes almost all information about a file except
the file name.
BTS - Sasshofer 28
Understanding the Filesystem(cont)
BTS - Sasshofer 29
Hard Link Example
passwd 123
shadow 175
group 144
gshadow 897
BTS - Sasshofer 30
Hard Link Example(cont)
passwd 123
mypasswd 123
shadow 175
group 144
gshadow 897
BTS - Sasshofer 31
Hard Links
▶ Every file has at least one hard link to it (for the original file name).
▶ The link count number appears between the permissions and the
user owner in a detailed listing:
$ echo data > file.original
$ ls -li file.*
278 -rw-rw-r--. 1 root root 5 Oct 25 15:42 file.original
▶ The link count will increase by one for each hard link that is added
and decrease by one for each hard link that is removed.
BTS - Sasshofer 32
Creating Hard Links
▶ To create hard links, the ln command is used with the first argument
being an existing file name and the second argument being the new
file name to link to it:
$ ln file.original file.hard.1
$ ls -li file.*
278 -rw-rw-r--. 2 root root 5 Oct 25 15:53 file.hard.1
278 -rw-rw-r--. 2 root root 5 Oct 25 15:53 file.original
▶ Notice that the inode is the same for both files and they both have a
link count of 2.
BTS - Sasshofer 33
Soft Links
BTS - Sasshofer 34
Creating Soft Links
▶ Creating a soft link does not increment the link count on the existing
file.
BTS - Sasshofer 35
Comparing Hard and Soft Links
BTS - Sasshofer 36
Comparing Hard and Soft Links
BTS - Sasshofer 37
Comparing Hard and Soft Links
▶ Hard links:
▶ Can not link to a directory
▶ Can not link a file on one device or partition to a file on another
device or partition
▶ Soft links:
▶ Can link to directory files
▶ Can cross from one device or partition to another
BTS - Sasshofer 38
BTS 18 - User Accounts and Security
H. Sasshofer
BTS - Sasshofer 1
User accounts
BTS - Sasshofer 2
The /etc/passwd file
BTS - Sasshofer 3
The /etc/passwd file
BTS - Sasshofer 4
The /etc/shadow file
BTS - Sasshofer 5
The /etc/shadow file
BTS - Sasshofer 6
Viewing Account Information
BTS - Sasshofer 7
Viewing login information
BTS - Sasshofer 8
System Accounts
BTS - Sasshofer 9
Group accounts
BTS - Sasshofer 10
The /etc/group file
BTS - Sasshofer 11
Changing groups
BTS - Sasshofer 12
Changing the group ownership of an existing file
BTS - Sasshofer 13
Logging in as root
BTS - Sasshofer 14
Using the su command
BTS - Sasshofer 15
Using the sudo command
BTS - Sasshofer 16
Setting up the sudo command
BTS - Sasshofer 17
Using the who command
BTS - Sasshofer 18
Using the w command
BTS - Sasshofer 19
Using the w command
BTS - Sasshofer 20
Creating a Group
BTS - Sasshofer 21
The groupadd Command
BTS - Sasshofer 22
Group ID Considerations
▶ Avoid creating GIDs in the same numeric ranges where you expect
to create user IDs if your system uses UPG (User Private Groups).
▶ Recall that GIDs of under 500 are reserved for system use.
▶ The -r option will assign the new group a GID that will be less than
the lowest standard UID.
BTS - Sasshofer 23
Group Naming Considerations
BTS - Sasshofer 24
Modifying a Group
BTS - Sasshofer 25
Deleting a Group
BTS - Sasshofer 26
The /etc/default/useradd File
BTS - Sasshofer 27
The /etc/default/useradd File
BTS - Sasshofer 28
The /etc/login.defs File
▶ These settings can also only be modified by editing the file directly.
▶ Editing this file required root access.
BTS - Sasshofer 29
The /etc/login.defs File
BTS - Sasshofer 30
Working with Account Information
BTS - Sasshofer 31
Account Considerations
BTS - Sasshofer 32
The useradd Command
▶ The useradd command will allow you to create new users. Example:
useradd -u 1000 -c 'Jane Doe' jane
BTS - Sasshofer 33
Picking a Password
BTS - Sasshofer 34
Setting a Password
BTS - Sasshofer 35
Using the chage Command
BTS - Sasshofer 36
Modifying a User Account
BTS - Sasshofer 37
The usermod Command
BTS - Sasshofer 38
Delete a User
BTS - Sasshofer 39
BTS 19 - Ownership and Permissions
H. Sasshofer
BTS - Sasshofer 1
Viewing Ownership (ls -l)
BTS - Sasshofer 2
Viewing Ownership (stat)
BTS - Sasshofer 3
File Ownership
BTS - Sasshofer 4
Group Ownership
▶ When a file is created, the user’s primary group is the group owner
of the file.
▶ The user can use the chgrp command to change the group owner
of a file the user owns, to a group that the user is a member.
▶ The root user can use the chgrp command to change the group
owner of any file to any group.
▶ While most commands will show a group name as the group owner,
the system actually tracks group ownership by the GID of the group.
BTS - Sasshofer 5
Orphaned Files
▶ If a user is deleted, or has their UID changed, their former UID will
show as the owner of their files.
▶ If a group is deleted, or has its GID changed, the former GID will
shown as the group owner of that group’s files.
BTS - Sasshofer 6
Finding Your Identity
▶ To see the identity of your current account, and the your group
memberships, execute the id command:
[root@localhost ~]$ id
uid=500(root) gid=500(root) groups=500(root),10001(research),10002(develo
BTS - Sasshofer 7
Viewing Group Membership
▶ To list the names of the groups that you have memberships, run the
groups command:
[root@localhost ~]$ groups
root research development
▶ If you are added to a group while logged in, you will have to logout
and back in again in order to see your new group membership
BTS - Sasshofer 8
The newgrp Command
BTS - Sasshofer 9
chgrp
▶ A user can change the group that owns the user’s files to a group
that they belong by using the chgrp command.
▶ The root user can use the chgrp command to change the group
owner of any file to any group or GID.
▶ If the -R option is used with the chgrp command, it will be
recursive, acting upon subdirectories and their contents, as well.
BTS - Sasshofer 10
chown
▶ The chown command can be used by the root user to change the
user owner, the group owner, or both.
▶ Ordinary users can use chown to change the group owner of their
files, but since there is chgrp, there is no need for it.
Examples:
chown user:group <file|directory>
chown user <file|directory>
chown :group <file|directory>
BTS - Sasshofer 11
Permissions
BTS - Sasshofer 12
Viewing Permissions
▶ Based on the above command output, the first ten characters could
be described by the following table:
BTS - Sasshofer 13
Types of Files
BTS - Sasshofer 14
Meaning of Permissions
BTS - Sasshofer 15
Understanding Permissions
▶ Only one of the three sets of permissions will apply when a user
attempts some kind of access on a file:
▶ If you are the user that owns the file, then only the user owner (first
3) permissions apply.
▶ If you are not the user owner, but are a member of the group that
owns the file, the group owner (second 3) permissions apply.
▶ If you are not the user owner and you are a not a member of the
group that owns the file, then the permissions for the “others” (last
3) will apply.
BTS - Sasshofer 16
Importance of Directory Access
BTS - Sasshofer 17
Importance of Directory Access
BTS - Sasshofer 18
chmod Command
BTS - Sasshofer 19
Using chmod symbolically
BTS - Sasshofer 20
chmod symbolic (alter) examples
BTS - Sasshofer 21
Using chmod (set) numerically
BTS - Sasshofer 22
Using chmod numerically
BTS - Sasshofer 23
chmod numeric examples
BTS - Sasshofer 24
Understanding umask
BTS - Sasshofer 25
User umask example
BTS - Sasshofer 26
Root umask example
▶ With a root user umask value of 022, the group and others sets of
permissions have write permission removed.
BTS - Sasshofer 27
Private umask example
▶ With umask value of 077, the group and others sets of permissions
have all permissions removed.
BTS - Sasshofer 28
Using umask
BTS - Sasshofer 29
The setuid Permission
BTS - Sasshofer 30
Files with setuid
▶ A file that has setuid permission properly set will have a lowercase
“s” in the “user owner” execute position, indicating both setuid and
execute permission for the user owner are set:
-rwsr-xr-x
▶ A file which has setuid permission, but lacks execute permission for
the user owner will show an uppercase “S” to highlight that the
permission is not effective:
-rwSr-xr-x
BTS - Sasshofer 31
Using chmod with setuid
BTS - Sasshofer 32
The setgid Permission on a File
BTS - Sasshofer 33
The setgid Permission on a Directory
BTS - Sasshofer 34
Files with setgid
▶ A file that has setuid permission properly set will have a lowercase
“s” in the group owner execute column, indicating both setgid and
execute permission for the user owner is set:
-r-xr-sr-x
▶ A file which has setgid permission, but lacks execute permission for
the group owner will show as an uppercase “S” to highlight that the
permission is not effective:
-r-xr-Sr-x
BTS - Sasshofer 35
Using chmod with setgid
BTS - Sasshofer 36
The sticky bit Permission
BTS - Sasshofer 37
Directories with the sticky bit set
▶ When the sticky bit permission is set, the letter “t” will appear in
the execute column for the others: drwxrwxrwt *Unlike setuid and
setgid, where a capital letter indicated a problem that would
prevent those permissions from working, the presence of an
uppercase letter “T” does not always mean that the sticky bit
permission is not set correctly: drwxrwx--T
▶ If either the group owner or others have execute permission, then it
is possible for the sticky bit permission to work for those accounts.
▶ If only the user owner has execute permission, then it is not
possible for the sticky bit permission to work: drwx------T
BTS - Sasshofer 38
Using chmod with sticky bit
▶ The chmod command can be used to set or remove the sticky bit
permission using either a symbolic or numeric method.
▶ Setting sticky bit where nnn is original permission mode:
▶ chmod o+t dir or chmod 1nnn dir
▶ Removing sticky bit where original mode is 1nnn:
▶ chmod o-t dir or chmod 0nnn dir
BTS - Sasshofer 39
BTS 20 - Jobs and Processes
H. Sasshofer
BTS - Sasshofer 1
Topics
▶ Processes
▶ Definition of a process
▶ Different kinds of processes to manage on a running system
▶ Process Management
▶ process management utilities / commands
▶ managing foreground & background processes
▶ Managed processes
▶ cron daemon
▶ crontab - both file and command
▶ cron system processes
▶ at / atq / atrm
▶ nohup
▶ managing process nice levels
BTS - Sasshofer 2
Process Management
BTS - Sasshofer 3
Processes in Linux
BTS - Sasshofer 4
Processes in Linux
▶ Even thought there might not be any users logged into the system,
no connection the outside world, and no one at the console, there
are ALWAYS processes running in Linux, even if it is only the kernel
and the init or systemd daemon
BTS - Sasshofer 5
Processes in Linux
BTS - Sasshofer 6
Process States
▶ Runnable
▶ on run queue, in effect one of currently executing processes
▶ Sleeping
▶ waiting for event to occur to wake up and react/start up
▶ Stopped
▶ not currently executing, waiting to be killed or restarted
▶ Uninterruptable sleep
▶ cannot be woken until specific expected event
▶ Defunct (zombie) process
▶ just before a process dies, it notifies its parent and waits for an
acknowledgment.
▶ If it never receives it, its PID is not freed up but all other resources
are freed.
▶ Zombies can usually be cleared by rebooting/restarting the system.
BTS - Sasshofer 7
Process Display Commands
▶ ps
▶ displays processes currently running on the system
▶ Many options are available (see man pages, SysV and BSD)
▶ Examples: ps -ef | less or ps aux | less
▶ top / htop
▶ displays processes currently running and some information about
resource usage for each process
▶ free
▶ Displays memory (RAM) and swap usage and by what
▶ vmstat
▶ Displays virtual memory usage and by what
▶ pstree
▶ generates a tree-like structure of process parent/child relationships
BTS - Sasshofer 8
Process Management
BTS - Sasshofer 9
Process Management
BTS - Sasshofer 10
Process control
Note: Killing a parent process may or may not also kill all of its child
processes. Killing a child process is not likely to also terminate its parent
process.
BTS - Sasshofer 11
Foreground / Background
BTS - Sasshofer 12
Background processing
BTS - Sasshofer 13
The cron and anacron daemons
BTS - Sasshofer 14
anacron
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
RANDOM_DELAY=45
START_HOURS_RANGE=3-22
BTS - Sasshofer 15
The crontab File
BTS - Sasshofer 16
The crontab File
BTS - Sasshofer 17
The crontab command
BTS - Sasshofer 18
Scheduling Processes
BTS - Sasshofer 19
Running Processes after logout
▶ Processes running in the background by shell are usually allowed to
continue after logout. Non-redirected output is lost, however.
▶ nohup command
▶ allows for saving this output by appending it to the nohup.out file
in the user’s home directory.
▶ terminals need to shutdown with exit
▶ at time
▶ specifies a time for a set of commands (read from stdin with an
at>prompt; ^D to end) to be run as the user, whether the user is
online or not.
▶ atq
▶ lists pending at jobs for the user (root gets everyone)
▶ atrm at-jobid
▶ removes specific at jobs by job number if owner or root
BTS - Sasshofer 20
The at command
BTS - Sasshofer 21
The at command
BTS - Sasshofer 22
The nohup command
▶ The nohup command can be used to submit jobs you don’t think
can be completed by the time you log out. The process will continue
processing even after you log out.
▶ This can be particularly useful for a long-running tasks and/or when
you can’t wait around while the command executes.
▶ nohup command &is the command structure to accomplish this.
▶ If you DO log out of the terminal, any output from the job will be
redirected to a file called nohup.out in your current directory by
default.
▶ Terminals need to be closed with exit command.
BTS - Sasshofer 23
Process Priority
BTS - Sasshofer 24
The /proc directory
BTS - Sasshofer 25
Process Hierarchy
▶ After the kernel finishes loading, it starts the first process (typically
/sbin/init od systemd) and assigns it the PID of 1.
▶ Each additional process that gets started is assigned a PID in
sequential order.
▶ As /sbin/init or systedm starts up other processes (or other
processes start up processe) they are considered parent processes
and
▶ The processes that were started by the parent processes are called
child processes.
BTS - Sasshofer 26
Process Hierarchy
▶ When the system has been running long enough, it may eventually
reach the maximum PID value, which can be viewed and configured
through /proc/sys/kernel/pid_max.
▶ Once the largest PID is used, the system will “roll over” and resume
by assigning PID values that are available at the bottom of the range.
BTS - Sasshofer 27
Viewing the Process Hierarchy
▶ The pstree command can show the process hierarchy with “text
art”:
BTS - Sasshofer 28
An Example of Process Hierarchy
BTS - Sasshofer 29
The Process (ps) Command
▶ By default, the process (ps) command will only show the processes
running in the current shell.
▶ The ps --forest option will display lines to indicate parent and
child relationships, similar to the pstree command.
▶ The ps command accepts three kinds of options:
▶ Traditional Unix options given with a single dash
▶ BSD Unix options given without any dash
▶ GNU long options given with two dashes
BTS - Sasshofer 30
Viewing All Processes
BTS - Sasshofer 31
The top Command
BTS - Sasshofer 32
Controlling top
BTS - Sasshofer 33
Load Averages
▶ Similar to the output of the uptime command, the first line of output
from the top command shows the current time, the amount of time
the system has been running and three averages of the load on the
system.
▶ The one, five and fifteen minute load averages give the
administrator an idea of the current load and how it has been
trending over recent time.
BTS - Sasshofer 34
Load Averages
BTS - Sasshofer 35