Powered by Ubuntu Linux

Was ist UNIX, Linux/GNU und Free/Net/OpenBSD?

Das Betriebssystem Linux      5.1 UNIX-Historie
 1.1 Linux-Historie      5.2 UNIX-Prinzipien
 1.2 Eigenschaften von Linux      5.3 UNIX-Standards
 1.3 Gründe für Linux      5.4 Grafische Oberflächen
 1.4 Einsatzgebiete von Linux      5.5 Besondere UNIX-Ableger
 1.5 Linux-Distributionen       5.5.1 GNU
Das GNU-System       5.5.2 MINIX
 2.1 GPL       5.5.3 Linux
 2.2 LGPL      5.6 Besondere UNIX-Firmen
BSD-Systeme       5.6.1 Novell und SUSE Linux
Mac OS X / OS X / macOS / iOS / iPadOS (Apple)       5.6.2 SCO (Santa Cruz Operation)
Das UNIX-System     

1 Das Betriebssystem Linux Top

1.1 Linux-Historie Top

Linux ist ein frei verfügbares (OSS = "Open Source Software") und zu UNIX kompatibles Betriebssystem (auf API- und Kommandozeilen-Ebene, nicht auf Binärcode-Ebene), das 1991 von dem damals 21 Jahre alten finnischen Informatik-Studenten Linus Torvalds begonnen wurde.

Der Studienanfänger an der Universität von Helsinki war mit den vorhandenen PC-UNIX-Versionen für Intel Prozessoren unzufrieden und begann — auf einem damals hochmodernen Intel-386SX-PC — sein eigenes UNIX-kompatibles Betriebssystem (auf API- und Kommandozeilen-Ebene, nicht auf Binärcode-Ebene) zu bauen, das er später nach seinem Vornamen (Linux = "Linus' UNIX") benannte (der erste Versuch einer Namensgebung lautete übrigens "Freax", wahrscheinlich wäre Linux mit diesem Namen nie berühmt geworden ;-). In einer seiner ersten Mails vom 3.7.1991 in diesem Zusammenhang sucht er nach der POSIX Standard Definition, die die API- und Kommandozeilen-Ebene eines UNIX-kompatiblen Betriebssystems beschreibt.

   From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
   Newsgroups: comp.os.minix
   Subject: Gcc-1.40 and a posix-question
   Message-ID:
   Date: 3 Jul 91 10:00:50 GMT
   Hello netlanders,
   Due to a project I'm working on (in minix), I'm interested in the posix
   standard definition. Could somebody please point me to a (preferably)
   machine-readable format of the latest posix rules? Ftp-sites would be
   nice.

Als Basis dieser Entwicklung verwendete er zunächst das UNIX-Lernsystem Minix des Informatikprofessors und Betriebssystem-Experten Andrew S. Tanenbaum, das er aber bereits sehr früh durch sein eigenes Linux-System ersetzen konnte (oder "musste": Der Sage nach ging seine Festplatte mit dem MINIX-Entwicklungssystem kaputt, als eine erste Version von Linux fast lauffähig war und er musste sich entscheiden …).

Nach seinem inzwischen berühmten ersten "Posting" zu Linux am 25.8.1991 mit der Ankündigung seines Vorhabens

   From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
   Newsgroups: comp.os.minix
   Subject: What would you like to see most in minix?
   Summary: small poll for my new operating system
   Message-ID:
   Date: 25 Aug 91 20:57:08 GMT
   Organization: University of Helsinki
   Hello everybody out there using minix -
   I'm doing a (free) operating system (just a hobby, won't be big and
   professional like gnu) for 386(486) AT clones. This has been brewing
   since april, and is starting to get ready.  I'd like any feedback on
   things people like/dislike in minix, as my OS resembles it somewhat
   (same physical layout of the file-system (due to practical reasons)
   among other things).
   I've currently ported bash(1.08) and gcc(1.40), and things seem to work.
   This implies that I'll get something practical within a few months, and
   I'd like to know what features most people would want.  Any suggestions
   are welcome, but I won't promise I'll implement them :-)
                 Linus (torvalds@kruuna.helsinki.fi)
   PS.  Yes - it's free of any minix code, and it has a multi-threaded fs.
   It is NOT protable (uses 386 task switching etc), and it probably never
   will support anything other than AT-harddisks, as that's all I have :-(.

und einer weiteren Mail vom 5.10.1991 von ihm zur ersten Freigabe einer Linux-Version

 From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
   Newsgroups: comp.os.minix
   Subject: Free minix-like kernel sources for 386-AT
   Message-ID:
   Date: 5 Oct 91 05:41:06 GMT
   Organization: University of Helsinki
   Do you pine for the nice days of minix-1.1, when men were men and wrote
   their own device drivers? Are you without a nice project and just dying
   to cut your teeth on a OS you can try to modify for your needs? Are you
   finding it frustrating when everything works on minix? No more all-
   nighters to get a nifty program working? Then this post might be just
   for you :-)
   As I mentioned a month(?) ago, I'm working on a free version of a
   minix-lookalike for AT-386 computers.  It has finally reached the stage
   where it's even usable (though may not be depending on what you want),
   and I am willing to put out the sources for wider distribution.  It is
   just version 0.02 (+1 (very small) patch already), but I've successfully
   run bash/gcc/gnu-make/gnu-sed/compress etc under it.
   Sources for this pet project of mine can be found at nic.funet.fi
   (128.214.6.100) in the directory /pub/OS/Linux.  The directory also
   contains some README-file and a couple of binaries to work under linux
   (bash, update and gcc, what more can you ask for :-).  Full kernel
   source is provided, as no minix code has been used.  Library sources are
   only partially free, so that cannot be distributed currently.  The
   system is able to compile "as-is" and has been known to work.  Heh.
   Sources to the binaries (bash and gcc) can be found at the same place in
   /pub/gnu.
   ALERT! WARNING! NOTE! These sources still need minix-386 to be compiled
   (and gcc-1.40, possibly 1.37.1, haven't tested), and you need minix to
   set it up if you want to run it, so it is not yet a standalone system
   for those of you without minix. I'm working on it. You also need to be
   something of a hacker to set it up (?), so for those hoping for an
   alternative to minix-386, please ignore me. It is currently meant for
   hackers interested in operating systems and 386's with access to minix.
   The system needs an AT-compatible harddisk (IDE is fine) and EGA/VGA. If
   you are still interested, please ftp the README/RELNOTES, and/or mail me
   for additional info.
   I can (well, almost) hear you asking yourselves "why?".  Hurd will be
   out in a year (or two, or next month, who knows), and I've already got
   minix.  This is a program for hackers by a hacker.  I've enjouyed doing
   it, and somebody might enjoy looking at it and even modifying it for
   their own needs.  It is still small enough to understand, use and
   modify, and I'm looking forward to any comments you might have.
   I'm also interested in hearing from anybody who has written any of the
   utilities/library functions for minix. If your efforts are freely
   distributable (under copyright or even public domain), I'd like to hear
   from you, so I can add them to the system. I'm using Earl Chews estdio
   right now (thanks for a nice and working system Earl), and similar works
   will be very wellcome. Your (C)'s will of course be left intact. Drop me
   a line if you are willing to let me use your code.
                 Linus
   PS. to PHIL NELSON! I'm unable to get through to you, and keep getting
   "forward error - strawberry unknown domain" or something.

begannen sich viele Leute dafür zu interessieren und seitdem wurde Linux von ihm und vielen Freiwilligen auf der ganzen Welt weiterentwickelt. Die seitdem entwickelten Versionen stehen unter www.kernel.org zum Download zur Verfügung. Anfänglich bezeichneten gerade Versionsnummern Produktions-Versionen und (hier fehlende) ungerade Versionsnummern Entwicklungs-Versionen. Seit Version 2.6.0 wird das Entwicklungsmodell "Rolling-Releases" verwendet. Die Versionsnummern 3.0, 4.0 und 5.0 wurden willkürlich eingeführt, um die Unterversionsnummern nicht zu groß werden zu lassen:

VersionDatum
0.01Sep 1991
0.02Okt 1991
0.11Dez 1991
0.12 = 0.9Jan 1992
0.95Mär 1992
0.96Apr 1992
0.97Aug 1992
0.98Okt 1992
0.99Dez 1993
   
VersionDatum
1.0Mär 1994
1.2Mär 1995
2.0Jun 1996
2.2Jan 1999
2.4Jan 2001
2.6.0 – 2.6.39Dez 2003 – Jun 2011
3.0 – 3.19Jul 2011 – Jan 2015
4.0 – 4.20Feb 2015 – Jan 2019
   
VersionDatum
5.0Mär 2019
5.1Mai 2019
5.2Jul 2019
5.3Sep 2019
5.4Nov 2019
5.5Jan 2020
5.6Mär 2020
5.7Mai 2020
5.8Aug 2020
5.9Okt 2020
   
VersionDatum
5.10Dez 2020
5.11Feb 2021
5.12Apr 2021
5.13Jun 2021
5.14Aug 2021
5.15Nov 2021
5.16Jan 2022?

Berühmt wurde auch der Disput zwischen Linus Torvalds und Andrew S. Tanenbaum im Januar/Februar 1992, der mit dem berühmten Satz "Linux is obsolete" ("Linux ist überflüssig") begann.

Professor Tanenbaum meinte damit vor allem die technologische Rückständigkeit des anfangs monolithischen, nicht portierbaren Linux-Kernels (lief nur auf Intel i386) gegenüber modernen Betriebssystemen mit Micro-Kerneln, aber auch die verteilte und ungesteuerte Entwicklung von Linux.

Heutzutage ist Linux natürlich auf viele Hardware-Plattformen portiert und aus dem monolithischen Kernel wurde ein modularer Kernel (eine Zwischenstufe zwischen monolithischem und Micro-Kernel). Der Entwicklungsprozeß ist nach wie vor verteilt, aber es gibt Kontroll-Instanzen und einen kleinen Kreis von Entwicklern, der die strategischen Entscheidungen trifft.

Torvalds konterte diesen damals berechtigten Einwand, indem er mit ein paar geschickten Entscheidungen Linux auf einen langfristigen Erfolgkurs brachte:

  • Freigabe des Linux-Codes unter der GPL (GNU public license)
  • Vollständige Offenlegung des Entwicklungsprozesses
  • Verwendung der bereits vorhandenen GNU-Software statt Neuentwicklung
  • Beteiligung vieler Entwickler weltweit
  • Berücksichtigung von Anwenderwünschen
  • Orientierung an offenen Standards (z.B. POSIX, XPG, OSF, COSE, RFCs, …)
  • Mäßige Kontrolle des Entwicklungsprozesses
  • Sorgfältige Tests vor der Freigabe einer Version (aktuell 2 Wochen Entwicklungsphase + 7-8 Wochen Testphase)
  • Technische Orientierung
  • Pragmatismus
  • Kein Marketing
Diese Kombination, das zunehmend für Privatanwender erschwingliche Internet und die Tatsache, dass die Zeit dafür einfach "reif" war, haben Linux zu einem sehr erfolgreichen Betriebssystem gemacht.

Der Pinguin "Tux" (geschaffen von dem Cartoonisten Larry Ewing) ist seit 1996 das offizielle Maskottchen von Linux, da Linus Torvalds eine Vorliebe für Pinguine hat, seitdem er im Zoo von Canberra von einem dieser kälteliebenden Frackträger gebissen wurde:

Selbstverständlich gibt es für Linux auch einen echten Pinguin namens Tux als Maskottchen: Führende Köpfe der Linux-Community adoptierten 1997 anläßlich des Geburtstags von Linus Torvalds für diesen einen Schwarzfußpinguin im Zoo von Bristol (Großbritannien):

1.2 Eigenschaften von Linux Top

Im Unterschied zu Windows ist Linux nicht nur auf Intel-i386-PCs, sondern auch auf vielen anderen Hardware-Plattformen einsetzbar:
  • ARM (Acorn)
  • AMD x86-64 (64 Bit, Opteron)
  • AVR32 (Atmel)
  • AXIS CRIS
  • DEC Alpha (jetzt HP, vorher Compaq)
  • DEC VAX
  • Hitachi SuperH
  • HP PA-RISC
  • IBM PowerPC
  • IBM S/390 (Mainframe, 31 Bit)
  • IBM S/390x (Mainframe, 64 Bit)
  • Intel i386 (32 Bit)
  • Intel IA-64 (Itanium)
  • Intel Strong-ARM
  • Motorola 68k
  • OpenRISC
  • Renesas M32R
  • SGI MIPS
  • SUN Sparc und UltraSparc
Linux bietet die gesamte Funktionalität, die man von einem modernen Betriebssystem erwartet:
  • Multiuser-Betrieb
  • Echtes (präemptives) Multitasking
  • Hierarchisches Dateisystem (aber keine Laufwerksbuchstaben)
  • Geräteunabhängigkeit
  • Netzwerkfähigkeit
  • Ausgereiftes Zugriffsrechte-System (z.B. auch ACLs)
  • Symmetric Multi Processing-Unterstützung (SMP)
  • Threads ("Lightweight" Processes)
  • Virtuelle Speicherverwaltung
  • Speicherschutz-Mechanismen
  • Dynamisch nachladbare Bibliotheken
  • Hohe Netzwerk-Performance
  • Grafische Oberfläche auf Wunsch (X Window, Wayland, KDE, GNOME, …)
Alle diese Eigenschaften machen Linux zu einer guten Lösung für viele Einsatzgebiete. Linux wird daher weltweit auf Milliarden von Rechnern erfolgreich eingesetzt und ist somit das am weitesten verbreitete Betriebsystem auf diesem Planeten.

1.3 Gründe für Linux Top

  • Ausgereift, extrem stabil und performant (seit 31 Jahren verfügbar)
  • Hält viele Standards ein (POSIX, X/Open, RFC, …)
  • Viele fertige Tools + Entwicklungs-Werkzeuge vorhanden
  • Automatisierbar durch programmierbare Shell
  • Fern-Administration integriert
  • Portabel
  • Resourcen-schonend
  • Genau auf die Anforderungen "zuschneiderbar"
  • Keine grafische Oberfläche notwendig (z.B. bei Servern)
  • Vielzahl von 32/64-Bit-Prozessoren wird unterstützt

Einige vordergründig nicht-technische Gründe für den Einsatz von Linux sind:

  • Deutlich weniger anfällig gegen Angriffe (als z.B. Windows; aufgrund seiner geringen Verbreitung auf dem Desktop und der überlegenen Sicherheitsmerkmale)
  • Keine Abhängigkeit von einem Hersteller
  • Mehr Wettbewerb
  • Lizenzkostenfrei
  • Die "Funktionsweise" ist vollständig dokumentiert
  • Die "Innereien" sind zugänglich
  • An Standards orientiert (z.B. POSIX, X/Open, RFC, …)
  • Man kann daran "herumbasteln"
  • Man kann mit daran entwicklen
  • Verschworene "Community"
  • Einfach "Hip"

1.4 Einsatzgebiete von Linux Top

Benutzt wird Linux von privaten Anwendern, Staaten, Ämtern, Behörden, Stadtverwaltungen, Ausbildungseinrichtungen, Schulen, Universitäten, Forschungszentren, kleinen, mittleren und großen Firmen, die es aus den verschiedensten Gründen als Alternative zu anderen Betriebssystemen sehen.

Die Hauptanwendungsgebiete von Linux sind derzeit:

  • Im Mobile- und Tablet-Bereich (Android).
  • Im Server-Bereich (Datei-, Druck-, Mail-, Web-, FTP-, Authentifizierung-Server)
  • In der Internet-Infrastruktur (Switches, Router, Mail-Server, DNS-Server). Man schätzt, dass 70-80% des Internets (Basissysteme) auf Linux-Rechnern läuft!
  • Im Netzwerk-Sicherheitsbereich (Proxy, Gateway, Firewall, Intrusion-Prevention und -Detection, Penetration Testing, Hacking)
  • In Cloud-Systemen (AWS Amazon Web Service, Microsoft Azure, GCP Google Cloud Platform, OCI Oracle Cloud Infrastructure, IBM Cloud, VMware Cloud, …). ALLE Cloud-Systeme basieren auf Linux!
  • Die Top-500-Rechner verwenden seit vielen Jahre ausschließlich Linux als Betriebssystem (da es Treiber für moderne Hardware mitbringt, im Quellcode vorliegt und damit extrem gut an die Spezialarchitekturen dieser Rechner anpassbar ist).
  • Als interne Systeme aller Tech-Giganten wie Amazon, Google, Facebook, Twitter, Instagram, Apple, Microsoft, …
  • In Spieleplattformen Steam, Sony PlayStation, Microsoft XBox, Nintendo DS, Wii und Switch, …
  • Im Consumerbereich bei Smart-TVs, Streaming-Geräten, Kaffee-Vollautomaten, …
  • Im Bereich Internet of Things (IoT)
  • Als Virtualisierungs-Plattform (VMware, VirtualBox, Xen, OpenVZ, Qemu, Bochs, KVM)

Aber auch als Desktop auf Anwender-Clients wird Linux mehr und mehr eingesetzt, da zu einer ganzen Reihe von sogenannten Standard-Anwendungen unter Windows vergleichbar leistungsfähige und stabile(re) Produkte unter Linux existieren:

Microsoft Windows Linux/GNU
.NET/C# DotGNU, Mono
Access LibreOffice-Base, Kexi, Symphytum, Rekall
Acrobat Reader Xpdf, Kpdf, Evince, Okular, Qpdfview
PDF Editor PDFedit, Master PDF Editor
Active Directory OpenLDAP
Bilder/Fotoverwaltung F-Spot, gThumb, Shotwell, Darktable, Cumulus
E-Book Reader Calibre
Calendar KOrganizer, Lightning
Desktopsuche Beagle, Tracker
Editor Vim, Emacs, Geany, Sublime, Visual Studio Code, Atom
Excel LibreOffice-Calc
Exchange Exim, Postfix, Qmail, Sendmail
Fotonachbearbeitung digiKam, Darktable, ExifTool
Frontpage Bluefish, Coffecup, NVU, Quanta
Illustrator, Freehand, Coreldraw, Xara Inkscape
Internet Explorer Firefox, Galeon, Konqueror, Lynx, Opera
Internet Information Server (IIS) Apache, Nginx
MarkDown Editor Typora, Remarkable, Ghostwriter, Haaroupad, Moeditor, ReText
Media Player Clementine, Rythmbox, Lollypop, Audacious, Mplayer, Vlc, Xine
Mindmapper vym — View Your Mind
MP3-Player Amarok, Helix, XMMS
Nero Abcde, Brasero, K3b
Norton Commander Midnight Commander
Notepad Leafpad, Gedit, Kate
Office Applixware, KOffice, LibreOffice, OpenOffice, StarOffice, Abiword
OneDrive File Sync OneDrive-D, Dropbox, Syncthing
Outlook KMail, Geary, Evolution, Horde, Kontact, Thunderbird
Photoshop Gimp
Powerpoint LibreOffice-Impress
Project MrProject
Quark Express Applixware, Scribus
Quicken GNUCash
SQL Server PostgreSQL, MySQL, MariaDB
Skype Skype
Taschenrechner Kcalc
TeamViewer TeamViewer
Videoeditor OpenShot, Avidemux
Visio Dia
Visual Studio Eclipse, Kdevelop, Visual Studio Code
Windows Linux + XFree86/Xorg + KDE/GNOME
Windows Explorer Konqueror, Nautilus
Winrar 7-Zip
Word LibreOffice-Writer
Write Kwrite
Xara 3D Blender
Scannen XSane
MATLAB Octave
Hyper-V VirtualBox

1.5 Linux-Distributionen Top

Für Linux-Systeme gibt es nicht wie sonst üblich nur einen Hersteller beziehungsweise Vertreiber, sondern mehrere sogenannte "Distributoren" stehen im Wettbewerb miteinander (nur eine kleine Auswahl):

Eine Distribution ist eine Zusammenstellung folgender Bestandteile zu einem Paket:

  • Datenträger/Images mit Linux-Betriebssystem und vielen Kommandozeilen- und Anwendungs-Programmen
  • Grafisches Installations- und Administrations-Programm mit Hardwareerkennung
  • Gedrucktes Installations- und Anwender-Handbuch
  • Zeitlich begrenzter Installations-Support per Telefon oder E-Mail
  • Repository mit aktualisieren Versionen aller Komponenten zum Download + Update.

Linux wurde zunächst ausschließlich über Floppy Disks verteilt. Mit der stark steigenden Zahl von verfügbaren (Anwendungs)Programmen hat sich der Vertrieb über Distributionen mit Datenträgern und Images zum Download etabliert und wird zunehmend mit Supportdienstleistungen verknüpft.

Eine Distribution kostet zwischen 20,- und 100,- Euro für Datenträger und Handbücher. Das reine Herunterladen der Images aus dem Internet kostet in der Regel nichts.

Für Firmen gibt es inzwischen professionell orientierte Distributionen mit Wartungsverträgen und mehrjähriger Weiterentwicklungs- und Supportgarantie, die dann allerdings erst ab 400.- bis 2000.- Euro erhältlich sind. Interessant (und teuer) sind diese professionellen Distributionen vor allem deshalb, weil sie vom Hersteller für Hardware wie DELL, HP, IBM und für Software wie ORACLE, Sybase, SAP zertifiziert sind.

2 Das GNU-System Top

Im Zusammenhang mit Linux muss auf jeden Fall das GNU-Projekt (GNU steht für "Ghee it's not UNIX" oder "GNU's not UNIX") erwähnt werden. Es bildet zusammen mit dem Linux-Kern das (eigentliche) Linux-Betriebssystem, man sollte also eigentlich immer von "Linux/GNU" oder "GNU/Linux" sprechen!

Genau genommen bezeichnet "Linux" nämlich nur den ursprünglich von Linus Torvalds entwickelten "Kern" des Betriebssystems. Dieser Kern bietet ausschließlich Basisfunktionalitäten und ist für sich alleine nicht verwendbar. Er ist im wesentlichen für die Ansteuerung der Hardware (Treiber) und für die Koordination von Hard- und Software verantwortlich (Ressourcenmanagement für CPUs, Speicher, Datenträger, I/O-Kanäle und Netzwerk).

Ein "richtiges" Betriebssystem entsteht erst durch das Hinzufügen weiterer — für einen sinnvollen Einsatz unbedingt notwendiger — Komponenten wie z.B.

  • Kommandozeilen-Werkzeuge (Tools)
  • Programmierumgebungen (C/C++-Compiler + Tools)
  • Skriptsprachen (Shell, Awk, Perl, Python, …)
  • Netzwerksoftware (Clients + Server)
  • Grafische Oberflächen
    • X Window (grundlegende Grafik-Funktionen)
    • KDE (Kool Desktop Environment)
    • GNOME (GNU Network Object Model Environment)

GNU wurde ebenfalls als UNIX-kompatibles Betriebssystem (auf API- und Kommandozeilen-Ebene, nicht auf Binärcode-Ebene) von Richard Stallman im Jahr 1984 als Fulltime-Projekt begonnen, als dieser sich über seine Abhängigkeit von Hardware-Herstellern ärgerte, die nicht bereit waren, Fehler aus ihrer Geräte-Software zu entfernen (extra deswegen kündigte er seine Stelle beim MIT). Er gründete 1985 die FSF (Free Software Foundation) und ersann die GPL (GNU General Public License), eine "revolutionäre" Software-Lizenz, die so ganz anders geartet war als alle bis dahin bekannten Lizenz-Spielarten von Software-Herstellern.

Allerdings begann Herr Stallman mit der Realisierung seines UNIX-Ersatz-Systems am anderen Ende. Nicht der Kern des Betriebssystems wurde zuerst implementiert, sondern die vielen für ein Betriebssystem notwendigen Werkzeuge außen herum wurden von ihm selbst und anderen Freiwilligen implementiert bzw. aus anderen OSS-Projekten in dieses System integriert, z.B.:

  • Editoren "emacs" und "vim"
  • Portabler GNU-C-Compiler "gcc"
  • Portabler GNU-C++-Compiler "g++"
  • Portabler GNU-Fortran-Compiler "f77"
  • Portabler GNU-Awk-Interpreter "gawk"
  • Portabler GNU-PostScript-Interpreter "Ghostscript"
  • Kommandozeilenorientierter GNU-Debugger "gdb"
  • Grafischer GNU-Debugger "ddd"
  • GNU-make "gmake"
  • Kommando-Shell "bash"
  • Scanner-Generator "flex" und Parser-Generator "bison"

Lange bevor der geplante eigene GNU-Betriebssystem-Kern "Hurd" (Hird of UNIX-Replacing Daemons) verfügbar wurde, hatte sich aber bereits der "Linux"-Kern von Linus Torvalds durchgesetzt. Das offizielle Maskottchen von GNU ist ein "Gnu":

2.1 GPL Top

Hauptsächlicher Grund für die weite Verbreitung von Linux ist — neben der technologischen Qualität — dass es von Anfang an unter die im Zusammenhang mit dem GNU-Projekt entwickelte GPL (GNU General Public License) gestellt wurde.

Diese Lizenz garantiert jedem den kostenlosen Zugang zum Quellcode von Linux. Linux darf und muss frei und kostenlos kopiert, übertragen, verteilt, eingesetzt, verändert und erweitert werden. Entwickler haben daher vollständigen Einblick in den Quellcode. Sie können somit sehr einfach neue Funktionalitäten ergänzen bzw. (sicherheitsrelevante) Programmierfehler schnell finden und beheben.

Treiber für neue Hardware (z.B. SATA-Controller, Grafikkarten, WLAN, TV-Karten, …) können dadurch ebenfalls sehr schnell integriert werden (sofern ihre Ansteuerung vom Hardware-Hersteller offengelegt wird, was leider nicht immer der Fall ist ;-(). Allerdings führt die Verwendung von GPL-Software zusammen mit eigenentwickelter Software dazu, dass diese eigene Software ebenfalls automatisch unter der GPL steht ("Copyleft-Prinzip").

2.2 LGPL Top

Die LGPL (GNU Lesser General Public License) (und auch z.B. die BSD-Lizenz) erlaubt im Gegensatz zur GPL den Einsatz zusammen mit eigenentwickelter Software, ohne dass deren Quellcode offengelegt werden muss. Unter die LGPL fallen z.B. die mit dem gcc oder g++ mitgelieferten C- und C++-Bibliotheken.

Viele Software-Pakete (z.B. Qt oder MySQL) kommen auch in Form von 2 Lizenzen. Einer kostenfreien unter der GPL und einer kommerziellen (mit Kosten verbundenen) unter einer anderen Lizenz. Dies erlaubt jedem die Entscheidung, ob er den Quellcode seiner eigenen — damit entwickelten — Software offenlegt und keine Lizenzgebühren zahlt oder ob er lieber Lizenzgebühren zahlt und dafür seine Software-Quellen nicht offenlegt.

3 BSD-Systeme Top

Neben Linux gibt es noch weitere UNIX-kompatible Open Source Betriebssysteme (auf API- und Kommandozeilenebene, nicht auf Binärcode-Ebene), z.B. eine Linie die aus dem UNIX-Derivat BSDLite 4.4 (Berkeley Software Distribution) entstanden ist:
  • 386BSD (erstes Open Source BSD-System, Forks sind NetBSD, OpenBSD, FreeBSD)
  • Darwin (Open Source BSD von Apple, Grundlage von System X)
  • DragonflyBSD (Fork von FreeBSD)
  • FreeBSD (sehr optimiertes und robustes BSD-UNIX, Fork von 386BSD)
  • GhostBSD (Desktop BSD-UNIX, Fork von FreeBSD)
  • MidnightBSD (Desktop BSD-UNIX, Fork von FreeBSD)
  • NetBSD (sehr portables BSD-UNIX, Fork von 386BSD)
  • OpenBSD (sehr sicheres BSD-UNIX, Fork von NetBSD)
Weitere Links zu BSD.

4 Mac OS X / OS X / macOS / iOS / iPadOS (Apple) Top

Das seit vielen Jahren als Nachfolger von Apple macOS 9 auf Apple-Rechnern eingesetzte Betriebssystem Mac OS X ("X" steht für Version "10") ist ebenfalls ein BSD-UNIX-Derivat. Es hieß früher NeXTStep und stammte ursprünglich von der Firma NeXT, die dem Apple-Mitgründer Steve Jobs gehörte und später von Apple aufgekauft wurde. Das Original-NeXTStep-System wird als GNUstep/OpenStep weitergeführt

Im Unterschied zu Linux basiert NeXTStep (und damit auch Mac OS X) auf dem fortschrittlichen Micro-Kernel MACH 2.5. Weitere bahnbrechende Besonderheiten von NeXTStep waren die Verwendung von Display PostScript statt X Window für die grafische Oberfläche und von Objective C als Programmiersprache. Der Name Mac OS X wurde später in OS X und dann in macOS geändert, hier eine Liste der bisher erschienenen Versionen:

NameNrDatum
Mac OS X
Cheetah10.0Mär 2001
Puma10.1Sep 2001
Jaguar10.2Aug 2002
Panther10.3Okt 2003
Tiger10.4Apr 2005
Leopard10.5Okt 2007
Snow Leopard10.6Aug 2009
Lion10.7Jul 2011
   
NameNrDatum
OS X
Mountain Lion10.8Feb 2012
Mavericks10.9Jun 2013
Yosemite10.10Jun 2014
El Capitan10.11Jun 2015
macOS
Sierra10.12Sep 2016
High Sierra10.13Jun 2017
Mojave10.14Jun 2018
Catalina10.15Jun 2019
   
NameNrDatum
macOS
Big Sur11.0Nov 2020
Monterey12.0Okt 2021 ?

Hinweis: Der Sprung von Version 10.15 auf 11.0 erklärt sich durch die Anpassung von macOS an die neue, eigenenwickelte ARM-basierte Prozessorarchitektur M1, die ab dem Jahr 2020/2021 auf allen Apple-Geräten vom Typ Mac mini, MacPro, iMac, iMac Pro, MacBook Air und MacBook Pro eingesetzt werden soll. Sie soll die Intel-Prozessorarchitektur x86-64 ablösen, ebenso wie diese im Jahr 2006 die powerPC-Prozessorarchitektur und diese im Jahr 1994 die m68000-Prozessorarchitektur ablöste. Auf iPhones und iPads wird schon immer ARM als Prozessorarchitektur eingesetzt (A1-A14).

5 Das UNIX-System Top

UNIX ist eigentlich eine portable Betriebssystemfamilie mit den beiden Hauptlinien
  • BSD-UNIX (Berkeley Software Distribution von der UCB = University of California at Berkeley)
  • UNIX System V (ursprüngliches UNIX-System von den AT&T Bell Laboratories)
Sie bilden die Grundlage für fast alle heutigen kommerziellen und nichtkommerziellen UNIX-artigen Betriebssysteme. "UNIX" ist mittlerweile ein geschütztes Markenzeichen der Open Group. Alle vergangenen und noch existierenden UNIX-Systeme wie
  • AIX (IBM)
  • HP/UX (Hewlett-Packard)
  • Irix (Silicon Graphics)
  • NextStep (Next)
  • SCO UnixWare (Santa Cruz Operation)
  • SunOS (SUN Microsystems)
  • Solaris (SUN Microsystems)
  • Tru64 (Compaq)
  • Ultrix (Digital Equipment Corporation)
stammen von einer der beiden Hauptlinien ab (Linux ist hingegen eine komplette Neuentwicklung und versucht beide Linien wieder zu integrieren). UNIX ist sicher eines der einflussreichsten Betriebssysteme im Bereich der modernen Computernutzung.

5.1 UNIX-Historie Top

Vorläufer des Betriebssystems UNIX war das System MULTICS, das um 1965 gemeinsam von den Hardware-Herstellern General Electric, Honeywell, dem MIT (Massachusetts Institute of Technology) und den AT&T Bell Laboratories begonnen wurde. Aufgrund seiner ambitionierten Ziele und der damals noch nicht ausreichend fortgeschrittenen Hardware-Technologie stieg AT&T aus dem Projekt aus.

Einige der in den Bell Laboratories von AT&T an MULTICS beteiligten Entwickler (Dennis Richie, Doug McIlroy, Joseph Ossanna, Brian Kernighan, Ken Thompson) implementierten ausgehend von diesen Erfahrungen ab 1969 dann ein deutlich reduziertes Multi-User-Betriebssystem auf einem Minicomputer PDP-7 von DEC (Digital Equipment Corporation), zunächst noch in Assembler (Maschinensprache).

Ziel war es, ein Mehrbenutzersystem zu schaffen, das zur Programmierung und zur Bildung einer Gemeinschaft der Benutzer dienen sollte. Die PDP/7-Hardware war denkbar einfach (16 + 8 KByte Speicher, 512 KByte Festplatte, Dateigröße maximal 64 KByte), daher wurden in dem Projekt einige weitreichende Entscheidungen getroffen, die auch heute noch in UNIX-Systemen anzutreffen sind (siehe UNIX-Prinzipien).

Das System wurde 1970 auf eine PDP-11 migriert und intern im Patentbüro der Bell Laboratories als Textverarbeitungssystem eingesetzt. Der Begriff "UNIX" entstand als eine "Verballhornung" des Begriffs "UNICS" (Uniplexed Information & Computing Service), der wiederum vom Begriff "MULTICS" (Multiplexed Information & Computing Service) abgeleitet war.

1971-1973 wurde UNIX (bis auf wenige Teile) in der höheren Programmiersprache C neu implementiert (Abkömmling von B bzw. BCPL bzw. NB, erst damit wurde es wirklich portabel) und auf eine PDP-11/74 portiert (in diesem Zusammenhang entstand auch das Konzept der Pipes). 1974 wurde dieses System unter dem Namen UNIX V4 abgeschlossen.

UNIX wurde 1973 einer breiteren Öffentlichkeit bekannt, als es auf einer Tagung (ACM Symposium) vorgestellt wurde und 1974, als dieser überarbeitete Vortrag unter dem Titel "The UNIX Time-Sharing System" in der Zeitschrift CACM (Communications of the Association for Computing Machinery) erschien. Das Interesse an diesem System wuchs und viele wollen es einsetzen. Aufgrund der Monopolstellung von AT&T im Telefon-Markt durft das UNIX-System nicht verkauft werden, und so wurde der Quellcode des Systems (!) gegen einen geringen Unkostenbeitrag in Form von "Tapes" (Bändern) an Interessierte "verschenkt".

Das System wurde daher von vielen Hardware-Herstellern und Universitäten eingesetzt und erweitert, vor allem an der University of California at Berkeley (UCB), die das später sehr verbreitete BSD-UNIX schuf. 1980 wurde es dort auch auf einen damals verbreiteten Computer, die 32-Bit-Maschine VAX der Firma Digital Equipment Corporation portiert (die erste 32-Bit-Version von UNIX).

Ab 1979 versuchte AT&T mit UNIX V7 das System kommerziell zu vermarkten. Auch Microsoft versucht mit XENIX eine kommerzielle Portierung auf Intel 80286 Prozessoren, übergibt aber später die Rechte an diesem System an die Firma SCO (Santa Cruz Operation).

Ab 1980 finanziert die DARPA (Defense Advanced Research Projects Agency) für mehr als 20 Jahre die BSD-UNIX-Entwicklung an der UCB (University of California at Berkeley, auch "Cal"), vor allem, um das gerade entwickelte TCP/IP-Protokoll zu verbreiten, das als kriegswichtig galt.

Die verschiedenen UNIX-Linien begannen im Zuge dieses Prozesses immer mehr auseinanderzulaufen, was z.B. die Portierung von Software oder die einheitliche Systemadministration erschwerte (siehe UNIX-Versions-Geschichte).

5.2 UNIX-Prinzipien Top

Das Betriebssystem UNIX wurde auf Basis folgender Prinzipien konzipiert und realisiert, die seine "Essenz" ausmachen. Sie sind auch heute noch für die Eleganz (und die Widersprüchlichkeiten) des UNIX-Systems verantwortlich.
  • Grundlegende Prinzipien
    • "Small is beautiful"
    • KISS ("Keep it simple stupid")
    • Portabilität ist mehr wert als Effizienz ("C statt Assembler")
    • Prozess-Erzeugung ist billig ("fork")
    • Vollständige Dokumentation online verfügbar (Usage-Meldungen, Manual/Info-Pages)
  • Dateisystem
    • Ein logischer hierarchischer Dateibaum (eine Wurzel "/" = "root" )
    • Alle Unicode-Zeichen in Dateinamen erlaubt außer "/" (Verzeichnistrenner) und NUL-Byte
    • GROSS/Kleinschreibung zählt (aus pragmatischen Gründen wird fast alles klein geschrieben)
    • Extensions sind irrelevant (Datei "öffnen" wird über Execute-Recht + "Shee-Bang-Zeile" gesteuert)
    • Hardware (Geräte) ist per Dateiname ansprechbar ("Alles ist eine Datei")
    • System- und Benutzerdaten sind streng getrennt
    • Jeder Benutzer hat ein eigenes Heimatverzeichnis für seine Daten (strenge Trennung der Benutzer untereinander)
  • Dateiformat
    • Dateien sind ein "Strom von Bytes" (keine Binär- oder Record-orientierten Formate)
    • Standard-Dateiformat ist die "flache" Textdatei (keine Binärdateien)
    • Zeichensatzcodierung ist UTF-8 (enthält ASCII als Basis)
    • Zeilenende "\n" (Newline) strukturiert Textdaten in Zeilen (nicht "\r\n" wie in Windows)
    • Kommentare + Kommentarzeilen beginnen einheitlich mit "#" (bis zum Zeilenende)
  • Systemkonfiguration + -administration
    • Konfiguration erfolgt per zeilenorientierten Textdateien (enthalten evtl. auch Kommentare zur Dokumentation)
    • Verzeichnis "/etc" enthält die System-Konfiguration ("et cetera", Registry)
    • Benutzerspezifische Konfiguration per "versteckte" Dateien ("Dot files" beginnen mit ".") im Benutzerverzeichnis
    • Zur Systemadministration genügt ein Terminal + ein Editor (Vim, Emacs, …)
  • Programme / Werkzeuge
    • Jedes Programm kennt 3 standardmäßig geöffnete Dateien: Standard-Eingabe, -Ausgabe und -Fehlerkanal
    • Viele kleine spezialisierte Standard-Werkzeuge ("Tools")
    • Werkzeuge sind als "Filter" realisiert (lesen Input von Stdin, schreiben Output auf Stdout, schreiben Fehlermeldungen auf Stderr)
    • Exit-Status eines Kommandos zeigt korrekten/fehlerhaften Aufruf/Ablauf an
  • Benutzerschnittstelle
    • Kommandozeilen-orientierte interaktive Benutzerschnittstelle ("Shell statt GUI")
    • Kommando-Interpreter "Shell" ist nicht Teil des Betriebssystems (daher leicht austauschbar)
    • Die Shell kennt viele eingebaute Standard-Mechanismen (Filter-Eigenschaft, Exit-Status, Kommandozeilen-Parameter, Filename Globbing, Umlenkung, Pipe, Kommando-Substitution, Variablen-Substitution, History, Aliase, Tab-Completion, Funktionen, Hintergrund-Prozesse, Signale, Quotierung, …)
    • Keine unnötigen Ablaufmeldungen (UNIX ist "stumm")
    • Keine Rückfragen ("der Benutzer weiß was er tut")
    • Kurze und prägnante Fehlermeldungen
  • Zugriffsrechte
    • Multiuser-System von Beginn an (gegenseitiger Schutz der Benutzer voreinander)
    • Jede Datei ist einem Besitzer + einer Besitzer-Gruppe zugeordnet (Ersteller)
    • Überschaubar (im wesentlichen 3 Stück: r=read, w=write, x=execute)
    • Normale Benutzer dürfen fast alles ansehen, aber fast nichts verändern
  • Skripting (Programmierung + Automatisierung)
    • Interaktiver Kommando-Interpreter "Shell" auch zum Skripting gut geeignet
    • Alle Kommandos sind auch in Shell-Skripten verwendbar ("Benutzer = langsames Shell-Skript")
    • Exit-Status der Kommandos erlaubt Reaktion darauf + Ablaufsteuerung
    • Werkzeuge sind leicht kombinierbar aufgrund folgender Eigenschaften
      • Filter-Eigenschaft
      • Zeilenorientierter ASCII-Text als Ein- + Ausgabe
      • Exit-Status
      • Kommandozeilen-Parameter
      • Filename Globbing (Dateinamen-Expansion)
      • Umlenkung und Pipe
      • Kommando-Kombination
      • Kommando-Substitution
      • Variablen-Substitution
      • Funktionen
      • Hintergrund-Prozesse
      • Signale
      • Quotierung
    • Rekursiv: Jedes Skript = neues Werkzeug!

5.3 UNIX-Standards Top

Da es aufgrund der historischen Entwicklung nicht "das UNIX-System" gab, versuchten ab den 80-er Jahren einige Organisationen wie
  • OSF (Open Software Foundation)
  • UI (UNIX International)
  • X/Open (Bison = Vereinigung europäischer Firmen)
  • Open Group (Bison = Vereinigung europäischer Firmen)
über eine Reihe von Standards das UNIX-System zu vereinheitlichen:
  • COSE (Common Open Software Environment)
  • POSIX (Portable Operating System Interface)
  • SUS (Single UNIX Specification)
  • SVID (System V Interface Definition)
  • XPG (X/Open Portability Guide)
  • XSI (X/Open System Interface)

Aufgrund der Rivalitäten unter den einzelnen Herstellern (als "UNIX-Krieg" bekannt) und einer Reihe von Copyright-Prozessen zwischen AT&T und BSD scheiterten alle diese Bemühungen oder zogen sich zumindest sehr lange hin. Inzwischen erfüllen aber die meisten UNIX-System den System V- und POSIX-Standard (der eine Zusammenfassung von SysV und BSD darstellt).

5.4 Grafische Oberflächen Top

Zunächst kannten die einzelnen UNIX-Systeme noch keine grafische Benutzerschnittstelle (GUI). Mit der Entwicklung der grundlegenden und portablen Grafik-Schnittstelle X11 Window am MIT (Massachusetts Institute of Technology) wurde diese Art der Benutzung eines UNIX-Systems aber immer interessanter. Leider entwickelten sich auch hier viele verschiedene, untereinander inkompatible Ansätze wie z.B.:
  • CDE (Common Desktop Environment)
  • Looking Glass
  • MOTIF
  • OpenLook
  • OpenWindows (SUN)
  • VUE (Visual User Environment, Hewlett Packard)
  • Wabi (Windows Binary Application Interface, SUN)
  • XDG (X Desktop Group)
  • freedesktop.org

Inzwischen haben sich als Standard aber folgende Grafische Oberflächen herausgebildet:

  • GNOME (GNU Network Object Model Environment)
  • KDE (Kool Desktop Environment)
  • XFCE (XForms Common Environment)
  • LXDE (Lightweight X11 Common Environment)

Das erste "Posting" zu KDE am 14.10.1996 von Matthias Ettrich.

5.5 Besondere UNIX-Ableger Top

5.5.1 GNU Top

Aus Ärger über die zunehmende Kommerzialisierung von UNIX begann Richard Stallman 1984 das UNIX-kompatible Betriebssystem GNU (auf API- und Kommandozeilen-Ebene, nicht auf Binärcode-Ebene) als vollständige Neuentwicklung. Dieses System ist nicht-kommerziell und ist im Quellcode erhältlich.

5.5.2 MINIX Top

Ab 1987 entwickelte der Informatik-Professor Andrew S. Tanenbaum ein PC-basiertes UNIX namens MINIX zu Lehrzwecken, da das Original-UNIX-System von AT&T auch für Universitäten nicht mehr umsonst verfügbar war. Dieses System wurde bewußt nicht kommerziell vertrieben, sondern war gegen einen geringen Betrag inklusive Quellcode erhältlich. Auch das MINIX System ist nicht-kommerziell und im Quellcode erhältlich.

5.5.3 Linux Top

Mit der Schaffung des freien UNIX-Systems Linux durch Linus Torvalds als Neuimplementierung von UNIX ab 1991 hat der lange gehegte Traum eines einheitlichen UNIX-Systems wieder neue Nahrung bekommen. Als Ausgangsbasis verwendete er dabei obiges MINIX, das er aber sehr schnell durch sein selbst programmiertes System ersetzte.

Die Kombination Linux + GNU bildet heute das am weitesten verbreitete UNIX-System und erfüllt viele der obigen UNIX-Standards. Linux setzt inzwischen auch eigene Standards, weil es die anderen UNIX-Derivate verdrängt hat.

5.6 Besondere UNIX-Firmen Top

5.6.1 Novell und SUSE Linux Top

Von 1993-1995 besaß die Firma Novell die Rechte an UNIX, verkaufte sie dann aber an die Firma Caldera International (heute SCO). Ende 2003 vollzog Novell erneut den Einstieg in das UNIX-Geschäft, indem es den damals weltweit zweitgrößten Linux-Distributor SuSE AG (Deutschland) übernahm. Novell wurde 2010 von Attachmate übernommen, Attachmate 2014 von Micro Focus und das SuSE Geschäft 2018 von EQT Partners AB (Schweden) herausgekauft und übernommen. Die SUSE S.A. wurde am 19.5.2021 von EQT an die Börse gebracht.

5.6.2 SCO (Santa Cruz Operation) Top

Ab Anfang März 2003 führt die Firma SCO (bzw. UnXis, später umbenannt in Xinuos) eine Copyright-Klage gegen IBM, RedHat und diverse andere Linux-Hersteller und -Benutzer. Grundlage dieser Klage war die Behauptung, dass in Linux Quellcode aus dem Original-UNIX-System einkopiert wurde und die Firma SCO sich als Besitzer des Original UNIX-Quellcodes fühlte.

Dieses Gerichtsverfahren zog sich über 10 Jahren hin, da die Anwälte der Firma SCO ständig neue Anträge (z.B. auf zusätzliche Informationsbeschaffung seitens IBM) stellten und Anklagen gegenüber weiteren Firmen (z.B. Novell) erhoben, ohne aber jemals einen einzigen wirklichen Beweis für ihre Behauptung angetreten zu haben, ist aber inzwischen abgeschlossen (siehe SCO vs. Linux: Die unendliche Geschichte).