Moja mobilna wersja emulatora komputera PC napisanego w Javascript – z uruchomionym w pełni funkcjonalnym systemem Linux.
Emulator można uruchomić offline w trybie pełnoekranowym na urządzeniach z iOS, jak i Android, w dowolnej przeglądarce WWW. Dla uzyskania trybu pełnoekranowego otwórz poniższy link w przeglądarce Safari i wybierz opcję „Dodaj do ekranu początkowego”. W Twoich aplikacjach zostanie utworzona nowa ikona.
Na tak podstawowym Linuxie można uczyć się podstaw programowania w C, bash, obsługi awk i sed, utworzyć pseudo-sieć (ponieważ ta wersja emulatora nie pozwala Linuxowi na połączenie z Internetem) i poznać ponad 300 podstawowych poleceń Linuxa dzięki Busybox.
Apple nie pozwala na emulację sprzętową w iOS – w AppStore brak takiego oprogramowania, przerobiłem więc doskonały emulator autorstwa Fabrice Bellarda (za jego pozwoleniem) tak, by poprawnie współpracował z klawiaturami bluetooth urządzeń iOS (stosując kilka javascriptowych trików). Emulator jest uruchamiany w zwykłych przeglądarkach WWW. To wszystko w trybie pełnoekranowym emulującym równocześnie nowoczesne terminale – odpowiednie czcionki i wygląd okna.
Domyślny preset jest przeznaczony dla iPada z klawiaturą bluetooth, ale można zmieniać wygląd aplikacji wg własnych preferencji. Każda zmiana ustawień będzie zapisana w cookies i zapamiętana.
Emulator można wykorzystywać również na komputerach stacjonarnych i laptopach. Uczelnie otrzymują szybkie środowisko do nauki programowania w C z pełnym dostępem do systemu plików (rezydującego w RAMie). Uwaga: w niektórych przeglądarkach strzałki w klawiaturze bluetooth nie są obsługiwane – w edytorze VI można przemieszczać się wtedy klawiszami e,h,j,k,l. Więcej informacji na ten temat można uzyskać w pomocy edytora VI.
Kod JSLinux Mobile jest dostępny na stronie projektu w serwisie .
Przykładowe presety:
W filmie poniżej przedstawiam możliwości emulatora w połączeniu z iPadem Mini Retina i klawiaturą bluetooth.
Aby emulator był dostępny w systemie iOS w trybie offline, należy pobrać pełne archiwum JSLinux Mobile z GitHuba, zainstalować w iOS bezpłatną aplikację inuX, uruchomić ją i wpisać ftpd. Następnie za pomocą programu FileZilla połączyć się z tak utworzonym na iOS serwerem FTP i przegrać archiwum jslinux-mobile do podkatalogu etc. Po rozłączeniu z Internetem w inuX wpisać httpd, a następnie w Safari otworzyć stronę: http://localhost/etc/jslinux-mobile/index.html i wybrać opcję „Dodaj do ekranu początkowego”. Następnie należy uruchomić JSLinux z ikony w ekranie aplikacji, szybko powrócić do programu inuX i odczekać minutę. Po powrocie do aplikacji JSLinux będzie już uruchomiony. Proste? ;)
# Chroot @ JSLinux Mobile
echo „tmpfs /mnt tmpfs defaults,size=5M 0 0” >> /etc/fstab
mount -a
df -h
mkdir -p /mnt/bin /mnt/lib
ldd /bin/busybox
cp /lib/libm.* /mnt/lib
cp /lib/libc.* /mnt/lib
cp /lib/ld-uClibc.* /mnt/lib
cp /bin/busybox /mnt/bin
/mnt/bin/busybox –install /mnt/bin
chroot /mnt
ls
cal -y
mkdir /home /etc /root
touch /etc/group
echo „root:!:0:0:root:/root:/bin/sh” > /etc/passwd
passwd
cat /etc/passwd
adduser username
cat /etc/passwd
cat /etc/group
login username
pwd
whoami
exit
exit
ls /
cat /etc/passwd