Tot nu toe kon je als ontwikkelaar niet veel doen met een iPad. Er waren wel code-editors, maar je kon de geschreven programma’s niet uitproberen. Er was geen compiler, geen webserver-app en geen Node.js-app voor wat lokale experimenten. Velen probeerden het te doen met een externe server door de code dan in te typen op de iPad en die met een SSH-app op de server te zetten. Maar met het ICE-framework werkte dat goede idee al niet lekker door onderbrekingen in de internetverbinding en werd de iPad gediskwalificeerd als ontwikkelaarstool.
iSH Shell breidt het toepassingsgebied van het mobiele apparaat uit voor mobiel ontwikkelen. Om te beginnen heb je een iOS-apparaat nodig met minimaal iOS 11. De gratis app heet ‘iSH Shell’ en is verkrijgbaar in de Apple Store. Je hoeft je ook geen zorgen te maken over in-app aankopen. De app is gemaakt als een hobbyproject en is volledig opensource. De applicatie draait op een iPad en iPhone – maar is op die laatste niet zo leuk vanwege het kleinere scherm.
Er zit niet veel franje in de app. Na het starten ervan beland je onmiddellijk op de commandline. Linux hoeft niet eerst minutenlang op te starten. Net zoals Microsoft bij het Windows Subsystem for Linux (WSL) of de ontwikkelaars van Wine het voor elkaar hebben gekregen, start iSH geen virtuele machine op, maar maakt het geëmuleerde systeemaanroepen van Linux-toepassingen.
Volgens de ontwikkelaar heeft het feit dat een x86-Linux wordt geëmuleerd op de ARM-telefoon geen negatief effect op de prestaties. Hij moest sowieso ergens een emulatielaag inbouwen, want Apple staat geen toegang tot de virtualisatietechnologie toe. De emulator, die de ontwikkelaar zelf classificeert als JIT (‘just in time compiler’), is grotendeels direct in assembler geschreven. Een gedetailleerde technische uitleg in de documentatie is nog in bewerking.
De interface is snel uit te leggen: boven het virtuele toetsenbord zitten de belangrijke toetsen voor het gebruik van de commandline. De ^ staat voor de Ctrl-toets, rechts daarvan zit de Esc-toets. Het pijlkruis kan het beste worden gebruikt met veeggebaren. Probeer niet de toets ingedrukt te houden en dan te vegen. Een veeggebaar naar boven laat daarbij dan het laatste commando uit de history zien.
Als je de app per toeval in de Store zou ontdekken en installeren, zou je op het eerste gezicht bijna denken dat hij nutteloos is. De informatie die het commando uptime laat zien, geeft echter al aan dat er meer mee kan. Je krijgt dan te zien hoe lang het iOS-apparaat al draait. Maar de eenvoudigste Linux-commando’s zoals curl worden niet gevonden en zelfs een SSH-client zit er niet in. Je kunt ook geen pakketten downloaden, want de Alpine-pakketmanager apk ontbreekt. Dat komt door Apples restrictieve beleid voor de App Store. Men vindt het bij Apple blijkbaar niet leuk als apps code willen downloaden. De poort naar de wijde wereld kan echter geopend worden met een wget-commando, dat je ook kunt vinden en kopiëren vanuit de wiki van het project op GitHub:
wget -qO- http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86/apk-tools-static-2.10.5-r1.apk | tar -xz sbin/apk.static && ./sbin/apk.static add apk-tools && rm sbin/apk.static
Daarna werkt het commando apk en kun je de meest noodzakelijke dingen binnenhalen, bijvoorbeeld:
apk add curl openssh nano
Klinkt heel mooi die rescue stick.
Om zo af en toe wat documenten te scannen met mijn canon CANOSCAN LIDE 20 moet ik altijd een oudere computer met 32 bits besturingssysteem uit de kast halen. De scanner doet het prima, maakt nog steeds goede kwaliteit scans, maar er zijn geen drivers meer voor mijn 64bits computer.
Is dit probleem ook opgelost als ik de 32 bits rescue usb stick aanmaak en gebruik, en na opstarten de software en de drivers toevoeg?
oh niet zo handig he