Rechnerorganisation, WS 2001/02

Martin Steffen

Wintersemester 2001/02

1   Funktionsweise auf Aufbau von Rechnern

Inhalt Geschichtliches ·von Neumann Architektur ·CPU ·Speicher und Speichergrößen
Geschichte des Computers
Prinzipien der Von Neumann-Architektur




Prinzipien des Rechners wurden bereits früh formuliert: John von Neumann:

Ein Computer besteht aus Steuerwerk, Rechenwerk, Speicher, und den Ein-/Ausgabegeräten Steuerwerk = CPU. Rechenwerk = ALU, Croprozessoren, verschiedene Speicher ebenen.
Die Struktur des Computers muß unabhängig vom zu bearbeiteten Problem sein  
Im Speicher befinden sich Daten und das Programm Heute meist mehrere Programme gleichzeitig
Der Speicher ist in Zellen gleicher Größe unterteilt und fortlaufend nummeriert gilt im wesentl. unverändert (virtuelle Adressierung)
Das Programm besteht aus einer Folge von Befehlen, die nacheinander aufgeführt sind. Die Ausführung eines Sprunges kann von gespeicherten Werten abhängig gemacht werden  
Die Maschine benutzt Binärcodes.  

Schematische Architektur
architektur,height=10cm,clip=

CPU
Speicherhierarchie (abstrakt)
Speicherhierarchie
Bits und Bytes
1 bit = ``binary digit'' = 0 oder 1
Byte = 8 Bit
1 KByte = 1024 Bytes (ca. 1000 bytes)
1 Megabyte (MB) = 1 048 576 Bytes (ca. 1 Mio bytes)
1 Gigabyte (GB) = 1 073 741 824 Bytes
  :

Speicherkapazitäten
Medium Kapazität (ca.)
1 Schreibmaschinenseite 2 KB
Diskette (``Floppy'') 1 MB
Hauptspeicher 100MB
Festplatte 1 GB
Magnetband 2 GB und mehr
Audio-CD/CD-Rom ca. 1GByte
DVD 20 Gbyte
Menschl. Gehirn 1015 Bytes (geschätzt)

Hard/Software im System


2   Betriebssystem

Inhalt Aufgaben ·Geschichte ·Begriffsklärung
Aufgaben des Betriebssystems
Geschichte der Betriebssysteme


Multitasking/Multiuser/Timesharing

3   Dateisystem

Inhalt Dateien und Dateiformate ·Organisation ·spezielle Verzeichnisse ·Navigation durch die Struktur ·Veränderung der Verzeichnisstruktur ·Rechte und Privilegien
Dateien
Dateiformate

Extension Kürzel Erklärung Viewer/Bearbeitungsprogramm
*.txt ASCII einfachstes Textformat jeder Editor
*.html, *.htm hypertext markup lang. WWW-Dokumente Browser/Editor
*.ps Postscript Dokumente, wird von Druckern verarbeitet ghostview, gv
*.pdf port. document format Dokumente acroread
*.tex LATEX (oder TeX)
*.dvi ``device independant'' Ergebnis eines LATEX-Textes xdvi
*.jpg, *.gif   zwei bekannte Bildformate, es gibt noch viele mehr xv
*.fig   Zeicheneditorformat xfig
*.gz *.Z   komprimierte Datei (mit Hilfe von gzip oder compress dekomprimieren: gunzip
*.tar ``tape archive'' Archiv tar

Table 1: Häufige Dateiformate und ihre Extensionen


Organisation der Dateien: der Verzeichnisbaum
Typische Struktur eine Verzeichnisbaumes
verzeichnisbaum,height=10cm,clip=

Homeverzeichnis
Arbeitsverzeichnis
Absolute und relative Pfadnamen


Einfache Orientierung & Navigation
  • Wo bin ich?: pwd13 zeigt den absoluten Pfad des Arbeitsverzeichnisses
  • Inhalt eines Verzeichnisses?: ls <verzeichnis>14
  • Abkürzung: nur ls: listet das aktuelle Arbeitsverzeichnis
  • Wechsel des Verzeichnisse: cd15
    cd <verzeichnis>
    • Abkürzung: cd = cd ~ = in's Homeverzeichnis wechseln
Veränderung der Dateistruktur
  • Anlegen von neuen Dateien: meist mittels allgemeiner/spezieller Editoren
  • Auf dem Übungszettel: ein paar einfache Möglichkeiten zur Dateierzeugung
  • Achtung! Nach dem Löschen sind die Daten weg
Befehl Beispiel Erklärung
cp   Kopieren
  cp <datei1> <datei2>  
  cp <datei1> <verzeichnis>
mv   ``move''
  mv <datei1> <datei2>  
  mv <datei1> <verzeichnis>
rm rm <datei> ``remove'': Datei löschen
rmdir rmdir <verzeichnis> ``remove directory'': Verzeichnis löschen
  mv <datei1> <verzeichnis>
mkdir mkdir <verzeichnis> ``make directory'': neues Verzeichnis anlegen

Wildcards
  • Hilfreiche Notation:
  • auf Häufigsten gebraucht: * = ``Wildcard''= stellvertretend für beliebiges
  • Zur Bezeichnung von Dateien
    • ls a*: Liste alle Dateien die mit a beginnen
    • rm *.ps *.dvi entferne alle postscript und alle dvi-Dateien
Un*x-Rechte
  • drei Dinge, die man mit Dateien machen kann
    1. Lesen (r für read) Anschauen, kopieren
    2. Schreiben (w für write): Verändern, Überschreiben
    3. Ausführen (x für execute): Programme aufrufen/laufen lassen
  • Verzeichnis = Sonderform einer Datei Þ
    • Lesen: Inhalt mittel ls anzeigen lassen
    • Schreiben = Verzeichnisstrukur ändern d.h., neue Dateien/Unterverzeichnisse anlegen/löschen
    • Ausführen = in das Verzeichnis wechseln (mittels cd)16
Benutzerklassen und Un*x-Gruppen
  • drei hierarchiche Klassen von Benutzern
    1. 1. Benutzer u user
      2. Gruppe g group
      3. Alle o others
  • Jeder Benutzer gehört einer oder mehrerer Gruppen an, die seine Privilegien festlegen
  • z.B. user, student, mitarbeiter, verschiedene administrative Gruppen
  • Jede Datei/Verzeichnis hat Zugriffsprivilegien für Lesen/Schreiben/Ausführen getrennt für jede der drei Benutzer
  • zwei wichtige Attribute einer Datei: Besitzer (owner) + Gruppe
Un*x-Gruppen (Forts.)
  • Anschauen mittels ls -lg (g für "`Gruppe"', l für "`lang"', mit ls -l ag bekommt man auch noch sog. unsichtbare Dateien angezeigt, a für "`alle"') ls
  • Ändern mittels chgrp und chown17
  • jeder Benutzer ist für das Setzen der Rechte selbst verantwortlich
  • für Fortgeschrittene: Automatisierung mittels umask-Kommando

4   Interaktion

Inhalt Kommandointerpreter ·Befehle ·Unix-Pfad ·Sonstiges zur Bash
Kommandointerpreter: die Shell
  • wichtige System- Schnittstelle: Kommandointerpreter, Shell: interaktive Befehlseingabe
  • In X-Menues: meist als Xterm benannt18
  • es gibt eine Reihe von Un*x-Shells:19 Bourne shell (der Urvater), C-Shell, tcshell, Korn shell. Bei uns Bash (``bourne-again shell'')
  • Kommando: Textueller Befehl an das System, allgemeines Format
    <commando> <optionen> <file>
  • Optionen sind oft optional, verfügbare Optionen hängen vom Befehl ab (die manpages geben jeweils Auskunft)
Umgebung
  • Benutzerinteraktion unter bestimmten Voreinstellungen (Defaultdrucker? Lieblingseditor? Windowsystem? ...)
    Umgebung (environment)
  • Umgebung
    • von Systemadministration (hoffentlich) sinnvoll vorbelegt
    • von Benutzer anpassbar/erweiterbar
  • Umgebungsvariable:
    • anzeigbar mittels env
    • verändern20 mittels export <VARIABLE>=<WERT>
  • wichtige Umgebungsvariable: PATH
Der Unix-PATH
  • Annahme: ausführbare Datei (``Programm''):
    /usr/local/games/bin/tetris
  • Þ Eingabe von /usr/local/games/bin/tetris führt es aus
  • Þ Auf Dauer unpraktisch Þwichtige Umgebungsvariable PATH
  • Aufruf eines Programmes in einem der dort erwähnten Verzeichnisse21 Verzeichnisse: der Pfad kann weggelassen werden ÞAufruf nur mit tetris
  • welches Programm wird aufgerufen: das, welches mit passendem Namen als erstes im PATH gefunden wird (Ausprobieren which <programm>)
Sonstiges zur Shell-Anpassung (speziell Bash)
  • bei gutverwalteten Systemen: vernünftige Voreinstellungen
  • vom Benutzer änderbar
  • dauerhafte Änderungen z.B. in ~benutzer/.bashrc22
  • Nützliche, einfache Sache: sog. alias
  • Beispiel: alias zeigemiralles=ls -lag
  • Falls man das dauerhaft will: einfügen der Zeile ins ~benutzer/.bashrc

5   Sonstiges

Inhalt Hilfe im System ·Disketten ·Drucken
Das wichtigste überhaupt: Hilfe im System
  • primäre Hilfe zu einzelnen Befehlen: Manual-Pages:
    man <command> oder xman
    die manpages zeigen kurz die Verwendung des jeweiligen Befehl (Liste der Optionen) und oft ein paar Standardbeispiele
  • Info-System im emacs oder xemacs23
    • Info-Information i.d.R. ausführlicher als manpages,
    • Manche (größere) Pakete verwenden Info-pages als primäre Nachschlagequelle
  • Internet
    • bei lokale Problemen: FAQs des Instituts
Diskettenbenutzung
  • bequeme Sammlung von Programmen zur Diskettenbenutzung: mtools
  • verwendet DOS-Dateiformat Þbrauchbar zum Datentransport zwischen24DOS« Un*x
mformat a: Floppy formatieren (d.h., inbesondere auch l"oschen!!)
mcopy datei.txt a: auf Floppy kopieren
mcopy a:* . alles von Floppy ins System kopieren
mdel a:datei.txt Datei auf Floppy löschen
mdir a: Verzeichnis (directory) anzeigen
eject Auswurf der Diskette


Drucken
  • Arten von Drucker: Tintenstrahl/ Laser
  • Leider: im Kurs drucken nicht möglich, keine Übungen dazu ...
  • Voreingestellt pro Rechner (i.d.R): Standarddrucker (=der nächste erreichbare)
  • Druckkommando: lpr <datei>25
  • Druckbar: Text (=``Ascii''), Postscript
  • viele Tools: print-Button
  • Vorsicht bei Folien: falsche Kombination von Folien/Drucker kann den Drucker beschädigen
Literatur







1
manchmal mehrstufig
2
Das Binärsystem, also das 2er System, ist schon recht als, es wurde 1679 von Leibniz (oder oder auch hier) erfunden.
3
Die Grenzen sind nicht ganz so eindeutig
4
Man schreibt oft Un*x anstelle Unix, denn Unix ist ein gesch"utztes Markenzeichen von Bell Corp. Mit Un*x meint man alle Unixe | oder Unices, wie der Lateiner sagt | z.B. Berkely, BSD, Solaris, System V, HPUX, und auch die verschiedenen Linux-Abkömmlinge.
5
Natürlich gibt's auch noch MAC-OS, und OS-2 &c
6
Nur scheinbar, wenn man nur einen Prozessor besitzt. Letzten Endes ist es (fast) nur eine von-Neumann Maschine, und von Neumann hat u.A. gesagt: ein Befehl nach dem anderen.
7
In Dateibrowsern in graphischen Oberflächen werden, gemäß den Extensionen, die verschiedenen Typen durch mehr oder minder selbsterklärende Bildchen/Icons symbolisiert.
8
Englisch: directory, beim Macintosh auch als Ordner bekannt
9
der Vollständigkeit halber: Un*x kennt vier prinzipielle (aus Sicht des Betriebssystems unterschiedliche) Klassen von Dateien: normale Dateien, Verzeichnisse, Pipes und Devices. Wenn wir von "`Datei"' reden, werden wir im folgenden Datei im engeren Sinne meinen, keine Verzeichnisse etc.
10
Bei DOS wird der umgekehrte Schrägstrich (``backslash'') zum selben Zweck verwendet.
11
Informatiker und Mathematiker gehen oft von der Vorstellung aus, die Wurzel eines Baumes befinde sich oben, die Blätter entsprechend unten. Wir behalten diese Konvention bei, d.h., wenn wir von ``weiter oben'' spechen, meinen wir, ``näher zur Wurzel'', ein ``Unterverzeichnis'' ist eines ``weiter unten'')
12
Der einem von der Administration zugeteilte Anteil des Plattenplatzes heißt Quota, mit dem Befehl quota kann man sich über die Größe informieren.
13
print working directory
14
ls = list. Es entricht dem DOS-Kommando dir. Der Befehl hat eine Reihe von Optionen, mit der man weitere Informationen (Zugriffsrechte, Dateigröße, Besitzer ...) bekommen kann. Man kann den Befehl auch auf ein einzelne Dateien, nicht nur Verzeichnisse anwenden.
15
change directory. Genaue Verwendung bitte selbst nachschlagen.
16
Beachte: Lesen eines Verzeichnisses und in das Verzeichnis wechseln sind verschiedene Dinge.
17
für change group und change owner
18
X-Terminal = ein Fensterrahmen um einen Kommandointerpreter herum
19
Die Unterschiede sind für uns unerheblich. Der Benutzer merkt Unterschiede zwichen den Shells nur am Ausmaß der Bequemlichkeit. In diesem Sinne gibt es bequeme Shells, d.h. solche, bei denen man alte Befehle wiederholen kann und edieren etc., und unbequeme, bei denen man das nicht kann.
20
Umgebungsvariablen sind unabhängig von der Wahl der Shell, aber die Syntax export .. = .. ist bash-spezifisch.
21
der Wert von PATH ist eine Liste von Verzeichnissen, sie sind durch ein : jeweils getrennt.
22
Viele Tools haben bestimmte Steuerdateien, oft Verborgene Dateien, das sind die, die mit einem Punkt beginnen und die man mit einem einfachen ls nicht zu Gesicht bekommt. Oft (durchaus nicht immer) enden sie mit dem Kürzel rc, was für resource steht. Wen's interessiert kann sich das .bashrc anschauen.
23
Emacs/Xemacs steht erst übermorgen auf dem Kursprogramm. Die Info-Seiten bekommt man auch mit xinfo.
24
Es gibt (neben unterschiedlichen Filesystemen) einen Unterschied zwischen Textdateien in beiden Systemen: die Darstellung der `` Neuen Zeile''. Unter Un*x erkennt man eine DOS-generierte Textdatei daran, daß lauter ^M durch die Datei gesprenkelt sind. dos2unix und unix2dos sind zwei Konvertierungskommandos, die man in dem Zusammenhang brauchen kann, falls einem der Editor die Angelegenheit nicht ohnehin ausbügeln hilft. Alternativ ist die Option -t von mcopy hilfreich.
25
lp ist eine Alternative
September 18, 2001
This document was translated from LATEX by HEVEA.