Unix

Unix ist ein Betriebssystem, das in den 60er Jahren von den Bell Laboratories (heute: AT&T) entwickelt wurde. Es unterteilt sich in einen Kernel, das Dateisystem und die Shell. Eigenschaften sind: Multiuser-System,  Multitaskingfähigkeit, enge Beziehung zur Programmiersprache C, hohe Stabilität, Speicherschutz, virtueller Speicher, TCP/IP-Netzwerkunterstützung, Multithreading, sehr gute Scriptingfähigkeit, viele Tools (Unix Kommandos) und einige Daemonen. 

Daemon
Ein Daemon (Disk and execution monitor) ist ein Dienst oder Programm, das im Hintergrund abläuft. Sie werden durch ein Drittes Programm oder eine Netzwerkanfrage bzw. durch Pipes aktiviert.  Beispiele für Daemons sind: Netzwerkdienste, E-Mail-Server, Datenbankserver, Print-Server, Hardwarekonfigurationsprogramme oder Hardware-Überwachungsprogramme.

Unix-Geschichte
UNIX-Entwickler der ersten Stunde waren in den frühen 70er Jahren:  Dennis Ritchie, Ken Thompson und Douglas McIlroy. Der Name Unix geht auf das Multics-Projekt zurück (MIT, General Electric, Bell Labs, IBM mit PL/1), welches 1965  auf der Fall Joint Computer Conference angestossen wurde. Das Multics Betriebssystem-Projekt war jedoch zu ehrgeizig in seinen Zielen und scheiterte an den damals verfügbaren Hardware-Ressourcen. Die späteren UNIX Entwickler liessen sich jedoch nicht  entmutigen und wollten ein Mehrbenutzersystem schaffen, welches ein gemeinsames Programmieren und Arbeiten an einem System erlauben sollte. Beispielsweise sollte es möglich sein, dass mehrere User an einer Datei gleichzeitig arbeiten  konnten bzw. diese gemeinsam nutzen konnten. Das sich daraus entwickelnde Betriebssystem wurde u.a. auf einer PDP 11 programmiert und Brian Kernighan (Kanadischer Informatiker, Co-Autor von C) nannte es Unics, da es ein Multics sei, dass lediglich 2 User  unterstütze. Daraus entwickelte sich der Name Unix; die spätere Schreibweise UNIX hing mit der Begeisterung der Entwickler für Kapitälchen zusammen die mit dem Unix Textsatzprogramm Troff möglich waren. 

Unix-Kernel
Der Kernel von Unix verwaltet die Hardware und deren Prozesse sowie das Dateisystem und den Netzwerkprotokollstapel. Systemaufrufe aus Prozessen wie forc oder exec triggern weitere Prozesse und dienen zur Kommunikation  mit dem Dateisystem. Der Systemaufruf Fork erzeugt vom aktuellen Prozess eine Kopie die als Kindprozess des erzeugenden Programms dient. Dieser Kindprozess erhält vom Elternprozess Daten, Maschinencode und Befehlszähler und vom Betriebssystem eine eigene  PID (Process IDentifier = Prozessnummer). Dadurch kann Unix den Kindprozess als eigene Instanz der Anwendung und unabhängig vom Elternprozess ausführen.  Das Dateisystem ist hierarchisch strukturiert - es können an jede Datei je nach Bedarf Unterdateien angehangen werden. Ausgangspunkt ist das Wurzelverzeichnis - die Root. Da alles als Datei abgebildet werden soll, werden  auch Peripheriegeräte (optische Laufwerke, Drucker, Floppy), Festplatten oder verbundene Netzwerkrechner an das Dateisystem angehängt (Kommando: mount).  Auch die Zugriffe auf Hardware-Treiber werden im Dateisystem durch Zugriffe auf dafür vorgesehene Dateien geregelt: durch diese Handhabung sind Zugriffe auf Dateien und Hardwarekomponenten für die Prozessteuerung vereinheitlicht und Anwendungen  können mit einheitlichen Schnittstellen zum Betriebssystem versorgt werden, so dass Systemaufrufe mit open, write oder read allgemein möglich sind.

Unix-Shell
Die Shell dient  als Benutzerschnittstelle bzw. Kommandozeileninterpreter: der User kann Kommandos eintippen, welche dann direkt ausgeführt werden. Unter Unix stehen viele verschiedene Shells mit eigenen Scriptsprachen zur Verfügung. Die Unix-Shell ist  aus Prozessicht nicht privilegiert - im Gegensatz zu vielen Kommandozeileninterpretern anderer Betriebssysteme. Bekannte Unix-Shells sind: Thompson Shell, Bourne Shell, C-Shell (alle Frühphase), Bourne Again Shell, Job Control Shell, Korn Shell,  Almquist Shell, TENEX-C Shell oder Z-Shell u.a. Die Shell ermöglicht dem User über bestimmte Kommandos eine Ein-/Ausgabeumleitung in die angehängten Dateien des Systems, sowie über die Pipes eine Kommunikation zwischen den Prozessen.  Auch grafische Benutzeroberflächen wurden entwickelt wie Solaris oder X-Window. 

Unix-Derivate
Es existieren zahlreiche Unix-Derivate: HP-UX (Hewlett-Packard), AIX (IBM), Solaris (Sun Microsystems), IRIX (Silicon Graphics), DG-UX (Data General) oder SINIX (Siemens).  Es existieren noch weitere UNIX-Ableger die von der AT&T Linie her abstammen: UNIX System V und Tru64 UNIX. Tru64 UNIX ist eine kommerzielle UNIX-Version die auf dem Mach-Mikrokernel basiert und die 64-Bit Alpha Mikroprozessor Architektur  (DEC) unterstützt. Tru64 UNIX wurde als OSF/1 (Open Software Foundation) gestartet und hiess zwischenzeitlich Digital Unix (Dunix).

GNU Hurd
Das von der Open Software Foundation (OSF)  und Richard Stallman im Rahmen des GNU Projektes entwickelte freie Betriebssystem GNU (GNU is not UNIX) basiert ebenfalls auf dem Mach Mikrokernel und den dazugehörigen Diensten (GNU Hurd).  GNU Hurd ist ein zweistufiges, indirektes Akronym: erste Stufe: HIRD of Unix-Replacing Daemons ("Herde Unix ersetzende Daemons"), HIRD bedeutet wiederum:  HURD of Interfaces Representing Depth ("Herde von Tiefe darstellenden Schnittstellen").  GNU soll eine freie und vollwertige Alternative zu UNIX werden. Die BSD-Linie (Berkley Software Distribution) basierte ursprünglich auf dem Original Unix, hat sich inzwischen jedoch verselbständigt.  Linux ist nach Unix-Prinzipien aufgebaut.

   
Siehe auch:    Kernel   vi   Solaris   BSD   Shell   GNU   X-Window-System   Daemon   Mach-Mikrokernel   POSIX


  Es wurden weitere Begriffe gefunden:


  LGPL
Copyleft-Logo: vertikal gespiegeltes Copyright Zeichen Copyleft-Logo: vertikal gespiegeltes Copyright Zeichen
GNU Lesser General Public License. Es handelt sich um eine freie Lizenz der Free Software Foundation (FSF). Sie wurde hauptsächlich für Programmbibliotheken geschaffen und hiess früher Library General Public License.  In der LGPL wird die Idee des Copyleft umgesetzt: freie Software soll ein Urheberrecht besitzen, welches die uneingeschränkte Verbreitung von Kopien oder veränderten Versionen erlaubt. Bedingung ist, dass man Usern, welche eine Kopie  erhalten, dieselben Freiheiten beim Umgang mit den Kopien oder Versionen erlaubt, die man selber hatte. Dies betrifft insbesondere das freie Kopieren, aber auch die Pflicht, bei Weitergabe von Versionen mit eigenen Weiterentwicklungen, diese  dem nächsten Besitzer frei (auch für eigenen Weiterentwicklungen/Veränderungen) zur Verfügung zu stellen. Copyleft ist ein Wortspiel aus dem englischen Copyright (right=Recht, aber auch "rechts")  und left, im Sinne von to leave = überlassen, aber auch "links"). Das Copyleftzeichen ist  ein Copyrightzeichen (©) mit vertikal gespiegeltem "C", welches nach links offen ist.                                               
Siehe auch:    GNU-Projekt   GPL   Open-Source   unix   Freeware   GCC   

  Ultrix

Ultrix oder Digital Unix wurde 1982 von der Digital Equipment Corporation (DEC) für die VAX, DECstation und DECserver Workstations entwickelt.  Ultrix ist ein Unixderivat und basiert auf 4.2BSD und unterstützt sowohl TCP/IP als auch DECnet. Als E-Mail Protokoll kann sowohl SMTP als auch Mail-11 verwendet werden.  Die Entwicklung von Ultrix wurde 1995 eingestellt.                                                     
Siehe auch:    unix   DEC   BSD   TCP-IP   SMTP   POSIX   

  GPL

GNU General Public License. Es handelt sich hierbei um eine Lizenzvereinbarung für GNU-Software der FSF (Free Software Foundation) und anderer Programmierer,  die ihre Software dieser Lizenz unterstellen. Dadurch soll die Software frei verfügbar sein, das Kopieren ist erlaubt und kann kostenlos oder gegen ein Entgelt erfolgen. Der Quellcode wird meistens offen (Free Software) mitgegeben.  Die Programme unterliegen dem Copyleft, d.h. man gibt die Programme weiter unter denselben Bedingungen, wie man sie empfangen hat.  Es ist also auch erlaubt, die Software zu modifizieren, in andere Programme einzubinden oder weiterzuentwickeln. Der Empfänger der modifizierten Software besitzt die gleichen Rechte wie der Programmierer selbst.  Die private und kommerzielle Nutzung der Software ist ausdrücklich erlaubt. Freie Software im Sinne der Free Software Foundation meint ähnliches wie Open Source.  Bei Open Source ist jedoch nicht gewährleistet, dass der Empfänger dieselben Rechte hat wie der Entwickler (Copyleft). Beispielsweise ist das Krypto-Programm PGP (Pretty Good Privacy) Open Source, darf aber  nicht verändert oder weitergegeben werden.                                             
Siehe auch:    GNU-Projekt   GPL   LGPL   unix   linux   X-Window-System   Open-Source   Fedora-Core   PGP   GIMP

  Daemon

Disk and execution monitor. Ein Daemon ist ein Dienst oder Programm unter UNIX oder Linux, das im Hintergrund abläuft. Sie werden durch ein Drittes Programm oder eine Netzwerkanfrage bzw. durch Pipes aktiviert.  Beispiele für Daemons sind: Netzwerkdienste, E-Mail-Server, Datenbankserver, Print-Server, Hardwarekonfigurationsprogramme oder Hardware-Überwachungsprogramme.  Konkrete UNIX-Daemons sind: line printer daemon (lpd): Daemon der auf Druckaufträge wartet und diese abarbeitet, hypertext transfer protocol daemon (httpd): Webserver, common unix printing system daemon (cupsd): Druckerserver uvam.                                                     
Siehe auch:    unix   linux   POSIX   GNU-Projekt   

  POSIX

Portable Operating System Interface for UniX. POSIX wurde von der IEEE und der Open Group entwickelt und ist ein Set von Schnittstellen für UNIX-basierende Betriebssysteme. Durch diese standardisierten Schnittstellen laufen Anwendungen, die den  POSIX-Standard einhalten, auf verschiedenen Betriebssystemen.

POSIX-Spezifikationen
Die Spezifikationen umfassen Basisdefinitionen (inklusive verfügbarer C-Headerdateien), Shell und Utilities  (Kommandozeileninterpreter und Hilfsprogramme), Thread-Erweiterungen,  Echtzeit-Erweiterungen (Realtime-Extensions) sowie eine System-Schnittstelle (Liste von zu unterstützenden C-Systemaufrufen). Im POSIX Standard wird die Korn Shell verwendet.  Durch C-Funktionen werden Ein-/Ausgabedienste zur Verfügung gestellt, sowie die Prozess- und Benutzerverwaltung.

POSIX-konforme Betriebssysteme
POSIX-konforme Betriebssysteme sind:  Mac OS X (Darwin), Solaris, BSD/OS, HP-UX, AIX, OpenVMS, MINIX, VxWorks, RTEMS (Real-Time Operating System for Multiprocessor Systems) oder A/UX.  Betriebssysteme die sich weitesgehend an den POSIX-Standard halten sind: OpenBSD, FreeBSD, NetBSD und die meisten Linux-Distributionen. 

POSIX-Normen
Die meisten POSIX-konformen Betriebssysteme halten sich an die älteren Normen der IEEE (Institute of Electrical and Electronics Engineers) IEEE 1003.1 und IEEE 1003.2.  Die neuere Norm wurde in Kooperation mit der Open Group entwickelt: IEEE Standard 1003.1 - 2001 (2001) und den  technischen Ergänzungen Technical Corrigendum 1 (TC1) und Technical Corrigendum 2 (TC2) im Jahr 2004.  Es besteht die Möglichkeit, ein Betriebssystem bei der Open Group der POSIX-Zertifizierung zu unterziehen.                                     
Siehe auch:    unix   Open-Group   linux   Kernel   Shell   Daemon   BSD   Mac-OS-X   Datei-Endung-H   
Link: http://www.opengroup.org/austin/papers/posix_faq.html


  BSD

Berkeley Software Distribution. Unix-Implementierung der Universität von Berkeley (1977 gestartet). In vielen Unix Derivaten sind Codesegmente von BSD zu finden. Nachfolger von BSD und freie Versionen sind:  NetBSD (1993), FreeBSD (1993) und OpenBSD (1995). DragonFly BSD ist der neueste Abkömmling und stammt aus dem Jahr 2003.  BSD ist lizenziert durch die BSD-Lizenz. Die BSD-Lizenz ähnelt der GNU. Sie erlaubt die freie Benutzung der Programme.                                                     
Siehe auch:    GPL   GNU   unix   windows   Solaris   LGPL   Kernel   POSIX   
Link: http://www.bsd.org


  rsh

rsh ist ein UNIX Befehl. Er führt eine 'remote shell' aus. Da rsh Passwörter und Daten unverschlüsselt überträgt, sollte man es nicht mehr verwenden. Stattdessen ist SSH mit dem SSH2 Protokoll sicherer.                                                         
Siehe auch:    SSH   unix   linux   Kernel   

  Security-Access-Manager

Der Security Access Manager erlaubt unter Unix-Systemen die Verwaltung von Benutzer-IDs. Die Unix-Benutzer-IDs können menügesteuert administriert werden:  Es können die Benutzerrechte Add, Change, Upgrade, Relocate und Delete dem Benutzer zugeordnet werden.                                                       
Siehe auch:    unix   POSIX   Security-Accounts-Manager