Diese Website benutzt Google Analytics. Bitte klicken Sie hier, um zu verhindern, dass Analytics Ihr Surfverhalten mitverfolgt. Hier klicken, um das Tracking zu unterbinden.

Sandbox FAQ

Häufig gestellte Fragen zur Sandbox

 Antworten

Was ist die Sandbox?

Kurz: ein chroot-Jail

Die Sandbox (AmE Sandkasten, Linux: geschützte Testumgebung für Programme) ist einer ''virtuellen Maschine'' ähnlich, die auf dem Gerät läuft. Sie ist ein Bereich des Geräts, für den ein Benutzer im System angelegt wurde. In diesem Bereich kann man Programme starten, Daten sammeln und Dienste anbieten, die es im System des Routers nicht gibt. In der Sandbox ist es so, als ob man sich auf einem eigenständigen Linux-PC befinden würde. Die Sandbox ist getrennt vom eigentlichen System des Routers, der deshalb ungefährdet seinen Dienst ausführen kann.

Warum gibt es die Sandbox?

Kurz: Das Gerät kann mit der Sandbox neben den eigentlichen Aufgaben weitere Aufgaben übernehmen, die sonst ein zusätzlicher Industrie-PC ausführen müsste.

Das spart Platz im Schaltschrank, Geld für nicht benötigte Hardware sowie Energie und somit auch Abwärme. Die Verbindung ins Internet oder zur Leitstelle stellt das Gerät her. Die Programme in der Sandbox nutzen diese. Die Konfiguration der Verbindung ins Internet oder zur Leitstelle wird bequem mit dem Web-Interface eingestellt.

Was ist damit möglich und wie kann ich die Verbindung herstellen?

Kurz: Möglich ist alles, wofür auf dem Gerät keine root-Rechte benötigt werden.

Das Sandbox Demo Image enthält einige Applikationen, Werkzeuge und Dienste, die dem Benutzer einen schnellen Start und die Verbindungsherstellung ermöglichen. Beispiele sind:- eigener Webserver (http://192.168.1.1:8080) - SSH-Server auf Port 2222 (Benutzer "user", Kennwort "user", per default "ssh user@192.168.1.1 -p 2222")- Telnet-Server, mögliche Grundlage für Schnittstellen zur Konfiguration- Editor "nano" zum Erstellen von Textdateien und Skripten auf dem Gerät- netcat - das "Schweizer Taschenmesser" für TCP- oder UDP-Verbindungen- curl - ein Tool zum automatischen Bedienen von Webseiten- Shell-Tools wie awk, sed oder wget zur Erstellung von Shell-Skripten - Sudoku, Nibbles und Space-Invaders-Spiel- SQL3 Datenbank- PHP – eine Interpretersprache, geeignet für Web-Programmierung

Was ist damit NICHT möglich?

Kurz: alles, wofür auf dem Gerät root-Rechte benötigt werden.

Es können keine Aktionen oder Programme ausgeführt werden, für die root-Rechte benötigt werden. Das sind z.B. raw-Verbindungen (z.B. ICMP - also "ping"). Damit ist sichergestellt, dass das Gerät bei seiner Aufgabe nicht gestört wird.

Welche Ressourcen stehen in der Sandbox zur Verfügung?

ARM9 (922T) bei 166MHz, ca. 10MB RAM, Flash: ca. 100MB + 50MB, TMPFS: 1MB

Welche Hardware-Schnittstellen stehen in der Sandbox zur Verfügung?

Kurz: serielle Schnittstelle, Ethernet der LAN-Verbindung (4-Port-Switch), WAN-Verbindung je nach Gerätevariante (LAN, GPRS, EDGE, UMTS, PSTN und ISDN).

Die serielle Schnittstelle kann der Sandbox via Web-Interface als nutzbare Resource zugeteilt werden. Damit steht sie dem Gerät als seriell-Ethernet-Gateway oder für den Anschluß eines weiteren Kommunikationsgerätes nicht zur Verfügung. Das lokale LAN sowie die WAN-Verbindung können so genutzt werden, wie für das Gerät konfiguriert. Netzwerkeinstellungen werden über dessen Web-Interface konfiguriert, nicht über die Sandbox. Je nach Konfiguration und Typ des Geräts kann auch die Sandbox auf verschiedene Arten über LAN, GPRS, EDGE, UMTS, PSTN oder ISDN kommunizieren.

Was ist ein Sandbox-Image?

Kurz: ein tar.gz mit dem Inhalt des chroot-Jails

Eine Datei, die ein mit gzip komprimiertes Tar-Archiv enthält. Das Archiv enthält praktisch die komplette Dateistruktur, die dem Benutzer später als Sandbox zur Verfügung steht. Es kann über das Web-Interface auf das Gerät geladen, gespeichert und in der Sandbox installiert werden. Das gespeicherte, nicht entpackte Image bleibt auf dem Gerät. Ein installiertes Image kann mit dem gespeicherten Image wieder überschrieben werden. So kann man z.B. im Fall eines unfreiwilligen Sich-Aussperrens aus der Sandbox jederzeit wieder einen definierten Zustand herstellen.

Wie komme ich zu einem Sandbox-Image?

Vorgefertigte Sandbox-Images können von der INSYS-Webseite http://www.insys-icom.de/sandbox geladen werden. Das Demo-Image dient der Demonstration einiger Möglichkeiten der Sandbox und beinhaltet Beispiele.

Kann ich eigene Sandbox-Images erstellen?

Ja. Ein Sandbox-Image ist ein komprimiertes Archiv. Weitere Images können selbst erstellt werden. Diese Images können andere Programme, Skripte und Dateien enthalten als die Sandbox-Images von INSYS.

Wie kann ich eigene Sandbox-Images erstellen?

Kurz: Ein Sandbox-Image "sandbox_Name.tar.gz" (Name="small" oder "demo_datum") von INSYS herunterladen, entpacken, modifizieren und mit "tar -zcvf" wieder komprimieren.

Der Inhalt eines Sandbox-Images ist äußerst variabel gestaltbar. Um einen ersten Eindruck zu bekommen, entpacken Sie ein Beispiel-Sandbox-Image von INSYS um dessen Inhalt anzusehen. Wichtig dabei ist zu wissen, dass der Inhalt der Sandbox unter Linux laufen wird. Es ist also erforderlich, dass die Dateiparameter, wie z.B. die Rechte, erhalten bleiben. Ein Sandbox-Image, das z.B. unter Windows auf einem VFAT-partitioniertem Dateisystem entpackt, verändert und wieder gepackt wird, wird wahrscheinlich nutzlos sein, weil die im Image enthaltenen Dateien nicht mehr ausführbar sein werden. Für ausführlichere Instruktionen siehe Tutorial Eigenes "Sandbox Image erstellen".

Kann ich die installierte Sandbox dauerhaft verändern, ohne ein neues Sandbox-Image zu erstellen?

Ja, für individuelle Anpassungen einzelner Geräte muss nicht jedesmal ein neues Sandbox-Image erstellt werden. Das installierte Sandbox-Image wird nur überschrieben, wenn dies auf dem Web-Interface des Geräts veranlasst wird. Manuelle Veränderungen können durchgeführt werden, indem man sich z.b. über ssh auf das Gerät einloggt. Die Möglichkeiten dazu sind davon abhängig, welche Werkzeuge in der installierten Sandbox dazu zur Verfügung stehen. In dem von INSYS angeboten Sandbox-Image stehen die Tools wget und ftp bereit. Der Benutzer kann sich auf die Sandbox einloggen und mit wget oder ftp Dateien von HTTP- oder FTP-Servern aus dem lokalen LAN laden und speichern. Eine weitere Möglichkeit ist es, Dateien mit Tools wie scp an die Sandbox zu senden.

Kann ich eigene Programme für die Sandbox programmieren?

Ja! Die Möglichkeiten dafür sind äußerst vielfältig. Mit dem von INSYS angebotenen Sandbox-Image können ohne weitere Mittel eigene Shell-Programme programmiert werden. Die Möglichkeiten der Shell gehen oft weiter, als man sich vorstellt. Im Internet gibt es Programme, die sogar einen HTTP-Server implementieren. Welche Programme laufen, ist vom Inhalt der Sandbox abhängig.

Mit welchen Programmiersprachen kann ich eigene Programme schreiben?

Das hängt vom Inhalt der Sandbox ab. Das von INSYS angebotene Sandbox-Image erlaubt die sofortige Nutzung von Skripten der installierten Shell ash. Programme in C oder C++ sind realisierbar, indem das von INSYS bereit gestellte Software Development Kit der Firma Denx (http://www.denx.de) benutzt wird. Die Installation ist einfach zu bewerkstelligen. Innerhalb weniger Minuten kann das erste "Hello World"-Programm in C programmiert, kompiliert und in der Sandbox gestartet werden. Weitere Informationen sowie eine Installationsanleitung siehe Tutorial "SDK Installation" und Tutorial "Hello World compilieren". Es können auch andere Programmiersprachen verwendet werden. Voraussetzung hierfür ist, dass die entsprechenden Bibliotheken oder Interpreter in der Sandbox zur Verfügung stehen und dass der Resourcenbedarf die zur Verfügung stehenden Mittel nicht überschreitet. Es spricht also nichts dagegen, auch Sprachen wie z.B. Perl oder Python in der Sandbox zu nutzen.

Was ist beim Programmieren für die Sandbox wichtig?

Dem Entwickler sollte bewusst sein, dass er sich auf einem embedded Device mit limitierten Ressourcen befindet. Das bedeutet:- RAM ist begrenzt- dauerhafter Speicher (Flash) ist relativ langsam- Rechenleistung ist begrenzt

Die Auslastung der Ressourcen für die Sandbox-Funktionalität dürfen die Kommunikationsfunktionalitäten des Routers nicht beeinflussen. Im Extremfall wird das Gerät durch die internen Watchdogs neu gestartet. Wie viel Ressourcen hierbei für die Sandbox-Funktionalität zur Verfügung stehen, ist stark von der Art abhängig, wie andere Funktionalitäten genutzt werden.

Wenn Programme dauerhaft in Geräten im Feld eingesetzt werden, empfiehlt es sich, vorher extensiv zu testen und den Ressourcenverbrauch mit den Standardtools "df" und "free" zu kontrollieren.

Kann ich aus der Sandbox SMS oder E-Mails versenden?

SMS-Versand: Ja, wenn das Gerät über ein Kommunikationsgerät verfügt, das SMS versenden kann (Modem/ISDN/GPRS/EDGE/UMTS). In der Sandbox gibt es das Verzeichnis /var/spool/sms, das vom Gerät jede Minute einmal überprüft wird. Wird in dem Verzeichnis eine Datei gefunden, wird sie interpretiert. Die erste Zeile enthält die Rufnummer des Empfängers, die zweite Zeile den SMS-Text (bis zu 140 Zeichen). E-Mail: Ja, hierzu steht das im Sandbox Demo Image enthaltene Tool "email" zur Verfügung.

Wenn ich nur vorgefertigte Images nutzen will, brauche ich dann das Software Development Kit?

Nein, das SDK für embedded Linux benötigt man nur, wenn man eigene C-Programme kompilieren möchte. Für das Zusammenstellen eigener Images ein bestehendes Sandbox-Image auf einem Linux-PC entpacken, verändern und wieder packen.

Wie sperre ich mich am besten aus der Sandbox aus (bzw. was muss ich beachten, um es nicht zu tun)?

Wie man sich aussperren kann, hängt von der Funktionalität der Sandbox ab. Wenn man keinen Server in der Sandbox laufen lassen kann, bei dem man sich einloggen kann (keinen SSH-Server oder Telnet-Server installiert), kann man sich nicht einloggen. Die Möglichkeiten, sich auszusperren, hängen auch von der Funktionsfähigkeit des installierten Sandbox-Images ab.

Was muss ich beachten, falls das Gerät über internen Watchdog neu gestartet würde?

Nichts. Wenn der Watchdog auslöst, dann startet das Gerät neu.

Welche Vergleichswerte gibt es zum Ressourcenverbrauch der Sandbox?

Prinzipiell kann man sich an den Resourcen orientieren, die die Beispiel-Images von INSYS verbrauchen. Einzelne Funktionen wie z.B. das Updaten der Firmware erfordern mindestens 5 MByte freies RAM. Deshalb wird die Sandbox während eines Updates der Gerätefirmware immer automatisch deaktiviert. Mindestens 3 MByte RAM sollten immer frei sein. Wenn der Flash-Speicher voll geschrieben ist, kann man nur einzelne Dateien wieder löschen. Von den Applikationen in der Sandbox hängt es ab, ob sie weiter im RAM schreiben, wenn der Flash-Speicher belegt ist.

Was würde passieren, wenn das Gerät dauerhaft zu wenig Ressourcen hätte?

Wegen dauerhaft mangelnden Ressourcen würde das Gerät ständig neu starten (Watchdog würde ständig auslösen). Schlecht wäre, wenn man in der Zwischenzeit keine Möglichkeit hätte, die Sandbox zu deaktivieren.

Woher bekomme ich das Prüfsummen-Programm "md5sum" und die Konsole "PuTTY"?

Beide gibt es als kostenlosen Download im Internet. "PuTTY" wird in einer Linux-Umgebung nicht gebraucht. "Md5sum" ist im Beispiel-Image.

Wo finde ich Informationen über die Linux-Syntax (ls statt dir)?

Die in den INSYS Sandbox Images hinterlegten Programme sind Standardprogramme. Information über die meisten kann man auf jedem Linux-PC nachschlagen mit # man. In der Regel wird man von den Programmen auf falsche Syntax hingewiesen. Es gibt umfangreiche Literatur über die Shell, auch im Internet.

 Unsere neue Website

Überzeuge Sie sich von unserer Leidenschaft für professionelle IoT- und M2M-Datenkommunikation. 
Wir freuen uns auf Sie!

Sandbox Tutorial
Hilfreiche Informationen zur Installation und Programmierung eigener Skripte und Programme