| |
|
|
Kurs - Unix: Systemprogrammierung («UNV») |
 |

Ein Vertiefungsseminar für UNIX-Spezialisten

Ein Grund für die Beliebtheit von Unix ist die klare und einfache Struktur der Programmierschnittstelle. Ein anderer Vorteil ist die durch die weit gehende Implementierung des Systems in einer höheren Programmiersprache gegebene Portabilität des Systemkerns auf neue Hardware. Die Eleganz und Überschaubarkeit des Systemkerns hat dazu geführt, dass heute viele Systemprogrammierer an Hand des Unix-Betriebssystems lernen, wie ein Mehrprozess/Mehrbenutzer-System funktioniert. In diesem Kurs wird viel Wert gelegt auf die Portabilität der Systemprogramme. Es werden fast ausschliesslich POSIX-konforme (P1003.1) Systemcalls und Bibliotheksroutinen verwendet. Am ersten Tag des Kurses wird die nötige Theorie (Betriebssystem-Grundlagen, Unix-Kernelarchitektur) behandelt. Die restlichen vier Tage werden dazu verwendet, alle wichtigen System-Calls und viele Bibliotheksroutinen in Theorie und Praxis (anhand zahlreicher Beispielprogramme und Übungen) kennen zu lernen.
|
 |
| Ihr Nutzen/Lernziele |
| Sie kennen die Unix-System-Calls und -Bibliotheksroutinen für die Systemprogrammierung und verstehen die Kernel-Architektur. |
 |
| Zielgruppe |
| Dieser Kurs wendet sich nicht nur an zukünftige Systemprogrammierer, sondern auch an fortgeschrittene Anwendungsprogrammierer, die für die elegante und leistungsfähige Implementation von Software verstehen sollten, wie ihre Programme und das Betriebssystem interagieren, und an alle jene, welche die Unix-Interna kennen lernen wollen. |
 |
| Voraussetzungen |
Fortgeschrittene Unix-Anwenderkenntnisse gemäss unseren Kursen «Unix Systemadministration I» («UXA») und «Unix Systemadministration II» («USK»). Gute C-Programmierkenntnisse und -praxis (bei fehlender Programmierpraxis ist der Besuch der Kurse «C für Programmierer» («CEP») und «C für Fortgeschrittene» («CPF») oder «C++ für Programmierer» («CPL») und «C++ Aufbauseminar» («CPA») empfohlen. |
 |
| Inhalt |
|
- Einführung
- Kursziele
- Unix-Geschichte
- Unix-Versionen
- POSIX
- Grundlagen
- Funktionen eines Betriebssystems
- Betriebssystemklassen
- Speicherverwaltung
- Hardwarevoraussetzungen
- Unix-Architektur
- Kernel
- Organisation eines Disks
- Organisation eines Filesystems
- Organisation eines Files
- Filesystem-Datenstrukturen
- Device-Driver und Special Files
- Buffer cache
- Organisation eines Prozesses
- Prozess-System-Datenstrukturen
- Scheduling
- Signale
- Allgemeines zur Systemprogrammierung
- System Calls und Bibliotheksroutinen
- Include-Files
- Fehlerbehandlung (exit status)
- Beschreibung der Routinen
- Das Filesystem
- Zugriff auf Regular Files open(), creat(), close(), read(), write(), lseek()
- Zugriff auf Fileattribute chmod(), fchmod(), chown(), fchown(), stat(), fstat(), access(), fcntl()
- Zugriff auf Directories chdir(), getcwd(), chroot(), link(), unlink(), rename(), symlink(), readlink(), mkdir(), rmdir(), mount(), umount(), opendir(), closedir(), readdir(), rewinddir()
- Zusätzliche Filesystem-System-Calls mknod(), umask(), dup(), dup2(), sync()
- Device-Kontrolle ioctl()
- Speicherverwaltung
- brk(), sbrk(), malloc(), free(), realloc(), calloc()
- Prozesskontrolle
- Prozesskreation und -termination fork(), vfork(), exit(), _exit(), wait(), waitpid(), exec()-Familie, system(), popen(), pclose()
- Signale signal(), sigaction(), kill(), setpgid(), setpgrp(), getpgrp(), setsid(), alarm(), pause(), sleep(), getitimer(), setitimer()
- Prozessinformation getpid(), getppid(), getuid(), getgid(), geteuid(), getegid(), setuid(), setgid(), times(), getrusage(), getenv()
- Scheduling nice()
- Systeminformation
- uname(), time(), stime(), getrlimit(), setrlimit()
- Steuerung von Bildschirmen und seriellen Leitungen
- Attribute tcgetattr(), tcsetattr()
- Tastatursignale tcgetpgrp(), tcsetpgrp()
- Interprozess-Kommunikation
- Multiplexing select()
- Pipes pipe()
- Netzwerk-Programmierung, TCP/IP, BSD-Sockets socket(), bind(), listen(), accept(), connect()
- System V IPC ftok()
- Message Queues msgget(), msgsnd(), msgrcv(), msgctl()
- Shared Memory shmget(), shmat(), shmdt(), shmctl()
- Semaphoren semget(), semop(), semctl()
|
 |
| Dauer |
| 5 Tage |
 |
| Kursunterlagen |
| DIGICOMP-Kursmaterial |
 |
| Bildungswege & IT-Zertifikate |
Unix-Seminare
|
 |
| Preis |
| CHF 3750.-- |
Massgeschneidertes Training Für Firmen, die mehrere ihrer Mitarbeiter gleichzeitig schulen oder ein massgeschneidertes Weiterbildungspaket wünschen, gelten spezielle Konditionen.
Unser Firmenkurs-Team,
stellt Ihnen gerne ein individuell angepasstes Angebot zusammen.
|
|

Aktuell:
 |






Kunden Feedback
 |
 |
 |
 |
 «Danke, dass die Lokalität auch für Menschen mit einer Behinderung geeignet ist.» Ulrich Nater Kurs S8T, 24.11.2009
 |
 |
 |
|
|
|
|
 |
|
|