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 verfolgen. Danach liegt ein wie unten beschriebener standardisiert eingerichteter Edge-PC vor.
BOS basiert auf Debian 10. Das System wird automatisch eingerichtet und dabei wir unten genannt bespielt. Es wird eine Minimalkonfiguration - ohne grafische Oberfläche - vorgenommen.
Der installierte Kernel wurde anhand der Standard-Debian-Kernelquellen mit der Option “PREEMPT” neu kompiliert. Er bietet also alle Standardschnittstellen, unterstützt aber zusätzlich die Erstellung von Apps mit stabil reproduzierbarem Zeitverhalten. Damit Programmierer dies erreichen, müssen sie ihre Echtzeittasks in geeignete Scheduler verschieben (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.