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  und gemeinsam nutzen konnten. Das sich daraus entwickelnde Betriebssystem wurde u.a. auf einer PDP 11 programmiert. 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. 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. 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. Beispiele hierfür sind Solaris und 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 hieß 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 (Berkeley 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   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:    POSIX   DEC   BSD   TCP-IP   SMTP   

  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   PGP   GIMP   X-Window-System   Open-Source   Fedora-Core   

  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:    POSIX   GNU-Projekt   GCC   

  GNU-Projekt

GNU is not Unix. Das 1984 gegründete Projekt hat sich zum Ziel gesetzt, ein freizugängliches, auf Unix-Prinzipien basierendes Betriebssystem zu entwickeln. 

Die Ursprünge des Projektes gehen zurück auf Richard Stallman, der seine Stelle am Massachusetts Institute of Technology (MIT) kündigte, um sich ganz dem GNU-Projekt widmen zu können, und um zu verhindern, dass die Rechte des GNU-Projektes auf das MIT  übergehen könnten. Die Software unterliegt der GPL (GNU General Public License) und wird von der FSF (Free Software Foundation) verwaltet.                                                     
Siehe auch:    GNU   GPL   LGPL   Open-Source   Mach-Mikrokernel   
Link: http://www.gnu.org


  vi

Der Unix-Standard-Editor vi ist auf jedem Unix/Linux-System verfügbar. vi wird schon seit vielen Jahren auf Unix-Systemen eingesetzt. Seine für Anfänger kryptische Bedienung erklärt sich aus der langen Geschichte dieses Editors. 

In jedem Fall ist es sinnvoll, einige Grundlagen über den vi zu erfahren, weil dieser Editor immer verfügbar ist, auch auf einem minimalen System.  Grundkenntnisse in der Bedienung des vi sind für jeden Benutzer eines Unix/Linux Systems notwendig, spätestens wenn er in den Bereich der Systemadministration vordringt.                                                     
Siehe auch:    POSIX   Daemon   Open-Group   BSD   

  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:    Daemon   Open-Group   BSD   Kernel   Shell   Datei-Endung-H   
Link: http://www.opengroup.org/austin/papers/posix_faq.html