Linux

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Linux ist ein Unix-ähnliches Betriebssystemkernel für Desktops und Server, das von Linus Torvalds ursprünglich für Intel-Rechner 386 entwickelt wurde.

Der Name leitet sich ab von "Linus" und "Unix" und wird zumeist als Synonym für das komplette Betriebssystem verwendet, das jedoch in erheblichem Umfang auf den Programmen der Free Software Foundation (FSF) beruht, die von Richard Stallman ins Leben gerufen wurde. Stallman dachte ursprünglich, dass die FSF selbst einen Betriebssystemkern entwickeln wird ("The Hurd") und ist angeblich mit dem Erfolg von Linux bis heute nicht ganz glücklich. Linus Torvalds betont ebenfalls, dass sein eigener Beitrag zu Linux - bzw. dem, was zumeist darunter verstanden wird - eher gering war.

Da Linux (wie auch Unix) zum überwiegenden Teil in der Programmiersprache C geschrieben ist, ist es weitgehend unabhängig von einer bestimmten Hardware. Einzige Voraussetzung ist, dass ein C-Compiler für das Zielsystem existiert und so läuft Linux heute auf vielen Hardware-Plattformen, vom x86 über Arm, 68000, Sparc, Mips und damit auf Geräten aller Größen von Embedded Devices über PCs, Workstations und Mini-Computern bis hin zu Multiprozessor-Mainframes und Clustern (was Windows - trotz entsprechender Ankündigungen von Microsoft - nie geschafft hat).

Entwicklungsgeschichte

1991 begann die Entwicklung von Linux, mit dem Wunsch Linus Torvalds auf seinem PC ein Unix-artiges Betriebssystem zur Verfügung zu haben. Zum damaligen Zeitpunkt existierten nur wenige komerzielle Unix-Version für PCs - unter den Bekannteren die von SCO (ursprünglich als XENIX von Microsoft aus dem Original-Unix-Quellcodes von AT&T portiert und dann an SCO weiterverkauft), daneben Interactive Unix und einige SVR4-Portierungen wie etwa Generics. All diese Systeme wurden allerdings nicht mit vollem Source-Code geliefert. Mit Source-Code (in C) verfügbar war damals lediglich Minix, ein an die POSIX-Standards angelehntes Unix-"Look-Alike", das als Lehrbetriebssystem von Andrew Tanenbaum entwickelt worden war.

Zunächst nutzte Linus Torvalds Minix, entwickelte jedoch einen eigenen Low-Level Terminalemulator für den Fernzugriff auf die Rechner der Universität, der ohne Betriebssystem auskam. Durch einen Unfall überschrieb Linus aus Versehen mit seinem Terminalemulator die Minix-Partition auf seiner Festplatte. Sein Terminalemulator war schon so weit vorangeschritten, dass Linus in ihm ein Betriebssystem in Arbeit erkannte.

Auf Basis der POSIX Standards entwickelte Linus - unter Nutzung des C-Compilers der FSF (GCC) - alle wichtigen Bestandteile eines echten 32-Bit Betriebssystems "from scratch" und veröffentlichte dessen Quellcodes unter der GPL, der Lizenz der FSF. Diese "Lizenz" wird mitunter auch als Copyleft bezeichnet, da sie das Recht, Kopien zu machen, nicht etwa einschränkt sondern ganz im Gegenteil die unter Nutzung von FSF-Komponenten erstellten Programme mit einem "klassischen" Copyright zu versehen verbietet.

Schon sehr bald existierte eine große Gruppe von Entwicklern, die sich für dieses alternative System begeisterte und half bei der Weiterentwicklung.

Entwicklungsstand

Heute läuft ein großer Teil der Internet-Infrastruktur unter Linux und anderen "Open-Source" Betriebssystemen (wie etwa BSD-Unix). Im embedded Bereich entwickelten sich einige Derivate, wie z.B. ECOS.

Seit Mitte der Nuller Jahre benötigt man zur Erfüllung von harten Echtzeit-Anforderungen nichts Ausgefallenes, wie RTAI (eine Erweiterung als Kernel-Patch) mehr, sondern man kann einfach unter den verfügbaren fertigen Kernel einen Echtzeit-Kernel auswählen, beispielsweise unter Debian-basierten Distributionen.

Das RT-Preempt Projekt, https://rt.wiki.kernel.org/index.php/Main_Page, stellt regelmäßig Patches zur Verfügung, die den Linux-Kernel hart echtzeitfähig machen, mit Interrupt Latenzzeiten im kleinen 2-stelligen µ-sek. Bereich, auf x86, ARM und vielen anderen Architekturen: https://www.linutronix.de/index.php?page=echtzeit. Eine Anleitung findet man unter http://www.pengutronix.de/software/linux-rt/debian_de.html. Ein großer Vorteil hierbei ist das man die Software nicht extra auf eine spezielle Echtzeit-Plattform portieren muss sondern höchstens Einstellungen vorzunehmen hat, wie Priotitäten setzen, Zeitscheiben konfigurieren und Anpassungen einzelner Treiber vornehmen muss.

Links