Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009. Grundkurs Unix. Teil 1: Die Essenz von UNIX. Dr.

Ähnliche Dokumente
UNIX Ein kleiner Ausschnitt

UNIX und C. Einleitung

Teil 3: Konzepte von Betriebssystemen

Einführung in Betriebssysteme UNIX AM BEISPIEL LINUX

UNIX. Linux. UNIX Derivate, die wichtigsten. Free BSD (Open) Solaris MacOS X Linux. UNIX Dateisystem, wichtige Ordner.

Linux Installation Party

Der UNIX Markt. Verteilung von WEB servers (Quelle: netcraft) Geschichte des UNIX Betriebssystemes 2

Betriebssystemsicherheit am Beispiel UNIX

Linux als Arbeitsplattform im Wissenschaftlichen Umfeld Jörg Marks, Physikalisches Institut, INF 226

Was ist Linux? Frank Hofmann/Thomas Winde. 21. November Frank Hofmann/Thomas Winde () Was ist Linux? 21. November / 20

GNU/Linux Zoltan Jany / Malte Bublitz 17. Juni 2014

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

Computer & GNU/Linux Einführung Teil 1

Betriebssysteme Ein Überblick

Einführung Betriebssysteme

Aufbau eines modernen Betriebssystems (Windows NT 5.0)

Einblicke in die Linux Kernel Entwicklung

Betriebssystemschichten ( )

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Programmieren unter LINUX Eine Einführung

Unix-Betriebssysteme. Oliver Schwantzer + Jens Scherwa

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Wolfram Burgard

Advanced IT-Basics. Referenten: Olga Assmus Marc Pawlowski

Rechnernutzung in der Physik. Betriebssysteme

Die L4-Mikrokern. Mikrokern-Familie. Hauptseminar Ansätze für Betriebssysteme der Zukunft. Michael Steil. Michael Steil

Grundsoftware üblicher Computersysteme

PVFS (Parallel Virtual File System)

Die Architektur von UNIX/Linux- Betriebssystemen. Mag. Lukas Feiler, SSCP

Einführung in das Arbeiten an Unix-Rechnern

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Maren Bennewitz

Unix-Shell. Praxiskurs. basics Martin Dietze. o reillys

I Grundlagen der System-Administration 8

Einführung in die Informationstechnik

Technische Praxis der Computersysteme

Inhaltsverzeichnis. 1.1 Der Begriff des Betriebssystems 1.2 Zur Geschichte der Betriebssysteme 1.3 Aufbau eines Rechners

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Filesystem in Userspace. Jens Spiekermann

Die Geschichte von C

Embedded Linux Portierung auf mobiles Datenerfassungsterminal. Ole Reinhardt

DOAG Konferenz 2007 in Nürnberg

Dateisysteme. Lokale Linux Dateisysteme. Michael Kürschner (m

Freiberuflicher IT-Berater Schwerpunkte: Unix, Oracle, Netzwerk. Dipl.-Inform. Joachim Jäckel

Alte Software auf neuer Hardware, Neue Software auf alter Hardware

LINUX-WORKSHOP. WINTEROPHASE 17/18 Heiko Carrasco

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Der SUN-Pool. 64 Arbeitsplätze, reine Terminals

Einleitung Aufbau und Struktur Kommunikation Ein einfacher Treiber. Linux - Der Kernel. Daniela Staritzbichler, Felix Wolfersberger, Bernhard Schauer

Problemorientierte Programmiersprachen Nachteile von Programmen in Maschinensprache sehr aufwendig bei komplexeren Aufgabenstellungen fehleranfällig

Jörg Schilling SchilliX und OpenSolaris Fokus Fraunhofer

INHALT BETRIEBSSYSTEME... 5

Symbian OS. OS für kleine Endgeräte: Sven Walter

Abstrakte Schnittstelle

Unixoide Betriebssysteme (Unix, Linux, OS X)

Portabel Programmieren. Dr. Olaf Flebbe

Operating System Design - Now and Then. Christian Behnert Proseminar Technische Informatik FU Berlin

Calogero Fontana Fachseminar WS09/10. Virtualisierung

Deshalb wollen wir das Linux (besser) kennenlernen und uns Kenntnisse für dessen täglichen Einsatz aneignen.

oscan ein präemptives Echtzeit-Multitasking-Betriebssystem

AOSTA. Aspects in Operating Systems: Tools and Applications

Übersicht. Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe. AVS SS Teil 12/Protection

Berater-Profil Seniorberater Mainframe und C/S (Schwerpunkt: Finanzdienstleistungen)

Der Computer arbeitet nur deshalb so schnell, weil er nicht denkt.

Betriebssysteme. FU Berlin WS 2004/05 Klaus-Peter Löhr. bs-1.1 1

Bibliotheks-basierte Virtualisierung

Grundlagen der Programmierung in C Einführung in Unix/Linux

Bernd Bleßmann, Jörg Bleßmann. Linux. Aufbau und Einsatz eines Betriebssystems. 1. Auflage. HLuHB Darmstadt. Bestellnummer Bildungsverlag EINS

Wichtige Rechnerarchitekturen

Betriebssysteme Kap A: Grundlagen

Das NetBSD Projekt - Statusbericht

Computer & GNU/Linux Einführung Teil 1

Oracle Database 10g Die RAC Evolution

VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN

Themenübersicht I. Webtechnologien WS 2013/14 Organisatorisches

NEVARIS Build Systemvoraussetzungen

Rechnernutzung in der Physik

NetBSD Projekt Jahresbericht 2001

Systeme I: Betriebssysteme Kapitel 2 Überblick Betriebssysteme. Wolfram Burgard

Linux Kernel Hacking

Betriebssysteme I WS 2017/18. Prof. Dr. Dirk Müller. 05a 64-/32-Bit-Architekturen

Systemsicherheit. Lerneinheit 2: Security Enhanced Linux. Prof. Dr. Christoph Karg. Sommersemester Studiengang Informatik Hochschule Aalen

NEVARIS Build Systemvoraussetzungen

Einführung in die Informationstechnik

Persona-SVS e-sync GUI/Client Installation

Open - Source - Software

Betriebssysteme Teil 1: Einführung

CARL HANSER VERLAG. Frank Rieg, Reinhard Hackenschmidt. Softwaretechnik für Ingenieure Eine leicht verständliche Einführung

Klausur Betriebsysteme, Windows NT. Wintersemester 00/01. Dipl.-Ing. Jürgen Halkenhäuser Dipl.-Ing. T. Kloepfer

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Linux & Amateurfunk. Linux als Betriebssystem beim Amateurfunk. Version November 2014 Tom, DL7BJ, tom@dl7bj.de

Betriebssystem-Architekturen. Prof. Dr. Margarita Esponda Freie Universität Berlin

3 Die Windows-Systemarchitektur

Embedded Linux- Robocup

D Einführung Betriebssysteme

D Einführung Betriebssysteme

Verteidigung der Diplomarbeit 3D-Netzwerk-Visualisierung

Linux-Companion zur Systemadministration

Transkript:

Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009 Grundkurs Unix Teil 1: Die Essenz von UNIX Dr. Erwin Hoffmann E-Mail: unix@fehcom.de https://www.fehcom.net/unix/ Dr. Erwin Hoffmann: UNIX Grundkurs - Teil 1: Die Essenz von UNIX 1

Aufbau des Kurses Der Kurs ist in folgende Abschnitte gegliedert: Teil 1: Entwicklung, Komponenten von UNIX; LINUX Distributionen Teil 2: Aufbau des Dateisystems; Dateien Teil 3: Benutzer-Schnittstelle; Shell, RegEx, UNIX Kommandos Teil 4: UNIX (GNU) Werkzeuge; awk, sed, grep... Teil 5: Anwenderprogrammierung und Skripte Teil 6: UNIX Prozesse; Kernel, Pipes, Daemons Teil 7: System-Administration; tracing, debugging Der Kurs wird von umfangreichen Übungen begleitet sein. URL des Kurses: https://www.fehcom.net/unix/ Dr. Erwin Hoffmann: UNIX Grundkurs - Teil 1: Die Essenz von UNIX 2

Ursprung von UNIX Der Auftrag Ken Tompson von den Bell Laboratories erhielt 1969 den Auftrag, ein neues Betriebssystem zu schaffen, das ein interaktives und Terminal-basiertes Arbeiten ermöglicht. Die damaligen Betriebssysteme wie OSVS1 oder MVS unter IBM/360 erforderten statt dessen Lochkarten oder Lochstreifen und besassen damit lediglich eine Batch-Verarbeitung. Programmiersprache B Um von der bis-dato vorherrschenden Assembler-Sprache bzw. OS-spezifischen Prozeduralsprache (vgl. IBM JCL) weg zu kommen, entwickelte er zunächst die hardware-nahe Programmiersprache B für die DEC PDP-7 und erzielte somit eine gewisse Maschinen-Unabhängigkeit. Programmiersprache C Dennis Ritchie entwickelte B zu C weiter und portierte den ganzen Code auf eine DEC PDP-11, was als Start von UNIX gelten kann. Dr. Erwin Hoffmann: UNIX Grundkurs - Teil 1: Die Essenz von UNIX 3

Komponenten von UNIX Das Betriebssystem UNIX gliedert sich prinzipiell nur in wenige Komponenten: UNIX Kernel Mit ursprünglich etwas 20.000 Zeilen Code ist er der zentrale Bestandteil des Betriebssystems, initiiert den Ursprungsprozess (init) und beinhaltet die wichtigsten Device Treiber die als Block-Devices, zur Ansteuerung der Datenträger und als als Character-Devices zur Kommunikation mit den Schnittstellen (Terminal/Tastatur) vorliegen sowie dem prinzipiellen Layout des Dateisystems mit seinen vorgegebenen Pfaden und seiner hierarchischen Architektur sowie den notwendigen System-Dateien (Libraries) zur Programmausführung und den (Header-) Dateien zur Programm-Entwicklung. Dr. Erwin Hoffmann: UNIX Grundkurs - Teil 1: Die Essenz von UNIX 4

Geschichte von UNIX UNIX hat eine verschlungene Geschichte hinter sich, die durch unterschiedliche Implementierungen auf unterschiedlichster Hardware gekennzeichnet ist. Zudem haben auch immer für die Vermarktung kommerzielle und intellectual property Interessen eine grosse Rolle gespielt. Erst nach Klärung dieser Fragen und der Freigabe der Quellen durch die Berkeley University (BSD UNIX) erhielt UNIX ab 1985 die notwendige Verbreitung, speziell in der (US-) amerikanischen akademischen Welt. Den Nimbus eines Entwicklersystems statt (wie bei Windows oder OS/2 oder MVS bzw. VMS) eines Anwendungssystems ist UNIX jedoch nie los geworden. Erst mit dem Entstehen von Linux (durch Linus Torvalds als Weiterentwicklung von Tannenbaum s Minix) 1992, Bereitstellungen von UNIX Core-Funktionen im Rahmen des GNU-Projekt durch Richard Stallmann sowie der Akzeptanz des Internet-Protokoll (IP) als prinzipielle Kommunikationsprotokoll findet eine rasante Weiterentwicklung von UNIX statt, Dr. Erwin Hoffmann: UNIX Grundkurs - Teil 1: Die Essenz von UNIX 5

Entwicklung von UNIX BSD Linie System V Linie Quelle: Wikipedia Dr. Erwin Hoffmann: UNIX Grundkurs - Teil 1: Die Essenz von UNIX 6

Historische Errungenschafen der Unixe Version 7 System III BSD 4.2 System V Multiprozessing virtual memory virtual memory signals, pipes named pipes IPC Multi User NLS hierarch. FS langefilenamen file locking file links symb. links UNIX Shell csh, vi-editor Dr. Erwin Hoffmann: UNIX Grundkurs - Teil 1: Die Essenz von UNIX 7

Hauptmerkmale Zwei Paradigmen haben UNIX hauptsächlich (bis heute) beeinflusst: Unix wurde auf einer 32-Bit Rechnern in C entwickelt. Unix erhielt als erstes Betriebssystem einen TCP/IP-Kommunikations-Stack und stellt eine Referenzimplementierung bereit. Die Einheitlichkeit der Unixe wird vor allem durch gleichartige Benutzerprogramme gewährleistet, dem POSIX (Portable Operation System Interface) [POSIX.1/IEEE 1003.1-2001] genügen. POSIX Programme gibt es auch für andere Betriebssysteme (wie Windows) einheitlicher Libraries (z.b. OpenSSL) und den GNU-Tools. Unterschiede ergeben sich durch den eingesetzten C-Compiler (gcc, z.b. 4.2) Layout des Dateisystems, administrative und systemnahe Tools. Dr. Erwin Hoffmann: UNIX Grundkurs - Teil 1: Die Essenz von UNIX 8

Aktuelle Unix Entwicklungen Die kommerziellen Unix-Systeme befinden sich heute im Abwehrkampf vor allem gegen Linux: Sun Solaris 10 (Skalierbare Hardware, SUN Risk Processoren) HP-UX 7 (PPC Architektur oder Intel) IBM AIX 5 (PPC, Hochverfügbarkeit HACMP) Vorteile bieten diese Hersteller im Bereich grosser, skalierbarer Cluster-Systeme mit spezifischer Hardware-Unterstützung. Die Entwicklung von Linux ist vielfältig und reicht von der Unterstützung (Devices!) von Net- und Notebooks (WLAN, Bluetooth) über leistungsfähige Desktop-Systeme (X-Windows, OpenGL) bis zu Servern mit RAID und iscsi Systemen. BSD Unixe werden häufig für Server-Systeme eingesetzt, wobei die Vielfalt über FreeBSD, NetBSD, OpenBSD, PC-BSD bis zu Darwin (MacOS X) reicht. Dr. Erwin Hoffmann: UNIX Grundkurs - Teil 1: Die Essenz von UNIX 9

Elemente des Unix-Betriebssystems UNIX Anwendungen UNIX shell UNIX Dienstprogramme (in C implementiert) portabel ~ 95% UNIX Kernel (in C programmiert, portabel) ~ 2% Hardware-Interfaces (teils C, teils Assembler) Geräte-Treiber (z.t. in C geschrieben, teilweise portabel) ~ 1% ~ 2% Hardware (Prozessor, Bussystem, Festplatten...) in % des Quellcodes des Gesamtsystems Dr. Erwin Hoffmann: UNIX Grundkurs - Teil 1: Die Essenz von UNIX 10

Unix Kernel und Peripherie UNIX Anwender Programm Libraries System Call Interface File Subsystem Buffer Cache Character- / Block- Device ipc Scheduler Memory Managm. UNIX System Kernel Device Driver Device Driver Hardware Control Hardware (Prozessor, Bussystem, Festplatten...) Dr. Erwin Hoffmann: UNIX Grundkurs - Teil 1: Die Essenz von UNIX 11

Aufgaben des Unix Kernels Der Kernel ist der Zentralbaustein eines UNIX Systems, er verwaltet die Systemressourcen. Der Kernel besteht aus zwei Subsystemen Prozeß Kontrollsystem File Subsystem Die Kommunikation zwischen Programmen und Kernel erfolgt über ein call-interface. Die Kommunikation zwischen Kernel und Hardware wird über eingebettete Gerätetreiber und Hardware-abhängige Schnittstellen abgewickelt. Kaum ein aktuelles Unix verfügt über einen monolithischen Kernel, vielmehr werden geeignete Kernelmodule nach der letzen Boot-Phase angezogen, die eine Device-Probe durchführt. Dr. Erwin Hoffmann: UNIX Grundkurs - Teil 1: Die Essenz von UNIX 12

Transparenz des Unix-Kernels Die Aktivitäten des Unix-Kernels können nur mittels privilegierter Kommandos beobachtet bzw. gesteuert werden. Bereits bei der Ansteuerung neuer Hardware (Devices) ergab sich jedoch die Notwendigkeit, diese Information persistent im Dateisystem zu hinterlegen. Hieraus entstand das spezielle /dev Dateisystem. Bei System V Unixen (besonders Linux) werden auch die Unix-Prozesse (mit ihren Eigenschaften) ins Dateisystem abgebildet. Hierzu dient das /proc Dateisystem. Von Dan Bernstein angeregt (http://cr.yp.to), geht man immer mehr dazu über auch Unix-Dienste in einem speziellen Dateisystem /service bzw. /svc (SunOS) abzubilden. Dr. Erwin Hoffmann: UNIX Grundkurs - Teil 1: Die Essenz von UNIX 13