This is an old revision of the document!
Brinkhaus-OS (BOS) ist eine Betriebssystemvorlage, mit der ein Embedded-PC mit einem für Brinkhaus-Projekte standardmäßig genutzten Echtzeitbetriebssystem ausgestattet werden kann.
Erreichte Ziele:
Kurzfristig noch offene Ziele:
Der mit BOS einzurichtende PC muss per DHCP mit dem Internet verbunden sein. Bevor er mit Spannung versorgt wird, muss ein von Brinkhaus gestellter USB-Stick gesteckt werden.
Schließt man den PC an Spannung an, kann man die automatische Installation beobachten. Nach Durchlauf der Installation liegt ein wie unten beschriebener Rechner vor.
BOS basiert auf Debian 10. Das System wird automatisch eingerichtet und dabei wir unten genannt bespielt. Es wird eine Minimalkonfiguration vorgenommen. Insbesondere wird keine grafische Oberfläche installiert.
Der installierte Kernel ist ein Standard-Debian-Kernel, der mit der Option “PREEMPT” kompiliert wurde. Er bietet also alle Standardschnittstellen, unterstützt aber zusätzlich die Erstellung von Apps mit stabil reproduzierbarem Zeitverhalten, solange Programmierer dafür geeignete Scheduler für ihre Echtzeitthreads wählen (insbesondere SCHED_FIFO).
Es gibt im System keine über die Standardmechanismen des Debian hinausgehenden hinausgehenden Schutzmechanismen. Insbesondere gibt es keine Trennung von Apps in einzelne Schutzbereiche. Apps werden, damit sie auf Hardware zugreifen können, als Benutzer “root” ausgeführt.
Im Auslieferungszustand gilt: es gibt zwei User: root und bos.
Beide haben das Passwort “bos1234!”. Man kann sich per SSH auf das System einloggen. Dabei ist es nicht möglich, sich direkt per SSH als root einzuloggen. Stattdessen muss ein Login als Benutzer bos erfolgen. Danach kann man per su in eine Root-Shell wechseln.
In jedem der Verzeichnisse unter /var/bos existiert ein Verzeichnis APP_NAME pro App mit APP_NAME als Namen der App.
Unter /var/bos/bin liegen drei Skripte, welche bei Servicetätigkeiten relevant sind.
Container können eine BOS-App sein. Dazu wird empfohlen, den Container als tar-File zu exportieren. Das Tar-File sollte dann mit dem Dockerfile im App-Verzeichnis platziert werden. In der run.sh ist dann als erstem Schritt ein “docker load -i” auf das tar-File auszuführen. Dann kann man per “docker-compose up” den Container starten.
Apps können per SFTP verzeichnisweise geschrieben und ausgetauscht werden. Ebenso ihre Einstellungen. Mittels der o.g. Skripte kkann die run-sh von Apps in den Status von SystemD-Diensten erhoben werden.