Herzlich Willkommen zum Linux-Kurs 21. bis 23. Januar 2008, 9:30 12:30 und 13:30 16:30 BIN-1.D.07, (BIN-0.B.06) Im OLAT: CL_07_HS_Linux (Unterlagen, Übungen) Ablauf: (MO Vorm.): Einführung UNIX / Linux Modul 2 (MO Nachm.): Installations-Party Modul 3 (DI Vorm.): Systemaufbau / erste Schritte Modul 4 (DI Nachm.): BASH Grundkurs (im BIN-0.B.06) Modul 5 (MI Vorm.): BASH Fortgeschrittenenkurs (im BIN-0.B.06) Modul 6 (MI Nachm.): CL-Tools installieren 1
: Die Welt von UNIX/Linux 1.1 Was ist UNIX? 1.2 Was ist Linux? 1.3 Viele Linuxe/Linüxe/Linuces 2
In memoriam Maël Benjamin Mettler 10.1.1981-25.10.2007 3
Quellen Wikipedia.org Vorlesungsnotizen Adamov Gilly, Daniel et al. UNIX in a Nutshell. Köln 1998 2. Schroder, Carla. Linux Cookbook. Sebastopol, CA, 2005. Krafft, Martin F. The Debian System. Concepts and Techniques. Open Source Press, 2005. Websites https://netfiles.uiuc.edu/rhasan/linux/ http://www.selflinux.org/selflinux/index.html 4 http://www.gnu.org/graphics/babies/babygnutux Big.png
Was ist UNIX? "UNIX ist das Betriebssystem der Zukunft und das schon seit über 30 Jahren!" (http://www.selflinux.org/selflinux/html/was_ist_unix.html) Ein Sammelname für eine Familie von Betriebssystemen lange Tradition kommerzielle und freie Varianten UNIX-Arten heute als Server eine feste Grösse Desktoprechner: z.b. Sun's SPARC Workstation mit Solaris 5
Hauptmerkmale 1 Multi-User Konzept DOS/frühe Windowsversionen: Single-User UNIX hingegen von Anfang an als Mehrbenutzersystem konzipiert 1. Separate Daten und Einstellungen - HOME-Verzeichnis - DOT-Files (.bashrc,.config/) 2. Individuelle Zugangsregelung 3. Gleichzeitiges Login auf einer Maschine 4. Berechtigungsmechanismen (Daten und Prozesse) 6
Hauptmerkmale 2 - Multitasking heute nichts besonderes mehr bei Mac/Windows aber erst ca. 20 Jahre nach UNIX eingeführt bedeutet: gleichzeitiges Ausführen von Prozessen auf Betriebssystemebene, ohne dass gegenseitige Beeinflussung (Störung) möglich wäre und ohne dass die Anwendungen daraufhin programmiert sein müssen 7
Hauptmerkmale 3 - Networking UNIX ist das Netzwerk-Betriebssystem Gebrauch an Universitäts-campuses remote Login (telnet, SSH, auch grafisch: X-Server) viele wichtige Netzwerktools Technik hinter dem Internet auf/für UNIX entstanden (TCP/IP- Protokoll) Cluster-Konzept, NFS etc. Suns Slogan: the network is the computer Sicherheitsaspekte schon früh relevant 8
Hauptmerkmale 4 - Berechtigungen Datei-Berechtigungen Jede Datei hat einen Besitzer und eine Gruppe Berechtigungen sind unterteilt in Lesen/Schreiben/Ausführen Einzeln einschränkbar für Benutzer/Gruppe/Andere Es gibt einen Superuser (genannt Root), der alles darf. (got root?, Rootkit). Als Root wird nicht eingeloggt. Prozess-Berechtigungen Prozesse haben ebenfalls einen Besitzer und können nur von diesem manipuliert werden Vorteile (Sicherheit) und Nachteile (Umständlichkeit, Abhängigkeit von Administrator) 9
Hauptmerkmale 5 - Disk-Hierachie Hierarch. Filesystem als Novum; eine und nur eine FS-Hierarchie Alles beginnt mit Root: / Toplevel Ordner sind: /usr Anwendungsdateien, Fonts, Dokumentation etc. /bin ausführbare Dateien (bzw. Links darauf) /var 'variable' Daten des OS: Logfiles, laufende Prozesse etc. /lib Systembibliotheken /boot Kernel, GRUB-Menü etc. /home Ein Zuhause für jeden... /etc Konfigurationsdateien... 10
Exkurs: Anwendungsdaten Verteilen oder bündeln? Unter UNIX keine zentralen Anwendungsordner Bsp. Firefox: Ausführbares: /usr/bin/firefox Doku: /usr/share/doc/firefox/.. Anwendungsdaten, Bilder etc.: /usr/share/firefox/.. Bibliotheken: /usr/lib/firefox/.. Konfigurationsdateien: /etc/firefox/.. Installation ist aber trotzdem trivial :o) Tipp: Packetverwaltung (Ubuntu: Synaptic) gibt Auskunft über installierte Dateien zu jedem Packet 11
Hauptmerkmale 6 Alles ist eine Datei... lokale Laufwerke sind Dateien Netzwerklaufwerke sind Dateien Peripheriegeräte sind Dateien Auf Kernel-Daten kann über Dateien zugegriffen werden (/proc) sogar das Nichts ist eine Datei: /dev/null Vorteil: Programme können auf alle Geräte einheitlich zugreifen 12
Hauptmerkmale 7 Verbundenheit zu C UNIX ist in C programmiert UNIX-Tools sind in C programmiert C-Mentalität vorherrschend: low-level Ansatz (maschinennahes Programmieren), Performanz und Kontrolle wichtiger als bequeme Programmierung Java z.b. nicht sehr populär (Stichwort: overhead) manche verpönen sogar C++ ;) Nachteile von C: fehleranfällig, Memory-Leaks, komplexe Kompilation, Portierung auf andere Systeme kann aufwändig sein 13
Hauptmerkmale 8 GNU Toolbox Mit UNIX bringt man stets auch die GNU-Tools in Verbindung Das GNU-Projekt: GNU = GNU is not Unix Richard Stallman: Ziel, von Grund auf ein neues, freies UNIX-artiges OS zu schaffen (ab 1983) bis Ende '90er-Jahre eine grosse Sammlung von Tools, aber GNU Kernel HURD noch nicht fertig. Übrigens...: HURD = HIRD of Unix-Replacing Daemons, wobei HIRD = HURD of Interfaces Representing Depth :) GNU Compiler Collection (GCC), früher GNU C Compiler technischer Output, aber soz. und politi. Initiative mehr zu einzelnen GNU-Tools später (?) 14
Hauptmerkmale 9 - Portabiliät UNIX läuft traditionell auf vielen verschiedenen Architekturen ander OS sind meistens auf eine bestimmte Prozessor-Architektur zugeschnitten 15
UNIX Philosophie http://en.wikipedia.org/wiki/unix_philosophy Write programs that do one thing and do it well. Everything is a file. Store data in flat text files. Make every program a filter. Unix is user-friendly. It's just picky about who its friends are. 16
Etwas Geschichte der Grosspapa unter den Betriebssystemen 1960er Jahre: MIT, AT&T-Labs, General Electrics entwickeln MULTICS um 1970: Ken Thompson und Dennis Ritchie programmieren UNICS, später UNIX genannt, mehrere Jahre bevor die Firmen Apple, Microsoft oder Sun gegründet werden. 1971: Reimplementation in C (vorher Assembler) UNIX läuft in der Folge auf immer mehr Maschinen und wird an die US-Regierung und an Universitäten lizensiert 1980: UNIX wird immer populärer, es entsehen viele neue Versionen und Varianten. System V und das an der University of Berkeley, CA entwickelte Berkeley Software Distribution (BSD) werden zur Grundlage für die meisten UNIX-Varianten 17
Etwas Geschichte II 18 Die grossen kommerziellen UNIX-Systeme: Solaris (Sun), HP-UX (Hewlett Packard), AIX (IBM), IRIX (SGI) Ende 80er/Anfang 90er: Standardisierungsstreite (UNIX Wars) 90er: kompliziertes Hin- und Her der verschiedenen Anbieter (Sun, AT&T, Novell, etc.) bezüglich Neugründungen / Fusionierungen / Auflösungen von Konsortien (OSF, Open Group etc. ) und neuen Standardisierungsbestrebungen (COSE) POSIX-Standard (Portable Operating System Interface), geht auf 1985 zurück. Standardisiertes Applikationsebeneninterface. UNIX Trademark heute bei der Open Group die Open Group sagt, was sich UNIX nennen darf und was nicht 2000er: SCO beginnt Rechtsstreit gegen Linux, SUN startet OpenSolaris, Apple setzt auf das UNIX-basierte Mac OS X
Aktuelle UNIX-Derivate 19 Mac OS X Linux basiert auf BSD und dem Mach Kernel mehrheitlich proprietär Aqua-GUI UNIX- artig Linux Kernel Open Source OpenSolaris Von SUN 2005 geopensourct Ableger wie Belenix oder Nexenta OS kombinieren Solaris Grund- System mit Linux/OpenSource Software
Aktuelle UNIX-Derivate II 20 FreeBSD, NetBSD, OpenBSD Open Source sehr stabil und sicher Linux-Cousins : weitgehend Linux-kompatibel (Doom 3!) von Linux abweichende Politik was Entwicklung/Lizenzpolitik betrifft Besonderheiten FreeBSD: relativ grosses Projekt, Performance, x86-systeme NetBSD: Portabilität, sauberes Design OpenBSD: Fork von NetBSD, Sicherheit, (Theo de Raadt)
Aktuelle UNIX-Derivate III daneben gibt es im Businessbereich weiterhin viele kommerzielle Varianten, wie z.b. AIX von IBM, das 2007 in der Version 6 erschienen ist 21
http://en.wikipedia.org/wiki/image:unix_history.en.svg UNIX-Familienstammbaum 22