Vorlesung Betriebssysteme 2. Dateisysteme I (Benutzer-Sicht) Peter Altenbernd Dateisysteme I Betriebssysteme WS 2010/11 Hochschule Darmstadt

Größe: px
Ab Seite anzeigen:

Download "Vorlesung Betriebssysteme 2. Dateisysteme I (Benutzer-Sicht) Peter Altenbernd Dateisysteme I Betriebssysteme WS 2010/11 Hochschule Darmstadt"

Transkript

1 Vorlesung Betriebssysteme 2. Dateisysteme I (Benutzer-Sicht) 1

2 Übersicht 1. Ziel des Kapitels 2. Motivation 3. Einleitung 4. Zugriffsrechte 5. Einfache Dateien 6. Verzeichnisse 7. Links 8. Gerätedateien 9. Auswechselbare Datenträger 10. Sonstiges 2

3 1. Ziel dieses Kapitels Dieses Kapitel gibt eine grundlegende Einführung in ein Unix-Dateisysteme aus Benutzer-Sicht. Es werden außerdem zu jedem Konzept die zugehörigen System-Aufrufe diskutiert. Relevante Abschnitte im Buch [1] Abschnitt Abschnitte 6.1 und 6.2 Zusätzlich: Arbeiten mit einem Unix-Terminal Eine Vertiefung diese Gebietes, in der auch Realisierungsmöglichkeiten diskutiert werden, erfolgt später in einem zweiten Teil. 3

4 2. Motivation Jede Anwendung muss Informationen speichern und abrufen können. Üblicherweise geschieht dies mit Hilfe von Dateien, d.h. Organisationseinheiten von Daten, die auf externen Medien gespeichert werden. Dafür gibt es folgende Gründe: 1. Die Kapazität des Adressraums ist zu klein. 2. Die Dateien des Adressraums sind nicht persistent, d.h. sie gehen verloren. 3. Der Zugriff auf gemeinsam genutzte Daten ist einfacher und kann entsprechend geschützt werden (Benutzersicht) 4. Die Existenz einer Datei ist unabhängig davon, ob ein Programm gerade läuft. 5. Auf entfernte bzw. weitere Datenträger zugegriffen werden. Die Aufgaben des Betriebssystems hierbei sind: Verwaltung, d.h. Strukturierung und Namensgebung Zugriff, d.h. Benutzung und Schutz Darstellung gegenüber dem Benutzer Ein- und Aushängen von Datenträgern 4

5 3. Einleitung In Unix gibt es drei Arten von Dateien: einfache Dateien (ordinary files): hier werden alle Daten, d.h. Texte, Programme, Bilder usw. werden als Bytefolge abgespeichert (Sache der Anwendung). Verzeichnisse (directories) sind Ansammlungen von Verweisen auf Dateien und selbst wieder Dateien. Gerätedateien (special files) sind periphere Geräte, wie Terminals, Drucker oder Plattenlaufwerke (genauer genommen, Verweise auf die Treiber, die die Geräte ansteuern). Jede dieser Dateien wird durch einen eindeutigen Integer-Wert, den DateiDeskriptor (file descriptor) identifiziert. Bevor eine Datei bearbeitet werden kann (Lesen oder Schreiben), muss sie geöffnet werden. Dabei werden diese Zugriffsrechte überprüft. Ist der Zugriff erlaubt, so gibt ein entsprechender Systemaufruf den Datei-Deskriptor zurück, ansonsten einen Fehlercode. 5

6 3. Einleitung Darüber hinaus verwaltet das BS zusätzliche Information zu jeder Datei (Attribute). Die Liste der Attribute variiert je nach System, z.b.: 6

7 3. Einleitung Namensgebung In den meisten Betriebssystemen sind heute beliebige Zeichenketten möglich. Oft wird in zweigeteilte Namen, getrennt durch einen Punkt unterschieden, z.b. prog.c Der Teil mit dem Punkt wird Datenerweiterung genannt und sagt im Allgemeinen etwas über den Datei-Inhalt aus. In Unix ist die Länge der Erweiterung, sollte sie überhaupt existieren, dem Benutzer überlassen und kann u. U. gleichzeitig mehrere Erweiterungen besitzen, z.b. prog.c.gz 7

8 3. Einleitung Beispiele: 8

9 4. Zugriffsrechte 4.1 Benutzer-Gruppen und -Rechte Der Besitzer einer Datei muss in der Lage sein, einerseits Dateien vor dem Zugriff anderer zu schützen, andererseits aber anderen den Zugriff zu erlauben. In Unix werden Zugriffsrechte für drei verschiedene Nutzergruppen getrennt vergeben. Eigentümer (User/Owner; Symbol: u) Das ist der Benuter, der die Datei erstellt hat. Nur dieser (und der Superuser) kann die Zugriffsrechte ändern. Gruppe (Group; Symbol: g) Jeder Benutzer ist mindesten einer Gruppe zugeordnet ist. Man kann so Dateien einer bestimmten Gruppe von Personen zugänglich machen. Alle anderen (Others; Symbol: o) Damit sind alle anderen Nutzer gemeint. Ein Zugriff auf eine Seite (Datei) eines Web-Servers wird z.b. damit umgesetzt. 9

10 4. Zugriffsrechte Es gibt drei verschiedene Rechte: Datei lesen, r - read Datei schreiben (ändern) und w - write Datei ausführen x execute Jedes Recht kann jedem der drei Nutzer-Gruppen zugeordnet werden, z.b. der Besitzer darf lesen, schreiben, ausführen und die Gruppe sowie alle anderen dürfen nur lesen und ausführen. Oder: der Besitzer darf lesen, schreiben und die Gruppe sowie alle anderen dürfen nur lesen. 10

11 4. Zugriffsrechte 4.2 Codierung von Rechten Damit können Zugriffsmasken der Art uuugggooo vergeben werden. Somit hat eine Datei, die nur der Benutzer lesen, schreiben und ausführen darf, die Zugriffsmaske rwx Die Zugriffsrechte einer Datei können durch das Kommando chmod geändert werden. Der Befehl chmod ist eine Abkürzung von "change mode". Die Eingabe des Befehls muss in folgender Syntax erfolgen: $ chmod modus datei Mit 'modus' sind die Zugriffsrechte gemeint; 'datei' ist der Name der betreffenden Datei, deren Zugriffsrechte geändert werden sollen. Die Zuordnung kann in zwei verschiedenen Varianten angeben werden. 11

12 4. Zugriffsrechte Erste Variante: Oktal-Zahl Hierbei ist eine 3-stellige Zahl anzugeben. Für jede Nutzergruppe (Eigentümer, Gruppe, Andere) gibt es eine Stelle. Jedes Recht hat eine eigene Ziffer. Um mehrere Rechte einer Nutzergruppe zuzuordnen, muss man für jeden Nutzer getrennt die Ziffern der einzelnen Rechte addieren. In der nachfolgenden Tabelle finden Sie die entsprechenden Werte: Recht: Ziffer: Lesen Schreiben Ausführen r w x Wollen Sie zum Beispiel einem Benutzer gleichzeitig Lesen und Ausführen zuordnen, addieren Sie "4 + 1 = 5". Insgesamt können bei der Addition der Rechte Ziffern von 0 bis 7 entstehen, wobei die Zuordnungen immer eindeutig sind. 12

13 4. Zugriffsrechte Die drei Ziffern schreibt man in folgender Reihenfolge hintereinander: 1. Eigentümer (USER), 2. Gruppe (GROUP), 3. Andere (OTHERS). Beispiel 644: Benutzerrechte: Gruppenrechte: alle anderen: 6 = 110 = rw4 = 100 = r-4 = 100 = r-- 13

14 4. Zugriffsrechte Zweite Variante: Symbol-Modus Für die Nutzergruppen werden die folgenden Buchstaben verwendet: u=user, g=group und o=others verwendet. Und die Rechte durch "r" für Lesen (read), "w" für Schreiben (write) und "x" für Ausführen (execute). Dieses Beispiel weist der Datei alle Zugriffsrechte für alle Nutzer zu. $ chmod ugo=rwx datei $ Sie können auch einzelne Nutzergruppen und Rechte weglassen. 14

15 4. Zugriffsrechte Um verschiedenen Nutzergruppen unterschiedliche Rechte zuzuweisen, kann man mehrere Angaben machen, die mit einem Komma getrennt werden, z.b.: $ chmod u=rwx,g=rx,o=r datei $ Sie können auch anstatt des "ist gleich" ein Plus- oder Minus-Zeichen verwenden. Mit Plus weisen Sie Rechte zu und mit dem Minus-Zeichen entziehen Sie die Rechte wieder z.b.: $ chmod u+w,g-w,o-wx datei $ 15

16 4. Zugriffsrechte Beispiele der Verwendung: $ ls -l dat -rw -----$ 1 as users 53 Dec 23 13:45 dat Die Datei ist also nur für den Besitzer les- und schreibbar $ chmod 640 dat $ ls -l dat -rw-r----1 as $ $ chmod 000 dat $ ls -l dat as $ $ chmod u+rw,g+r dat $ ls -l dat -rw-r----1 as $ users 53 Dec 23 13:45 dat users 53 Dec 23 13:45 dat users 53 Dec 23 13:45 dat 16

17 4. Zugriffsrechte 4.3 Zugriffsrechte für Verzeichnisse Auch für Verzeichnisse lassen sich die Rechte festlegen. Dabei ist Folgendes zu beachten: Das x-bit bedeutet, dass im Verzeichnis gesucht werden darf. Wenn ein Benutzer in einem Verzeichnis nur das Lesen-Recht oder nur das Ausführen-Recht vergeben hat, dann dürfen andere Nutzer die Dateien in diesem Verzeichnis nicht lesen, denn zum Lesen muss das Verzeichnis geöffnet (gelesen) werden. Damit Dateien also aus einem Verzeichnis generell gelesen werden können, müssen also beide Rechte gesetzt sein (Lesen und Ausführen). 17

18 4. Zugriffsrechte Besitzt ein Benutzer Schreibrecht für ein Verzeichnis, kann er auch Dateien in diesem Verzeichnis löschen, für die er über keinerlei Rechte verfügt (es wird ja nicht die Datei selbst gelesen oder verändert, sondern der Verweis auf diese Datei im Verzeichnis wird gelöscht). Um dies zu verhindern, kann das Verzeichnis mit dem Attribut t (dem sticky bit) versehen werden: $ chmod +t verzeichnis $ Aufgabe: Wann kann also ein Benutzer in einem Verzeichnis, in dem das StickyBit gesetzt ist, eine Datei löschen? a) b) c) d) 18

19 4. Zugriffsrechte Beispiel: $ mkdir tmp $ ls -ld tmp drwxrwxr-x 2 as $ chmod +t tmp $ ls ld tmp drwxrwxr-t 2 as $ users 4096 Dec 23 13:55 tmp users 4096 Dec 23 13:54 tmp 19

20 4. Zugriffsrechte 4.4 Zugriffsrechte für ausführbare Dateien Normalerweise wird ein Programm beim Aufruf mit den Rechten des Aufrufers ausgeführt. Ist das Set-User-ID-Bit (s-bit) gesetzt, so wird das Programm mit den Rechten des Eigentümers der Datei ausgeführt. Somit erhält der Aufrufer für die Zeit der Programmausführung die Rechte des Eigentümers der Datei. Dies wird vom passwd-kommando verwendet, damit der Aufrufer sein Passwort in der ansonsten geschützten Datei /etc/passwd ändern kann: $ ls -l /usr/bin/passwd -rwsr-xr-x 1 shadow /usr/bin/passwd $ $ chmod 4755 dat.sh $ ls -l dat.sh -rwsr-xr-x 1 as users $ Nov Dec 24 13:45 dat.sh 20

21 4. Zugriffsrechte 4.5 Systemaufrufe und Zugriffsrechte Durch den Systemaufruf chmod können die Rechte für eine Datei gesetzt werden. Die Maske wird dabei oktal angegeben. Das folgende Programm setzt die Zugriffsrechte einer Datei (2. Parameter) mithilfe einer Maske (1.Parameter). $$ cat cat simplechmod.c simplechmod.c #include #include <stdio.h> <stdio.h> main(int argc, main(int argc, char char **argv) **argv) {{ int int mask; mask; if if (argc (argc!=!= 3) 3) {{ fprintf(stderr, fprintf(stderr, "usage "usage %s %s mask mask file\n", file\n", argv[0]); argv[0]); exit(1); exit(1); }} sscanf(argv[1],"%o",&mask); sscanf(argv[1],"%o",&mask); }} $$ // // convert convert to to octal octal if if ((chmod(argv[2], ((chmod(argv[2], mask)) mask)) << 0) 0) {{ fprintf(stderr, fprintf(stderr, "chmod "chmod error\n"); error\n"); exit(2); exit(2); }} 21

22 4. Zugriffsrechte Wird ein Programm mit dem setuid-bit ausgestattet, so kann es nicht prüfen, ob der Aufrufer die Rechte auf eine Datei hat, da das Programm selbst ja durch das setuid-bit alle Rechte hat. Um per Programm auf die Zugriffsrechte des realen Benutzers zugreifen zu können, gibt es den Systemaufruf access: der erste Parameter von access ist die zu prüfende Datei, der zweite der Zugriffsmodus, der geprüft werden soll: R_OK: read permissions W_OK: write permissions X_OK: execute permissions F_OK: existence. 22

23 4. Zugriffsrechte Das folgende Programm prüft, ob eine Datei durch den Benutzer geöffnet werden könnte (access); danach wird die Datei geöffnet. main(int argc, char **argv) { if (argc!= 2) { fprintf(stderr, "usage %s file\n", argv[0]); exit(1); } if (access(argv[1], R_OK) < 0) { fprintf(stderr, "access error\n"); exit(2); } if (open(argv[1], O_RDONLY) < 0) { fprintf(stderr, "open error\n"); exit(3); $ ls -l access.txt } -rw Apr 6 10:52 access.txt exit (0); $ id uid=500(as) gid=100(users) Gruppen=100(users),0() } $ simpleaccess access.txt $ access error $ 23

24 4. Zugriffsrechte Der Systemaufruf umask setzt eine interne Bitmaske, die die Schutzbits beim Anlegen einer Datei maskiert. Wird nach umask(022) eine Datei angelegt, etwa durch creat(date, 0777), so hat die neue Datei nicht die Schutzbits 0777, sondern 0755: file umask Resultat (file-umask) Die in der Maske gesetzten Bits werden also beim Erzeugen von neuen Dateien oder Verzeichnissen gelöscht. 24

25 5. Einfache Dateien Einfache Files (regular files) enthalten Daten, die irgendwann von Benutzern definiert wurden. Dies können Texte, Programm-Quellen oder ausführbare Programme sein. In Unix werden keine komplizierten Dateiformate oder Zugriffsmethoden verwaltet: eine Datei ist einfach eine Folge von Zeichen, ein File kann in beliebig großen Abschnitten byteweise von vorn nach hinter gelesen und geschrieben werden, gezielt kann ein bestimmtes Byte positioniert werden, Speicherplatz braucht für eine Datei nicht explizit reserviert zu werden: Wenn hinter das letzte Zeichen der Datei geschrieben wird, so wird die Datei automatisch vergrößert. 25

26 5. Einfache Dateien Durch >> kann man an eine Datei am Ende einfügen: $ cat dat Dies ist ein Text mit 3 Zeilen 2. Zeile Letzte Zeile $ $ echo neue letzte Zeile >> dat $ $ cat dat Dies ist ein Text mit 3 Zeilen 2. Zeile Letzte Zeile neue letzte Zeile $ 26

27 5. Einfache Dateien Neben einfachen Text-(ASCII)-Dateien gibt es binäre Dateien, welche durch eine Anwendung organisiert werden oder ein ausführbares Programm darstellen. 27

28 5. Einfache Dateien 5.1 Systemaufrufe zur Dateiverwaltung Das nachfolgende Beispielprogramm demonstriert den Systemaufruf creat. Das Programm legt die als Aufrufparameter anzugebende Datei mit den Zugriffsrechten 0640 an. Achtung: wenn die Datei bereits existiert, wird sie überschrieben! $$ cat cat simpletouch.c simpletouch.c #include #include <stdio.h> <stdio.h> main(int main(int argc, argc, char char *argv[]) *argv[]) {{ int int fd; fd; }} if if (argc (argc!=!= 2) 2) {{ fprintf(stderr, fprintf(stderr, "usage: "usage: %s %s file\n", file\n", argv[0]); argv[0]); exit(1); exit(1); }} if if ((fd=creat(argv[1],0640)) ((fd=creat(argv[1],0640)) << 0) 0) {{ fprintf(stderr, fprintf(stderr, "create "create error\n"); error\n"); exit(2); exit(2); }} 28

29 5. Einfache Dateien Bevor eine Datei bearbeitet werden kann, muss sie geöffnet werden. Dazu existiert der Systemaufruf open, der neben dem Namen noch die Art des Zugriffs (Lesen, Schreiben oder beides) benötigt. Das folgende Programm liest die als Parameter anzugebende Datei und schreibt den Inhalt auf die Standardausgabe. #include <stdio.h> #include <stdio.h> #include <fcntl.h> #include <fcntl.h> #define #define BUFSIZE BUFSIZE main(int argc, char **argv) {{ main(int argc, char **argv) int fd, n; int fd, n; char buf[bufsize]; char buf[bufsize]; if!= 2) {{ /* check usage if (argc (argc!= 2) /* check usage fprintf(stderr, "usage %s file\n", argv[0]); fprintf(stderr, "usage %s file\n", argv[0]); exit(1); }} exit(1); if O_RDWR)) << 0) if ((fd=open(argv[1], ((fd=open(argv[1], O_RDWR)) 0) {{ /* /* open open file file fprintf(stderr, "open error\n"); fprintf(stderr, "open error\n"); exit(2); }} exit(2); while ((n == read(fd, buf, BUFSIZE)) >> 0) while ((n read(fd, buf, BUFSIZE)) 0) write(1, buf, n); /* write to STDOUT write(1, buf, n); /* write to STDOUT }} 29

30 5. Einfache Dateien Der wahlfreie Zugriff auf Dateien (Random-Access) wird durch den Systemaufruf lseek realisiert. lseek hat drei Parameter: 1. einen Filedeskriptor, der die zu bearbeitende Datei definiert, 2. den Offset, der die Position des Lese/Schreibkopfes in Byte relativ zum Ausgangspunkt definiert und 3. den Ausgangspunkt für die Positionierung des Lese/Schreibkopfes SEEK_SET = Dateianfang SEEK_END = Dateiende SEEK_CUR = aktuelle Position Als Rückgabe liefert lseek das resultierende Offset als Anzahl Bytes gemessen vom Dateianfang (oder einen Fehlercode). Damit kann man ein Programm, das eine Datei (angefangen am Dateiende, d.h. revers) liest, einfach programmieren: 30

31 5. Einfache Dateien #include <stdio.h> #include <stdio.h> #include #include <fcntl.h> <fcntl.h> main(int argc, char main(int argc, char **argv) **argv) {{ int fd, pos; int fd, pos; char char buf[1]; buf[1]; if check if (argc (argc!=!= 2) 2) {{ /* /*"usage check usage usage fprintf(stderr, %s file\n", argv[0]); fprintf(stderr, "usage %s file\n", argv[0]); exit(1); }} exit(1); }} if O_RDWR)) << 0) {{ /* open file if ((fd=open(argv[1], ((fd=open(argv[1], O_RDWR)) 0) /* open file fprintf(stderr, "open error\n"); fprintf(stderr, "open error\n"); exit(2); }} exit(2); if ((pos=lseek(fd, -1, == -1) {{ if/* ((pos=lseek(fd, -1, SEEK_END)) SEEK_END)) ==for -1)reading get file size and set position at EOF /* get file size and set position for reading at EOF fprintf(stderr, "lseek error\n"); fprintf(stderr, "lseek error\n"); exit(1); }} exit(1); while (pos>=0) {{ /* read and write file while (pos>=0) /* read and write file read(fd, buf, 1); read(fd, buf, buf, 1); 1); write(1, write(1, buf, 1);SEEK_SET); lseek(fd, --pos, }} lseek(fd, --pos, SEEK_SET); printf("\n"); printf("\n"); 31

32 5. Einfache Dateien Im folgenden Programm hole.c wird der Systemaufruf lseek verwendet, um ein Loch in einer Datei zu erzeugen. #include <stdio.h> #include <stdio.h> int main() { int main() int fd;{ int fd; char buf1[] = "abcdefghijklmnop"; /* 16 Byte char buf1[] == "ABCDEFGHIJKLMNOP"; "abcdefghijklmnop"; /* 16 Byte char buf2[] char buf2[] = "ABCDEFGHIJKLMNOP"; } } if ((fd=creat("file.hole",0640)) < 0) { if fprintf(stderr, ((fd=creat("file.hole",0640)) < 0) { "create error\n"); fprintf(stderr, "create error\n"); exit(1); exit(1); } } ((write(fd, buf1, 16))!= 16) { /* size now 16 if if fprintf(stderr, ((write(fd, buf1, 16))write!= 16) { /* size now 16 "buf1 error\n"); fprintf(stderr, "buf1 write error\n"); exit(2); exit(2); } } ((lseek(fd, 32, SEEK_SET)) == -1) { /* size now 32 if if fprintf(stderr, ((lseek(fd, 32, "lseek SEEK_SET)) == -1) { /* size now 32 error\n"); fprintf(stderr, "lseek error\n"); exit(3); exit(3); } } ((write(fd, buf2, 16))!= 16) { /* size now 48 if if fprintf(stderr, ((write(fd, buf2, 16))write!= 16) { /* size now 48 "buf2 error\n"); fprintf(stderr, "buf2 write error\n"); exit(4); exit(4); } } exit(0); exit(0); 32

33 5. Einfache Dateien Ein Aufruf davon bewirkt: $$ ls ls -l -l fil* fil* -rw-r rw-r as as users users 48 Nov Nov 11 19:11 19:11 file.hole file.hole $$ od -c file.hole od -c file.hole aa bb cc dd ee ff gg hh ii jj kk ll mm nn oo pp \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 Loch Loch A B C D E F G H I J K L M N O P A B C D E F G H I J K L M N O P $$ 33

34 6. Verzeichnisse Verzeichnisse (Ordner) sind Inhaltsverzeichnisse über eine Menge von Dateien. Diese Dateien können selbst wieder Verzeichnisse enthalten, wodurch ein hierarchisches Filesystem entsteht. Mit dem Kommando mkdir kann ein neues Verzeichnis angelegt werden. pwd zeigt das aktuelle Verzeichnis an: $ pwd /home/as/vorlesungen/unix $ mkdir tmpdir $ ls -ld tmpdir drwxr-xr-x 2 as staff $ 512 Dec 23 14:44 tmpdir Das Kommando cd ist zum Wechseln des aktuellen Verzeichnisses da. $ cd tmpdir $ ls al drwxr-xr-x drwxr-xr-x $ 2 as 6 as staff staff 512 Dec 23 14: Dec 23 14:44.. In jedem Verzeichnis gibt es automatisch zwei Dateien: die Datei mit Namen. ist ein Verweis auf das Verzeichnis selbst die Datei mit Namen.. ist ein Verweis auf das Vater-Verzeichnis. 34

35 6. Verzeichnisse 6.1 Aufbau des Filesystems Die Wurzel des Dateisystems nennt man, sie wird mit / bezeichnet. Im Verzeichnis / existieren viele Unterverzeichnisse, z.b. home für die Homeverzeichnisse der Benutzer, bin für ausführbare Dateien, die zum Lieferumfang des Unix Systems gehören. Um Verzeichnisnamen und enthaltenen Dateinamen zu trennen, wird das Zeichen / verwendet. Dateien im aktuellen Verzeichnis (Arbeitsverzeichnis) kann man direkt mit ihrem Namen ansprechen. Dateien außerhalb des aktuellen Verzeichnisses sind über ihren (absoluten) Pfadnamen anzusprechen. Dies ist der Weg von der Wurzel über alle Verzeichnisse hinweg bis zum aktuellen Verzeichnis, in dem die Datei steht inklusive des Dateinamens. 35

36 6. Verzeichnisse Der relative Pfadname hingegen bezieht sich auf das aktuelle Verzeichnis. Die Kommandos $ cp /usr/ast/mb /usr/ast/mb.bak und $ cp mb mb.bak bewirken exakt dasselbe, sofern das Arbeitsverzeichnis /usr/ast ist. Jeder Prozess besitzt ein eigenes Arbeitsverzeichnis. $ cd / $ cat /home/as/vorlesungen/unix/dat Test $ 36

37 6. Verzeichnisse Um vom aktuellen Verzeichnis in ein anderes Verzeichnis zu wechseln, existiert der Systemaufruf chdir. Nachdem das aktuelle Verzeichnis mit dem Systemaufruf chdir( /usr/schuette/tmp ) geändert wurde, werden die folgenden Aufrufe (create, open), bei denen kein vollständiger Pfadname angegeben ist, immer in diesem Verzeichnis Dateien angelegt bzw. geöffnet. Durch den Systemaufruf ch wird unter Unix der Zugriff eines bestimmten Programms auf einen Teil des Dateibaums beschränkt. Dies geschieht dadurch, dass alle Zugriffe, die dieses Programm (und die von ihm aufgerufenen Programme) auf das Dateisystem durchführt, relativ zum angegeben Verzeichnis erfolgen. Dieses Verzeichnis wird also zur Wurzel eines virtuellen Dateibaums und wird verwendet, um etwa auf Webservern virtuelle Root-Verzeichnisse für unterschiedliche Benutzergruppen definieren zu können. 37

38 7. Links 7.1 Hard Links Unter Unix existieren für Dateien so genannte Hard-Links. Darunter ist tatsächlich nichts anderes zu verstehen, als ein zweiter Name für ein und dieselbe Datei. Wenn eine Datei zwei Namen hat, so kann nicht zwischen Original und Link unterschieden werden. Es ist möglich, eine der beiden Dateien zu löschen und trotzdem ist die andere noch vorhanden. Erst beim "letzten" Löschen wird die Datei von der Platte entfernt. Physikalisch handelt sich also immer um die selbe Datei, d.h. sie nimmt nur einmal den Speicherplatz auf der Platte in Anspruch. 38

39 7. Links Durch den Systemaufruf link bildet diese Verhalten entsprechend ab. Durch den Systemaufruf unlink kann man Links wieder löschen. Dabei wird nur der Eintrag aus dem Verzeichnis entfernt; die Datei bleibt erhalten. Erst wenn es keinen weiteren Link auf die Datei gibt, wird die Datei wirklich gelöscht, d.h. die in ihr ehemals enthaltenen Daten werden zum Überschreiben durch das Dateisystem freigegeben. 39

40 7. Links Beispiel: /usr/schuette Vorlesungen Briefe file_src /tmp Abfall xyyy123 cron1234 link( /usr/schuette/file_src, /tmp/file_des ); /usr/schuette Vorlesungen Briefe file_src /tmp Abfall xyyy123 cron1234 file_des 40

41 7. Links Eine Partition ist ein eigenständiger Teil einer Festplatte (mit einem eigenen Datei-System). Ein Hardlink muss sich immer auf der selben Partition befinden, auf der sich auch die Orginaldatei befindet. Das liegt in der Natur eines Links, der nur ein weiterer Name für die Datei ist, der im Inhaltsverzeichnis der Platte bzw. der Partition gespeichert ist. In der Shell werden Hardlinks mit dem Befehl ln angelegt. $ ls -l dat* -rwxr-xr-x 1 as -rw-rw-r-1 as $ $ ln dat dat_hl $ ls -l dat* -rwxr-xr-x 2 as -rw-rw-r-1 as -rwxr-xr-x 2 as $ users users 71 Dec 23 14:17 dat 53 Dec 23 11:28 dat2 users users users 71 Dec 23 14:17 dat 53 Dec 23 11:28 dat2 71 Dec 23 14:17 dat_hl 41

42 7. Links 7.2 Symbolische Links Im Gegensatz zu Hardlinks sind symbolische Links (soft links) wesentlich flexibler, aber auch fehleranfälliger. Hier handelt es sich tatsächlich um Verweise auf eine bestehende Datei, d.h. der symbolische Link ist in Wahrheit eine Datei, die nur den Dateinamen einer anderen Datei enthält. Damit das System diese Datei nicht als Textdatei miss-interpretiert, wird sie als symbolischer Link gekennzeichnet. Dadurch kann man beim symbolischen Link immer zwischen Original und Verweis unterscheiden und somit sind diese über Partitionsgrenzen hinweg möglich. Allerdings ist nicht sichergestellt, dass der Link auch auf etwas zeigt, was existiert. Wird z.b. ein symbolischer Link auf eine Datei angelegt und anschließend die Datei gelöscht, so zeigt der Link ins Leere. 42

43 7. Links Als weiterer Vorteil von symbolischen Links ist noch die Tatsache zu nennen, dass sie auch auf Verzeichnisse zeigen können. Damit ist es also z.b. möglich, ein Verzeichnis, das nicht mehr auf eine Partition passt woanders hin auszulagern. In der Shell werden symbolische Links wie Hardlinks mit dem Befehl ln angelegt. Zur Unterscheidung wird dort einfach der Parameter -s (für symbolischen Link) benutzt. $ ln -s dat dat_sl $ ls -l dat* -rwxr-xr-x 2 as -rwxr-xr-x 2 as lrwxrwxrwx 1 as $ users users users 71 Dec 23 14:17 dat 71 Dec 23 14:17 dat_l 3 Dec 23 14:49 dat_sl -> dat 43

44 7. Links Die Informationen über eine Datei, der so genannte Dateistatus, kann durch die Systemaufrufe stat, fstat und lstat abgefragt werden. stat und fstat liefern Information über Dateien, lstat über Links. Alle Aufrufe geben eine Struktur vom Typ stat zurück, die folgendermaßen aufgebaut ist: struct struct stat stat {{ dev_t st_dev; dev_t st_dev; ino_t st_ino; ino_t st_ino; umode_t st_mode; umode_t st_mode; nlink_t st_nlink; nlink_t st_nlink; uid_t st_uid; uid_t st_uid; gid_t st_gid; gid_t st_gid; dev_t st_rdev; dev_t st_rdev; off_t st_size; off_t st_size; unsigned unsigned long long st_blksize; st_blksize; unsigned unsigned long long st_blocks; st_blocks; time_t st_atime; time_t st_atime; time_t st_mtime; time_t st_mtime; time_t st_ctime; time_t st_ctime; /* /* Device Device /* /* INode INode /* /* Typ Typ und und Protection Protection /* /* Anzahl Anzahl d. d. Hard_Links Hard_Links /* /* UID UID des des Besitzers Besitzers /* /* GID GID des des Besitzers Besitzers /* /* Typ Typ (wenn (wenn INode-Device) INode-Device) /* /* Größe Größe in in Bytes Bytes /* /* Blockgröße Blockgröße /* /* Allozierte Allozierte Blocks Blocks /* /* Letzter Letzter Zugriff Zugriff /* /* Letzte Letzte Modifikation Modifikation /* /* Letzte Letzte Aenderung Aenderung }; }; 44

45 7. Links /* simplefile.c verwendet diese Struktur /* simplefile.c verwendet diese Struktur #include <stdio.h> #include <sys/types.h> <stdio.h> #include #include <sys/stat.h> <sys/types.h> #include #include argc, <sys/stat.h> main(int char **argv) {{ main(int argc, char **argv) int i; int i; stat buf; struct struct stat buf; char *ptr; char *ptr; if!= 2) {{ /* check usage if (argc (argc!= 2) /* check usage fprintf(stderr, "usage %s file\n", argv[0]); fprintf(stderr, "usage %s file\n", argv[0]); exit(1); }} exit(1); if &buf) << 0) {{ /* get file info if (lstat(argv[1], (lstat(argv[1], &buf) 0) /* get file info fprintf(stderr, "lstat error\n"); fprintf(stderr, "lstat error\n"); exit(2); }} exit(2); /* print file info /* print file info if (S_ISREG(buf.st_mode)) ptr == "regular"; if (S_ISREG(buf.st_mode)) ptr "regular"; else if (S_ISDIR(buf.st_mode)) ptr = "directory"; else if if (S_ISCHR(buf.st_mode)) (S_ISDIR(buf.st_mode)) ptr ptr == "character "directory"; else special"; else if (S_ISCHR(buf.st_mode)) ptr = "character special"; else if (S_ISBLK(buf.st_mode)) ptr = "block special"; else if if (S_ISFIFO(buf.st_mode)) (S_ISBLK(buf.st_mode)) ptrptr = "block special"; else = "fifo"; else if if (S_ISLNK(buf.st_mode)) (S_ISFIFO(buf.st_mode))ptr = ptr = "fifo"; else "link"; else if (S_ISLNK(buf.st_mode)) ptrptr = "link"; else else ptr == "unknown "unknown mode!"; mode!"; printf("%s: printf("%s: %s\n", %s\n", argv[1], argv[1], ptr); ptr); }} 45

46 8. Gerätedateien Gerätedateien (special files) lassen E/A Geräte wie normale Dateien aussehen. Somit können Kommandos zum Lesen und Schreiben von normalen Dateien auch auf E/A-Geräte in /dev/... angewendet werden (z.b: cp /etc/passwd /dev/pts/40). Auf Shell-Ebene gibt es also keinen Unterschied zwischen diesen Datei-Arten. Dies demonstriert das folgende Beispiel. $ lpr dat1 $ Drucken kann man mit: $ cp dat1 /dev/lp1 $ $ cat dat1 > /dev/lp1 $ 46

47 8. Gerätedateien Man unterscheidet zwei Arten von Gerätedateien: Zeichenorientierte (character special file): Diese sind für Geräte, wie Terminals, Drucker oder Netzwerkkarten, zur Bearbeitung von Zeichenströmen (char streams) notwendig. Bei Terminals wird unterschieden in Standardeingabe (stdin) zum Lesen (Dateideskriptor = 0) Standardausgabe (stdout) zum Schreiben (Dateideskriptor = 1) Standardfehlerausgabe (stderr) zum Schreiben (Dateideskriptor = 2). Blockorientierte (block special file) werden benutzt, um Geräte anzusprechen, die aus einer Menge von frei adressierbaren Blöcken, z.b. Festplatten, bestehen. 47

48 8. Gerätedateien Eine Gerätedatei ist ein Verweis auf den Treiber (einem Stück SW, dass die Kommunikation mit dem Gerät steuert); sie belegt dabei physikalisch keinen Platz (ist also nicht der Treiber selbst) Platzhalter für alle Gerätedateien befinden sich im Verzeichnis /dev Eine Gerätedatei wird hinsichtlich der Zugriffsrechte wie alle anderen Dateien behandelt (rwx...). Gerätedateien werden durch zwei Nummern eindeutig bestimmt (und repräsentieren die Adresse des Gerätetreibers im Kernel): Die erste Nummer, auch major number genannt, zeigt, um welchen Gerätetreiber es sich handelt. Die zweite (minor number) beschreibt, das wievielte Gerät es ist, das diesen Treiber benutzt. 48

49 8. Gerätedateien Als Beispiel folgt hier die Ausgabe des ls l Befehls auf einige Gerätedateien des Blocktyps: brw-r----brw-r----brw-r----brw-r brw-r brw-r----brw-r----brw-r----brw-r----brw-r----brw-r Major V disk 1, disk 1, disk 1, disk 1, 1 disk 2, Minor V :07 18:07 18:07 18:07 ram0 ram1 ram2 ram :07 fd0 disk 3, :07 hda disk 3, :07 hda1 disk 3, :07 hdb disk 3, :07 hdb1 disk 3, :07 hdb2 disk 22, :07 hdc 49

50 8. Gerätedateien 8.1 Blockorientierte Geräte Als blockorientiertes Gerät gilt jedes Gerät, das nicht einzelne Zeichen nacheinander verarbeitet, sondern adressierbare Blöcke. Typische blockorientierte Geräte sind hier also: Wechsel-Datenträger, Arbeitsspeicher (ram Major-Number 1), Festplatten (hd* / sd* -- Major Number 3 / 8). Bei den Festplatten wird unterschieden zwischen den ganzen Platten (hda, hdb, hdc, hdd, / sda, sdb, sdc, sdd, ) und den darauf befindlichen Partitionen (hda1, hda2, hdb1, hdb2, / sda1, sda2, sdb1, sdb2, ): h steht für IDE-Laufwerke s steht für SCSI-, SATA-, USB-Laufwerke 50

51 8. Gerätedateien Damit ist es z.b. möglich einen Wechseldatenträger mit Hilfe des Befehls cat wie folgt zu realisieren: $ cat /dev/fd0 > Datei Es wird also alles aus der Datei /dev/fd0 (erstes Floppy-Laufwerk) in die Datei Datei kopiert, Es wird hier nicht dateiorientiert gearbeitet sondern auf Basis der vorhandenen Blöcke. 51

52 8. Gerätedateien 8.2 Zeichenorientierte Geräte Zeichenorientierte Geräte werden nicht blockweise angesteuert, sondern durch einzelne Bytes. Typischerweise handelt es sich hier um serielle oder parallele Schnittstellen, die Terminalleitungen (auch die der virtuellen Terminals) oder den Sound-Anschluss. Auch hier wieder ein paar Beispiele: USB Anschlüsse crw-rw---crw-rw---crw-rw---crw-rw---crw-rw---crw-rw , 252, 252, 252, 252, 252, :08 09:08 usbmon0 usbmon :08 usbmon :08 usbmon :08 09:08 usbmon2 usbmon2 BIOS-ROM crw------crw------crw------crw , 31, 31, 31, 00 Apr Apr 55 01:13 01:13 rom0 rom0 11 Apr Apr 55 01:13 01:13 rom1 rom1 52

53 8. Gerätedateien Terminalleitungen für die virtuellen Terminals: crw-rw-rwcrw-rw-rwcrw--w--wcrw--w--wcrw------crw tty tty 5, 5, 4, 4, 4, 4, 00 Apr Apr 55 01:12 01:12 tty tty 00 Apr 5 01:12 tty0 Apr 5 01:12 tty0 11 Aug Aug 88 11:39 11:39 tty1 tty1 Serielle Leitungen (COM1 und COM2) crw-rw---crw-rw---crw-rw---crw-rw uucp uucp uucp uucp 4, 4, Apr Apr 55 01:12 01:12 ttys0 ttys0 4, 65 Apr 5 01:12 ttys1 4, 65 Apr 5 01:12 ttys1 Sowohl die block- als auch die zeichenorientierten Gerätedateien werden durch den Systemaufruf mknod angelegt. Die einzige Information, die man dazu braucht, ist die der Major- und Minor-Nummer und die Angabe, ob es sich um ein block- oder zeichenorientiertes Gerät handelt. 53

54 9. Auswechselbare Datenträger Wenn ein Betriebssystem hochgefahren wird, so wird i.a. zuerst das Dateisystem, auf dem sich das Betriebssystem selbst befindet, verfügbar gemacht. Es befindet sich normalerweise auf der Festplatte. Daneben gibt Wechseldatenträger. Auf solchen Medien kann man ein auswechselbares Dateisystem (mounted file system) anlegen. Es wird in das Hauptdateisystem eingehängt und ist ab diesem Zeitpunkt über den Pfadnamen erreichbar. Das Ein- und Aushängen von Verzeichnissen wird durch die Systemaufrufe mount und umount bewerkstelligt. Diskette + Datei-System: Nach dem "Mounten 2 a 3 b d c a b d c

55 10. Sonstiges 10.1 Sync In vielen Computern wird in einem Cache (Zwischenspeicher) die zuletzt benutzten Blöcke abgespeichert, um ein erneutes Zugreifen schneller zu machen, da dann nicht mehr auf die Festplatte zugegriffen werden muss. Wenn ein Fehler auftaucht, bevor die Platte wirklich beschrieben (durch write Systemaufruf) wird, so gehen Daten verloren und ein inkonsistentes Dateisystem wäre die Folge. Deshalb wird periodisch vom Betriebssystem der sync Systemaufruf ausgeführt; er schreibt die Blöcke im Cache auf die Platte. Während sync den gesamten Cache synchronisiert, kann man mit dem Systemaufruf fsync die Blöcke einer Datei im Cache synchronisieren. Dieser sollte von Anwendungen wie Datenbanksystemen verbeugend und bei Bemerken einer Fehlfunktion benutzt werden. 55

56 10. Sonstiges 10.2 Pipes Eine Pseudodatei wird verwendet, wenn zwei Prozesse Daten in FIFO-Manier austauschen wollen, wobei ein Prozess in die Pseudodatei schreibt, der andere aus ihr liest. Diese Pseudodateien heißen Pipes. Prozess Pipe A Prozess B A schreibt in die Pipe, B liest aus der Pipe. Dies folgt also dem FIFO-Vorgehen. 56

9.3 Virtuelle FS Linux VFS Windows IFS 9.4 Dateizugriff in Linux-Programmen

9.3 Virtuelle FS Linux VFS Windows IFS 9.4 Dateizugriff in Linux-Programmen Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

U5 Verzeichnisse und Sortieren

U5 Verzeichnisse und Sortieren U5 Verzeichnisse und Sortieren U5 Verzeichnisse und Sortieren Linux-Benutzerumgebung Fehlerbehandlung POSIX-Verzeichnis-Systemschnittstelle Datei-Attribute in Inodes U5.1 Verzeichnisse öffnen: opendir(3)

Mehr

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2014 1 / 25 Benutzerkonzept Passende Shell-Befehle Dateisystem-Shellbefehle bash 2 / 25 Benutzerkonzept unter Linux

Mehr

1. Systemaufrufe Prozessverwaltung Signale Dateiverwaltung Katalogverwaltung Schutzmechanismen...

1. Systemaufrufe Prozessverwaltung Signale Dateiverwaltung Katalogverwaltung Schutzmechanismen... Systemaufrufe Inhalt 1. Systemaufrufe... 2 2. Prozessverwaltung... 5 3. Signale...12 4. Dateiverwaltung...19 5. Katalogverwaltung...32 6. Schutzmechanismen...37 7. Zeitverwaltung...41 Unix für Entwickler:

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 3. UNIX/Linux-Dateisysteme und zugehörige Systemaufrufe und Kommandos (Teil I) Wintersemester 206/7 UNIX/Linux-Dateisystem(e) Systemaufrufe zur Dateiarbeit:

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC)

Übungen zu Systemnahe Programmierung in C (SPiC) Übungen zu Systemnahe Programmierung in C (SPiC) Peter Wägemann, Sebastian Maier, Heiko Janker (Lehrstuhl Informatik 4) Übung 8 Sommersemester 2015 Inhalt POSIX Verzeichnisschnittstelle opendir, closedir,

Mehr

Systeme I: Betriebssysteme Kapitel 3 Dateisysteme. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 3 Dateisysteme. Wolfram Burgard Systeme I: Betriebssysteme Kapitel 3 Dateisysteme Wolfram Burgard Version 28.10.2015 1 Weiterer Inhalt der Vorlesung Verschiedene Komponenten / Konzepte von Betriebssystemen Dateisysteme Prozesse Nebenläufigkeit

Mehr

Benutzer- und Rechte-Verwaltung Teil 1

Benutzer- und Rechte-Verwaltung Teil 1 Benutzer- und Rechte-Verwaltung Teil 1 Linux-Kurs der Unix-AG Zinching Dang 23./24. Mai 2012 Wozu verschiedene Benutzer? (1) Datenschutz mehrere Benutzer pro Rechner, insbesondere auf Server-Systemen definierte

Mehr

Unix für Softwareentwickler

Unix für Softwareentwickler Unix für Softwareentwickler Dateisystem Benedict Reuschling 8. Mai 2014 1 / 48 Unix Dateisysteme Dieser Teil der Vorlesung beschreibt das Unix Dateisystem. Neben dem Aufbau des Dateisystems werden Zugriffsrechte,

Mehr

Basiskonzepte des Rechnerbetriebs

Basiskonzepte des Rechnerbetriebs Universität Potsdam Institut für Informatik Wintersemester 2012 2013 Basiskonzepte des Rechnerbetriebs Aufgabenblatt 2 2 Das UNIX-Dateisystem Arbeiten Sie, wenn nicht anders vermerkt, immer auf der Kommandozeile!

Mehr

Die UNIX-Kommandozeile

Die UNIX-Kommandozeile Die UNIX-Kommandozeile Kommando [-Optionen] [Argumente] Kommando Option Argument eingebautes Shell-Kommando oder ausführbare Datei (Programm) verändert die Grundeinstellung (voreingestellte Funktionalität)

Mehr

4.3 Directories / Filesysteme

4.3 Directories / Filesysteme I-Node H. Weber, FH Wiesbaden WS 2008/09 Systemprogrammierung Kap. 4.3 Seite 1 von 32 Hierfür gibt es eine ganze Reihe von Systemaufrufen und Subroutines. Wir beginnen mit chroot Root Directory ändern

Mehr

E.1 Allgemeine Konzepte (3) E.1 Allgemeine Konzepte (2) E.1 Allgemeine Konzepte. Datei. Einordnung. Katalog / Verzeichnis

E.1 Allgemeine Konzepte (3) E.1 Allgemeine Konzepte (2) E.1 Allgemeine Konzepte. Datei. Einordnung. Katalog / Verzeichnis E Dateisysteme E Dateisysteme (3) Einordnung Prozessor (CPU, Central processing unit) Datei speichert Daten oder Programme Katalog Verzeichnis erlaubt Benennung der Dateien enthält Zusatzinformationen

Mehr

2 2. Tag. 2.1 Das Dateisystem. das Dateisystem organisiert die Speicherung von Daten. viele Betriebssysteme haben verschiedene Dateisysteme

2 2. Tag. 2.1 Das Dateisystem. das Dateisystem organisiert die Speicherung von Daten. viele Betriebssysteme haben verschiedene Dateisysteme 2 2. Tag 2.1 Das Dateisystem das Dateisystem organisiert die Speicherung von Daten viele Betriebssysteme haben verschiedene Dateisysteme ein gutes Dateisystem ist wichtig um Daten sicher zu lagern Das

Mehr

Verzeichnisse. Foliensatz 5: Dateien und Verzeichnisse Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015

Verzeichnisse. Foliensatz 5: Dateien und Verzeichnisse Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Programmiertechnik 1. Unit 12: Programmiersprache C - Betriebssystemschnittstellen. Andreas Polze 1

Programmiertechnik 1. Unit 12: Programmiersprache C - Betriebssystemschnittstellen. Andreas Polze 1 Programmiertechnik 1 Unit 12: Programmiersprache C - Betriebssystemschnittstellen Andreas Polze 1 Ablauf Zugriff auf Betriebssystemdienste Dateideskriptoren low-level I/O read and write open, creat, close,

Mehr

Die Shell - Das Vorspiel

Die Shell - Das Vorspiel Die Shell - Das Vorspiel Die Shell, die Kommandozeile und ein Teil vom ganzen Rest Dirk Geschke Linux User Group Erding 22. Oktober 2008 Dirk Geschke (LUG-Erding) Linux Grundlagen 22. Oktober 2008 1 /

Mehr

Dateisystem. Heimo Schön 4/2002 Seite 1/31

Dateisystem. Heimo Schön 4/2002 Seite 1/31 Dateisystem Heimo Schön 4/2002 Seite 1/31 Filesystem Struktur Der Dateibaum (filesystem) ist hierarchisch, baumartig strukturiert und besteht aus Dateien (files): files beinhalten: Daten (texte, graphiken,

Mehr

Technische Praxis der Computersysteme. Technische Praxis der Computersysteme

Technische Praxis der Computersysteme. Technische Praxis der Computersysteme Shell: Alternative zu grafischer Oberfläche. Weniger Abstraktion, dafür mehr Kontrolle Shell: Alternative zu grafischer Oberfläche. Weniger Abstraktion, dafür mehr Kontrolle Eingaben: Befehle & Parameter,

Mehr

EINFÜHRUNG IN LINUX DR. MATTHIAS M. HÖLZL

EINFÜHRUNG IN LINUX DR. MATTHIAS M. HÖLZL EINFÜHRUNG IN LINUX DR. MATTHIAS M. HÖLZL 1. Aufbau eines Computer-Systems Ein Computersystem besteht aus Hardware (dem eigentlichen Rechner) und Software (den Programmen). Zur Hardware zählen der Prozessor

Mehr

Dateien (1) Datenströme

Dateien (1) Datenströme Dateien (1) Datenströme Standardbibliothek bietet sogenannte Datenströme (engl. Streams) Objekte, in die Informationen geschrieben oder von denen Daten gelesen werden können Zum Arbeiten mit Dateien benötigt

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC) Sommersemester 2018

Übungen zu Systemnahe Programmierung in C (SPiC) Sommersemester 2018 Übungen zu Systemnahe Programmierung in C (SPiC) Sommersemester 2018 Übung 8 Benedict Herzog Sebastian Maier Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Verteilte

Mehr

Wie man das Dateisystem in Deutschland versteht

Wie man das Dateisystem in Deutschland versteht E Dateisysteme E Dateisysteme E.1 Allgemeine Konzepte Einordnung Prozessor (CPU, Central processing unit) Hauptspeicher (Memory) Ein-, Ausgabegeräte/ Periphere Geräte (I/O Devices) externe Schnittstellen

Mehr

Zugriffsrechte. anzeigen lassen mit dem Befehl: ls -l

Zugriffsrechte. anzeigen lassen mit dem Befehl: ls -l Zugriffsrechte anzeigen lassen mit dem Befehl: ls -l ls wird verwendet, um Informationen über die Zugriffsrechte (und mehr) von Dateien und Verzeichnissen anzuzeigen. Wenn es mit der Option "-l" aufgerufen

Mehr

6.1.5 Verzeichnisdateien

6.1.5 Verzeichnisdateien 6.1.5 Verzeichnisdateien Anstelle eines zentralen Verzeichnisses: Menge von Verzeichnisdateien (directory files), die selbst in Verzeichnissen verzeichnet sind, alle ab einem Wurzelverzeichnis (root directory)

Mehr

Linux I II III Res WN/TT NLTK XML Weka E Rechte Encoding. Linux III. 3 Linux III. Rechte Encoding. Ressourcen-Vorkurs

Linux I II III Res WN/TT NLTK XML Weka E Rechte Encoding. Linux III. 3 Linux III. Rechte Encoding. Ressourcen-Vorkurs Linux III 3 Linux III Rechte Encoding Rechte I In der Unix-Welt gibt es drei wichtige Rechte: Read (r) Eine Datei lesen bzw. den Inhalt eines Verzeichnisses anzeigen Write (w) Eine Datei ändern bzw. eine

Mehr

Linux I II III Res WN/TT Rechte Encoding. Linux III. 3 Linux III. Rechte Encoding. Ressourcen-Vorkurs

Linux I II III Res WN/TT Rechte Encoding. Linux III. 3 Linux III. Rechte Encoding. Ressourcen-Vorkurs Linux III 3 Linux III Rechte Encoding Rechte I In der Unix-Welt gibt es drei wichtige Rechte: Read (r) Eine Datei lesen bzw. den Inhalt eines Verzeichnisses anzeigen Write (w) Eine Datei ändern bzw. eine

Mehr

Benutzer und Rechte Teil 3

Benutzer und Rechte Teil 3 Benutzer und Rechte Teil 3 Linux-Kurs der Unix-AG Zinching Dang 24. Januar 2018 Übersicht Wiederholung: Benutzer & Gruppen Zugriffsrechte & Besitzverhältnisse Befehle & Optionen Zusammenfassung & Ausblick

Mehr

Kapitel V Kapitel VII II File File--Systeme Systeme VO Betriebssysteme 1

Kapitel V Kapitel VII II File File--Systeme Systeme VO Betriebssysteme 1 Kapitel VII File-Systeme VO Betriebssysteme 1 Langzeitspeicher: File Was ist ein File? Eine Kollektion von Informationen mit einem Namen, die im Sekundärspeicher gespeichert ist. speichere große Datenmengen

Mehr

Betriebssysteme - Dateisysteme

Betriebssysteme - Dateisysteme Betriebssysteme - Dateisysteme... alois.schuette@h-da.de Version: (8c45d65) ARSnova 19226584 Alois Schütte 23. März 2016 1 / 57 Inhaltsverzeichnis Dieser Teil beschreibt den Aufbau von Dateisystemen am

Mehr

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Dateikanäle. Inhalt. Dateien & Dateikanäle Dateikanäle Ein-/Ausgaben

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Dateikanäle. Inhalt. Dateien & Dateikanäle Dateikanäle Ein-/Ausgaben Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier (Lehrstuhl Informatik 4) Übung 8 Verwendung von stat Sommersemester 2016 Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 2 15 Ein- und

Mehr

U6 Verzeichnisse und Sortieren

U6 Verzeichnisse und Sortieren U6 Verzeichnisse und Sortieren U6 Verzeichnisse und Sortieren Linux-Benutzerumgebung Fehlerbehandlung POSIX-Verzeichnis-Systemschnittstelle Datei-Attribute in Inodes U6.1 U6-1 Linux-Benutzerumgebung U6-1

Mehr

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam Aktuelle Fileposition ermitteln long pos; pos=ftell(fp); //aktuelle Bytenummer Filelaenge in Bytes fseek(fp,0,seek_end); pos=ftell(fp); Fileendeerkennung int rc; rc = feof (fp) //!= 0 bei Fileende // ==

Mehr

9. Dateisysteme. Betriebssysteme Harald Kosch Seite 164

9. Dateisysteme. Betriebssysteme Harald Kosch Seite 164 9. Dateisysteme Eine Datei ist eine Abstraktion für ein Aggregat von Informationen (muß nicht eine Plattendatei sein). Aufbau eines Dateisystems: Katalog (Directory) Einzelne Dateien (Files) Zwei Aspekte

Mehr

Dateisysteme. Erweiterte Anforderungen an Speicher

Dateisysteme. Erweiterte Anforderungen an Speicher Erweiterte Anforderungen an Speicher Mehr Speicher als adressierbar ist. Daten sollen nach Beendigung des Prozesses zur Verfügung stehen Mehrere Prozesse sollen auf die Daten zugreifen können. Nutzung

Mehr

8. Arbeiten mit Dateien

8. Arbeiten mit Dateien 8. Arbeiten mit Dateien www.c-programme.de Stefan Thiemert Kapitel 8 - Seite 1 von 6 8. 1. Allgemeines Bisher haben wir Daten, die wir in unseren Programmen erzeugt und verarbeitet haben, nur über den

Mehr

Systeme I: Betriebssysteme Kapitel 3 Dateisysteme. Wolfram Burgard

Systeme I: Betriebssysteme Kapitel 3 Dateisysteme. Wolfram Burgard Systeme I: Betriebssysteme Kapitel 3 Dateisysteme Wolfram Burgard Version 25.10.2017 1 Organisatorisches Nächste Woche keine Vorlesung und keine Übungen Bei Fragen Foren im Ilias Übernahme der Übungsgruppen

Mehr

Langzeitspeicher: File. Kapitel VII. File-Attribute (1) File-Eigenschaften

Langzeitspeicher: File. Kapitel VII. File-Attribute (1) File-Eigenschaften Langzeitspeicher: File Kapitel VII Was ist ein File? Eine Kollektion von Informationen mit einem Namen, die im Sekundärspeicher gespeichert ist. File-Systeme Speichere große Datenmengen. Gespeicherte Information

Mehr

Ein-/Ausgabe, Dateisystem. Kapitel 9: Ein-/Ausgabe. Programmieren in C für Elektrotechniker. Programmieren in C. Dateisystem. Programmieren in C

Ein-/Ausgabe, Dateisystem. Kapitel 9: Ein-/Ausgabe. Programmieren in C für Elektrotechniker. Programmieren in C. Dateisystem. Programmieren in C für Elektrotechniker Kapitel 9: Dateisystem, Dateisystem E/A-Konzept in UNIX und C UNIX (und damit auch C) verwendet Datenströme (streams) als Konzept zur Verbindung von Programmen mit E/A-Geräten und

Mehr

Benutzer- und Rechte-Verwaltung Teil 2

Benutzer- und Rechte-Verwaltung Teil 2 Benutzer- und Rechte-Verwaltung Teil 2 Linux-Kurs der Unix-AG Zinching Dang 26. November 2012 Zugriffsrechte (1) definieren, welche Benutzer welche Dateien lesen, schreiben und ausführen dürfen (read,

Mehr

UNIX/Linux Lösung. Mär 14, 17 20:40 Seite 1/6. Prozeßsynchronisation (was ist das?, wo kommt es vor?, Beispiel?):

UNIX/Linux Lösung. Mär 14, 17 20:40 Seite 1/6. Prozeßsynchronisation (was ist das?, wo kommt es vor?, Beispiel?): Mär 14, 17 20:40 Seite 1/6 Aufgabe 1: Erklären Sie folgende Begriffe (25 Punkte): Prozeßsynchronisation (was ist das?, wo kommt es vor?, Beispiel?): Abstimmen von mehreren Prozessen, warten auf Ergebnisse,

Mehr

UNIX Die wichtigsten Befehle

UNIX Die wichtigsten Befehle UNIX Die wichtigsten Befehle Syntax alias shortname command at zeit [Tag] [Datei] cron cat [-nsuv] [datei] passwd [ben_name] finger user fg, bg job set [-ekntuvx] [name] sort [-bcdfimnurt] [+pos1 pos2]

Mehr

Benutzer- und Rechtevergabe

Benutzer- und Rechtevergabe Benutzer- und Rechtevergabe Gliederung 1) Einführung 2) Rechte 3) Benutzer 4) Editoren Einführung GNU/Linux ist ein Mehrbenutzer- Betriebssystem (d.h. es können mehrere GNU/Linux ist ein Mehrbenutzer-

Mehr

Linux eine Einführung

Linux eine Einführung Linux eine Einführung Was ist Linux? ein Unix ähnliches Betriebssystem freie Software für sehr viele Hardwareplattformen erhältlich Was kann Linux? Multitasking Multiuser Authentifizierung erforderlich

Mehr

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr. ls [optionen] [namen]: ls zeigt den Inhalt von Verzeichnissen. Sind keine namen angegeben, werden die Dateien im aktuellen Verzeichnis aufgelistet. Sind eine oder mehrere namen angegeben, werden entweder

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC)

Übungen zu Systemnahe Programmierung in C (SPiC) Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2013 Inhalt Linux Terminal Arbeitsumgebung Manual Pages Fehlerbehandlung Bibliotheksfunktionen

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2013

Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2013 Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2013 Inhalt Linux Terminal Arbeitsumgebung Manual Pages Fehlerbehandlung Bibliotheksfunktionen

Mehr

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a Was machen wir heute? Betriebssysteme Tutorium 10 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

Was machen wir heute? Betriebssysteme Tutorium 11. Mounten: Vorher. Frage 11.1.a

Was machen wir heute? Betriebssysteme Tutorium 11. Mounten: Vorher. Frage 11.1.a Was machen wir heute? Betriebssysteme Tutorium 11 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

Linux Kurs Vorlesung 2 - Terminal

Linux Kurs Vorlesung 2 - Terminal Linux Kurs Vorlesung 2 - Terminal Verzeichnis-Hierarchie / /bin /sbin /lib /usr /tmp /dev /boot /etc /var /home - Wurzelverzeichnis grundlegende Befehle und Programme (binary) grundlegende Systembefehle

Mehr

Prozesse, Logs und Systemverwaltung

Prozesse, Logs und Systemverwaltung Prozesse, Logs und Systemverwaltung Linux-Kurs der Unix-AG Zinching Dang 31. Januar 2018 Übersicht Wiederholung & Vertiefung: Benutzer & Gruppen Prozesse Log-Dateien Befehle & Optionen Zusammenfassung

Mehr

1.4 Anwendung/Berechtigungen

1.4 Anwendung/Berechtigungen 1.4 Anwendung/Berechtigungen 1.4.1 Berechtigungen Beim Arbeiten mit Mehrbenutzersystemen sowie bei der Arbeit in Netzen kommt es darauf an, mit Berechtigungen für Dateien, Verzeichnisse und Geräte sicher

Mehr

E-/A-Funktionalität nicht Teil der Programmiersprache

E-/A-Funktionalität nicht Teil der Programmiersprache C Ein-/Ausgabe C Ein-/Ausgabe C.1 Überblick E-/A-Funktionalität nicht Teil der Programmiersprache Realisisierung durch "normale" Funktionen Bestandteil der Standard-Funktionsbibliothek einfache Programmierschnittstelle

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2017/18

Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2017/18 Übungen zu Systemnahe Programmierung in C (SPiC) Wintersemester 2017/18 Übung 7 Benedict Herzog Sebastian Maier Lehrstuhl für Informatik 4 Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für

Mehr

UNIX/Linux Lösung. Mär 08, 16 16:11 Seite 1/6

UNIX/Linux Lösung. Mär 08, 16 16:11 Seite 1/6 Mär 08, 16 16:11 Seite 1/6 Aufgabe 1: Erläutern Sie detailliert das nachfolgende Kommando (Einzelbefehle, Optionen, Zusammenspiel) (20 Punkte): cd /usr/bin Wechsel ins Verzeichnis bin in /usr (2) ls d

Mehr

Vorlesung Unix-Praktikum

Vorlesung Unix-Praktikum Vorlesung Folien nach Carsten Gnörlich Technische Fakultät Universität Bielefeld Winteresemester 2016 1 / 13 anzeigen Traditionell ist UNIX ein Mehrbenutzersystem. Recall: Jeder User (= ) hat eine (oder

Mehr

UNIX-Dateisysteme - Allgemeines

UNIX-Dateisysteme - Allgemeines FACHHOCHSCHULE MUENCHEN FACHBEREICH ELEKTROTECHNIK UND INFORMATIONSTECHNIK FG TECHNISCHE INFORMATIK V BS 36 1 TH 7 ----------------------------------------------------------------------------------- UNIX-Dateisysteme

Mehr

Benutzer- und Rechte-Verwaltung Teil 1

Benutzer- und Rechte-Verwaltung Teil 1 Benutzer- und Rechte-Verwaltung Teil 1 Linux-Kurs der Unix-AG Benjamin Eberle 30. November 2015 Datei- und Verzeichnis-Besitzer benutzer@rechner:~#ls -lh Dokumente/ insgesamt 12K -rw-rr 1 benutzer gruppe

Mehr

Prozesse, Logs und Systemverwaltung

Prozesse, Logs und Systemverwaltung Prozesse, Logs und Systemverwaltung Linux-Kurs der Unix-AG Zinching Dang 31. Januar 2017 Übersicht Wiederholung & Vertiefung: Benutzer & Gruppen Prozesse Log-Dateien Befehle & Optionen Zusammenfassung

Mehr

Das CIP der Mathematik

Das CIP der Mathematik Das CIP der Mathematik Eine kurze Unix Einführung Werner Bley (nach Martin Kerscher) Mathematisches Institut Ludwig Maximilians Universität München 7. Oktober 2014 Gliederung Allgemeines zum Betriebssystem

Mehr

U6-1 Linux-Benutzerumgebung

U6-1 Linux-Benutzerumgebung U6 Verzeichnisse und Sortieren U6 Verzeichnisse und Sortieren Linux-Benutzerumgebung Fehlerbehandlung POSIX-Verzeichnis-Systemschnittstelle Datei-Attribute in Inodes U6.1 Editoren: Kate, gedit, Eclipse

Mehr

Technische Praxis der Computersysteme

Technische Praxis der Computersysteme Wiederholung: Navigationsbefehle: ls, cd, pwd, mkdir, rm, cd, mv Ein-/Aushängen von Dateisystemen: mount, umount Nachtrag zu binds. du du - estimate file space usage Disk Usage, kann genutzt werden, um

Mehr

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C Teil 10: Arbeiten mit Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen in C 4. Bildschirm

Mehr

Verständliche Einführung was Rechte sind, was sie bewirken und wie man diese verändert.

Verständliche Einführung was Rechte sind, was sie bewirken und wie man diese verändert. Das Rechtesystem von Linux Verständliche Einführung was Rechte sind, was sie bewirken und wie man diese verändert. In der letzten Zeit häufen sich die Fragen in Foren welche das Rechtesystem betreffen.

Mehr

Datei- und Verzeichnisnamen korrekt zu vergeben. Verzeichnisse, Dateien und Gerätedateien zu unterscheiden.

Datei- und Verzeichnisnamen korrekt zu vergeben. Verzeichnisse, Dateien und Gerätedateien zu unterscheiden. 2 Dateien verwalten Texte, Programme und Daten beliebiger Art werden in Form von Dateien auf einem EDV-System verwaltet. Um den Überblick über eine Vielzahl von Dateien wahren zu können, ist es sinnvoll,

Mehr

Shellmitschrift aus dem Piratenpad unter https://piratenpad.de/p/lpi. Shellmitschrift aus dem Piratenpad unter https://piratenpad.

Shellmitschrift aus dem Piratenpad unter https://piratenpad.de/p/lpi. Shellmitschrift aus dem Piratenpad unter https://piratenpad. Shellmitschrift aus dem Piratenpad unter https://piratenpad.de/p/lpi i Shellmitschrift aus dem Piratenpad unter https://piratenpad.de/p/lpi MITWIRKENDE TITEL : Shellmitschrift aus dem Piratenpad unter

Mehr

SelfLinux Dateien unter Linux

SelfLinux Dateien unter Linux Dateien unter Linux Autor: Frank Boerner (frank@frank-boerner.de) Formatierung: Matthias Hagedorn (matthias.hagedorn@selflinux.org) Lizenz: GFDL Im Unterschied zu Windows wird bei Linux zwischen Groß-

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation 7. UNIX/Linux Pipes Wintersemester 2016/17 UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter Informationsaustausch: 5. 1.

Mehr

Betriebssysteme - Benutzerverwaltung

Betriebssysteme - Benutzerverwaltung Betriebssysteme - Benutzerverwaltung... alois.schuette@h-da.de Version: (8c45d65) ARSnova 19226584 Alois Schütte 23. März 2016 1 / 11 Inhaltsverzeichnis Hier wird die Systematik der Unix-Benutzerverwaltung

Mehr

Dateizugriff unter C

Dateizugriff unter C Begriffe Dateizugriff unter C Datei = sequentielle Ansammlung von Datenbytes, z.b. auf einer Festplatte Auch Bildschirm und Tastatur werden wie Dateien behandelt: Bildschirm ist die Datei stdout Tastatur

Mehr

Grundlagen der Programmierung

Grundlagen der Programmierung Übung 1: Unix Werkzeuge Robert Sombrutzki sombrutz@informatik.hu-berlin.de Unix Werkzeuge Warum? Diese Frage sollten Sie sich immer mal wieder stellen! Denkbare Antworten Weil Sie diese Werkzeuge immer

Mehr

Dateisystem 2, RegEx, Manpages

Dateisystem 2, RegEx, Manpages Dateisystem 2, RegEx, Manpages Linux-Kurs der Unix-AG Andreas Teuchert 10. Dezember 2012 Manpages Dokumentation zu Programmen, speziellen Dateien, etc. steht in Manpages Aufruf mit man Manpage

Mehr

18.1 Überblick Überblick (3)

18.1 Überblick Überblick (3) Überblick: Teil D Betriebssystemabstraktionen 18.1 Überblick Einordnung 15 Nebenläufigkeit Prozessor (CPU, Central processing unit) 16 Ergänzungen zur Einführung in C 17 Betriebssysteme 18 Dateisysteme

Mehr

GI Vektoren

GI Vektoren Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung

Mehr

1.Einleitung...3. 2.Zugriffsrechte...4. 3.Einfache Dateien...12. 3.1.Links...13. 3.2.Symbolische Links...14. 4.Verzeichnisse...16

1.Einleitung...3. 2.Zugriffsrechte...4. 3.Einfache Dateien...12. 3.1.Links...13. 3.2.Symbolische Links...14. 4.Verzeichnisse...16 Das Filesystem Dieser Teil beschreibt das Unix Dateisystem. Neben dem Aufbau des Dateisystems werden Zugriffsrechte, verschieden Arten von Dateien, entfernbare Datenträger und die Realisierung mittels

Mehr

Geräteverwaltung: Einführung

Geräteverwaltung: Einführung Geräteverwaltung: Einführung Die Ziele einer Geräteverwaltung sind: Einfache Softwareschnittstelle Gleiche Software Schnittstellen für alle Geräte eines Gerätetyps z.b.: unabhängig vom Soundkartenhersteller

Mehr

Benutzerverwaltung unter Linux

Benutzerverwaltung unter Linux Benutzerverwaltung unter Linux Autor: Heiko Degenhardt (hede@pingos.org) Formatierung: Matthias Hagedorn (matthias.hagedorn@selflinux.org) Lizenz: GFDL Benutzerverwaltung unter Linux Seite 2 Inhaltsverzeichnis

Mehr

U6-1 Linux-Benutzerumgebung

U6-1 Linux-Benutzerumgebung U6 Verzeichnisse und Sortieren U6 Verzeichnisse und Sortieren Linux-Benutzerumgebung Fehlerbehandlung POSIX-Verzeichnis-Systemschnittstelle Datei-Attribute in Inodes Zugriff aus der Windows-Umgebung über

Mehr

Benutzer- und Rechte-Verwaltung Teil 2

Benutzer- und Rechte-Verwaltung Teil 2 Benutzer- und Rechte-Verwaltung Teil 2 Linux-Kurs der Unix-AG Zinching Dang 30./31. Mai 2012 Benutzer- und Gruppen-Datenbank Benutzer- bzw. Gruppen-Informationen sind in einzelnen Dateien gespeichert:

Mehr

Unix-Dateirechte. Mark Heisterkamp 18. Juni Mark Heisterkamp, Unix-Dateirechte, 18. Juni 2008 Seite 1/39

Unix-Dateirechte. Mark Heisterkamp 18. Juni Mark Heisterkamp, Unix-Dateirechte, 18. Juni 2008 Seite 1/39 Unix-Dateirechte Mark Heisterkamp heisterkamp@rrzn.uni-hannover.de 18. Juni 2008 Mark Heisterkamp, Unix-Dateirechte, 18. Juni 2008 Seite 1/39 Nutzer und Gruppen alle Nutzer sind in Gruppen organisiert

Mehr

Systemverwaltung mittels Skripts

Systemverwaltung mittels Skripts Systemverwaltung mittels Skripts Sept. 2003 M. Rigling 1 / 1 Version 0.2 Inhaltsverzeichnis: Systemverwaltung mittels Skripts...1 Inhaltsverzeichnis:...2 1. Skriptsprachen...3 2. Zur Erstellung von Skripts...3

Mehr

Einführung in Betriebssysteme UNIX AM BEISPIEL LINUX

Einführung in Betriebssysteme UNIX AM BEISPIEL LINUX Einführung in Betriebssysteme UNIX AM BEISPIEL LINUX 23 UNIX entwickelt Anfang der 1970er Jahre von Ken Thompson und Dennis Ritchie (Bell Laboratories) Quelle: Wikipedia Zusammen und auf der Basis von

Mehr

Arbeiten mit der Shell Teil 1

Arbeiten mit der Shell Teil 1 Arbeiten mit der Shell Teil 1 Linux-Kurs der Unix-AG Benjamin Eberle 4. Mai 2016 Die Komandozeile unter Linux Wird als Shell bezeichnet Die Shell ist eines der vielen Programme einer Linux-Distribution

Mehr

.DSLWHO*%HWULHEXQWHU6&281,;9

.DSLWHO*%HWULHEXQWHU6&281,;9 .DSLWHO* %HWULHEXQWHU 6&281,;9.DSLWHO*%HWULHEXQWHU6&281,;9 *%HWULHEXQWHU6&281,;9 Nachdem in den Kapiteln B und C der Einbau des ICP Controllers bzw. das Einrichten von Host Drives erklärt wurde, wollen

Mehr

Arbeiten mit der Shell Teil 1

Arbeiten mit der Shell Teil 1 Arbeiten mit der Shell Teil 1 Linux-Kurs der Unix-AG Zinching Dang 09. November 2015 Die Unix-Philosophie Es gibt viele kleine Programme Können die jeweiligen Aufgaben gut lösen Komplexe Aufgaben werden

Mehr

Linux Administration: Dateisystem, Benutzer, Rechte,... Folie 1 von 14

Linux Administration: Dateisystem, Benutzer, Rechte,... Folie 1 von 14 Linux Administration: Dateisystem, Benutzer, Rechte,... Folie 1 von 14 Linux Administration Dateisystem, Benutzer, Rechte,... Peter Rudolph Dateisystem Linux Administration: Dateisystem, Benutzer, Rechte,...

Mehr

Fortgeschrittene I/O

Fortgeschrittene I/O Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Überblick: Teil D Betriebssystemabstraktionen

Überblick: Teil D Betriebssystemabstraktionen Überblick: Teil D Betriebssystemabstraktionen 15 Nebenläufigkeit 16 Ergänzungen zur Einführung in C 17 Betriebssysteme 18 Dateisysteme 19 Programme und Prozesse V_SPIC_handout 20 Speicherorganisation 21

Mehr

I/O: Von der Platte zur Anwendung. Von Igor Engel

I/O: Von der Platte zur Anwendung. Von Igor Engel I/O: Von der Platte zur Anwendung Von Igor Engel 1 Gliederung 1 Einleitung 2 Übersicht 3 Systemaufrufe Beispiel in Unix 4 Dateien 4.1 Dateisysteme 4.2 Transport der Daten 5 Festplattentreiber 6 Festplattenkontroller

Mehr

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel Inhalt: Vorbemerkung...1 Allgemeines zu Shell Scripts...1 Aufruf...1 Einfaches Beispiel...1 Testen eines Shell-Scripts...2 Kommandozeilen-Parameter...2 Prozeßsteuerung...3 Bedingte Ausführung: if...3 Mehrfachentscheidung:

Mehr

U6 Verzeichnisse und Sortieren U6 Verzeichnisse und Sortieren

U6 Verzeichnisse und Sortieren U6 Verzeichnisse und Sortieren U6 Verzeichnisse und Sortieren U6 Verzeichnisse und Sortieren Wiederholung: Gültigkeitsbereiche & Module Linux-Benutzerumgebung Fehlerbehandlung POSIX-Verzeichnis-Systemschnittstelle Datei-Attribute in

Mehr

Lösung von Übungsblatt 3

Lösung von Übungsblatt 3 Lösung von Übungsblatt 3 Aufgabe 1 (Rechnerarchitektur) 1. Welche drei Komponenten enthält der Hauptprozessor? Rechenwerk, Steuerwerk und Speicher. 2. Welche drei digitalen Busse enthalten Rechnersysteme

Mehr

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1 Systeme 1 Kapitel 3 Dateisysteme WS 2009/10 1 Letzte Vorlesung Dateisysteme Hauptaufgaben Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien Kleinste logische Einheit eines Dateisystems Dateitypen

Mehr

Klausur Betriebssysteme I

Klausur Betriebssysteme I Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme I 18.3.2011 Bitte bearbeiten Sie die Aufgaben auf den Aufgabenblättern. Die Benutzung von Unterlagen oder Hilfsmitteln ist nicht erlaubt. Die Bearbeitungszeit

Mehr

Linux Kommandozeile: Einfache Skripte. 1 Wiederhohlung. 2 Einfache Skripte

Linux Kommandozeile: Einfache Skripte. 1 Wiederhohlung. 2 Einfache Skripte Linux Kommandozeile: Einfache Skripte AST, Wintersemester 2016/2017 1 Wiederhohlung Hier sind ein paar Befehle, die ihr letzte Woche schon kennen gelernt habt und heute benutzt. Befehl Parameter Funktion

Mehr