Linux-Unix-Programmierung - Das umfassende Handbuch

Linux-Unix-Programmierung - Das umfassende Handbuch

 

 

 

von: Jürgen Wolf, Klaus-Jürgen Wolf

Rheinwerk Computing, 2016

ISBN: 9783836237741

Sprache: Deutsch

1435 Seiten, Download: 4505 KB

 
Format:  EPUB, auch als Online-Lesen

geeignet für: geeignet für alle DRM-fähigen eReader geeignet für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Apple iPod touch, iPhone und Android Smartphones Online-Lesen
Typ: A (einfacher Zugriff)

 

eBook anfordern

Mehr zum Inhalt

Linux-Unix-Programmierung - Das umfassende Handbuch



2    Laufzeitumgebungen


Man könnte ja auch von Betriebssystemen sprechen, aber im Zeitalter von Virtualisierung schreiben wir lieber ganz neutral »Laufzeitumgebungen«.

Dieses Kapitel beginnt mit einer Übersicht über die Geschichte von Unix und Linux. Danach werfen wir einen Blick auf die wichtigsten Linux-Distributionen und stellen Ihnen die GNU-Toolchain vor, also die GNU-Werkzeuge, die Sie künftig zur Programmierung verwenden werden. Weitere Abschnitte behandeln das Paketmanagement, den Compiler GCC sowie diverse Standards, die für die Linux/UNIX-Programmierung zu beachten sind (POSIX, X/OPEN und ANSI C).

2.1    Historisches


Gerade Privatanwender oder Hobbyprogrammierer bringen gerne beide Pferde (UNIX und Linux) in einen Stall. Ganz verkehrt ist das vielleicht nicht, was die Benutzung angeht, aber lassen Sie uns einfach die Geschichte erzählen, wie es von UNIX zu Linux kam.

2.1.1    Von UNIX ...


Im Jahr 1969 (und wahrscheinlich schon weit früher) hatte ein Informatiker namens Ken Thompson es satt, ewig mit Lochstreifen oder Lochkarten Programme oder besser Rechenaufträge zu bearbeiten. Er begann, UNIX in Assemblersprache zu schreiben. UNIX sollte ursprünglich ein Single-User-Betriebssystem werden, als Konkurrent zum ersten Multi-User-System Multics. Die großen Neuerungen von UNIX waren die Trennung von Daten und Code (in Dateien; vorher lag einfach alles irgendwo im Speicher) und eine Dateihierarchie (Verzeichnisse) auf dem Speichermedium.

Thompson schrieb also das erste UNIX in Assembler, das auf einer PDP-7-Maschine lief. Wenn Sie sich ein wenig mit Assembler befasst haben, dann wissen Sie, welcher Aufwand nötig ist, um damit Programme zu schreiben. Das sah auch Thompson so, und er entwickelte kurz darauf die Programmiersprache B, die auf BCPL basierte. Diese Programmiersprache war jedoch auch nicht »das Gelbe vom Ei«, daher entwickelte Dennis Ritchie zusammen mit Brian Kernighan 1971 aus B die Programmiersprache C. UNIX wurde daraufhin komplett in C umgeschrieben, was sich bis heute nicht grundlegend geändert hat.

Hinweis

Die (immer noch existierende) Homepage von Dennis Ritchie – er ist im Oktober 2011 verstorben – unter http://www.bell-labs.com/usr/dmr/www/ enthält eine kurze Übersicht über die Entwicklung seines Arbeitsplatzes (Bell Labs/AT&T) und ein paar historische Informationen zu UNIX und C.

Dank der Programmiersprache C erreichte UNIX relativ schnell einen hohen Entwicklungsgrad und konnte einigermaßen problemlos auf immer mehr Plattformen portiert werden, auch wenn sich die dortige Maschinensprache unterschied. Mit der Zeit entstand ein immer stabilerer Systemkern, und der Reifegrad der Anwendungen konnte sich sehen lassen. UNIX fand zur damaligen Zeit seinen Einsatz in Universitäten und Hochschulen.

Bevor das erste Ur-UNIX überhaupt seinen Weg zu AT&T fand, wurde es von Dennis Ritchie durch die freie Weitergabe des gesamten Quellcodes an Universitäten und Hochschulen verbreitet. Dies sei nur deshalb erwähnt, weil immer noch häufig zu lesen ist, dass UNIX auf einem von AT&T entwickelten Entwurf basiere. (Allerdings waren Thompson, Ritchie und Kernighan Mitarbeiter der Bell Laboratories, damals einer Tochtergesellschaft von AT&T, die für technische Entwicklungen verantwortlich war.)

Leider begann 1983 allmählich die Zeit der Kommerzialisierung von UNIX durch die Firma AT&T mit der Einführung von UNIX System V. Die Weiterentwicklung und Vermarktung wurde an die Firma USL (UNIX System Laboratories) weitergegeben, die damit allerdings nicht erfolgreich war. 1993 versuchte dann die Firma Novell, Gewinne aus der Marke UNIX zu schlagen, was wiederum nicht so zu laufen schien wie erwartet. Wie bei einem Staffellauf ohne Ende wurde UNIX an die Firma Caldera weitergeleitet. Caldera fusionierte dann mit der Firma SCO (Santa Cruz Operations), die sich auf den Intel-basierten Markt spezialisiert hatte.

Zur damaligen Zeit wurde an der Universität von Berkeley die UNIX-Variante BSD (Berkeley Software Distribution) entwickelt. Dass es in einer Zeit des wirtschaftlichen Booms der Computerbranche zu Ärger um Lizenzen kommen würde, war abzusehen: Durch Streitigkeiten um Lizenzrechte wurde BSD mit der Version »4.4BSD-lite« eingestellt – »lite« deswegen, weil man aus rechtlichen Gründen allen Code mit strittiger Urheberschaft hatte entfernen müssen. Von dieser BSD-Variante leiten sich die heutigen freien Varianten wie FreeBSD, OpenBSD und NetBSD ab, und von ihnen wiederum wurden weitere Derivate abgeleitet, die immer noch munter als Open Source weiterentwickelt werden.

Hatte gegen die University of California, Berkeley (UCB) damals, im Jahr 1992 indirekt AT&T geklagt, und nach Jahren vor Gericht den Kompromiss erreicht, dass BSD unter anderem nicht mit großen Teilen des Netzwerk-Codes verbreitet werden durfte, so war es Jahre später die bereits erwähnte Firma SCO (mittlerweile als SCO Group firmierend), die gegen IBM klagte, und zwar gegen IBM stellvertretend als einen der vielen Produzenten einer Linux-Distribution. Dabei war SCO zu dem Zeitpunkt selbst ein Linux-Distributor. SCO blieb allerdings, trotz ausgiebiger Finanzierung durch BayStar (und damit indirekt durch Microsoft) erfolglos.[ 1 ]

Mittlerweile sind eigentlich nur noch drei bedeutende UNIX-Anbieter übrig:

  • Solaris von Sun, heute Oracle (läuft auf SPARC-RISC-Rechnern und x86_64[ 2 ])
  • HP-UX von Hewlett-Packard (läuft auf der Intel-Itanium-Architektur und der HP-PA-RISC-Architektur)
  • das AIX-System von IBM (läuft unter anderem auf der IBM-PowerPC-RISC-Architektur)

Momentan gehören die Rechte am ursprünglichen Quellcode von UNIX der SCO Group, beziehungsweise dem, was nach den kostspieligen Gerichtsverfahren noch von ihr übrig ist, während der Begriff UNIX als Handelsmarke der Open Group gehört. Wer sein Produkt mit dem Etikett »UNIX« versehen will, benötigt also eine Lizenz.

Hinweis am Rande

Microsoft selbst hat 1979 auch eine UNIX-Lizenz erworben und versucht, ein Betriebssystem unter dem Namen Xenix auf Prozessoren wie unter anderem dem Intel 8086, Motorola 68000 und Zilog Z8000 zu portieren. Später verlor Microsoft aufgrund von DOS das Interesse an Xenix und übergab die Rechte daran weitestgehend an die neu gegründete und von Microsoft mitfinanzierte SCO.

Der TCP/IP-Stack von Windows leitete sich umgekehrt jahrelang praktisch vollständig von dem Netzwerk-Code von BSD ab und erbte auch dessen Fehler. Die BSD-Lizenz erlaubt solchen kommerziellen Einsatz auch als Closed Source.

2.1.2    ... zu Linux


Richard Stallman als Gründer und Kopf der FSF (Free Software Foundation) schuf 1984 die Grundlagen für die freie Software mit dem GNU-Projekt. Bis 1990 kam dabei eine Menge freier GNU-Software zusammen, die praktisch alle Tools umfasste, die damals UNIX ausmachten. Was hauptsächlich noch fehlte, war ein Kernel, denn die GNU-Software lief bis dahin immer noch auf UNIX. Die Entwicklung des Kernels Hurd wurde zwar begonnen, ging bis heute allerdings nur zäh bis gar nicht voran, auch wenn es an Neustarts nicht fehlte.

Irgendwann in den Neunzigern begann ein finnischer Programmierer namens Linus Torvalds mit einigen weiteren freiwilligen Entwicklern damit, einen eigenen Betriebssystem-Kernel zu schreiben. Im Oktober 1991 war dann im Usenet folgendes Posting von Linus Torvalds zu lesen:

»Wie ich vor einem Monat erwähnte, arbeite ich an einer freien Version von etwas dem Minix Ähnlichem für AT-386-Rechner. Sie hat jetzt endlich den Punkt erreicht, wo sie sogar brauchbar ist (oder auch nicht, je nachdem, was man braucht), und ich bin bereit, die Quelltexte zur Weiterverbreitung herauszugeben. Es ist lediglich Version 0.02 ..., aber ich habe darauf erfolgreich bash, GCC, gnu-make, gnu-sed, compress usw. laufen lassen.«[ 3 ]

(»Minix« bezeichnet dabei übrigens ein kleines unixartiges Betriebssystem, das von Andrew Tanenbaum zu universitären Schulungszwecken entwickelt worden war und sich bis heute gewisser Beliebtheit erfreut.)

Kurz darauf wurde der Kernel veröffentlicht. Ein Kernel allein macht allerdings noch lange kein Betriebssystem, und daher benötigte man weitere freie Komponenten. Man griff also auf die bereits erhältlichen Komponenten des GNU-Projekts von Richard Stallman zurück.[ 4 ] Das Ziel des GNU-Projekts war es (und ist es immer noch), ein von Rechten befreites UNIX-kompatibles System zu erstellen. Das GNU-Projekt beinhaltete Komponenten wie einen portablen C-Compiler, C-Bibliotheken, Linker, Debugger und zahlreiche weitere Dienstprogramme. Die...

Kategorien

Service

Info/Kontakt

  Info
Hier gelangen Sie wieder zum Online-Auftritt Ihrer Bibliothek