Eine kurze Geschichte von Linux

Einführung

In der gängigen Verwendung bezieht sich „Linux“ oft auf eine Gruppe von Betriebssystemverteilungen, die um den Linux-Kernel herum aufgebaut sind. Im strengsten Sinne bezieht sich Linux jedoch nur auf das Vorhandensein des Kernels selbst. Um ein vollständiges Betriebssystem aufzubauen, enthalten Linux-Distributionen oft Werkzeuge und Bibliotheken aus dem GNU-Projekt und anderen Quellen. In letzter Zeit verwenden mehr Entwickler Linux, um mobile Anwendungen zu entwickeln und auszuführen; es hat auch eine wichtige Rolle bei der Entwicklung erschwinglicher Geräte wie Chromebooks gespielt, die Betriebssysteme auf dem Kernel ausführen. Innerhalb von Cloud-Computing- und Serverumgebungen ist Linux aus einigen praktischen Gründen eine beliebte Wahl:

  • Ihre Distributionen bleiben aktuell und werden von Communities anderer Entwickler unterstützt.
  • Es kann auf einer breiten Palette von Hardware ausgeführt werden und wird neben vorhandenen Systemen installiert (eine hilfreiche Eigenschaft in lokalen Entwicklungsumgebungen).
  • Es unterstützt die zentrale Softwareinstallation aus vorhandenen Repositories.
  • Ihre Ressourcenanforderungen sind gering.
  • Es ist oft präsent, wenn Entwickler Anwendungsecosysteme und Werkzeuge für Server entwickeln, was zu hohen Kompatibilitätsniveaus führt.
  • Es unterstützt notwendige Änderungen des Betriebssystemverhaltens.

Linux hat auch seine Ursprünge in der freien und Open-Source-Softwarebewegung, und folglich wählen einige Entwickler es aus einer Kombination ethischer und praktischer Gründe:

  • Für einige Entwickler bedeutet die Verwendung von Linux ein Bekenntnis zur Zugänglichkeit und Freiheit der Meinungsäußerung.
  • Die Linux-Community ist auch für einige Entwickler attraktiv: Wenn sie Fragen haben, können sie die Ressourcen dieser Community konsultieren oder sich direkt an einen der vielen aktiven Betreuer wenden.

Um die Rolle von Linux innerhalb der Entwicklergemeinschaft (und darüber hinaus) zu verstehen, wird dieser Artikel eine kurze Geschichte von Linux über Unix skizzieren und einige beliebte Linux-Distributionen diskutieren.

Wurzeln in Unix

Linux hat seine Wurzeln in Unix und Multics, zwei Projekten, die das Ziel hatten, ein robustes Mehrbenutzer-Betriebssystem zu entwickeln.

Die Anfänge von Unix

Unix entwickelte sich aus der Multics-Projektiteration am Computer Sciences Research Center der Bell Laboratories. Die Entwickler, die an Multics bei Bell Labs und anderswo arbeiteten, waren daran interessiert, ein Mehrbenutzer-Betriebssystem mit Ein-Ebenen-Speicher, dynamischem Linking (bei dem ein laufender Prozess anfordern kann, dass ein anderer Segment zu seinem Adressraum hinzugefügt wird, was es ihm ermöglicht, den Code dieses Segments auszuführen) und einem hierarchischen Dateisystem zu entwickeln.

Bell Labs stellte 1969 die Finanzierung des Multics-Projekts ein, aber eine Gruppe von Forschern, darunter Ken Thompson und Dennis Ritchie, setzte die Arbeit an den Kernprinzipien des Projekts fort. 1972-3 trafen sie die Entscheidung, das System in C neu zu schreiben, was Unix einzigartig portabel machte: im Gegensatz zu anderen zeitgenössischen Betriebssystemen konnte es sowohl von der Hardware wechseln als auch diese überleben.

Forschung und Entwicklung bei Bell Labs (später AT&T) wurden fortgesetzt, wobei Unix System Laboratories Versionen von Unix entwickelten, die in Partnerschaft mit Sun Microsystems von kommerziellen Unix-Anbietern weit verbreitet wurden. Unterdessen wurde die Forschung in akademischen Kreisen fortgesetzt, insbesondere in der Computer Systems Research Group an der University of California Berkeley. Diese Gruppe produzierte die Berkeley Software Distribution (BSD), die eine Reihe von Betriebssystemen inspirierte, von denen viele heute noch verwendet werden. Zwei BSD-Distributionen von historischer Bedeutung sind NeXTStep, das Betriebssystem, das von NeXT entwickelt wurde und die Grundlage für macOS und andere Produkte bildete, und MINIX, ein Bildungsbetriebssystem, das einen Vergleichsmaßstab für Linus Torvalds bildete, als er Linux entwickelte.

Wichtige Merkmale von Unix

Unix ist ausgerichtet auf Prinzipien von Klarheit, Portabilität und Gleichzeitigkeit.

  • Klarheit: Das modulare Design von Unix ermöglicht es Funktionen, auf eine begrenzte und definierte Weise auszuführen. Sein Dateisystem ist vereinheitlicht und hierarchisch, was die Manipulation von Daten vereinfacht. Im Gegensatz zu einigen seiner Vorgänger implementiert Unix Hunderte (anstatt Tausende) von Systemaufrufen, von denen jeder darauf ausgelegt ist, klar und eindeutig in seinem Ziel zu sein.
  • Portabilität: Durch die Implementierung von Unix in C positionierte das Team von Bell Labs Unix für den weitreichenden Einsatz und die Verbreitung. C wurde entwickelt, um einen niedrigen Zugriff auf Speicher, minimale Laufzeitunterstützung und eine effiziente Beziehung zwischen Sprache und Maschinenbefehlen zu haben. Eine Basis in C bedeutet, dass Unix anpassungsfähig ist und leicht auf einer Vielzahl von Hardwareplattformen ausgeführt werden kann.
  • Gleichzeitigkeit: Der Unix-Kernel ist auf das Ziel ausgerichtet (das auch von dem Multics-Projekt geteilt wird), mehrere Benutzer und Workflows aufrechtzuerhalten. Der Kernelraum bleibt in Unix vom Benutzerraum getrennt, was es ermöglicht, dass mehrere Anwendungen gleichzeitig ausgeführt werden können.

Die Entwicklung von Linux

Unix stellte wichtige Fragen an die Entwickler, blieb jedoch in seinen frühesten Versionen auch proprietär. Das nächste Kapitel seiner Geschichte ist daher die Geschichte darüber, wie Entwickler innerhalb und gegen Unix arbeiteten, um kostenlose und Open-Source-Alternativen zu schaffen.

Open-Source-Experimente

Richard Stallman war eine zentrale Figur unter den Entwicklern, die inspiriert waren, nicht-proprietäre Alternativen zu Unix zu schaffen. Während seiner Arbeit im Artificial Intelligence Laboratory des MIT initiierte er die Arbeit am GNU-Projekt (rekursiv für „GNU’s not Unix!“), und verließ schließlich das Labor im Jahr 1984, um GNU-Komponenten als freie Software zu verteilen. Der GNU-Kernel, bekannt als GNU HURD, wurde zum Schwerpunkt der Free Software Foundation (FSF), die 1985 gegründet wurde und derzeit von Stallman geleitet wird.

In der Zwischenzeit arbeitete ein anderer Entwickler an einer kostenlosen Alternative zu Unix: der finnische Student Linus Torvalds. Nachdem er sich über die Lizenzierung für MINIX geärgert hatte, kündigte Torvalds am 25. August 1991 in einer MINIX-Benutzergruppe an, dass er sein eigenes Betriebssystem entwickelte, das MINIX ähnelte. Obwohl ursprünglich auf MINIX mit dem GNU C-Compiler entwickelt, wurde der Linux-Kernel schnell zu einem eigenständigen Projekt mit einem Kern von Entwicklern, die 1994 die Version 1.0 des Kernels mit Torvalds veröffentlichten.

Torvalds hatte den GNU-Code, einschließlich des GNU C Compilers, in seinem Kernel verwendet, und es bleibt wahr, dass viele Linux-Distributionen auf GNU-Komponenten zurückgreifen. Stallman hat sich dafür eingesetzt, den Begriff „Linux“ auf „GNU/Linux“ auszuweiten, was seiner Meinung nach sowohl die Rolle des GNU-Projekts bei der Entwicklung von Linux als auch die zugrunde liegenden Ideale erfassen würde, die das GNU-Projekt und den Linux-Kernel gefördert haben. Heutzutage wird „Linux“ oft verwendet, um sowohl das Vorhandensein des Linux-Kernels als auch von GNU-Elementen anzuzeigen. Gleichzeitig verwenden eingebettete Systeme in vielen Handheld-Geräten und Smartphones oft den Linux-Kernel mit nur wenigen oder gar keinen GNU-Komponenten.

Wichtige Merkmale von Linux

Obwohl der Linux-Kernel viele Ziele und Eigenschaften von Unix geerbt hat, unterscheidet er sich von dem früheren System auf folgende Weise:

  • Seine Kernkomponente ist der Kernel, der unabhängig von anderen Betriebssystemkomponenten entwickelt wird. Das bedeutet, dass Linux Elemente aus verschiedenen Quellen (wie GNU) ausleiht, um ein vollständiges Betriebssystem zu bilden.
  • Es ist frei und Open Source. Der Kernel wird von einer Entwicklergemeinschaft gepflegt, ist unter der GNU General Public License (eine Abspaltung der Arbeit der FSF am GNU-Projekt) lizenziert und zum Download und zur Modifikation verfügbar. Die GPL legt fest, dass abgeleitete Werke die Lizenzbedingungen der Originalsoftware beibehalten müssen.
  • Es hat einen monolithischen Kernel, ähnlich wie Unix, aber es kann Kernelcode dynamisch laden und entladen, wenn erforderlich.
  • Es hat symmetrische Multiprozessor (SMP)-Unterstützung, im Gegensatz zu traditionellen Unix-Implementierungen. Dies bedeutet, dass ein einzelnes Betriebssystem auf mehrere Prozessoren zugreifen kann, die einen Hauptspeicher und Zugriff auf alle Ein- und Ausgabegeräte teilen.
  • Sein Kernel ist präemptiv, ein weiterer Unterschied zu Unix. Dies bedeutet, dass der Scheduler einen Kontextwechsel bei einem Treiber oder einem anderen Teil des Kernels erzwingen kann, während er ausgeführt wird.
  • Sein Kernel unterscheidet nicht zwischen Threads und normalen Prozessen.
  • Es enthält eine Befehlszeilenschnittstelle (CLI) und kann auch eine grafische Benutzeroberfläche (GUI) enthalten.

Entwickler pflegen heute viele beliebte Linux-Distributionen. Eine der ältesten ist Debian, eine kostenlose und Open-Source-Distribution mit 50.000 Softwarepaketen. Debian inspirierte eine weitere beliebte Distribution, Ubuntu, finanziert von Canonical Ltd. Ubuntu verwendet das deb-Paketformat und die Paketverwaltungstools von Debian, und die Entwickler von Ubuntu spielen Änderungen zurück nach Debian.

A similar relationship exists between Red Hat, Fedora, and CentOS. Red Hat created a Linux distribution in 1993, and ten years later split its efforts into Red Hat Enterprise Linux and Fedora, a community-based operating system that utilizes the Linux kernel and elements from the GNU Project. Red Hat also has a relationship with the CentOS Project, another popular Linux distribution for web servers. This relationship does not include paid maintenance, however. Like Debian, CentOS is maintained by a community of developers.

Abschluss

In diesem Artikel haben wir Linux’s Ursprünge in Unix und einige seiner prägenden Merkmale behandelt. Wenn Sie mehr über die Geschichte von Linux und Unix-Varianten (einschließlich FreeBSD) erfahren möchten, könnte ein guter Schritt unsere Serie zu FreeBSD sein. Eine andere Option könnte sein, unsere einführende Serie zum Einstieg in Linux zu betrachten. Sie können auch diese Einführung in die Dateisystemstruktur unter Linux, diese Diskussion darüber, wie man find und locate verwendet, um Dateien auf einem Linux VPS zu suchen, oder diese Einführung in reguläre Ausdrücke auf der Befehlszeile überprüfen.

Source:
https://www.digitalocean.com/community/tutorials/brief-history-of-linux