Liste VB Systemprogrammierung Dozent: Prof. Dr. Helmut Weber
Agenda::: Einleitung Überblick Filesysteme Hardware Disks Memory Management System Monitoring Netzwerke Fazit (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) 2
Agenda::: Einleitung Überblick Filesysteme Hardware Disks Memory Management System Monitoring Netzwerke Fazit (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) 3
Einleitung::: Aufgaben eines Systemadministrators: Betreuen von Rechnern und Netzwerken Dienstleister für Kunden (Nutzer) SysAdmins beschäftigen sich mit Hardware (Server, Clients, Netz) Betriebssystem Konfiguration Anwendungen Sicherheit 4
Einleitung::: Linux - Betriebssystem für eine Vielzahl von Plattformen Linus Torvalds im Jahre 1991 / 1992 SuSe GmbH Von Anfang an unter GPL gestellt 10 Millionen Anwendern auf ca. 8 Millionen Rechnern Linus Torvalds 1996 in Berlin World Domination Maskottchen TUX von Linus Torvalds für Linux 2.0 Schöpfer war Larry Ewing 5
Agenda::: Einleitung Überblick Filesysteme Hardware Disks Memory Management System Monitoring Netzwerke Fazit (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) 6
Überblick::: Anmelden am UNIX-System: Login und Passwort erforderlich Eine Zeile pro authorisierter Benutzer Trennung durch : Unterschied /etc/passwd VS. /etc/shadow Die neueren Unix-Systeme SVR4 7
Überblick::: Anmelden am UNIX-System: 8
Überblick::: Shells: Shell ist ein Programm nimmt Kommandos des Benutzers entgegen Interpretiert und setzt diese in Systemaufrufe um Ist nicht Bestandteil des Betriebssystemkerns Shell ist austauschbar daher versch. Versionen Bourne-Shell (/bin/sh) Korn-Shell (/bin/ksh) C-Shell (/bin/csh) Bourne-Again-Shell (/bin/bash) TC-Shell (/bin/tcsh) 9
Überblick::: Dateien und Directories Keine Dateistruktur unter UNIX Eine Datei = eine Folge von Bytes Länge der Dateien: Blöcken von Bytes gespeichert, daher zwei Grössen: Länge in Bytes Länge in Blöcken (üblich 512 Byte oder 1024 Byte) keine Begrenzung bezüglich maximale Dateigrösse 10
Überblick::: Dateiarten: Es werden mehrere Arten von Dateien unterschieden: - REGULAR FILES (gewöhnliche Dateien) - SPECIAL FILES (Gerätedateien) - DIRECTORIES () - FIFOs (First In First Out / Named Pipes) - SOCKETS (-) - SYMBOLIC LINKS (symbolische Verweise) 11
Überblick::: Zugriffsrechte: Datei/Directory ist ein Zugriffsrecht-Muster zugeordnet Muster enthält 9 Bits: Ersten drei OWNER Folgenden drei GROUP Letzten drei für OTHERS read-, write-, und execute-zugriffsrechte 12
Überblick::: Zugriffsrechte: Mit ls l per Konsole Zugriffsrechte ansehen: 13
Zugriffsrechte: -rwxr--r-- Überblick::: Datei, jeder kann lesen, Eigentümer kann schreiben und ausführen drwxr-xr-x Ein Verzeichnis, jeder User kann sehen aber nicht löschen (ausser Eigentümer) 14
Überblick::: Zugriffsrechte: chmod (change mode) U (User) G (Group) O (Others) A (All) ACHTUNG - KANN NUR DER SYSTEMVERWALTER ÄNDERN: chown (change owner) chgrp (change group) 15
Überblick::: Dateinamen: Alle Zeichen erlaubt ausser / und NULL Empfehlung um Konflikte mit Shell zu vermeiden:? @ # $ ^ & * ( ) ` [ ] \ ' " < > Leerzeichen Tabulatorzeichen als erstes Zeichen eines Dateinamens nicht +, - oder. älteren Unix-Systemen die Länge von Dateinamen auf 14 Zeichen begrenzt in neueren Unix-Systemen diese Grenze erheblich hochgesetzt (z.b. auf 255 Zeichen) 16
Agenda::: Einleitung Überblick Filesysteme Hardware Disks Memory Management System Monitoring Netzwerke Fazit (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) 17
Filesysteme::: 18
Filesysteme::: 19
Zusammenfassung: Filesysteme::: FHS Filesystem Hierarchy Standard Wurzel ist / (Slash) also engl. Root /home = Heimatsverzeichnis /lib = Funktionsbibliotheken des Systems /etc = Konfigurationsdateien /dev = Gerätedateien /bin = Programme für den Anwender /boot = Bootloader LILO zum Hochfahren des Systems /media = Links zu angeschlossenen Geräten und Laufwerken /mnt = leer und steht als mountpoint zur Verfügung 20
Zusammenfassung II: Filesysteme::: /lost+found = Filecheck-Programm legt hier Dateien ab /proc = Schnittstelle zum Kernel /sbin = wie /bin, jedoch für Systemverwalter /tmp = temporäre Ablage /usr = umfangreichste Verzeichnisstruktur des Systems /var = Ablage der Dateien, die sich ständig ändern /opt = optionale Software, kommerzielle od. sehr grosse Programme, die nicht zum System gehören 21
Agenda::: Einleitung Überblick Filesysteme Hardware Disks Memory Management System Monitoring Netzwerke Fazit (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) 22
Hardware::: 23
Agenda::: Einleitung Überblick Filesysteme Hardware Disks Memory Management System Monitoring Netzwerke Fazit (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) 24
Disks::: Floppies, Festplatten, CD-ROMs, usw. WICHTIG Formatierung (Beschädigungen) Partitionen (Zwecke/Sicherheit) Dateisystemen Mounten (mehrere Dateisysteme) 25
Gerätedateien: Disks::: Gerät als Gerätedatei (Dateisystem) Keine zusätzliche Software notwendig 26
Gerätedateien: Geräte suchen: Disks::: C= Charactergerät; d=blockgerät Achtung! Gerätedateien existieren nach der Installation! (/dev/sda) Spätere Installation 27
Festplatten: Disks::: Gerätedatei: keine Rücksicht auf Partitionen IDE: /dev/hda bzw. /dev/hdb SCSI: /dev/sda bzw. /dev/sdb 28
Floppies: /dev/fd0h1440 Disks::: fd0; H (hoher Dichte), 1440 (Größe) dank Linux: /dev/fd0, /dev/fd1, usw. setfdprm (Parameter ändern) Nützlich bei: Fehlern/ungew. Größen 29
CD-ROMs: Disks::: ISO 9960 (standard CD-ROM Format) mkdir /cdrom mount /dev/scd0 /cdrom mount /dev/scd0 on /cdrom type iso9660 (ro) 30
Disks::: Formatieren: Zwingend notwendig Ordnung magnetischer Signale MS: Low Level (-) und High Level (Dateisystem) IDE/SCSI: schon formatiert 31
Disks::: Formatieren: Formatierung Software (MS-DOS) bad blocks/bad sectors (auto./partition) Floppy formatieren: 32
Disks::: Formatieren: automatisch erkannte Floppy formatieren: 33
Disks::: Formatieren: fdformat: nur einige bad blocks bricht NUR bei gravierenden Fehlern ab Zeigt nicht an WO die Fehler sind /var/log/messages 34
Disks::: Formatieren: Bad blocks bei einer 3,5-Zoll-Diskette (hier fehlgeschlagen) 35
Formatieren: Disks::: Befehl bad blocks formatiert NICHT nützlich wenn man mkfs benutzt mkfs wird später erklärt (erzeugt ein Dateisystem) moderne BS erkennen und sortieren automatisch bad blocks aus 36
Disks::: Partitionen: mehrere möglich; selbe Eigenschaften nützlich wenn: 2 BS auf dem selben Rechner BS arbeiten aber nicht zusammen CD-ROM bzw. Floppies: keine Partition (aber möglich) 37
Disks::: Partitionen -> MBR, Bootsektoren, Partitionstabellen: wie soll eine Platte partitioniert werden?: MBR MBR: Bootsektor der Bootsektoren liest befindet sich im 1.Sektor auf dem 1.Track der Festplatte ist das Erste was vom BIOS gelesen wird MBR weiss was gebootet wird (liest Partitionstabellen) Partitionstabellen befinden sich auch im Sektor 0 Anschliessend: Partitionsbootsektor lesen und BS starten 38
Disks::: Partitionen -> MBR, Bootsektoren, Partitionstabellen: Nicht jede Festplatte ist partitionierbar Partitionen trotzdem möglich: interne Partitionen Partitionstabelle kann geändert werden: fdisk 39
Disks::: Partitionen -> erweiterte / logische Partitionen: eigentlich nur 4 Partitionen erlaubt nicht genügend deswegen erweiterte Partitionen sind Unterpartitionen: logische Partitionen genannt anders angelegt aber kein Geschwindigkeitsunterschied ermöglicht bis zu 15 Partitionen per Festplatte 40
Disks::: Partitionen -> erweiterte / logische Partitionen : Partitionsstruktur einer Festplatte -3 primäre Partitionen -die 2.Partition ist in 2 logische unterteilt -ein Teil gar nicht partitioniert -Fesplatte und JEDE primäre Partition enthalten einen Boot-Sektor 41
Disks::: Partitionen -> Partitionstypen: Welche Partition? In den Partitionstabellen identifiziert Linux Partitionstypen: 42
Disks::: Partitionen -> Partitionieren einer Festplatte: Mehrere Partitionierungssoftware jede BS ist ein eigenes Partitionierungsprogramm empfohlen dieses zu benutzen fdisk (normalerweise); cfdisk (benutzerfreundlicher) Grösse einer Partition ändern: fips meistens problematisch auch mit parted : allerdings nur FAT-32-Partition 43
Disks::: Partitionen -> Gerätedateien und Partitionen: Jede Partition eine eigene Gerätedatei Namenskonvention: von 1 bis 4 -> primäre Partition grösser als 5 -> logische Partitionen Beispiel: /dev/hda1 : primäre Partition auf der ersten IDE Festplatte; /dev/sdb7 : dritte erweiterte Partition auf der zweiten SCSI Festplatte. 44
Disks::: Dateisysteme -> Was ist ein Dateisystem?: legt die Datenstruktur fest, also wie Dateien gespeichert werden vor der Nutzung ein Dateisystem erzeugen Unix Dateisysteme haben eine ähnliche Struktur: - Superblock: allgemeine Infos (z.b. Grösse) - I-Node: enthält Metadaten einer Datei (wichtige Daten) - Verzeichnisblock: Dateiname und I-Node-Nr. - Datenblock: Inhalt der Datei 45
Disks::: Dateisysteme -> Dateisystem (Linux): minix: älteste Version eines Systemfiles xia: modifizierte Version von minix; Dateinamen und Grössen wurden eingeschränkt ext: keine Updates möglich; ext2: die mächtigste aller Dateisysteme; ext3: verbesserte Version der ext2. Journaling wurde hinzugefügt (wichtig bei Systemabstürzen) Dateisysteme können manchmal nicht frei gewählt werden -> auf Kompatibilität achten (msdos für Linux?!) falls frei wählbar: ext3 benutzen 46
Disks::: Dateisysteme -> Dateisystem erzeugen: automatisch mit : mkfs Dateisystem auch änderbar: mkfs f fstype - c: sucht nach badblocks - l filename: liest eine badblock-liste aus filename - b : Blockgrösse kann festgelegt werden 47
Disks::: Dateisysteme -> Dateisystem erzeugen: Beispiel: eine ext2-dateisystem für eine Diskette Diskette wurde formatiert; wurde nach badblocks durchsucht; Ergebnis in einer Datei speichern; Dateisystem wurde erzeugt (mit Angabe der badblocks) 48
Disks::: Dateisysteme -> Dateisystem erzeugen: Andere Möglichkeit: mkfs c 49
Disks::: Dateisysteme -> Vergleich: 50
Disks::: Dateisysteme -> Mounten/Unmounten: unbedingt mounten! Vor dem mounten: Nach dem mounten: 51
Disks::: Dateisysteme -> Mounten/Unmounten: Mounten: Zwei Argumente nötig: Dateisystempfad und das zu mountendes Verzeichnis 52
Dateisysteme: Disks::: Mounten eines MS-DOS-Diskettes unter LINUX: Quellpfad sollte leer sein, sollte allerdings existieren Mounten eines CD-ROMs: -r Option (read-only) Am Anfang ist die root auch read-only aber nach dem fsck (file system check), falls keine Fehler, wird es remountet und so wird root auch schreibbar sein 53
Disks::: Dateisysteme -> Unmounten: nur ein Argument: Dateisystempfad, der unmountet wird dafür benötigt man aber bestimmte Rechte Rechtevergabe manchmal riskant Dafür gibt es aber eine saubere Lösung! 54
Disks::: Dateisysteme -> Mounten/Unmounten: freigeben für verschiedene Dateisysteme /etc/fstab Wohin es gemountet werden soll Von wo es gemountet werden soll Dateisystemtyp user: jeder Benutzer kann mounten 55
Disks::: Dateisysteme -> Fehler: badblocks, fsck oder beide gleichzeitig nach badblocks suchen und das Ergebnis fsck übergeben 56
Disks::: Festplatten ohne Dateisystem: nicht immer ein Dateisystem nötig: - swap-partitionen (wird später behandelt) - Boot-Disketten für LINUX Kopieren: Vorgehen: Image der Diskette speichern; Diskette ersetzen; die gespeicherte Image auf die neue Diskette kopieren 57
Disks::: Zuweisung von Speicherplatz - Partitionierungsschema: Beispiel: 3 Partitionen (1: /, 2: /boot, 3: swap) /bin, /etc, /dev, /initrd, /lin, /sbin -> selbe Partition Andere Variante: /var und /tmp in einer eigenen Partition (ständige Veränderungen) 58
Agenda::: Einleitung Überblick Filesysteme Hardware Disks Memory Management System Monitoring Netzwerke Fazit (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) 59
Speicherverwaltung::: Was heisst virtuelle Speicher?: (unterstützt von LINUX) Auslagerung unbenutzte Speicherblöcke zur Festplatte SWAP SPACE Speicher wird entlastet ausgelagerte Blöcke wieder gebraucht: schnell wieder zurückkopiert separate Partition VS. Datei im Dateisystem schnell VS. einfache Änderung der Grösse mehrere erlaubt (LINUX) PAGING: nur feste Teile in KB-Grösse (effizienter) -> LINUX 60
Speicherverwaltung::: Erzeugen eines swap-spaces: ganz normale Datei auf der LOKALEN Festplatte Dateiname: extra-swap, Grösse: 1024 Bytes (durch 4 teilbar -> Kernel schreibt 4KB-Grösse memory pages) Grösse schätzbar: alle Programme gleichzeitig laufen lassen (wie viel Speicher wird benötigt?) lieber gross als klein 61
Speicherverwaltung::: Erzeugen einer swap-partition / mkswap: ganz normal erstellbar, aber hier: keine Dateisystem mkswap: Aktivierung des swap space (bei swap-partition oder Datei) Aktivieren bzw. Freischalten!= Nutzung Memory Manager (LINUX): maximale Grösse -> 2 GB Trick: 8 können gleichzeitig benutzt werden -> 16 GB! 62
Speicherverwaltung::: Benutzen eines swap spaces: swapon swap_space_pfad: jetzt darf er benutzt werden swap spaces die verwendet werden (/etc/fstab): Startup-Skript: swapon -a (extra swapping bei swapon) 63
Speicherverwaltung::: Benutzte swap spaces: (auch mit top oder unter /proc/meminfo ) mem: physikalischer Speicher shared: von mehreren Prozessoren benutzt buffer: momentane Grösse des Puffers swap: falls überall 0 -> kein swap aktiviert swapof: nur nötig bei temporären swaps 64
Speicherverwaltung::: Cache-Puffer: Daten werden vorübergehend aufgenommen, die zwischen Funktionseinheiten übertragen werden sync: leert den Puffer (Daten müssen geschrieben werden) update: jede 30 Sek. einen sync bdflush: wie sync aber für LINUX (durch Update lösbar) unter LINUX ist alles automatisch, was den Cache angeht 65
Agenda::: Einleitung Überblick Filesysteme Hardware Disks Memory Management System Monitoring Netzwerke Fazit (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) 66
System Monitoring::: Allgemein: wichtig für admin -> wer, was zu welchem Zeitpunkt macht Z.B. wie viel System-Ressourcen verwendet werden, welche Prozesse laufen, wer ist eingeloggt, usw. Vier Hauptbereiche: - CPU; - Speicher; - E-/A-Disks; - Netzwerke 67
System Monitoring::: System-Ressourcen -> top: top: aktualisierte Liste der benutzten Ressourcen aktuelle Zeit, Gesamtanzahl der Prozesse, Sortierung, CPU- Auslastung, physikalischer- und swap-speicher-auslastung, Prozess-Liste mit PID-Nr - i: idle ( untätige ) Prozesse werden nicht angezeigt -m: nach Speicherauslastung sortiert -s: nach Lebensdauer sortiert -p: nach CPU-Auslastung sortiert 68
System Monitoring::: System-Ressourcen -> top: 69
System Monitoring::: System-Ressourcen -> iostat: iostat: CPU-Last im Durchschnitt, sowie E-/A-Info 70
System Monitoring::: System-Ressourcen -> ps: ps: Liste der laufenden Prozesse (Bild: Teilauschnitt) (owner; PID, ID des Vater-Prozess, CPU-Auslastung(%), Startzeit, tty die mit dem Prozess verbunden ist (ggf), wie lange die CPU für die Ausführung gebraucht hat, Befehl) 71
System Monitoring::: System-Ressourcen -> vmstat: vmstat: wartende Prozesse (r), für immer schlafende Prozesse (b), geswapte Prozesse (w) 72
System Monitoring::: System-Ressourcen -> vmstat: Speicherinfo (in KB): - swpd: Anzahl des benutzten virtuellen Speichers - free: Anzahl des untätigen Speichers - buff: Anzahl des Speichers, der als Puffer benutzt wird Swapinfo (in KB/s): - si: Anzahl des eingelagerten Speichers - so: Anzahl des ausgelagerten Speichers I/O-Info (blocks/s): - bi: gesendete Blocks - bo: empfangene Blocks CPU-Info: durchschnittliche Zeit für Nutzer (us), System (sy) oder unbenutzte Zeit (id) 73
System Monitoring::: System-Ressourcen -> lsof: lsof: laufende Dateien (mit grep beschränkbar) Dateien von einem bestimmten Prozess benutzt: - lsof p dazugehörigepid 74
System Monitoring::: Systemdatei-Auslastung: nicht immer grosse Mengen an Speicherplatz df: Fesplattenauslastung ( h = human sizes, b= Blockgrösse) 75
System Monitoring::: Systemdatei-Auslastung: df i = benutzten/vorhandenen I-Nodes 76
System Monitoring::: Systemdatei-Auslastung: du dateiname: Grösse der Dateien angeben 77
System Monitoring::: Systemdatei-Auslastung : du irgend_ein_verzeichnispfad: 78
System Monitoring::: Systemdatei-Auslastung : du s verzeichnispfad: Gesamtgrösse des VZ 79
System Monitoring::: Monitoring der User: Wer, wann, was, an welchem Rechner macht (z.b.: viel RAM benutzt, grosse CPU-Auslastung) who: Port-Nr und Name der eingeloggten Users 80
System Monitoring::: Monitoring der User: ps u username: durch ps hatten wir die Liste der laufenden Prozesse bekommen; hier wird das auf einen bestimmten Benutzer beschränkt 81
System Monitoring::: Monitoring der User: w: einfacher als who oder ps u welche User, unter welchen Port, welche Befehle ausführen (Der User benutzt hier KDE und einen terminal (bin/bash) 82
Agenda::: Einleitung Überblick Filesysteme Hardware Disks Memory Management System Monitoring Netzwerke Fazit (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) 83
Netzwerke::: Allgemeines: Treiber (Hardware-/Netzwerk Protokoll) eingebunden? ftp.kernel.org -> in /usr/src/linux entpacken www.de.kernel.org/pub/linux/kernel (nicht offiziell) Kernel neu kompilieren (normalerweise nicht) Anlegen von Netzwerk Schnittstellen: normalerweise automatisch (Treiber) z.b. eth0, eth1 usw 84
Netzwerke::: Konfiguration von Netzwerk Schnittstellen: d.h. die Schnittstelle einer Adresse zuteilen so wie andere Parameter ifconfig (interface configure): Schnittstelle eth0; IP-Adresse 192.168.0.1; Netmask 255.255.255.0; up aktiviert die Schnittstelle 85
Netzwerke::: Konfiguration von Netzwerk Schnittstellen : ifconfig eth0 down: Schnittstelle entfernen nichts eingestellt? Kernel! erkennt Klasse (A,B,C) und adressiert dementsprechend z.b. - 192.168.0.0 (Netzwerk Adresse) - 192.168.0.255 (Broadcast) ifconfig netmask addr X.X.X.X: NUR Netzmaske festlegen 86
Netzwerke::: Konfiguration der Namensauflösung: Name Resolver benutzerfreundliche Rechnernamen (www.abc.com) in rechnerfreundliche IP-Adressen (128.214.248.6) Internetnamen haben eine hierarchische Struktur Domäne : Gruppe von Namen Domäne enthalten Subdomäne Toplevel Domäne : keine Subdomäne einer anderen (rechts) Bekannteste: COM, EDU, GOV, MIL, ORG, NET, Länderzeichen 87
Netzwerke::: Konfiguration der Namensauflösung: ganz links: Rechnername (HOSTNAME) Rest: Domänename Fully Qualified Domain Name Beispiel: Rechnername/Hostname: perf Domänename:.no.itg.telstra.com.au Toplevel Domäne: au (steht für Australien) Organisation: kommerziell (com) Firmenname: telstra Unterdomäne: no.itg (Firmenstruktur: Information Technology Group, Sektion Network Operation 88
Netzwerke::: Konfiguration der Namensauflösung: Name Resolver benutzt: 1. /etc/host.conf 2. /etc/resolv.conf 3. /etc/ hosts 1. /etc/host.conf: Verhaltensweise festlegen - Namen-Adressen-Zuordnung in /etc/host gesucht 89
Netzwerke::: Konfiguration der Namensauflösung : 2. /etc/resolv.conf: zentrale Konfigurationsdatei - domain: Standard Domain Name - search: in wu.edu.au suchen (falls Rechner nicht gefunden werden kann) - nameserver: IP-Adressen eines DNS (um Namen aufzulösen) 90
Netzwerke::: Konfiguration der Namensauflösung : 3. /etc/hosts: IP-Adressen von lokalen Rechnern eintragen - Hier: Einträge für das Loopback Interface und für den lokalen Rechner 91
Netzwerke::: Konfiguration des Loopback Interfaces: Verbindung zum eigenen Rechner sinnvoll beim Testen von Netzwerk Software Standard IP-Adresse: 127.0.0.1 Konfiguration der Loopback-Schnittstelle: Verbindung aufbauen: 92
Netzwerke::: Routing: Schnittstelle konfigurieren Routing Tabelle Eintrag bekannt geben -> (-net: ganzes Netzwerk; -host: eine IP-Adresse) gateway/router? -> auch in der Routing Tabelle 93
Agenda::: Einleitung Überblick Filesysteme Hardware Disks Memory Management System Monitoring Netzwerke Fazit (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) (Bruno Soriano) 94
Fazit::: LINUX Open Source Lizenzkostenfrei Hersteller-unabhängig Anwender-getrieben Linux vs. Windows WINDOWS Closed Source Lizenzkostenpflichtig Hersteller-abhängig Marketing-getrieben Funktionsweise vollständig offengelegt (und gut dokumentiert) Alte Versionen werden weiter gepflegt Sehr viel Anwendungs-Software mitgeliefert Funktionsweise nicht vollständig offengelegt (und schlecht dokumentiert) Alte Versionen werden abgekündigt Wenig Anwendungs-Software mitgeliefert Jeder kann Software-Fehler beheben Jeder kann Software-Fehler suchen Software-Fehler nur durch Hersteller behebbar Software-Fehler-Suche nur durch Hersteller möglich 95
Kont@kt Für Fragen stehen wir gerne auch nach dem Vortrag zur Verfügung: Vural Sahin: Bruno Soriano: vuron@vuron.de millokpo@hotmail.com 96
VIELEN DANK FÜR DIE AUFMERKSAMKEIT!!! 97