Files
Linux_Informationstag/notes.md
T
2026-05-14 22:02:14 +02:00

21 KiB

Notizen

01. Introduction

  • Kurze Vorstellung, wer ich bin.
  • Erklärung Chaos Computer Club
  • Was ist der DuT?
  • Überleitung: Worum geht es heute?
    • Inhaltsverzeichnis einmal durchgehen.

02. Just for fun

PDP-10 slide

Die Geschichte von Linux ist eng verwoben mit der Geschichte der Freien Software Bewegung, die in den 1980er Jahren ihren Anfang in den USA nahm. Die Geschichte beginnt, bereits Ende der 1960er Jahre, wie sehr viel in der Entwicklung der modernen Computergeschichte, im legendären Artificial Intelligence Laboratory am Massachusets Institute of Technology (MIT). Neben grundlegender Forschung zu künstlicher Intelligenz und neuronalen Netzen, wurde dort auch Forschung an Betriebssystemen durchgeführt. In den frühen 1970er Jahren hat dort die Hacker-Kultur ihren Anfang genommen, als Studenten das Incompatible Time Sharing System entwickelt haben. Einer der Entwickler dort war Richard Stallman. Stallman war schon aus seiner Zeit in Havard, in der Hacker-Kultur verwurzelt, und schuf in dieser Zeit wichtige Werkzeuge, wie den EMACS Text-Editor und das LISP-Machine Operating System. Stallman war schon früh ein ausgesprochener Kritiker der restriktiven Zugangspolitik in den - teilweise von der DARPA, der Forschungsabteilung des US-Militärs bezahlten Laboratorien. Beim ITS hatte noch jedermann freien Zugang zu den Ressourcen des Computersystems. Das änderte sich jedoch in den folgenden Jahren. Stallman reagierte darauf, indem er einen Weg fand, die verschlüsselten Passworte auf dem System zu entschlüsseln. Er verschickte die entschlüsselten Passworte an die jeweiligen Benutzer, verbunden mit der Bitte, die Passwörter in eine leere Zeichenkette zu ändern. Etwa 20% der Nutzer folgten seinem Aufruf. Ein Sieg mit dem Stallman noch Jahre später gern angab.

GNU slide

In späten 1970er und frühen 1980er Jahren begann die Hacker-Kultur in den USA zu fragmentieren, und viele Firmen wollten nicht, dass ihr Code in die Hände möglicher Konkurrenten geriet. Zu den heftigsten Verfechtern zählte Bill Gates, der CEO der damals noch jungen Firma Microsoft, die sich mit der Entwicklung eines leistungsfähigen BASIC-Interpreters einen Namen gemacht hatte. Gates war schon in den 1970er Jahren damit aufgefallen, dass er die damals verbreitete Praxis, Quellcode frei zu teilen, scharf verurteilte.

Als 1979 Brian Reid sog. "Time Bombs" im Code seines Textverarbeitungsprogramms Scribe einbaute, um eine unlizensierte Weitergabe des Quellcodes zu unterbinden, bezeichnete Stallman dies als ein Verbrechen gegen die Menschheit. In einem Interview im Jahr 2008 stellte er klar, dass er das Verbrechen nicht darin sehe, Geld für eine Software zu verlangen, sondern darin, das Wissen, dass mit dem Code verbunden ist, als eine Art Herrschaftswissen unter Verschluss zu halten. Er entwickelte darauf hin die Software texinfo, die lose auf Scribe basiert.

Im Jahr 1980 wurden Stallman und einigen anderer der Hacker am MIT der Zugriff auf den Quellcode des neu installierten Laser-Druckers verweigert. Bei früheren Druckern hatte Stallman die Systemsoftware so erweitert, dass Benutzer eine Nachricht erhielten, wenn ihr Druckauftrag beendet war, und so wussten, wann sie zum Drucker gehen mussten, um ihren Ausdruck abzuholen. Die Änderungen benachrichtigten darüber hinaus, alle Nutzer die einen laufenden Druckauftrag hatten, wenn im Drucker ein Papierstau auftrat. Diese Erweiterungen wurden von den Nutzern sehr geschätzt, weil der Drucker sich in einem anderen Gebäudeteil befand, als die Büros, und diese Funktion viele Laufwege ersparte. Die Änderungen an dem neuen Drucker nicht mehr durchführen zu können, überzeugte Stallman, dass es einen Bedarf an Software gab, die jeder frei nutzen und Verändern kann.

Richard Greenblatt, ein befreundeter Hacker am MIT, gründete derweil die Firma Lisp Machines Inc., um die LISP-basierten Computer bauen zu können, die er zusammen mit Tom Knight im MIT-Lab designed hatte. Greenblatt wollte kein Geld von aussen annehmen, um möglichst unabhängig zu bleiben. Das führte zu Spannungen mit einigen Kommilitonen, die lieber Investoren-Geld annehmen wollten, um die Firma schnell wachsen zu lassen. Daher kam es zum Zerwürfnis, und die Mitglieder des Invertorenlagers gründeten die Firma Symbolics. Allerdings machten die Investoren die Geheimhaltung des Quellcodes zu einer Bedingung.

Stallman verbrachte die Jahre 1982 und 1983 damit eine zu Symbolics kompatible Software zu erstellen, um zu verhindern das diese ein Monopol über die Software auf den Computern im MIT bekam. Im Februar 1984 kündigte Stallman schließlich seine Stelle am MIT und startete das GNU Projekt.

GNU steht ist ein rekursives Akronym und steht für GNU is not UNIX. Die Idee war es, ein eigenes Betriebssystem zu bauen, dass vollständig auf freier Software basiert, und dass allen zur Verfügung steht. Inklusive des Quellcodes, sodass jedermann die Software nicht nur nutzen, sondern auch eigenen Bedürfnissen anpassen kann. Dafür gründete er die gemeinnützige Free Software Foundation, die sich den Zielen der Open-Source-Bewegung verschrieben hat.

Stallman war bei der Entwicklung verantwortlich für die Toolchain, vor allem den GNU EMACS Texteditor, den Compiler (GCC), den GNU Debugger und ein automatisiertes Build-System zum kompilieren der Software namens GNU Make. Ende der 1980 Jahre hatte die FSF alle Werkzeuge zusammen, die man braucht, um ein UNIX-artiges Betriebssystem zu erschaffen. Mit einer wichtigen Ausnahme: dem Kernel.

Torvalds

Ein Kernel ist sozusagen das Herzstück eines Betriebssystems. Es ist der Teil, der die Kommunikation der Programme die auf einem Computer laufen mit der physischen Hardware koordiniert, den Speicher verwaltet und Zugriff auf die Massenspeicher wie Festplatten ermöglicht.

Hier erschien nun ein junger finnischer Informatik-Student auf der Bühne: Linus Torvalds. Torvalds hatte sich gerade seinen ersten 80386 basierten PC gekauft, und war enttäuscht, dass die damals noch üblichen PC-Betriebssysteme, vor allem MS-DOS, die Fähigkeiten dieser Hardware nicht ansatzweise ausnutzten.

Torvalds schrieb also seinen eigenen Kernel, der seinen neuen PC besser nutzen konnte. Er orientierte sich dabei an Minix einem UNIX-ähnlichen Betriebssystem, das von dem legendären Computer-Forscher Andrew S. Tanenbaum für Lehrzwecke geschrieben worden war.

GNU/Linux

Am 25. August 1991 veröffentlichte Torvalds seine Arbeit im der Usenet-Gruppe comp.os.minix.

Ursprünglich wollte er sein Projekt FreaX nennen, als Kofferwort aus Freak und Unix. Ari Lemmke, der damals Administrator der FTP Server and er Universität in Helsinki war, fand den Namen nicht gut, und schlug stattdessen Linux vor, als Kurzform von Linus' Unix. Torvalds gefiel das zunächst nicht, weil es ihm zu egoistisch vorkam, beugte sich aber den Stimmen der Community, die Lemmke's Vorschlag allesamt besser fanden.

Obwohl er, anders als Stallman, nicht politisch motiviert war, wollte Torvalds seine Arbeit gerne mit so vielen Menschen wie möglich teilen. Darum wählte er die GNU General Public Licence als Lizenzmodell aus. Dies gab dem GNU Projekt das letzte fehlende Puzzle-Teil in die Hand: GNU/Linux war geboren.

Über den Namen dieses Betriebssystems gibt es bis heute übrigens Kontroversen. Die Free Software Foundation besteht darauf, dass vollständige System GNU/Linux zu nennen, was technisch richtiger ist (zumal es inzwischen auch Systeme wie GNU/Mach und GNU/Hurd gibt). In der Öffentlichkeit hat sich die Kurzform Linux weitestgehend durchgesetzt.

Vom Konsumenten zum Agenten

Was bedeutet "Frei und Quelloffen"?

Der Kern von FOSS ist die Freiheit, mit einem Stück Code (einem Programm) zu machen was man möchte. "Frei" ist zu verstehen wie in "Freiheit" nicht wie in "Freibier". FOSS ist zwar meistens kostenfrei, aber das ist nicht das Ziel. Es gibt durchaus Firmen, die mit FOSS Geld verdienen.

Viele Unternehmen schreiben Open-Source auf ihre Software, weil man sich den Quellcode ansehen kann. Das ist aber nicht das Gleiche. Diverse Projekte heißen Open-Irgendwas obwohl die Software komplett closed source ist.

Die 4 essentiellen Freiheiten

Die Free-Software-Foundation definiert die essentiellen Freiheiten so:

  • Die Freiheit, eine Software so zu verwenden, wie ich es möchte, zu jedem Zweck.

  • Die Freiheit zu lernen wie das Programm funktioniert, und es so ändern zu können, dass es das tut, was ich möchte.

  • Die Freiheit kopien dieser Software mit anderen zu teilen, so dass sie davon profitieren.

  • Die Freiheit die von mir vorgenommenen Änderungen mit anderen zu teilen. Somit haben alle, die die Software nutzen, die Chance von meinen Verbesserungen zu profitieren.

    Und ja, die Aufzählung startet offiziell bei null. Wir sind hier schließlich bei Informatikern, die machen das immer so.

    Die Freiheiten 1 und 3 erfordern unbedingt den Zugang zu dem Quellcode des Programms.

    Diese grundlegenden Ideen sind im Laufe der Zeit verfeinert und in rechtliche Verträge (Lizenzen) gegossen worden, die inzwischen auch von Gerichten in aller Welt anerkannt werden.

    Die bekannteste dieser Lizenzen ist die GNU General Public License unter der auch Linux selbst steht. Diese Lizenzen haben die Eigenschaft infektiös zu sein. Das heißt die Software, und alle davon abgeleiteten Werke müssen unter eine Lizez stehen, die mindestens die Freiheiten geben, die die GPL auch erlaubt. Dies soll verhindern, dass z.B. große Firmen, sich den Code von Linux einverleiben, und ihn zu Closed Source machen, und damit auf dem Rücken anderer Entwickler Geld zu verdienen.

    Es hat verschiedene Versuche von Konzernen gegeben, dieses Konzept anzugreifen (siehe SCO vs. Linux), die sind aber vor Gericht gescheitert.

    Und was hat das mit mir zu tun?

    Die Freiheiten gelten für alle, nicht nur für Entwickler.

    Software kann nicht einfach so verschwinden. Bei Closed Source kann der Hersteller den Support einstellen, oder die Software ganz vom Markt nehmen. Damit ist sie komplett vom Markt verschwunden, und kann nicht mehr genutzt werden. Manchmal ist auch die Hardware nicht mehr verfügbar.

    FOSS Projekte können, da der Code ja der Allgemeinheit gehört, von anderen weiter entwickelt werden. Das kann auch durchaus kommerziell sein, in dem Sinne, dass eine Firma sich für die Dienstleistung den Code zu pflegen bezahlen lässt.

Es gibt keinen Vendor Lock-in. Ein Hersteller kann nicht, z,B. durch entsprechende Funktionen im Code, verhindern, dass ein Gerät auf dem die Software läuft, verändert, repariert oder mit Komponenten und Ersatzteilen anderer Hersteller ausgestattet werden kann. If you can't open it, you don't own it, ist besonders in Zeiten immer spezialisierter werdender Geräte sehr bedeutsam geworden. Wer schon mal eine Smarte Glühbirne gekauft hat, die plötzlich gar nicht mehr Smart war, nachdem der Hersteller das Produkt eingestellt hat, kennt das Problem.

Als Nutzer ist man plötzlich nicht mehr schweigender Konsument, sondern ein Teil einer Gemeinschaft, die sich um die Nutzung und Pflege von Software kümmert. Dazu gehören genauso die Nutzer, wie die Entwickler, denn um beinahe jedes freie Softwareprojekt, zumindest wenn es ein wenig größer wird, bilden sich eigene kleine Kulturen, mit ihrer eigenen Sprache, In-Jokes und häufig einer großen Leidenschaft für die genutzte Software. Als Beispiel dafúr dienen die Editor-Wars.

Am Ehesten ist diese Kultur mit einer Allmende zu vergleichen: Die Software gehört der Gemeinschaft und wird auch von allen gemeinsam gepflegt.

Wie kann ich mich einbringen?

Viele werden jetzt denken: "Ich bin gar kein Entwickler, wie kann ich mich da einbringen?" Freie Software lebt von den Menschen, die sie benutzen.

Nutzt FOSS!

Wenn ihr mit einer Software ein Problem lösen konntet, erzählt anderen davon. Diskutiert und bringt euch ein.

Und zuletzt, wenn euch etwas einfällt, was ein Programm gebrauchen könnte, schlagt es vor! Nicht jede Änderung landet nachher im Projekt, aber Feedback ist den meisten Entwicklern sehr willkommen.

Was ist ein Betriebssystem?

Definition

Ein Betriebssystem ist eine besondere Art von Computerprogramm, oder besser eine Sammlung von Computerprogrammen. Es besteht zum einen aus dem bereits erwähnten Kernel (z.B, Linux). Dieser Kernel ist dafür zuständig die Kommunikation zwischen den Komponenten der Hardware und den Programmen zu übernehmen. So stellt er zum Beispiel eine einheitliche Schnittstelle bereit, die es z.B, ermöglicht über den Soundchip Musik auszugeben, ohne dass das Programm, dass die Musik abspielen will, wissen muss wie der Chip funktioniert, und wie man ihn programmiert. Der Kernel kümmert sich auch darum, dass mehrere Programme gleichzeitig laufen können, ohne sich gegenseitig zu behindern.

Zu den anderen Programmen gehören:

  • Eine Sammlung von Programmen, die den Systemstart organisieren (INIT system)
  • Eine Schnittstelle über die Programme mit dem System kommunizieren können (glibc)
  • Hintergrunddienste, die organisatorische Aufgaben übernehmen
  • Eine Benutzeroberfläche, damit Anwender:innen mit dem System interagieren können.

Damit unterscheiden sie sich von Anwendungsprogrammen, die diese Funktionen nutzen, um Funktionen für die Anwender:innen bereitzustellen.

Distributionen

Aufgrund seiner Geschichte, und der unterschiedlichen Herkunft seiner Komponenten, gibt es nicht das eine Linux-Betriebssystem. In der Anfangszeit haben Computer-Enthusiasten noch alle Komponenten aus dem Quellcode selbst erstellt, und Statt dessen haben sich schon früh verschiedene Firmen und private Gruppen darum bemüht komplette Pakete zu erstellen, die sich einfach installieren lassen. So eine Zusammenstellung heißt im Fachjargon Distribution. Anders als Windows oder MacOS enthalten Linux-Distributionen aber nicht nur das Betriebssystem selbst, sondern auch eine Sammlung ausgewählter Programme. Neben den Werkzeugen mit denen diese Installiert werden, ist das der größte Unterschied zwischen den Distributionen. Das Diagramm zeigt einige der wichtigsten Distributionen, und wie die von einander Abhängen.

Für den Linux-Einsteiger ist die überwältigende Auswahl an verschiedenen Linux-Distributionen die wohl größte Hürde. Welche soll man nehmen? Darauf wird vermutlich jeder Linux-Nutzer eine eigene Antwort geben, denn jede/r hat seine Lieblingsdistribution.

Die Auswahl hängt aber auch davon ab, welchen Zweck der Computer später erfüllen soll: Ein Server braucht andere Voraussetzungen und Software als ein Desktop-PC und der wiederum braucht andere als ein Gaming-Computer.

Für Linux-Einsteiger haben sich die beiden Distributionen Ubuntu Desktop und Linux Mint als eine Art Defacto-Standard etabliert. Sie sind leicht zu installieren, und erfordern keine besonderen Linux-Kenntnisse um sie zu bedienen.

Ubuntu

Ich stelle hier Ubuntu-Linux vor, dass auch auf vielen Linux-Installparties verwendet wird, und eine sehr große und offene Community hat.

Ubuntu wurde 2004 als Ableitung der Debian Distribution von dem Südafrikaner Mark Shuttleworth und seiner Firma Canonical ins Leben gerufen. Canonical verdient Geld mit Dienstleistungen und Hosting für Geschäftskunden rund um Linux, während die Distribution selbst komplett frei ist. Daher wurden auch viele andere Distributionen (darunter auch Linux Mint), von Ubuntu abgeleitet.

Das Wort Ubuntu stammt aus einem philosophischen Konzept Nguni-Sprachen, die in Shuttleworth's Heimat Südafrika gesprochen werden. Das Wort selbst bedeutet Menschheit, die dahinterstehende Philosophie ist ziemlich komplex, basiert aber vor allem auf der Annahme, dass das mensch-sein des Menschen aus dem Kontakt und der Zusammenarbeit mit anderen Menschen entsteht. Das Konzept ist in ganz Afrika verbreitet, und der Name wurde für das Betriebssystem gewählt, weil das Konzept freier Software Parallelen zur Ubuntu-Philosophie aufweist. Er soll den Aspekt des Gemeinsamen und des Teilens betonen.

An dieser Stelle die Demo beginnen

Unterschiede

Windows und Linux

Die folgenden Unterschiede sollen lediglich aus Anwendersicht aufgeführt werden. Für Fragen zu den technischen Unterschieden stehe ich gerne im Anschluss zur Verfügung.

Das Dateisystem

Die Unterschiede bei der Speicherung von Dateien sind nicht mehr so groß wie früher, wo Windows die Dateinamen noch auf acht Zeichen und 3 Zeichen für die Dateinamenerweiterung begrenzt hat. Der wichtigste Unterschied ist hier: Linux hat keine Laufwerksbuchstaben! Wenn ein Computer über mehrere Laufwerke verfügt, werden diese einfach als Ordner an einer beliebigen Stelle im Dateisystem eingehängt. Für Benutzer:innen bedeutet das, dass niemand sich Gedanken machen muss, auf welchem Laufwerk etwas liegt.

Ein weiterer Unterschied ist, dass es in Linux feste Orte gibt, an denen Programme und Dateien abgelegt werden. So liegen ausführbare Programme in /usr/bin, Konfigurationsdateien und /etc und so weiter. Anwender:innen haben ein eigenes Verzeichnis für ihre Daten (Home-Verzeichnis), und können im Normalfall auch nicht bzw. nur beschränkt auf andere Dateien zugreifen.

Rechte

Anders als Windows, hatte Linux schon von Beginn an ein ausgeklügeltes System für Benutzerrechte. Dazu gehört, dass es auf jedem System mindestens zwei Benutzerkonten gibt. Einen Systembenutzer, der zur Administration verwendet wird, und der immer root heißt, und einen normalen Anwender:innen Nutzer. Jede weitere Benuzter:in hat dann wiederum ein eigenes Konto. Zum Benutzen des Computers meldet man sich niemals als root an! Diese strikte Trennung hat Linux, schon lange vor Windows, einen deutlichen Sicherheitsgewinn eingebracht, weil systemrelevante Änderungen immer einer expliziten Anmeldung des root-Benutzers bedürfen (z.B. mit dem sudo-Programm).

Die Anmeldung an einem Linux-System geschieht rein lokal; etwas vergleichbares zu dem Microsoft-Konto gibt es hier nicht!

Desktop

Jede Distribution kommt mit einer Desktop-Oberfläche. Anders als bei Windows oder MacOS gibt es jedoch viele verschiedene Oberflächen (Gnome, KDE, XFCE usw.) Das gibt Nutzer:innen zwar viel Freiheit, kann aber auch verwirrend sein. Am besten ist es, sich zunächst mit der Oberfläche vertraut zu machen, die vorinstalliert ist, und später, wenn man mehr Erfahrung hat, mit anderen zu probieren.

Die Oberfläche von Ubuntu ist ein angepasstes GNOME. Diese Oberfläche ist bewusst einfach gehalten, um Einsteiger:innen nicht zu überfordern. Es gibt ein Startmenü, wie Windows Anwender:innen es kennen, und eine Suchfunktion für Software.

Sicherheit

Ubuntu ist sehr stark auf Sicherheit ausgelegt. Benutzer haben nur die nötigsten Rechte, und Programme, die von Benutzer:innen gestartet werden können das System oder die Daten anderer Benutzer:innen nicht verändern. Netzwerkzugänge von außen müssen explizit erlaubt werden.

Updates

Updates werden in der Regel über das Update-Center, eine Art App-Store erledigt. Anders als bei Windows wird hier nicht nur das Betriebssystem sondern alle installierte Software aktuell gehalten. Ubuntu ist dabei weniger aufdringlich als WIndows, und benötigt deutlich seltener einen Neustart. Benutzer:innen können selbst entscheiden, wie stark der Update-Vorgang automatisiert wird, und wann Updates eingespielt werden.

Software

Die Software für Windows und Linux unterscheidet sich. Viele Programme (z.B. Microsoft Office), gibt es nicht für Linux. Dafür gibt es aber eine Vielzahl von Programmen, die diese zu 100% ersetzen können. Viele Programme, wie Firefox, Chrome etc. gibt es auch für beide Plattformen.

Viele Windowsprogramme lassen sich inzwischen auch auf Linux ausführen. Wenn auch das nicht geht, bleibt für unverzichtbare Anwendungen noch, Windows in einer Virtuellen Maschine zu installieren, und als "Gast" unter Linux laufen zu lassen.

Bei Computerspielen sieht es inzwischen sehr gut aus: Spiele waren über Jahre die Achillesferse von Linux, da die meisten Spiele nur für Windows entwickelt wurden. Der Spiele Publisher Valve (Steam-Plattform) hat auf Basis des Wine Programs, einem Kompatibilitätslayer für Windows, mit Proton eine Lösung geschaffen mit der ein sehr großer Teil der Windows-Spiele auch auf Linux läuft. Moderne Spiele laufen meist auch nativ auf Linux, da die großen Grafikengines wie Unreal-Engine inzwischen alle auch unter Linux laufen. Ein solches Spiel auf Linux lauffähig zu bekommen, bedeutet für den Hersteller nur noch einen Knopfdruck und einen zusätzlichen Compilerdurchlauf. Tatsächlich laufen viele Spiele auf Linux inzwischen flüssiger als mit Windows, weswegen Microsofts Gaming-Sparte vor kurzem eine Task-Force ins Leben gerufen hat, die Windows wieder effizienter machen soll.

Das heißt nicht, dass es nie Probleme gibt, Software zum laufen zu bekommen. Manche Windows-Programme lassen sich wirklich nur auf Windows zum laufen überreden. Hier hilft dann eine virtuelle Maschine zu benutzen, wenn gar nichts mehr hilft.

Viel Spaß mit Linux

Wer nicht unbedingt kommerzielle Spiele spielen will, findet aber auch viele schöne und spannende Spiele, die selbst Open Source sind und viel Spaß machen.