Embeddable Linux Kernel Subset auf dem NuXT

Da ich mich schon lĂ€nger mit zwei PCs der 16 Bit x86 XT-Klasse beschĂ€ftige, – ĂŒber das originale SchĂ€tzchen von IBM hatte ich aber bisher noch gar nicht geschrieben – kam ein Kollege vor ein paar Wochen mit dem Link zum ‚Embeddable Linux Kernel Subset‘ (kurz: ELKS) auf mich zu. ELKS ist relativ kurz gesagt in Projekt, das einen frĂŒhen Fork des Linux-Betriebssystems fĂŒr Systeme mit Intel IA16-Architektur (16-Bit-Prozessoren: 8086, 8088, 80188, 80186, 80286, NEC V20, V30 und kompatible) bereitstellt. in Projekt, das einen frĂŒhen Fork des Linux-Betriebssystems fĂŒr Systeme mit Intel IA16-Architektur (16-Bit-Prozessoren: 8086, 8088, 80188, 80186, 80286, NEC V20, V30 und kompatible) bereitstellt. UnterstĂŒtzt werden Netzwerk, Grafik, ia16-elf-gcc, OpenWatcom C und ein eigener nativer C-Compiler, sowie die Installation auf Festplatten mit den FAT-Dateisystemen MINIX und MSDOS. Die Bitte war, auch auf der historischen Hardware-Klasse neben dem ĂŒblichen DOS auch ein fĂŒr die Zeit der Architektur unĂŒblich ein Linux zu betreiben.
Schnell habe ich mir von der GitHub-Projektseite das heruntergeladene, 1,44 MB große Floppy-Image auf eine Diskette kopiert, um es auf meinem NuXT mit NEC V20 Prozessor und 640 KiB RAM starten zu können. Die Installation auf ein durch eine CompactFlash Karte dargestelltes Festplattenlaufwerk hatte ich nicht mehr hinbekommen. Da auch bereits im Gegensatz zu den 360 und 720 KB Disketten-Images das vollstĂ€ndige Subset auf der 1,44 MB Variante Platz findet und die Diskette erfolgreich gebootet war, war somit die Machbarkeitsstudie mit dem derzeitigen ELKS in Version 0.8.1 erfolgreich abgeschlossen.

Jetzt am Wochenende hatte mich der Ehrgeiz aber erneut gepackt, und ich wollte es nicht unversucht lassen. Direkt bei dem erneuten ersten Versuch hat es geklappt und ich konnte das ELKS von der echten, 1,44 MB großen Diskette auf eine ĂŒbrige 256 Megabyte große CompactFlash Karte installieren. Allerdings empfand ich zum einen die Formatierung der CF-Karte mit dem Minix-Dateisystem als nicht optimal, zum anderen hielt ich die 256 MB Karte grundlegend fĂŒr zu groß. Irgendwo hatte ich schließlich noch eine ungenutzte 64 MB Karte, die mir in Bezug auf die SpeichergrĂ¶ĂŸe fĂŒr die Rechenleistung der XTs geeigneter erschien. Nur mit dem Versuch, die Installation von Diskette auf CF-Karte in VernĂŒnftig durchzufĂŒhren, wurde zum Drama!:
Ich bekam sowohl beim AusfĂŒhren der Programme zur Bearbeitung und Formatierung des Zielmediums, als auch beim Kopieren der einzelnen Dateien des Subsets von Quell- auf Zielmedium Lese- und Schreibfehler. Ist die ganze Blockstruktur so empfindlich fĂŒr Disketten? Ich habe also unterschiedliche 3,5″ HDD Disketten, anderer USB-Diskettenlaufwerke fĂŒr meinen Internet-fĂ€higen Computer, sowie ein anderes internes Diskettenlaufwerk fĂŒr den XT ausprobiert, aber ohne Besserung. Auch das Ausprobieren der Images auf FAT32- statt der Minix Dateisystembasis ergab keinen Unterschied. Die Alternative war dann das stupide Kopieren der vorgefertigten Harddisk Images von der Projekt-Download-Seite. Das Problem dabei: sowohl die Images mit MBR, als auch ohne, ließen sich nicht booten, da das Boot-Flag in der Image-Geometrie fehlte. Nach stundenlangem Probieren hatte ich schließlich erst wieder Erfolg, nach dem ich mir unter einem Windows Computer einen USB-Stick fĂŒr mehrere Floppy-Images erstellt und das entsprechende 1,44 MB Image hineingeladen hatte. Dies bedeutete aber auch, dass ich den NuXT einen Floppy-Emulator nur fĂŒr diesen Zweck einbauen musste. Nur fĂŒr den einen Zweck, das ELKS von einer „Diskette“ auf eine CF-Karte zu installieren, bedeutet dies sehr viel Bastelei. AusfĂŒhren der Festplattenprogramme und Kopieren der Dateien von USB-Stick verliefen dann ohne nennenswerten Lese- und Schreibfehlern.

Quelle: https://frankfurt.social/@sommteck/115091257215484879 (eigner Mastodon Feed)
ELKS Installation mit NuXT Versuchsaufbau

Ich werde mal abwarten, bis eine neuere Version als die aktuelle 0.8.1 zur VerfĂŒgung steht. Vielleicht wurden dann die vorgefertigten Harddisk Images mit einem Boot-Flag nachgebessert. Weitere Konfiguration, sowie Optimierungen werde ich mal separat behandeln. Hoffentlich dann mit den EindrĂŒcken des eigenen IBM XT PCs. Hier nur die Kurzanleitung zur Installation von Floppy auf eine 64 Megabyte CompactFlash-Karte.

fdisk /dev/hda
  • n â†’ neue Partition /dev/hda1 ĂŒber das ganze Speichermedium
  • b â†’ bootable Flag setzen
  • w â†’ schreiben, dann q zum Verlassen
mkfs /dev/hda1 60000     # MINIX v1 erstellen
sys -M /dev/hda1         # ELKS + Bootloader installieren
echo "##" > /bootopts
echo "root=hda1" >> /bootopts
sync; shutdown -r

Links:

Kleine Versuche mit Linux auf dem Desktop

In meinem ThinkPad T420 hatte ich neben der originalen, klassischen Festplatte vor vier noch den mSATA Slot mit einer entstehenden SSD bestĂŒckt fĂŒr ein zusĂ€tzliches Linux, habe sie dann aber bis jetzt nicht gebraucht. Na ja, da hatte mal wieder Leistung auf Vorrat gekauft.
Aus Lust und Laune, sowie genĂŒgend Zeit heraus habe ich vor knapp einem Monat es in Angriff genommen und auf die SSD wieder ein aktuelles Debian Linux frisch installiert. Diesmal wollte ich aber die vollstĂ€ndige Linux-Installation mit einem Logical Volume Manager (LVM) und LUKS verschlĂŒsselt haben. Um aber jetzt wie bei einer frĂŒheren Debian-Installation zu vermeiden, dass die letzte (physische) Partition – diese war ohne LVM – nicht wieder mit einem unvollstĂ€ndigen Cluster abgeschlossen wird, bei der sich dann das System ĂŒber ein fehlerhaftes Dateisystem beschwert, habe ich die Partitionierung im gefĂŒhrten Modus, „gesamtes Medium verwenden“, „LVM-verschlĂŒsselt“, im Debian-Installer gewĂ€hlt. Ich wurde aber wĂ€hrend des Partitionierungsvorgang insofern enttĂ€uscht, als ich kein Einfluss auf die GrĂ¶ĂŸen sĂ€mtlicher Partition hatte. Abgesehen von der unverschlĂŒsselten /boot Partion mit Bootloader, Bootmanager und Kernel, die fĂŒr mich mit einer GrĂ¶ĂŸe von gut 500 Megabyte erst einmal passabel erscheint, wurde die Swap-Partion mit einem Gigabyte, meine separate /home-Partition mit 224 Gigabyte, sowie die Partition fĂŒr die restliche Dateisystemstruktur ab der Wurzel mit 30 Gigabyte bemessen. Ich persönlich hĂ€tte aber fĂŒr Swap gerne mehrere Gigabyte, im Zweifel bis 8, und auf alle FĂ€lle fĂŒr die Partition mit der Wurzel zumindest die 50 Gigabyte gehabt. (Die Partition innerhalb des Volume Groups werden richtiger weiße Logical Volumes genannt!) Ich beließ es also erst einmal dabei, weil ich wusste, dass sich die Logical Volumes einem Physical Volume sich auch noch nachtrĂ€glich bearbeiten lassen.
Bei der Installation des Debians ist mir auch bei der Wahl der grafischen OberflÀche aufgefallen, dass es neben Gnome jetzt auch neu Gnome-Flashback gibt. Als alter Liebhaber von Gnome 2 hÀtte ich es eigentlich dem Mate-Desktop vorziehen und mal ausprobieren sollen. Aber die Macht der Gewohnheit siegte wieder mit dem Mate-Desktop.

Letzte Woche habe mich dann nun hingesetzt um zu Versuchen, dass ich das /home-Volume soweit verkleinere, damit ich das Volume fĂŒr / um 20 Gigabyte und auch das Swap-Volume etwas vergrĂ¶ĂŸern kann. Allerdings habe ich das Vorhaben nach einer Weile wieder abgebrochen, weil wĂ€hrend meiner Suche ĂŒber die im System enthaltene Online-Dokumentation ich keine entsprechenden Programmbefehle finden konnte, die mir die aktuellen GrĂ¶ĂŸen der Logical Volumes und freien Speicherplatz der Volume Group anzeigen können, nachdem ich Commandline-Befehle zum Verkleinern des 224 Gigabyte großen /home-Volumes bereits abgesetzt hatte. Im Nachhinein wĂ€re vielleicht der Artikel ĂŒber Logical Volume Manager im deutschsprachigem Ubuntuusers-Wiki hilfreich gewesen. Stattdessen habe ich dann die Möglichkeit gesehen, bei einer Neuinstallation des Debian-Linux’s die Partitionierung des verschlĂŒsselten LVMs hĂ€ndisch vorzunehmen und als Desktop-Envoirement eben nicht den Mate-Desktop, sondern mal Gnome-Flashback zu Verwenden. – Gesagt, getan!
Ich habe mir schon fast die HĂ€nde gerieben gehabt, mit der Vorstellung ein vollstĂ€ndiges Desktop-Envoirement von Gnome 2 nach dem ersten Boot-Vorgang wiederzufinden. Aber auch hier wurde ich wieder enttĂ€uscht! Der Displaymanager mit dem Login-Dialog war der von Gnome 3. Letztendlich ist Gnome-Flashback ein vollstĂ€ndiges Gnome in GTK+ 3, nur mit dem alten GnomePanel von Gnome 2 ohne dynamischen Desktop-Elementen. Klar ist es möglich, das Design der Fensterelemente zusĂ€tzlich im Nachhinein so anzupassen, dass es wieder mehr nach Gnome 2 aussieht, aber am Ende bleibt es Gnome 3, welches mehr Ressourcen als der Mate-Desktop fĂŒr mein altes ThinkPad T420 benötigt und auch aus ein paar mehr Paketen zusammen gebaut ist. – Also alles zum dritten mal wieder neu und mit manuellem LVM-Einrichten zurĂŒck zum Mate-Desktop.
Was mir aber bei der manuellen Einrichtung der Logical Volumes aufgefallen ist, dass bei der gefĂŒhrten Partitionierung der Debian-Installer fĂŒr die unverschlĂŒsselte Boot-Partition das alte ext2-Dateisystem verwendet. Das hatte mich seinerzeit schon gewundert, aber gut! Bei der manuellen Partitionierung quittierte mit der Installer die Auswahl von ext2, dass ich doch bitte ein moderneres Linux-Dateisystem verwenden sollte. Ich habe mich erst einmal mit ext3 begnĂŒgt. – Ehrlich gesagt hĂ€tte ich aber auch direkt ext4 nehmen sollen.

Abgesehen von den dargestellten Erkenntnissen oben, wurde mir von einer Person das Commandline-Tool tldr wie im Sinn von ‚too long; didn’t read‘ empfohlen, mit welchen es möglich ist, quer durch alle Manual-Pages nach Begriffen suchen zu können, um herauszufinden, welche Dokumente sich mit dem Schlagwort auch befassen. Dieses werde ich auch auf alle Mac’s wie MacPorts mal installieren.

Links:

Ultimate Boot CD

Ich möchte dieses Mal die ‚Ultimate Boot CD‘ empfehlen. Die Ultimate Boot CD (UBCD) ist eine zu einem ISO-Image fĂŒr beschreibbare CD- beziehungsweise DVD-ROMs zusammengefasste Software-Sammlung, die allerlei Programme und Tools zur Analyse, Konfiguration und Benchmarking fĂŒr die PC-Hardware-Komponenten enthĂ€lt. Jedes dieser Programme ist zwar auch fĂŒr sich als Freeware oder Open-Source-Programm aus dem Internet zu beziehen, wird aber durch die UBCD als eine umfassende Sammlung fĂŒr einen einzigen DatentrĂ€ger zusammen gestellt. Je nachdem, ob eines dieser Werkzeuge fĂŒr eine Linux- oder DOS-Umgebung entwickelt wurde, wird bei Bedarf von dem Live-Medium ein kleines Linux oder FreeDOS gestartet.
Die Ultimate Boot CD beinhaltet neben Programmen fĂŒr einen Stresstest des Prozessors, Diagnose-Programmen fĂŒr das vollstĂ€ndige PC-System oder einzelner Komponenten wie Peripherie oder Arbeitsspeicher, auch jede Menge Werkzeuge, um bei Festplatten (oder anderen Speichermedien) den Bootmanager zu bearbeiten, Daten wieder herzustellen, Partitionen zu verwalten oder die DatentrĂ€ger schlichtweg sicher zu löschen.

Allerdings ist die Zusammenstellung inzwischen so weit gewachsen, dass das ISO-Image mit 850 Megabyte fast schon nicht mehr auf einen CD-Rohling passt und man schon auf einen DVD-Rohling ausweichen muss. Dies muss aber dennoch nicht sein, da die Ultimate Boot CD so aufgebaut ist, dass es möglich, Programme oder Werkzeuge zu entfernen oder andere hinzuzufĂŒgen. Kurz: es ist möglich, sich den Umfang der Programme und Werkzeuge selbst individuell zusammen zustellen. Da aber immer mehr Standard-PCs inzwischen ohne optische Laufwerke ausgeliefert werden, bietet die Ultimate Boot CD auch die Möglichkeit, das ISO-Image auf einen USB-Stick zu ĂŒbertragen.

Screenshot Ultimate Boot CD Version 5.3.9

Hintergrund, dass ich mich mit der Ultimate Boot CD beschĂ€ftigt habe, ist der, dass ich auf einem meiner Computer bei einer bestimmten Operation immer wieder einen ‚Segmentation Fault‘ Fehler (zu Deutsch Schutzverletzung) zurĂŒckerhalte. Die GrĂŒnde, warum auf einem Computer diese Schutzverletzungen entstehen, können aber sehr vielfĂ€ltig sein. Ein Grund könnte sein, dass der Arbeitsspeicher fehlerhaft arbeitet, was wiederum auf einen Defekt des RAMs hinweisen könnte. Um nun zu prĂŒfen, ob der RAM fehlerfrei arbeitet, wurde mir das Programm Memtest86 empfohlen. Sowohl Memtest86, als auch die als Open Source weiterentwickelte Variante Memtest86+, lassen sich von einem bootfĂ€higen WechseldatentrĂ€ger wie USB-Stick oder CD-ROM an einem PC ausfĂŒhren, bei dem der Arbeitsspeicher dann einem Stresstest unterzogen wird.
Da aber mein Computer mit der Schutzverletzung nicht ĂŒber ein optisches Laufwerk verfĂŒgt, musste ich die ISO-Images von Memtest86(+) auf einen USB-Stick ĂŒbertragen. Nur leider habe ich es nicht hinbekommen gehabt, die Images so auf den USB-Stick zu ĂŒbertragen, sodass der Computer danach von diesem auch tatsĂ€chlich bootete. Und so ruhte dann das Vorhaben, diesen Computer einem RAM-Stresstest zu unterziehen, um herauszufinden, ob der Arbeitsspeicher nicht vielleicht die Ursache ist.
Nach einigen Wochen bin ich aber nun zufĂ€llig auf einen YouTube-Kanal gestoßen, in dessen Videos der Protagonist sich regelmĂ€ĂŸig mit („Ă€lterer“) PC-Hardware auseinandersetzt. Dabei verwendet er durchwegs die Ultimate Boot CD, die er auf seiner Hardware fĂŒr FehlerĂŒberprĂŒfungen der Komponenten einsetzt. – Und eben auch das Programm Memtest86+ um den Arbeitsspeicher zu ĂŒberprĂŒfen. Also unternahm ich einen erneuten Versuch, meinen Computer mit der Schutzverletzung einem Stresstest fĂŒr den Arbeitsspeicher unterziehen zu wollen.

Im Prinzip gibt es zwei Varianten, wie man die Ultimate Boot CD auf einen USB-Stick ĂŒbertrĂ€gt. Die eine ist ein Batch-Script, mit welchem ein USB-Stick formatiert und die Programmdaten von dem Ultimate Boot CD-Image ĂŒbertragen werden. Trotz der gegebenen Voraussetzung, dass dieses auf einem Computer mit Windows 7 von mir ausgefĂŒhrt wird, hat dies trotz mehrmaliger Versuche leider nicht funktioniert.
Die zweite Variante ist das Formatieren und Übertragen der Image-Dateien unter Hilfenahme des Programms ‚Bootable USB drive preparation tool‘ (kurz RMPrepUSB). Mit diesem kleinen Programm konnte ich dann die Ultimate Boot CD auf einen USB-Stick ĂŒbertragen, meinen Computer mit der Schutzverletzung von diesem booten lassen und endlich den Arbeitsspeicher dem Stresstest von Memtest86+ unterziehen.

Links:

Commandlinefu

Als ich im vergangenen Herbst nach einer Lösung im Internet recherchiert habe, um eine Audio-Datei (wav, mp3, etc.) aus der Tonspur einer DVD zu erzeugen, bin ich in meinen Suchergebnissen ĂŒber Beispiele fĂŒr Kommandozeilen-Befehle auf der Website www.commandlinefu.com aufmerksam geworden. Bei Commandlinefu kann jeder nach der Registrierung einen kleinen Beitrag einstellen fĂŒr einen Kommandozeilen-Befehl den er oder sie als erwĂ€hnenswert erachtet. Dabei wurden – und werden Befehle prĂ€sentiert, die entweder etwas Praktisches, etwas NĂŒtzliches, etwas Interessantes oder einfach nur etwas Witziges ausfĂŒhren.
So gab es bis vor etwa zehn Jahren alternative Beispiele, wie sich ein öffentlicher SSH-SchlĂŒssel auf einem Ziel-Host in die Datei ~/.ssh/authorized_keys einfĂŒgen lĂ€sst. Hintergrund war, dass Apple zwar die vollstĂ€ndige SSH-Suite seit Beginn von Mac OS X als festes Bestandteil integriert hat, aber ĂŒber etliche Versionen hat das Programm ssh-copy-id gefehlt. So wurden alternative Wege erarbeitet, die mit Hilfe der Standard-Unix-Tools den SchlĂŒssel ĂŒber ein einziges Shell-Kommando auf den Ziel-Host brachten.xx
Ich habe mal angefangen, ein wenig in der mittlerweile ĂŒber fast 12 Jahre alten Sammlung zu stöbern und eine wirklich kleine Auswahl in meinem Wiki gesammelt. Aber es steckt noch viel Potenzial in der Sammlung weitere Befehls-SchĂ€tze zu entdecken. Es braucht nur etwas Internet und vielleicht einen halben oder ganzen Tag, an dem sich nichts sinnvolleres mit der vorhandenen Freizeit anstellen lĂ€sst.
Es gibt im ĂŒbrigen auch einen Twitter-Account zu Commandlinefu, der einem ĂŒber einen neuen Beitrag informiert.

Links:

iSH fĂŒr Apple iOS – Das iPhone wird Linux-tauglich

Apple hat sein Smartphone-Betriebssystem iOS – in den ersten drei Majorreleases noch unter dem Namen iPhone OS vermarktet – von Anfang an so abgeschottet, dass es einem als User und Entwickler nicht möglich ist, mit Dateien in einem Dateisystem App-ĂŒbergreifend arbeiten zu können, sowie mit einer Applikation weitere Programme sich auf das GerĂ€t installieren zu können. – Auch unter dem Begriff Sideloading bekannt. – Jede Applikation soll ausschließlich separat ĂŒber den Apple-eigenen iOS App Store auf iPhone oder iPad bezogen und installiert werden. Dies ist von Apple auch in den Regularien fĂŒr App-Entwickler vorgeschrieben und wird vor der Veröffentlichung in einem Review-Prozess kontrolliert. Apple begrĂŒndet dies damit, dass Nutzer so vor schĂ€dlicher Malware geschĂŒtzt werden sollen. Der Nachteil dabei ist aber, dass die Smartphones und Tablets von Apple in der Nutzungsmöglichkeit weitaus unflexibler als die GerĂ€te fĂŒr Googles Android oder den Apple-eigenen Laptops, also Computern sind. Besonders Ă€rgerlich ist dies am grĂ¶ĂŸten bei den iPads, weil selbst Apple diese spĂ€testens seit dem iPad Pro auch inzwischen als Computer-Kategorie vermarktet, die einem klassischen Laptop – also Apples eigene MacBook (Air/Pro) ersetzen können sollen. Mit den Smart-Keybords bietet Apple selber auch Peripherie fĂŒr ihre Tablets an, die das Handling eines klassischen Laptops ermöglicht – dazu aber zusĂ€tzlich ein Touch-Display fĂŒr die Bedienung mit Fingergesten und Stift direkt auf das Display.
Apple hat mit der eigenen Files-Apps fĂŒr iOS und iPadOS ein Programm fĂŒr den Umgang mit Dateien inzwischen implementiert, aber an die Möglichkeiten die der Finder auf den Macs oder der Datei-Explorer unter Windows bietet, kommt diese App nicht im Ansatz heran.
Apple hatte aber bereits nun vor ĂŒber sechs Jahren das Unternehmen Burstly ĂŒbernommen gehabt, mit deren App Testflight einem es möglich war, auch Apps im Rahmen von Beta-Tests von Entwicklern außerhalb des Apple-eigenen App Stores sich auf iPhone oder iPad installieren zu können. Das machte es sehr interessant, eine iOS-Applikation fĂŒr einen wirklich sehr begrenzten Umfang an Benutzern entwickeln und ausrollen zu können, ohne die App durch Apples Review-Prozess hindurch in den App Store veröffentlichen zu mĂŒssen. Zum Beispiel fĂŒr eine selbstgebaute Smarthome-Steuerung fĂŒr weniger als 100 iOS-Usern in einem Verein oder MakerSpace. Die angenommenen 100 User hĂ€tte man einfach als die Beta-Tester deklariert.

Alpine Linux

Vor zwei Jahren hatte dann der Softwareentwickler Theodore Dubois das Projekt iSH auf GitHub veröffentlicht gehabt, mit dessen es dann möglich war, sich ein emuliertes Linux auf das iDevice installieren zu können. Bei iSH handelt es sich dabei um eine iOS-App, in der im Usermode des Darwin-Systems – also der Betriebssystemunterbau von iOS auf Basis des BSD-Unix von Apple – ein Emulator zu AusfĂŒhrung von Maschinenbefehlen der x86_32 Architektur lĂ€uft mit einem Alpine-Linux. Alpine-Linux ist wiederum eine auf BusyBox basierende Linux-Distribution, die in erster Linie fĂŒr „Power-User entwickelt wurde, die Sicherheit, Einfachheit und Ressourceneffizienz schĂ€tzen“. Das Alpine-Linux verwendet als eigenes Paketverwaltungssystem apk-tools. Somit ließ sich weitere quelloffene Software aus der GNU-Linux-Welt mit zum ersten mal außerhalb Apples App Store auf iPhone beziehungsweise iPad installieren. Möglich war dies, weil Apple vor rund zwei Jahren selber mit der Swift-Playground App fĂŒr iOS eine einfache und spielerische Möglichkeit geschaffen hat, auf iPhone und iPad anhand ihrer eigenen Programmiersprache Swift das Programmieren zu erlernen. Und es ist in Testflight fĂŒr Entwickler möglich, fĂŒr App-Tester Programmteile aus dessen Quellen nachinstallieren zu können. Über die Testflight-App musste man sich automatisch zu einem Beta-Tester fĂŒr iSH aktivieren und schon konnte man fĂŒr jede „Testversion“ von iSH fĂŒr einen vorher definierten Zeitraum die Testversion benutzen. Allerdings war aber die Anzahl der Beta-Tester auf maximal 10.000 User begrenzt.

Vor 3 Tagen ging dann die Meldung durch die IT-Tech-Presse, dass von iSH die Version 1.0 von Apple im App Store zum Download freigegeben wurde. Die Frage ist aber, wie ist das möglich, wenn die Regularien des App Stores das Sideloading von weiteren Programmen aus einer App verbietet? Die Antwort ist: Das Kommandozeilenprogramm apk ist nicht mehr Teil von iSH, so dass keine weiteren Programmpakete erst einmal nachgeladen werden können. Dass es aber ĂŒber einen kleinen Umweg möglich ist, werde ich am Ende noch kurz dokumentieren.

Zuvor aber noch ein paar Worte zu iSH, wie es bereits seit der zuvor zweijÀhrigen Testflight-Beta gibt und verhÀlt.:
Das Alpine-Linux in iSH enthÀlt bereits eine Reihe gÀngiger Kommandozeilenprogramme wie wget, curl und den Texteditor vi. Alpine setzt nach wie vor auf das einfache und leichte OpenRC als Init-System. Allerdings funktionieren nicht alle Pakete. Darunter zum Beispiel nicht ifconfig, ip, nmap, arp, dpkg, lighthttpd und weitere andere.
Die Linux-Umgebung mitsamt Kernel ist nur wenige Megabyte groß. Über eine File-Provider-Extension lĂ€sst sich iSH auch in Apples vorinstallierte Dateien-App integrieren und erlaubt so einen Zugriff auf das eigene Dateisystem – um das Kopieren von Dateien in andere iOS-Apps zu ermöglichen.

Da ich derzeit ein iPhone 8 mit 256 Gigabyte Flssh-Speicher besitze, steht also der gesamte noch verfĂŒgbare Flash-Speicher fĂŒr die Erweiterung des Linux mit Programmen, Bibliotheken und Daten zur VerfĂŒgung. Das heißt aber auch im Umkehrschluss, dass in das Alpine Linux nachinstallierte Programmpakete und Bibliotheken seitens des iOS als Nutzer-Daten und Dokumente angesehen werden. Der Nachteil: Mein iPhone-Backup fĂ€llt auch entsprechend im Laufe der Nutzung grĂ¶ĂŸer auf meinen Backup-Medien aus. Der Vorteil ist aber, dass im Fall eines iPhone-Wechsels das gesamte System auf das neue GerĂ€t mit der Migration des iPhone-Backups in einem Rutsch mit kopiert wird. – Allerdings sofern die GesamtkapazitĂ€t des neuen GerĂ€tes nicht die GrĂ¶ĂŸe des Backups unterschreitet.

Midnight Commander in iSH

Die Neben-Story meines derzeitigen iPhones ist ja, dass ich vor genau drei Jahren bei dem Wechsel von meinem bis dahin genutzten iPhone 5 mit 32 GB Flashspeicher nicht abschĂ€tzen konnte, welche Speicherkonfiguration des damals neu angebotenen iPhone 8 fĂŒr mich die richtige ist. Mein Ziel seit damals ist ja, dass ich das GerĂ€t auch wieder mindestens 5 Jahre durchgĂ€ngig nutzen möchte. Voraussetzung war aber, dass ich alle Apps und Daten des restlos vollen 32 Gigabyte GerĂ€tes mit auf das damals neue iPhone 8 migriere und ĂŒbernehme. Das Problem bestand aber darin, dass ich dachte, die weiteren 32 Gigabyte auf die 64 Gigabyte in der kleinsten Konfiguration könne fĂŒr die immer grĂ¶ĂŸer werdenden Apps nicht fĂŒr die 5 kommenden Jahre reichen. Apple hat cleverer weise dann kein 128 Gigabyte Modell angeboten, weil sie genau wussten, dass der unsichere Kunde wie ich im Zweifel sowieso gleich auf die nĂ€chsthöhere Speicherkonfiguration zurĂŒckgreifen wird, und haben fĂŒr weitere 170,- Euro dann nur noch die 256 Gigabyte-Variante angeboten. – Um nun auf den Punkt zu kommen: Von den unterschĂ€tzten 64 Gigabyte sind nun nach drei Jahren noch 6,4 Gigabyte frei, und die insgesamt noch verfĂŒgbaren 198,4 Gigabyte machen nun fĂŒr mich endlich richtig Sinn.
Anstatt furchtbarer HTML-WebApps um Audio-/Video-Dateien bearbeiten und konvertieren zu können, jetzt die Kraft von FFmpeg auf der Shell. Statt herumfummeln mit Browser und Apps wie Documents, Dateien mit wget herunterladen. Oder anstatt Geld fĂŒr eine grafische App zahlen zu mĂŒssen, um Python-Code in einem Interpreter ausfĂŒhren zu können, mit der Gefahr, dass numerische Ergebnisse ungewöhnlich ausgegeben werden, der originale Interpreter wie ich ihn von jeder Unix-Konsole her kenne.

Apple! – DafĂŒr dass Ihr berechtigterweise es tatsĂ€chlich geschafft habt, mich fĂŒr 192 Gigabyte zusĂ€tzlichen Flashspeicher um weitere 170,- Euro ĂŒber den Tisch zu ziehen, verzeihe ich euch dafĂŒr ein wenig, weil ihr euch bezĂŒglich des Sideloading-Verbotes von Theodore Dubois austricksen habt lassen. – Ich hoffe, ihr ĂŒberlegt es euch nicht noch einmal anders und schmeißt iSH eben nicht wieder dafĂŒr aus dem App Store!

Jetzt noch zum Schluss das kurze HowTo, wie sich nach dem Download von iSH weitere Linux-Pakete installieren lassen.:

  1. wget http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86/apk-tools-static-2.10.5-r1.apk
  2. tar xf apk-tools-static-2.10.5-r1.apk sbin/apk.static
  3. ./sbin/apk.static add apk-tools
  4. rm sbin/apk.static

Links:
https://ish.app
iSH auf GitHub
iSH im Apple iOS App Store
Alpine Linux (engl. Wikipedia)
Projektseite Alpine Linux
Übernahme von TestFlight durch Apple (TechCrunch)
FFmpeg (engl. Wikipedia)
Wget (engl. Wikipedia)
Python (engl. Wikipedia)