BrowserBoot

Aus LaborWiki
Version vom 30. Mai 2015, 15:33 Uhr von Julijane (Diskussion | Beiträge) (.)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
     
BrowserBoot

Release status: experimental [box doku]

Description Linux-Adaption für browserbasierte Anwendungen
Author(s)  julijane
Last Version  n/a ()
License  GPL u.a.




Das Problem

Im Rahmen der Entwicklung des InfoScreen wie auch des Kassensystem hat sich gezeigt, dass sich viele einfache Anwendungen mit GUI sehr schön als "Webanwendung" in HTML, CSS und JavaScript entwickeln lassen. Schwachstellen sind allerdings mangelnde externe Schnittstellen (z.B. zur Anbindung eines Barcode-Scanners, eines RFID-Lesers u.ä.). In den bestehenden Projekten wurde hier bislang eine Tastatureingabe simuliert. Dies ist allerdings eher ein Hack und störanfällig.

Zudem ist die derzeit verwendete Installation nicht besonders schön. Es handelt sich um ein krude modifiziertes Debian Linux (welches dann read-only läuft) und ein paar Tricks um Google Chrome zum Laufen zu bringen (Profil welches auf eine Ramdisk entpackt wird etc.).

BrowserBoot soll eine saubere Basis bieten um solcherlei Anwendungen/Geräte aufsetzen zu können

Der Plan

  • TinyCore Linux als Basis
    • http://distro.ibiblio.org/tinycorelinux/welcome.html
    • TinyCore bietet eine extrem schlanke Basis, ein komplettes X (XVesa-Treiber) mit Window-Manager kommt in 12 MB.
    • TinyCore bootet in eine Ramdisk.
    • Erweiterungen (zusätzliche Anwendungen, Bibliotheken) werden als SquashFS-Dateisystem gespeichert und beim Boot gemounted. Wahlweise kann das System diese dann auf die Ramdisk kopieren oder auch nur Symlinks erzeugen. Letzteres schon den Ramverbrauch.
    • Es ist möglich ein Archiv mitzugeben, welches am Ende über das Resultat ausgepackt wird. Auf diese Weise können Modifikationen vorgenommen werden ohne die Basis zu verändern.
    • TinyCore enthält bereits (optional) uzbl (siehe unten).
  • uzbl als Browser
    • uzbl basiert auf Webkit.
    • In der einfachsten Variante stellt uzbl nur ein "dummes" Browser-Fenster da.
    • uzbl hat eine leistungsfähige Schnittstelle zur Aussenwelt, über das z.B. Events eingeschleust werden können oder auch Werte herausgeholt werden können. Das macht es ideal für den Anwendungszweck hier, da so externe Software einfach Events erzeugen kann.

Status

  • 2013/05/02: Zwischenzeitlich ein vollständiges und angepasstes auf TinyCore basiertes Image entwickelt, welches direkt in uzbl lädt. Läuft in VirtualBox einwandfrei, auf realer Hardware hakt es noch. Es wird.
  • 2012/11/06: Mit TinyCore ein wenig experimentiert, verstanden wie Modifikationen vorgenommen werden müssen.