# Slackware

Slackware [ˈslækwɛə] oder [ˈslækwɛɚ] ist die älteste aktive Linux-Distribution und die erste, die große weltweite Verbreitung fand. Wegen dieses frühen Erfolges und des konsequenten Verzichts auf unnötigen Ballast nach dem KISS-Prinzip bildete Slackware die Grundlage für andere bekannte Distributionen wie z. B. SuSE Linux. Slackware ist für die Verwendung mit i486-kompatiblen (ursprünglich i386-kompatiblen) und x86-64-Architekturen sowie Alpha- und SPARC-Architekturen bestimmt. Mit Slackware ARM existiert eine offizielle Portierung auf die ARM-Architektur, Slack/390 bietet eine offizielle Portierung für die Großrechnerarchitektur S/390 und deren Nachfolger System z. Slackware findet seine Hauptanwendung im professionellen Umfeld.

## Besonderheiten

Slackware ist auf größtmögliche Unix-Ähnlichkeit ausgelegt. Alle Einstellungen am System können vom Nutzer durch Editieren der Konfigurationsdateien vorgenommen werden. Es existieren keine offiziellen distributionsspezifischen Werkzeuge mit Benutzeroberfläche zur Systemkonfiguration (wie beispielsweise YaST bei openSUSE). Die Slackware-Maintainer sind der Ansicht, dies würde gegen das KISS-Prinzip verstoßen.
Die Veröffentlichung einer neuen Slackware-Version erfolgt immer erst dann, wenn sie fertig ist – das heißt, es gibt keine festgelegten Deadlines und keine Vorankündigung. Slackware setzt Linux Loader (LILO) als Bootmanager ein und hat einen BSD-ähnlichen init-Prozess. Alternativ zu LILO kann GRUB 2 eingesetzt werden, um z. B. von einer mit GPT partitionierten NVMe-SSD starten zu können. Slackware verzichtet auf systemd.

### Paketmanagement

Es gibt so gut wie keine distributionsspezifischen Änderungen an den zur Verfügung stehenden Paketen, was die Übersetzung und Installation eigener Software im Gegensatz zu anderen Distributionen erleichtert. Slackware verwendet komprimierte Tar-Archive als Paketformat; ab Version 13.0 werden diese mit dem Lempel-Ziv-Markow-Algorithmus anstelle von gzip komprimiert (*.txz statt *.tgz). Aufgrund des einfachen Paketaufbaus werden Paketabhängigkeiten weder vom System überprüft noch wird das Überschreiben von Dateien bereits installierter Pakete verhindert. Das ist ein wesentlicher Unterschied zu den in vielen anderen Linux-Distributionen enthaltenen Paketmanagern. Diese Eigenschaften ermöglichen es dem fortgeschrittenen Benutzer, auch Teile von umfangreicherer Software zu nutzen und auf unnötig erscheinende Software zu verzichten oder Anpassungen am System vorzunehmen, ohne mit Nebeneffekten durch Inkonsistenzen im Paketmanagement rechnen zu müssen. Im Verzeichnis /var/log/packages findet sich eine Liste der installierten Pakete mit Beschreibungen, welche Dateien mit welchem Paket installiert wurden. Mit dem Kommando ldd (List Dynamic Dependencies) können Abhängigkeiten dynamischer Bibliotheken angezeigt werden, woraus sich deren Notwendigkeit ableiten lässt.

### Installation und Updates

Für die einfache Installation und Konfiguration des Systems stellt Slackware Skripte zur Verfügung. Das Einspielen aktueller, sicherheitsrelevanter Softwareupdates kann ab Version 12.2 mit dem Programm slackpkg vorgenommen werden.
Da Slackware mit einer recht minimalistischen Paketauswahl daher kommt, existieren diverse inoffizielle Programme, um auf einfache Art und Weise zusätzliche Software installieren zu können. Sbopkg ist unter diesen zusätzlichen Programmen das derzeit populärste. Es benutzt Buildskripte, um Software aus ihren Quelltexten zu kompilieren und ein Paket daraus zu erstellen. Außerdem existieren Programme wie swaret und slapt-get. die für Softwareinstallationen mit Abhängigkeitsauflösung benutzt werden können, sofern entsprechende Pakete und Repositorien verfügbar sind.
Das Management der Software-Repositorien ist eher konservativ ausgelegt. Es ist möglich, dass über mehrere Versionen hinweg kein Upgrade einer bestimmten Software erfolgt.

## Geschichte

| Version | Datum | Kernel |
| 1.00 | 17. Juli 1993 | 0.99.11 Alpha |
| 1.01 | 4. August 1993 | 0.99.12 Alpha |
| 1.1 | 5. November 1993 | 0.99.13 |
| 1.1.2 | 15. Februar 1994 | 0.99.15 |
| 2.0.0 | 2. Juli 1994 | 1.0.9 |
| 2.0.1 | 23. September 1994 | 1.0.9 |
| 2.1 | 31. Oktober 1994 | 1.1.59 |
| 2.2.0 | 30. März 1995 | 1.2.1 |
| 2.3 | 24. Mai 1995 | 1.2.8 |
| 3.0 | 30. November 1995 | 1.2.13 |
| 3.1 | 3. Juni 1996 | 2.0.0 |
| 3.2 | 17. Februar 1997 | 2.0.29 |
| 3.3 | 11. Juni 1997 | 2.0.30 |
| 3.4 | 14. Oktober 1997 | 2.0.30 |
| 3.5 | 9. Juni 1998 | 2.0.34 |
| 3.6 | 28. Oktober 1998 | 2.0.35 |
| 3.9 | 10. Mai 1999 | 2.0.37pre10 |
| 4.0 | 17. Mai 1999 | 2.2.6 |
| 7.0 | 25. Oktober 1999 | 2.2.13 |
| 7.1 | 22. Juni 2000 | 2.2.16 |
| 8.0 | 1. Juli 2001 | 2.2.19 |
| 8.1 | 18. Juni 2002 | 2.4.18 |
| 9.0 | 19. März 2003 | 2.4.20 |
| 9.1 | 26. September 2003 | 2.4.22 |
| 10.0 | 23. Juni 2004 | 2.4.26 |
| 10.1 | 6. Februar 2005 | 2.4.29 |
| 10.2 | 15. September 2005 | 2.4.31 |
| 11.0 | 2. Oktober 2006 | 2.4.33.3 |
| 12.0 | 2. Juli 2007 | 2.6.21.5 |
| 12.1 | 2. Mai 2008 | 2.6.24.5 |
| 12.2 | 9. Dezember 2008 | 2.6.27.7 |
| 13.0 | 28. August 2009 | 2.6.29.6 |
| 13.1 | 24. Mai 2010 | 2.6.33.4 |
| 13.37 | 27. April 2011 | 2.6.37.6 |
| 14.0 | 28. September 2012 | 3.2.29 |
| 14.1 | 7. November 2013 | 3.10.17 |
| 14.2 | 1. Juli 2016 | 4.4.14 |
| 15.0 | 3. Februar 2022 | 5.15.19 |
Ab Ende 1992 versuchte sich Patrick Volkerding an Fehlerkorrekturen für Softlanding Linux System (SLS), die erste umfassende Linux-Distribution überhaupt. Nachdem die Ergebnisse dieser Arbeit in seinem Umfeld populärer wurden, veröffentlichte er sie am 17. Juli 1993 als eigene Distribution unter dem Namen Slackware Linux 1.00. Einen Monat später tat Ian Murdock es ihm mit seiner aus den gleichen Beweggründen entwickelten ersten Version von Debian gleich. Der erste Teil des Namens, Slack, leitet sich von einem Glaubensprinzip der Religionsparodie Church of the SubGenius ab und steht für Freiheit, Unabhängigkeit und originelle Ideen, die zum Erreichen der persönlichen Ziele führen.
Die erste offizielle Version von Slackware bestand aus 24 3,5″-Disketten. Die ersten 13 Disketten enthielten einen DOS-Emulator, den Linux-Kernel 0.99pl11 in einer Alphaversion, die GNU Compiler Collection (GCC) in Version 2.4.5 und die zwei Unix-Shells (pd)ksh und tcsh. Die anderen elf Disketten umfassten Treiber für Grafikkarten, ein XFree86-System in Version 1.3 und einige grafische Anwendungen.
Slackware 1.1.1 bestand aus 51 Disketten und beinhaltete u. a. XFree86 2.0 und eine TeX-Installation. In Slackware 1.2 war die Linux-Kernelversion 1.0 enthalten. Für die vollständige Installation wurden mindestens 200 MB Festplattenspeicher benötigt.
Version 2.1 der Distribution benötigte bereits 65 Disketten sowie eine Root- und eine Bootdisk. Slackware 2.2.0.1 enthielt XFree86 in Version 3.1.1.
Slackware 3.0 erschien am 30. September 1995 zum ersten Mal im Executable and Linking Format und konnte bei Walnut Creek (heute FreeBSD Mall) als CD-ROM bezogen werden. Die im Juli 1996 veröffentlichte Version 3.1 wird auch Slackware 96 genannt (als Anspielung auf Windows 95) und enthielt den Linux-Kernel in Version 2.0. Für Slackware 3.6 waren 500 MB Festplattenspeicher für die Vollinstallation notwendig.
Zusammen mit Slackware 3.9 erschien im Mai 1999 Version 4.0, welche 1 GB auf der Festplatte belegt und u. a. XFree86 3.3.3.1 und den ersten freien KDE in Version 1.1.1 enthält.
Nach Version 4.0 erfolgte im Jahr 1999 ein Versionssprung auf Version 7.0. Grund dafür war nach Angabe von Volkerding der aus Marketinggründen inflationäre Gebrauch neuer Versionsnummern bei anderen Distributionen und die sich ständig daraus ergebenden Anfragen „von Leuten, die nichts über Linux wissen,“ wann man denn upgraden würde oder ob die in Slackware enthaltenen Komponenten 3 Versionen älter seien als anderswo. Für Slackware 7.0 wird eine 2 GB große Installationspartition empfohlen. Mit Slackware 7.1 wurde auch Gnome Teil der Distribution.
In der Releasereihe von Slackware 8.x werden die KDE-Versionen 2.1.1 bzw. 3.0.1 verwendet, XFree86 4.1.0 bzw. 4.2.0 und die Mozilla Application Suite kamen dazu.
Die Slackware 9.x-Reihe ist für den Linux-Kernel 2.6 vorbereitet, benutzt aber die Kernel 2.4.20 und 2.4.22 und dazu KDE 3.2.3 sowie Gnome 2.6.2. Slackware 9.0 ist die letzte Version, die sich auf einer i386-kompatiblen Architektur installieren lässt, ab Version 9.1 wird mindestens eine i486-kompatible Architektur vorausgesetzt.
Mit Slackware 10.0 wurde 2004 XFree86 durch den X.Org-Server ersetzt. Version 10.1 entfernte Gnome wieder aus der Distribution, und es begann die Migration zur Linux-Kernelserie 2.6, die ab Slackware 10.2 optional zur Verfügung steht.
Ab Slackware 12.0 kam ein 2.6er-Kernel zum Einsatz, ab Version 12.1 sogar ausschließlich.
Ab Slackware 13.0 steht die Distribution unter der Bezeichnung „Slackware64“ auch für x86-64-Architekturen zur Verfügung. Die 32-Bit-Version wird weiterhin „Slackware“ genannt. Ferner wird der bisher verwendete Kompressionsalgorithmus der Slackware-Pakete von gzip auf xz umgestellt.
Slackware 13.1 entfernt mit Nutzung der Kernelserie 2.6.33 die Unterstützung für das alte IDE-Subsystem; ab jetzt werden alle Festplatten unter den Gerätenamen /dev/sd* angesprochen. Ferner wird mit KDE 4.4.3 auch dessen Berechtigungsdienst PolicyKit sowie das Sitzungsverwaltungssystem ConsoleKit in speziellen und auf Slackware angepassten Versionen eingeführt. Das ist insbesondere bemerkenswert, weil Slackware traditionell viel Wert darauf legt, möglichst geringe Anpassungen an der mitgelieferten Software durchzuführen. Die Anpassungen wurden nötig, um die von Slackware genutzte Shadow-Passwort-Methode zum Schutz von Passwörtern zu unterstützen. Außerdem wird insbesondere die Unterstützung für Laptops verbessert: Es wird ein tickless Kernel ohne regelmäßige Timer Interrupts verwendet; wie oft dieser geweckt wird, lässt sich mit powertop festlegen. Ferner wurde usb_modeswitch integriert und so die temporäre Verwendung von USB-Geräten vereinfacht.
Slackware 13.37 enthält neben einer umfassenden Aktualisierung der mitgelieferten Pakete wesentliche Neuerungen in der Installationsroutine. Deren Hardware-Initialisierung wird nun von udev erledigt. Ein Vorteil dessen ist, dass bei der Installation über ein Netzwerkprotokoll die Konfiguration der Netzwerkkarte über ältere Hilfsskripte entfällt. Als weitere Neuerung unterstützt Slackware nun GPT-Partitionstabellen während der Installation. Werkzeuge zur Verwaltung des Btrfs-Dateisystems gehören nun ebenfalls zur Distribution. Aufgrund der Aktualisierung von X.org wird HAL nicht länger für die Erkennung und Initialisierung der Eingabegeräte verwendet. Stattdessen findet auch hier udev Verwendung. Weitere Neuerungen sind die Aufnahme von ddrescue, rfkill und lxc, ein System ähnlich chroot zur Isolierung von Systemprozessen und -ressourcen. Letztlich ist es jedoch wesentlich leistungsfähiger, wodurch sich damit virtuelle Systeme betreiben lassen.

## Slackware64

Slackware64 ist die offizielle Portierung von Slackware auf die 64-Bit-Prozessorarchitektur. Die Portierung wurde offiziell mit der Veröffentlichung von Slackware-13 eingeführt. Änderungen an Slackware und Slackware64 finden gleichzeitig statt, weil beide Projekte vom selben Team betreut werden. Die Freigabe einer neuen Version von Slackware64 erfolgt gleichzeitig mit jener von Slackware. Die Entwicklung von Slackware64 wurde durch das mittlerweile nicht mehr weiterentwickelte Slamd64 sowie BlueWhite64 maßgeblich begünstigt. Slackware64 ist eine reine 64-Bit-Distribution, die jedoch für die Einrichtung der gleichzeitigen Unterstützung für 32- und 64-Bit Prozessorarchitekturen (Multilib-Umgebung) vorbereitet ist. Die Tools zur Einrichtung der Multilib-Umgebung sind jedoch nicht Bestandteil von Slackware64.

## Slackware ARM

Slackware ARM wurde im Jahr 2002 unter dem Namen „ARMedslack“ begründet und ist eine offiziell anerkannte Portierung von Slackware auf die ARM-Prozessorarchitektur. Mit der offiziellen Anerkennung im Jahr 2009 erfolgte die Umbenennung von „ARMedslack“ zu „Slackware ARM“. Die aktuelle Version ist 15.0. Derzeit werden die Plattformen ARM Versatile und Marvells SheevaPlug unterstützt. Durch die Unterstützung der ARM Versatile Plattform kann Slackware ARM auf emulierter Hardware, z. B. mittels QEMU laufen, was die Entwicklung für diese Plattform vereinfacht.

## Slack/390

Slack/390 wurde im Jahr 2004 begründet und ist eine offiziell anerkannte Portierung von Slackware auf die S/390-Architektur. Die aktuelle Version ist 10.0. Nach der Einführung von Slackware64 wurde auch eine 64-Bit-Version für die S/390-Nachfolgearchitektur, das System z, erstellt.