Grundlagen
- Ein Betriebssystem (operating system) ist das Bindeglied zwischen der Hardware und dem Anwender bzw. dessen Anwendungsprogrammen.
- Gleichzeitig bietet es dem Benutzer zahlreiche Dienste (Programme, Kommandos) an, die zusammen mit den Eigenschaften des Computers "die Grundlage der möglichen Betriebsarten dieses Systems bilden und insbesondere die Abwicklung von Programmen steuern und überwachen (nach DIN 44300).
Betriebssystem = Dienstleistungs und Verwaltungseinrichtung
Teil der Systemsoftware (mit Organisations-,Dienst- und Übersetzungsprogrammen wie Compiler, Debugger, Editoren, grafische Benutzeroberflächen (GUI), Hilfsprogramme/Tools zum Suchen, Sortieren, Kopieren, zur Installation/Konfiguration, usw.)
bietet die Plattform zur Entwicklung und Ausführung von Anwendungsprogrammen
abstrahiert die reale (beschränkte) Hardware ("virtuelle Maschine")
- Ziele beim Einsatz eines Betriebssystems sind z.T. widersprüchlich, z.B.:
- optimale Ausnutzung (beschränkter) Ressourcen
- <=>
- Erfüllung spezieller Nutzeranforderungen
Aufgaben eines BS (abhängig vom Einsatzgebiet):
- Anpassung der Hardware-Möglichkeiten an die Bedürfnisse der Nutzer
- Organisation und Steuerung des Betriebsablaufs
- Verwaltung und ggf. Zuteilung von (begrenzt verfügbaren) Ressourcen
- Kontrolle und Durchsetzung von Schutzmaßnahmen
- Nachweisführung über alle relevanten Abläufe
Betriebsarten von Computern
- = Art und Weise der Kommunikation mit dem Benutzer
- -> Antwortzeit = Auftragserteilung ... Diensterfüllung
Klassifikation von Betriebssystemen:
- Stapelverarbeitung (batch processing)
- BS bearbeitet Aufträge in Form von Jobs (Programm, Daten und Anweisungen und Anwendungen zur Ablaufsteuerung) "irgendwann", im allgemeinen ohne Interaktion
- Antwortzeit des BS praktisch unbegrenzt
- Beispiele: IBMz/OS, IBM i/OS, Siemens BS 2000
- auch bei anderen BS in form von Skripts (Linux: Shell-Skripts, Windows: Power Shell)
- Dialogbetrieb (interactive processing)
- BS steht direkt oder über eine Anwendung im Dialog mit dem Benutzer, dieser bestimmt den Arbeitsablauf, dabei Wechsel zwischen Aktionen des Systems und solchen des Benutzers
- max. Antwortzeit als Mittelwert (!)
- Beispiele: MS-DOS, MS-Windows; UNIX/Linux,...
- Echtzeitbetrieb (real time processing)
- BS erhält im Allgemeinen aus einer technischen Umgebung seine Aufträge zur Überwachung, Steuerung/Regelung des Systems, daher muss die Antwortzeit immer (!) unter einem Grenzwert liegen (Rechtzeitigkeit!, Zeitschranken)
- Beispiele: VXWorks, VRTX, LynxOS, Windows CE/embedded, QNX; ... speziell im Automobilbau: OSEK/VDX, AUTOSAR;
- Verteilte Verarbeitung im Netzwerk (distributed processing)
- BS unterstützt Verteilung von Daten, Ressourcen und Arbeitslast über ein Netzwerk. Unterscheidung nach Art der Kopplung und Leistung des Betriebssystems auf jedem Prozessor:
- (klassische) verteilte Betriebssysteme, z.B. Amoeba, CHORUS, MACH
- Netzwerk- (oder Cluster- bzw. Server-)Betriebssysteme, z.B. Novell Netware, MS Windows Server-Versionen, UNIX/Linux
- spezielle Parallelrechner-Betriebssysteme, z.B. UNICOS, SPP-UX
- mobile Computing
- Besonderheiten: Ressourcenbegrenzung (Energie!), Unterstützung für spezielle I/O (multitouch) und drahtlose Kommunikation
- Beispiele für BS zum mobile Computing: SymbianOS, PalmOS, MeeGo, Windows Mobile, iOS, Android,...
Anzahl der Benutzer, deren Aufträge zur selben Zeit von diesem System bedient werden können:
- Einzelnutzer-Systeme (single user systems):
- Nur ein Nutzer kann (für eine gewisse Zeit) am betreffenden System arbeiten (keine Identifikation mehrerer Benutzer).
- Beispiele: MS-DOS, MS-Windows 3.x/95/98
- Mehrnutzer-Systeme (multi user systems):
- BS kann zum gleichen Zeitpunkt Aufträge von mehreren Benutzern entgegennehmen, z.B. über Netzwerk.
- →Identifizierung/Verwaltung von Benutzern, Zugriffsrechte nötig! Beispiele: UNIX/Linux; OpenVMS; IBM z/OS, IBM I/OS; Siemens BS 2000;
Anzahl der Aufträge, die ein Betriebssystem (nahezu) gleichzeitig entgegen nehmen und bearbeiten kann:
- Einzelprozess-System (single tasking system):
- Zu einem Zeitpunkt kann nur ein einziger Auftrag durch das System bearbeitet werden, ein neuer Auftrag erst nach Ende des aktuellen.
- Beispiel: MS-DOS
- Mehrprozess-System (multi tasking system):
- BS kann jederzeit mehrere verschiedene Aufträge verwalten und parallel (oder quasi-parallel, zeitlich verschachtelt) bearbeiten..
- Beispiele: MS Windows 95/98/CE/NT/2000/XP/Vista/7/8/10...; UNIX/Linux;
- IBM z/OS, IBM i/OS, OS/2; Siemens BS 2000; Echtzeitbetriebssysteme
- → "Verfeinerung" dieses Prinzips beim multi-threading.
Eigenschaften von Linux
- (präemptives) Multitasking-System
- (quasi-) gleichzeitige Abarbeitung mehrerer Programme (Prozesse/Tasks)
- Multiuser-System
- (mehrere Nutzer können gleichzeitig mit dem System arbeiten)
- netzwerkfähig seit ca. 1983 (Internet-Protokolle)
- grafische Oberfläche auf der Basis des X-Window-Systems (Windowmanager. mwm, blackbox, twm,... GUE KDE, GNOME, XFCE, WindowMaker, ...)
- zahlreiche unterstützte Prozessorfamilien (intel, AMD, IBM...)
- mehrere Shells wählbar (in Linux oft: bash)
- Überblick zu UNIX-Distributionen (vgl. distrowatch.com)
- mehr als 100 Distributionen (Linux, BSD, Solaris)
- wichtige Linux-Distributionen:
- Debian
- Ubuntu/Kubuntu
- SuSE
- Fedora Mandriva
- Mint
Kommandozeilenformat der Shell
- Shell-Prompt:
$(fürsh, ksh, bash)
- meist angepasster Prompt,
- z.B.
user@host:path$ ameier@pc-8-103-16:/home/ameier$_
- z.B.
$kommando option(en) argument(e)kommando: steht für beliebiges Kommando/Programmoption(en): dienen optional zur Spezifizierung der Wirkung des Kommandos- argument(e): stehen für optionale Argumente
- Bsp.: Kommando
ls("list files") $ ls # Aufruf von ls ohne Optionen/Argumente$ ls -a -l # mit 2 einzelnen Optionen in Kurzform$ ls -long # mit 1 Option in Langform$ ls -al # mit 2 zusammengefassten Optionen in Kurzform$ ls -al mydir # mit 2 zusammgenfügten Optionen + 1 Argument (Verzeichnis)
Online-Hilfe für Linux/UNIX-Kommandos:
- Handbuch-Seiten ("manual pages")
- Anzeige mittels Kommando
man Befehlsname - Bsp.:
man ls-> (zeigt Handbuchseiten zum Kommandolsan)- Beenden der Seitenanzeige mittels
q(=quit)
- Anzeige mittels Kommando
- Informationsseiten von Linux (,,info pages" mit Hypertext-Verlinkung)
- Anzeige mittels
infoBefehlsname - Navigation mittels Cursortasten, TAB, Leertaste und Tastenkürzeln
- Bsp:
info ls(zeigt Info-Seiten zum Kommandolsan) - Beenden des Infosystems mittels
q
- Anzeige mittels
- mit
manverwandte (ältere) Kommandos: aproposwort -> listet alle Kommandos auf, in denen wort vorkommtwhatiswort zeigt Kurzbeschreibung zu wort an
UNIX-Philosophie: „alles ist Datei“ (keine Unterscheidung von Geräten)
- Datenquellen liefern Byteströme (-> Lesen aus einer Datei)
- z.B. Datei auf Festplatte oder CD, Tastatur (Konsole), Netzwerkverbindung
- Datensenken nehmen Byteströme auf (-> Schreiben in eine Datei)
- z.B. Datei auf Festplatte, Bildschirm (Konsole), Netzwerkverbindung
- Dieses Grundprinzip wurde auch von anderen Betriebssystemen übernommen (z.B. MS-DOS, Windows, MacOS).
Datei-Arten unter UNIX/Linux
- a) gewöhnliche Dateien (regulary files):
- beliebige (Anwendungs-)Daten und ausführbare Programme, auch Archive usw.
- b) Verzeichnisse (directories):
- Ordner, enthalten Dateien und (Unter-) Verzeichnisse
- c) Geräte(beschreibungs-)dateien („special files“):
- zum direkten Zugriff auf Geräte, block- oder zeichenorientiert
z.B. /dev/hda, /dev/tty/, /dev/USB0
- zum direkten Zugriff auf Geräte, block- oder zeichenorientiert
- d) Softlinks, symbol. Links:
- enthalten Verweise auf andere Dateien (Achtung: es gibt auch sog. Hardlinks, diese sind jedoch keine eigenen Dateien, sondern nur weitere Namen für eine bestehende Datei!)
- e) Named Pipes:
- „Datenröhren“ zwischen zwei Anwendungen/Kommandos arbeiten nach dem FIFO-Prinzip (First-In-First-Out), eingespeiste Daten werden durch das Lesen „verbraucht“
- f) Sockets:
- „Kommunikationssteckdosen“ (-schnittstellen) zum bidirektionalen
(full duplex) Datenaustausch, z.B. via Netzwerkverbindung
- „Kommunikationssteckdosen“ (-schnittstellen) zum bidirektionalen
- Externe Speicher (Festplatten, CD/DVD, Speicherkarten, USB-Sticks...) enthalten ein Dateisystem (sind formatiert)
- --> viele Linux-Dateisysteme: ext2fs, ext3fs, ext4fs, reiserfs,
- --> weitere Dateisysteme: xfs (IRIX), jfs (AIX), ...
- Direkter Zugriff (via Bytestrom unter Umgehung des Dateisystems) auf ein Speichergerät ist über Gerätedateien (special files) möglich:
- z.B. Linux:
/dev/hda-> erste IDE-Festplatte/dev/hda1-> erste Partition der ersten IDE-Festplatte/dev/sda-> erste SCSI- oder SATA-Festplatte
- „Dateisystem-Image“ (= komplettes Abbild eines Dateisystems von einem Speichergerät)
- „Montieren“ (
mount) eines Dateisystems (später) .name-> versteckte Dateien/Ordner
- unterscheiden Groß- und Kleinschreibung
- sind maximal 255 Zeichen lang
- prinzipiell dürfen beliebige Zeichen außer / verwendet werden
- beginnt der Dateiname mit einem Punkt, wird die Datei versteckt (d.h. im Allgemeinen nicht als Bestandteil eines Verzeichnisses angezeigt)
- Achtung: Folgende Zeichen sollten in Dateinamen nicht verwendet werden:
- Leerzeichen
- Tabulator
- Zeilenende
- * ? " ' `
- Umlaute
- andere Sonderzeichen
- Dateien werden in baumförmigen Verzeichnissen angeordnet,
- --> es gibt untergeordnete (Kind-) bzw. ein übergeordnetes (Eltern-) Verzeichnis
- Es gibt keine Laufwerke!
- Wurzel des Verzeichnisbaumes ist das Root-Verzeichnis (Abk. / )
- Abk. für aktuelles (Arbeits-)Verzeichnis:
. - Abk. für übergeordnetes (Eltern-)Verzeichnis:
..
- In Dateinamen dürfen folgende „Muster“ unter Verwendung von „Wildcards“, „Jokerzeichen“ („Platzhaltern“) benutzt werden:
*steht für eine beliebige Zeichenfolge?steht für genau ein beliebiges Zeichen[ ]steht für genau eines der in den Klammern eingeschlossenen Zeichen, z.B. [aAbB] steht für a oder A oder b oder B es können auch Bereiche angegeben werden, wie [a-z][!]steht für genau ein Zeichen, das nicht in den Klammern angegeben ist, wie [!aA] für alle Zeichen außer a oder A
dat.*bild?.gifprog[123].txt
Vollständige Kennzeichnung einer Datei im Dateibaum mittels Pfadname:
- = Pfad zur Datei, besteht aus Verzeichnisfolge (jeweils mit Trennzeichen /) und abschließendem Dateinamen
- Verzeichnisfolge kann gebildet werden als:
- absoluter Pfad: Pfadangabe beginnt stets mit dem Wurzelverzeichnis /
- relativer Pfad: bezieht sich auf das z.Zt. aktuelle (Arbeits-)Verzeichnis und beginnt daher im aktuellen Verzeichnis
- Bsp: Browser "Opera" befindet sich im Verzeichnis
/usr/bin- akt. Verzeichnis sei:
/usr/lib - absoluter Pfad zu Opera:
/usr/bin/opera - relativer Pfad zu Opera:
../bin/opera
- akt. Verzeichnis sei:
Kommandos zur Arbeit mit Dateisystemen
pwd: zeigt den Pfadnamen des aktuellen (Arbeits-)Verzeichnisses anmkdirverzeichnis: legt ein neues Verzeichnis anrmdirverzeichnis: löscht ein Verzeichniscdverzeichnis: wechselt in das Verzeichnis (-> neues Arbeitsverzeichnis)lsverzeichnis: Anzeige des Inhalts des Verzeichnissesls -averzeichnis zeigt alle (auch versteckte) Dateien anls -lverzeichnis zeigt Informationen in Langform an
- Kennzeichen der Datei-Arten bei Anzeige mittels Kommando
ls -l(= 1. Zeichen jeder angezeigten Zeile) - Bsp:
-rw-r--r-- 1 meier staff 108980 2014-09-02 12:36 show.odp
-
Kennzeichen Bedeutung (Datei-Typ) - gewöhnliche Datei d Verzeichnis ( directory)c Gerätedatei, zeichenorientiert b Gerätedatei, blockorientiert l symbolischer (Soft-) Link p named Pipe s (lokaler Socket)
- wegen der Multi-User Eigenschaft von UNIX/Linux sind Zugriffsrechte nötig!
- Zugriffsrechte werden getrennt festgelegt für folgende Benutzerklassen:
- den (alleinigen) Besitzer der Datei (user)
- die anderen Mitglieder seiner Benutzergruppe (group) für diese Datei
- alle sonstigen Benutzer (others = „Rest der Welt“)
- Zugriffsrechte beziehen sich auf folgende Aktionen:
- Lesen (read)
- Schreiben (write)
- Ausführen/Starten (execute)
Bedeutung der Zugriffsrechte für Dateien (außer für Verzeichnisse!):
- Leserecht r: Der Inhalt der Datei darf gelesen (angezeigt, kopiert, ...) werden
- Schreibrecht w: Der Inhalt der Datei darf geändert (überschrieben, erweitert, auf die Länge Null gekürzt) werden
- Ausführungsrecht x: Die Datei darf (sofern möglich) als Programm gestartet bzw. ausgeführt werden
- Leserecht r: Der Inhalt des Verzeichnisses darf gelesen werden, d.h. die Namen/Eigenschaften der enthaltenen Dateien dürfen angezeigt werden
- Schreibrecht w: Der Inhalt des Verzeichnisses darf geändert werden, d.h. es dürfen Dateien neu angelegt, umbenannt oder gelöscht werden
- Ausführungsrecht x: da man ein Verzeichnis nicht ausführen/starten kann, hat das x-Recht hier eine andere Bedeutung: Das Verzeichnis darf „betreten“ werden (d.h. es darf in einem Pfadnamen verwendet werden), die darin enthaltenen Dateien dürfen benutzt werden

Darstellung der Rechte entweder symbolisch (
r w x) oder als Oktalzahlengruppe:| Symbol: | r | w | x |
|---|---|---|---|
| (Oktal-)Wert: | 4 | 2 | 1 |
Bedeutung der „Spezialbits“
suid= „set UID on execution“,- das betreffende Programm läuft effektiv mit den Rechten des Besitzers dieser Programmdatei
sgid= „set GID on execution“,- das betreffende Programm läuft effektiv mit den Gruppenrechten dieser Programmdatei
sticky= „save text image“,- das Programm verbleibt nach Beendigung im Speicher (veraltet) für Verzeichnisse hat das sticky-Bit eine andere Bedeutung:
- Dateien im Verzeichnis können nur vom Besitzer der Datei, vom Besitzer des Verzeichnisses oder vom Administrator (Superuser) entfernt oder umbenannt werden.
suid: s bei gesetztem, S bei rückgesetztem Ausführungsrecht für den Besitzersgid: s bei gesetztem, S bei rückgesetztem Ausführungsrecht für die Gruppesticky: t bei gesetztem, T bei rückgesetztem Ausführungsrecht für Rest der Welt
Änderung der Zugriffsrechte
-> Kommando:
chmod rechte datei(en)- Variante 1 : numerische Angabe der neu zu setzenden Rechte (zur Erinnerung: drei/vier Oktalstellen für
sgt rwx rwx rwx)- z.B.:
chmod 755 xyz.sh abc.shchmod 4711 passwdchmod 700 ..chmod 722 ./a/a1/dat.x
- Variante 2 : symbolische Angabe der Rechte
zur Erinnerung:
-= kein Rechtu= user (Dateibesitzer)g= group (Benutzergruppe)o= others (Rest der Welt)a= all (alle zusammen)r= read (lesen)w= write (schreiben)x= execute (ausführen)X= x nur für Verzeichnisses= suid-Bit,g= sgid-Bit,t= sticky-Bit- Operationen:
+(hinzufügen),-(entziehen),=(setzen)
-> Kommando: chown owner[.group] datei(en)
- Welche initialen/Anfangs-Rechte erhalten neu angelegte Dateien?
- Standard:
rwx rwx rwx(Ausnahme: bei ASCII-Textdateien:rw- rw- rw-) - Einstellung der Anfangsrechte kann mittels Kommando
umaskgeändert werden! - -> Definition einer „benutzereigenen Dateierzeugungsmaske"
- Diese Maske legt fest, welche Rechte beim Anlegen der Datei NICHT gewährt werden, damit können die initialen Standard-Rechte eingeschränkt werden

- Diese Maske legt fest, welche Rechte beim Anlegen der Datei NICHT gewährt werden, damit können die initialen Standard-Rechte eingeschränkt werden
- Achtung:
umaskwirkt nur auf danach neu erzeugte Dateien!!! - Vergleich:
chmodwirkt nur auf bereits vorhandene Dateien! - Aktuelle Dateierzeugungsmaske anzeigen:
umask(ohne Parameter)
- Ein Auftrag
- löst einen Arbeitsvorgang im Betriebssystem aus.
- wird z.B. durch Kommandoeingabe oder Interrupt (externes Signal) erzeugt.
- löst einen Arbeitsvorgang im Betriebssystem aus.
- Ein Programm
- ist eine statische, durch einen Algorithmus bestimmte Folge von Anweisungen in einer Programmiersprache + benötigte Dateien
- ist im Allgemeinen als Datei gespeichert.
- schreibt vor, was wie zur Erfüllung des Auftrags zu tun ist.
- ist eine statische, durch einen Algorithmus bestimmte Folge von Anweisungen in einer Programmiersprache + benötigte Dateien
