Eine kurze Geschichte von Linux

Einführung

In der allgemeinen Verwendung bezieht sich „Linux“ häufig auf eine Gruppe von Betriebssystemdistributionen, die auf dem Linux-Kernel basieren. Im strengsten Sinne bezieht sich Linux jedoch nur auf das Vorhandensein des Kernels selbst. Um ein vollständiges Betriebssystem aufzubauen, enthalten Linux-Distributionen häufig Tools und Bibliotheken aus dem GNU-Projekt und anderen Quellen. In letzter Zeit verwenden immer mehr Entwickler Linux, um mobile Anwendungen zu erstellen und auszuführen. Es hat auch eine Schlüsselrolle bei der Entwicklung erschwinglicher Geräte wie Chromebooks gespielt, auf denen Betriebssysteme auf dem Kernel ausgeführt werden. In Cloud-Computing- und Serverumgebungen im Allgemeinen ist Linux aus einigen praktischen Gründen eine beliebte Wahl:

  • Die Distributionen bleiben aktuell und werden von Communities anderer Entwickler unterstützt.

  • Es kann auf einer breiten Palette von Hardware ausgeführt werden und wird zusammen mit bereits vorhandenen Systemen installiert (eine hilfreiche Eigenschaft in lokalen Entwicklungsumgebungen).

  • Es unterstützt die zentrale Softwareinstallation aus vorhandenen Repositorys.

  • Der Ressourcenbedarf ist gering.

  • Wenn Entwickler Anwendungsökosysteme und Tools für Server erstellen, ist dies häufig ein wichtiges Anliegen, was zu einem hohen Maß an Kompatibilität führt.

  • Notwendige Änderungen am Verhalten des Betriebssystems bleiben erhalten.

Linux hat seine Ursprünge auch in der Bewegung für freie und Open-Source-Software. Infolgedessen entscheiden sich einige Entwickler aus ethischen und praktischen Gründen dafür:

  • Für einige Entwickler ist die Verwendung von Linux ein Bekenntnis zu Barrierefreiheit und Meinungsfreiheit.

  • Die Linux-Community ist auch ein Anziehungspunkt für einige Entwickler: Wenn sie Fragen haben, können sie die von dieser Community erstellten Ressourcen konsultieren oder sich direkt an einen von vielen aktiven Betreuern wenden.

Um die Rolle von Linux innerhalb der Entwicklergemeinschaft (und darüber hinaus) zu verstehen, wird in diesem Artikel eine kurze Geschichte von Linux anhand von Unix skizziert und einige beliebte Linux-Distributionen erörtert.

Wurzeln in Unix

Linux hat seine Wurzeln in Unix und Multics, zwei Projekten, die das Ziel hatten, ein robustes Betriebssystem für mehrere Benutzer zu entwickeln.

Die Anfänge von Unix

Unix entstand aus der Multics-Projektiteration im Computer Sciences Research Center der Bell Laboratories. Die Entwickler von Multics bei Bell Labs und anderen interessierten sich für die Entwicklung eines Mehrbenutzer-Betriebssystems mit einstufigem Speicher und dynamischer Verknüpfung (bei dem ein laufender Prozess das Hinzufügen eines weiteren Segments zu seinem Adressraum anfordern kann, damit es ausgeführt werden kann) Code dieses Segments) und ein hierarchisches Dateisystem.

Bell Labs stellte 1969 die Finanzierung des Multics-Projekts ein, aber eine Gruppe von Forschern, darunter Ken Thompson und Dennis Ritchie, arbeitete weiter an den Kernprinzipien des Projekts. In den Jahren 1972 bis 1973 fassten sie die Entscheidung, das System in C umzuschreiben, was Unix einzigartig portabel machte: Im Gegensatz zu anderen modernen Betriebssystemen konnte es von seiner Hardware abweichen und diese überleben.

Die Forschung und Entwicklung bei Bell Labs (später AT & T) wurde fortgesetzt, und Unix System Laboratories entwickelte gemeinsam mit Sun Microsystems Versionen von Unix, die von kommerziellen Unix-Anbietern in großem Umfang eingesetzt würden. Inzwischen wurde die Forschung in akademischen Kreisen fortgesetzt, insbesondere in der Computer Systems Research Group an der University of California in Berkeley. Diese Gruppe produzierte die Berkeley Software Distribution (BSD), die eine Reihe von Betriebssystemen inspirierte, von denen viele noch heute verwendet werden. Zwei BSD-Distributionen von historischer Bedeutung sind NeXTStep, das von NeXT entwickelte Betriebssystem, das unter anderem die Basis für macOS bildete, und MINIX, ein pädagogisches Betriebssystem, das bei der Entwicklung von Linux eine vergleichende Basis für Linus Torvalds bildete.

Hauptmerkmale von Unix

Unix orientiert sich an Prinzipien der Klarheit, Portabilität und Gleichzeitigkeit.

  • Klarheit: Durch den modularen Aufbau von Unix können Funktionen in einer begrenzten und definierten Weise ausgeführt werden. Das Dateisystem ist einheitlich und hierarchisch, was die Manipulation von Daten vereinfacht. Im Gegensatz zu einigen seiner Vorgänger implementiert Unix Hunderte (und nicht Tausende) von Systemaufrufen, von denen jeder so konzipiert ist, dass er unkompliziert und zielgerichtet ist.

  • Portabilität: Durch das Schreiben von Unix in C positionierte die Gruppe bei Bell Labs Unix für den breiten Einsatz und die Akzeptanz. C wurde entwickelt, um auf niedriger Ebene Zugriff auf den Arbeitsspeicher, minimale Laufzeitunterstützung und eine effiziente Beziehung zwischen Sprache und Maschinenanweisungen zu haben. Eine Basis in C bedeutet, dass Unix anpassbar und einfach auf einer Vielzahl von Hardware ausgeführt werden kann.

  • Gleichzeitigkeit: Der Unix-Kernel ist auf das (vom Multics-Projekt gemeinsame) Ziel zugeschnitten, mehrere Benutzer und Workflows zu unterstützen. Der Kernel-Speicherplatz unterscheidet sich weiterhin vom Benutzer-Speicherplatz in Unix, sodass mehrere Anwendungen gleichzeitig ausgeführt werden können.

Die Evolution von Linux

Unix warf wichtige Fragen für Entwickler auf, blieb aber auch in den frühesten Iterationen proprietär. Das nächste Kapitel seiner Geschichte ist daher die Geschichte, wie Entwickler daran gearbeitet haben, https://www.digitalocean.com/community/tutorials/Free-vs-Open-Source-Software kostenfrei und Open-Source zu erstellen.] Alternativen.

Open-Source-Experimente

Richard Stallman war eine zentrale Figur unter den Entwicklern, die dazu angeregt wurden, herstellerunabhängige Alternativen zu Unix zu entwickeln. Während seiner Arbeit am MIT Artificial Intelligence Laboratory begann er mit der Arbeit am GNU-Projekt (rekursiv für „GNUs nicht Unix!“) Und verließ das Labor 1984, um GNU-Komponenten als freie Software zu vertreiben. Der GNU-Kernel, bekannt als GNU HURD, wurde zum Mittelpunkt 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 Torvalds von der Lizenz für MINIX enttäuscht war, gab er am 25. August 1991 gegenüber einer MINIX-Benutzergruppe bekannt, dass er ein eigenes Betriebssystem entwickelt, das MINIX ähnelt. Obwohl der Linux-Kernel ursprünglich unter MINIX mit dem GNU C-Compiler entwickelt wurde, entwickelte er sich schnell zu einem einzigartigen Projekt mit einem Kern von Entwicklern, die 1994 die Version 1.0 des Kernels mit Torvalds herausbrachten.

Torvalds hatte GNU-Code, einschließlich des GNU C-Compilers, mit seinem Kernel verwendet, und es bleibt wahr, dass viele Linux-Distributionen auf GNU-Komponenten basieren. Stallman hat sich dafür eingesetzt, den Begriff "Linux" auf "GNU / Linux" zu erweitern, was seiner Ansicht nach sowohl die Rolle des GNU-Projekts in der Linux-Entwicklung als auch die zugrunde liegenden Ideale, die das GNU-Projekt und den Linux-Kernel förderten, widerspiegeln würde. Heute wird „Linux“ häufig verwendet, um sowohl das Vorhandensein des Linux-Kernels als auch von GNU-Elementen anzuzeigen. Gleichzeitig verwenden eingebettete Systeme auf vielen Handheld-Geräten und Smartphones häufig den Linux-Kernel mit wenigen bis gar keinen GNU-Komponenten.

Hauptmerkmale von Linux

Obwohl der Linux-Kernel viele Ziele und Eigenschaften von Unix geerbt hat, unterscheidet er sich vom früheren System in folgenden Punkten:

  • Kernkomponente ist der Kernel, der unabhängig von anderen Betriebssystemkomponenten entwickelt wird. Dies bedeutet, dass Linux Elemente aus einer Vielzahl von Quellen (wie GNU) ausleiht, um ein gesamtes Betriebssystem zu umfassen.

  • Es ist kostenlos und Open Source. Der Kernel wird von einer Community von Entwicklern verwaltet und unterliegt der Lizenz GNU General Public License (ein Ableger der Arbeit der FSF am GNU-Projekt). und zum Herunterladen und Ändern verfügbar. Die GPL schreibt vor, dass abgeleitete Arbeiten die Lizenzbestimmungen der Originalsoftware einhalten müssen.

  • Es hat einen monolithischen Kernel, ähnlich wie Unix, kann aber bei Bedarf Kernel-Code dynamisch laden und entladen.

  • Im Gegensatz zu herkömmlichen Unix-Implementierungen wird SMP (Symmetrical Multiprocessor) unterstützt. Dies bedeutet, dass ein einzelnes Betriebssystem auf mehrere Prozessoren zugreifen kann, die sich einen Hauptspeicher teilen und auf alle E / A-Geräte zugreifen können.

  • Sein Kernel ist präventiv, ein weiterer Unterschied zu Unix. Dies bedeutet, dass der Scheduler einen Kontextwechsel auf einen Treiber oder einen anderen Teil des Kernels erzwingen kann, während dieser 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.

Beliebte Linux-Distributionen

Entwickler unterhalten heute viele beliebte Linux-Distributionen. Zu den ältesten gehört Debian, eine kostenlose Open-Source-Distribution mit 50.000 Softwarepaketen. Debian inspirierte eine andere populäre Distribution, Ubuntu, die von Canonical Ltd. finanziert wurde. Ubuntu verwendet das Debian-Paketformat und die Paketverwaltungstools von Debian, und die Entwickler von Ubuntu übertragen die Änderungen zurück auf Debian.

Eine ähnliche Beziehung besteht zwischen Red Hat, Fedora und CentOS. Red Hat schuf 1993 eine Linux-Distribution und teilte seine Bemühungen zehn Jahre später in Red Hat Enterprise Linux und Fedora, ein Community-basiertes Betriebssystem, das den Linux-Kernel und Elemente aus dem GNU-Projekt verwendet. Red Hat hat auch eine Beziehung zum CentOS Project, einer weiteren beliebten Linux-Distribution für Webserver. Diese Beziehung beinhaltet jedoch keine bezahlte Wartung. CentOS wird wie Debian von einer Community von Entwicklern gepflegt.

Fazit

In diesem Artikel haben wir uns mit den Wurzeln von Linux in Unix und einigen seiner Hauptfunktionen befasst. Wenn Sie mehr über die Geschichte der Linux- und Unix-Varianten (einschließlich FreeBSD) erfahren möchten, ist unser series on ein guter Schritt FreeBSD. Eine andere Möglichkeit könnte sein, unsere einführende series über den Einstieg in Linux zu lesen. Sie können auch unter https://www.digitalocean.com/community/tutorials/ nachsehen, wie Sie das Layout des Dateisystems in Linux verstehen https://www.digitalocean.com/community/tutorials/how-to-use-find-and-locate-to-search-for-files-on-a-linux-vps[discussion of how to use + find + `und + locate + `, um unter Linux VPS nach Dateien zu suchen oder https://www.digitalocean.com/community/tutorials/an-introduction-to-regular-expressions (Einführung in reguläre Ausdrücke in der Befehlszeile) ].