Springe zum Hauptinhalt

Archiv

Wie funktioniert Linux?


 Der Überblick: Struktur und Eigenschaften

 [Einführung]  [Meilensteine der Unix-Entwicklung]  [Linux und andere Unixe][Struktur eines Linux/UNIX-Systems] [Arbeiten unter Linux]  [Multitasking/Multiuser]

Einführung

Linux

  • ist ein Unix-ähnliches Betriebssystem
    • freie Software
      • unterliegt der GNU General Public License
      • offene Quellen, änderbar
      • Weiterentwicklungen müssen die Quellen ebenfalls offenlegen
      • keine Lizenzgebühren
    • implementiert die Unix-Schnittstellen, enthält jedoch keinen lizenzpflichtigen Unix-Quellcode
  • steht für eine neue Art der kooperativen Software-Entwicklung
    • hunderte Entwickler weltweit
    • Kommunikationsbasis: Internet
  • umfasst
    • Linux-Kernel (das eigentliche Betriebssystem)
    • zahlreiche Anwendungen, u.a.
      • grafische Bedienoberflächen
      • Office-Anwendungen (Textverarbeitung, -layoutgestaltung, Tabellenkalkulation, etc.)
      • Grafikerstellung, -bearbeitung
      • Präsentationsprogramme
      • Datenbanken
      • Internet Browser
      • DOS/Windows/PC-Emulatoren
      • Server für Internet- und Intranet-Anwendungen (WWW, E-Mail, File- und Druckserver, etc.)
  • das Linux-Maskottchen heißt Tux Tux

Unix

  • ist der Name für eine Familie von Betriebssystemen
    • unterschiedlicher Hersteller
    • auf unterschiedlichen Computerplattformen (vom PC bis zum Supercomputer)
  • eine Bezeichnung für eine "Kultur": die Art und Weise des Computereinsatzes und der Computernutzung
  • ein Werkzeugkasten: unzählige kleine Tools, die genau eine Aufgabe perfekt lösen und kombiniert werden können
  • Entwicklungs- und Betriebsbasis des Internet und aller seiner Dienste
    • Electronic Mail
    • World Wide Web
    • Usenet News
    • FTP-Archive
    • ...
  • last but not least: fun

Meilensteine der Unix-Historie

  • 1969 - Ken Thompson (Bell Labs (Tochtergesellschaft der AT&T)) schreibt das Original-UNIX in Assemblersprache der PDP7
  • lange Zeit nur in diesem Unternehmen genutzt (zunächst keine kommerzielle Entwicklung)
  • 1973 - Implementation in der Sprache C (Dennis Ritchie), Portierung auf PDP11
  • 1978 - UNIX Version 7 als kommerzielles Produkt (in C)
  • viele Systemhersteller lizensieren UNIX und portieren es auf ihre Hardware (u.a. Amdahl:UTS, DEC: ULTRIX, Hewlett-Packard: HP-UX, Microsoft: XENIX)
  • an der University of California Berkeley (UCB) wird UNIX weiterentwickelt (BSD)
  • 1979 - erste offizielle AT&T-Version System III
  • 1983 - Beginn von Standardisierungsbemühungen: X/OPEN und POSIX
  • 1984 - AT&T-Version System V
  • 1986 - AT&T-Version System V.3; BSD 4.3
  • 1988 - Gründung der OSF
  • 1989 - AT&T-Version System V.4 (in enger Zusammenarbeit mit Sun)
  • 1991 - Linux-Kernel (Linus Torvalds )
  • seitdem: Übernahme bereits existierender freier Software auf Linux (GNU, wichtig: C-Compiler gcc)
  • Linux ist ein weltweites Projekt im Internet (die meisten Entwickler haben sich nie getroffen)
  • ab 1997 - zahlreiche kommerzielle Softwareanbieter bekennen sich zu Linux (Office-Anwendungen, Datenbanken, ...)
  • ab 2000 - Rechnerhersteller bieten Linux als Betriebssystem an (IBM, SGI, ...)

Linux und andere Unixe

Kommerzielle und freie Unixe

  • Kommerzielle Unix-Varianten
    • Lizenzgebühren
    • Quellen sind nicht (oder nur eingeschränkt) verfügbar
    • wichtige Systeme (kein Anspruch auf Vollständigkeit)
    • Hersteller/zu beziehen über System Hardwareplattform/Prozessortypen
      Sun Solaris SPARC, x86
      Hewlett-Packard HP-UX HP-PA
      SCO Unixware x86
      Compaq/Digital Tru64 Unix Alpha
      Silicon Graphics IRIX MIPS
      IBM AIX Power PC
  • freie Unix-Versionen
    • keine Lizenzgebühren
    • Quellen verfügbar
    • kostenfreies Download über Internet
    • kommerzielle Distributoren
    • wichtige Systeme
    • System Hardwareplattform/Prozessortypen zu beziehen über
      Linux x86, SPARC, HP-PA, Alpha, MIPS, PowerPC, m68k, ... verschiedene Distributoren,  http://www.linux.org/
      FreeBSD x86 verschiedene Distributoren, http://www.freebsd.org/
      NetBSD x86, SPARC, Alpha, MIPS, m68k, VAX, ... verschiedene Distributoren, http://www.netbsd.org/
      OpenBSD x86, SPARC, Alpha, MIPS, m68k, PowerPC, ...  http://www.openbsd.org/

Linux und OpenSource

  • Open Source Software (OSS)  ist eine Bewegung
  • Ziel: Zuverlässigkeit  und Qualität von Software fördern durch Offenlegung der Quellen
  • diesen Zielen entsprechen verschiedene Lizenzen, z.B. GNU General Public License (GPL)
  • Linux-Kernel und die meiste Software für Linux unterliegt der GPL
  • Open Source ist das Marketing Programm für freie Software

Linux-Distributionen

  • Zusammenstellungen eines installierbaren Systems, welches den Linux-Kernel enthält
  • zu beziehen über Internet oder als Software-Paket mit Buch und mehreren CD-ROMs (typischerweise über Buchhandlungen)
  •  wichtige Distributionen

Struktur eines Linux/Unix-SystemsBild: Struktur eines Unix-Systems

Arbeiten unter Linux

Zuerst: Anmelden (Login)

  • an der Konsole (Terminal-Login)
  • morgana login: thm
    Password: 
    morgana% 
    # Nutzerkennzeichen eingeben
    # Paßwort eingeben - wird nicht angezeigt
    # Eingabeaufforderung der Shell (Prompt)
    Beispiel: KDE- Login-Manager kdm
  • grafischer Login-Manager (hier: KDE)
  • Nutzerkennzeichen/Passwort (Account) wird vom Systemadministrator (priviligierter Nutzer root) vergeben
  • dient der Authentifizierung des Benutzers gegenüber dem System
  • während Login-Vorgang wird der Nutzer in seiner Arbeitsumgebung plaziert

Arbeitsumgebung

  • UID - User IDentification

  • Zahl - identifiziert den Benutzer im System
  • GID - Group IDentification

  • Zahl - identifiziert die Gruppe im System, zu der der Nutzer gehört
  • HOME-Verzeichnis

  • Verzeichnis im Filesystem, dort liegen die Daten des Nutzers
  • Login-Programm

  • dieses Programm wird gestartet (bei Terminal-Login bzw. von Terminal-Emulation)
  • für jeden Nutzer definiert, mittels Eintrag in /etc/passwd
  • morgana% grep $HOME /etc/passwd
    thm:6j70HEvF6Cqg6:4753:102:Thomas Mueller,urz,531 1755:/home/thm:/bin/bash
    morgana% 
    allgemein:
    Nutzerkennzeichen:Passwort:UID:GID:GECOS:HOME-Verzeichnis: Login-Programm
  • Login-Programm (typisch: Shell) definiert weitere Umgebungsbedingungen

Nach dem Login-Vorgang

Terminal-Login grafischer Login-Manager
  • Kommandointerpreter: Shell
  • Bedienung per Tastatur (und Maus)
  • Dialog mit der Shell
  • Eingabeaufforderung: Prompt
  • hunderte Kommandos (Tools)
  • jedes Kommando für genau eine Aufgabe
  • einfach zu beherrschende Mechanismen zur Kombination von Kommandos
  • traditionelle Arbeitsweise
  • grafische Oberfläche auf Basis von X Windows
  • Bedienung per Maus und Tastatur
  • grafische Anwendungen, z.B.: File-Manager, Desktop-Manager, Office-Anwendungen, Webbrowser, Multimedia-Anwendungen, Spiele, ...

Sitzung beenden

  • nach der Arbeit am Unix-System: abmelden
  • bei Arbeit am Terminal mit Kommando logout oder exit
  • bei Arbeit mit grafischer Oberfläche durch entsprechenden Button oder Menü-Eintrag

Multitasking/Multiuser

Multitasking

  • mehrere Aufgaben zur gleichen Zeit (unabhängig von Anzahl der Prozessoren)
  • Prozessor-Leistung und RAM wird entsprechend Verfügbarkeit und Bedarf den einzelnen Aufgaben zugeteilt
  • interaktive Nutzung: Nutzer kommuniziert mit dem Rechner
  • Batch-Nutzung: Aufgaben werden im "Hintergrund" abgearbeitet
Bild: Zu einem Zeitpunkt belegt ein Programm die CPU
Bild: Multitasking - Zu einem Zeitpunkt belegt ein Programm die CPU

Multiuser

  • mehrere Nutzer können gleichzeitig eine Maschine benutzen
  • Zugang über mehrere direkt angeschlossene Terminals oder über das Netz
  • Sicherheitsmechanismen verhindern gegenseitige Beeinträchtigung
Bild: Mehrere Nutzer arbeiten gleichzeitig an einem Rechner
Bild: Multiuser - mehrere Nutzer arbeiten gleichzeitig an einem Rechner
Zur Homepage des URZ
Thomas Müller, Christoph Ziegler, 25. September 2001