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)

Emulation einer VAX mit SIMH

In meinem Blog-Artikel „Netzwerk-Bridge unter Linux mit TUN/TAP“ habe ich bereits geschrieben, dass ich einen Computer der VAX-Reihe des Herstellers Digital Equipment Corporation emulieren möchte, um ein wenig das ebenfalls ursprünglich von DEC entwickelte Betriebssystem OpenVMS ausprobieren zu können. Ich habe in dem Artikel auch erwähnt gehabt, dass ich das nach wie vor sich in der Weiterentwicklung befindliche Open-Source BSD-Unix NetBSD und das inzwischen historische, ebenfalls von DEC entwickelte, proprietäre Unix ULTRIX kurz in der mit SIMH emulierten Maschine zu installieren ausprobiert habe.

In einer Mini-Serie möchte ich nacheinander auf die drei einzelnen Betriebssysteme in der Emulation eingehen.

Links:
Netzwerk-Bridge unter Linux mit TUN/TAP (eigener Blog-Artikel)
Emulator SIMH des Computer History Simulation Projects (engl. Wikipedia)
Rechnerarchitektur Virtual Address eXtension der Digital Equipment Corporation (engl. Wikipedia)
NetBSD (engl. Wikipedia)
ULTRIX (engl. Wikipedia)
OpenVMS (engl. Wikipedia)

Sanos PDP-11 Simulator mit UNIX V7

Wer seinen PC in eine PDP-11 von DEC mit der UNIX Time-Sharing System Seventh Edition (V7) als Betriebssystem verwandeln möchte, der kann den Sanos-Port von Bob Supnik’s PDP-11 simulator ausprobieren. Denn mit Diesem ist es möglich, UNIX so auszuführen, wie es Dennis Ritchie und Ken Thompson im Jahr 1979 getan haben.
Ein Sanos-Entwickler hat ein ISO-Image mit Sanos, dem PDP-11-Simulator und dem UNIX V7-Kit vom Computer History Simulation Project erstellt. Einfach eine CD-ROM in den PC einlegen und starten. Danach wird für alle nostalgischen UNIX-Geeks der PC zu einer PDP-11 mit dem UNIX V7.

Um die UNIX V7-Demo ausprobieren zu können, zuerst das ISO-Image herunterladen und entpacken. Es ist möglich, das Image mit dem bevorzugten Brennprogramm auf eine CD-ROM zu brennen und dann den Computer von dieser CD-ROM zu starten. Es ist aber inzwischen weitaus sinnvoller, es mit einer Desktop-Virtualisierungslösung wie VirtualBox auszuprobieren, indem die pdp11.iso Datei als ISO-Image für das CD-ROM festgelegt wird. Die Quelle, mit der das Image erstellt wurde, ist unter dem entsprechenden Link zu finden.

Wenn von der CD-ROM gebootet wird, startet Sanos und dieses startet den PDP-11-Simulator. Der Simulator startet dann UNIX V7 vom Image.

  • Bei dem Boot-Prompt b eingeben.
  • Bei dem @-Prompt ist boot<enter> einzugeben.
  • Bei dem : ist folgendes einzugeben: rl(0,0)rl2unix<enter>
  • Bei dem # ist <ctrl-d> zu drücken
  • Bei dem Login root als User mit dem Passwort root
UNIX V7 Emulator Boot
UNIX V7 Emulator Boot

Das Unix V7 ist dann betriebsbereit. Es können die gewohnten Unix-Befehle wie cat, ls, man und andere verwendet werden. Es kann dann auch ein einfaches C-Programm kompiliert und ausgeführt werden.

UNIX V7 Hello World
UNIX V7 Hello World

Mein absolutes Kernfeature ist, dass es als Texteditor nur den Zeilen-orientierten ‚ed‘ gibt. Der ‚vi‘ war seinerseits noch nicht verfügbar.

Links:
Sanos PDP-11 Simulator with UNIX V7
Bob Supnik’s PDP-11 simulator
Geschichte von Unix (engl. Wikipedia)
DEC PDP11 (engl. Wikipedia)
VirtualBox (engl. Wikipedia)
Kurzeinstieg zum ed-Editor (eigenes Blog)

macintosh.js

Ich bin zu den Macintosch-Computern von Apple gewechselt, nachdem diese den CPU-Plattformwechsel von der Power-Architektur auf die Intel x86 Architektur bereits vollzogen hatten. Zu der Zeit war Mac OS X 10.4 alias Tiger das aktuelle Mac-Betriebssystem. Also habe ich im wesentlichen nur noch die Betriebssysteme von Apple kennen gelernt, die auf der Basis von dem Apple-eigenen BSD Unix-Derivat Darwin beruhen. Im Umkehrschluss heißt das natürlich, dass ich mit dem Mac OS Classic nicht mehr in Berührung gekommen war, da dessen letztes Major Release im Jahr 2001 veröffentlicht wurde.

Screenshot: macintosh.js

Der Entwickler Felix Rieseberg hat nun eine auf Electron basierende Anwendung namens „macintosh.js“ programmiert und stellt diese kostenlos auf GitHub zur Verfügung. Dabei wird für die Anwendung ein Macintosh Quadra 900 aus dem Jahr 1991 emuliert. Der Macintosh Quadra 900 war seinerzeit mit einem 25 Megahertz getakteten Motorola 68040 Prozessor bestückt und besaß in der Grundausstattung lediglich 4 Megabyte RAM, der aber auf bis zu 256 Megabyte erweitert werden konnte.
Als Betriebssystem ist in der fertigen Emulation ein Mac OS 8.1 integriert, dessen Release im Januar 1998 war. Als Softwarepaket sind unter anderem einige Demo- oder Vollversionen von Spielen, sowie einigen Programmen von Adobe enthalten.
Der Emulator ist aber leider nicht netzwerkfähig.

Das emulierte Mac OS 8.1 System ist ziemlich schnell gestartet und lässt sich relativ Latenz-frei bedienen.
Mein derzeitig persönlicher Eindruck ist auch, dass inzwischen die Desktopcomputer so schnell geworden sind, dass bei einigen Emulatoren die abgebildeten Systeme performanter geworden sind, als auf ihrer originalen, physischen Hardware.

Die in JavaScript programmierte Anwendung gibt es aber auch für Linux und Windows.

Links:
macintosh.js (GitHub – Felix Rieseberg)
Macintosh Quadra 900 (engl. Wikipedia)
Mac OS 8.1 (engl. Wikipedia)

Smartphonenutzungsdauer

Mir ist nochmals der Tweet von Dejan Mihajlović durch die Timeline gehuscht, in dem er aufzeigt, was alles für Funktionen das Smartphone bereits übernommen hat.

https://twitter.com/DejanFreiburg/status/961256107275685888

Aber für mich ist es inzwischen nicht nur noch der Ersatz für Telefon, Fernseher, Radio, Fotoapparat, Camcorder, Uhr, Spielekonsole, Kalender, Buch, Notizbuch, Zeitung, Online-Shop und Post. Für mich ist es zusätzlich mehr oder weniger:

  • Wasserwaage
  • Seismograph
  • Kompass
  • Stadtplan
  • Straßenkarte
  • Sternkarte
  • Stimmgerät
  • Diktiergerät
  • Haus-/Wohnungsschlüssel
  • Kontoauszüge
  • Debit-/Girokarte
  • Medizinischer Notfallpass
  • Schrittzähler
  • Lautstärkemessung
  • Taschenrechner
  • Fahrkartenautomat
  • BahnCard
  • Bar-/QR-Code-Leser
  • Lupe
  • Taschenlampe
  • kleiner Kosmetikkspiegel

Update 22. Oktober 2021 19:00 Uhr:

  • mpfpass gegen SARS-CoV-2