User Tools

Site Tools


bos:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
bos:start [2020/10/08 10:35]
brinkhaus
bos:start [2021/07/11 15:52] (current)
brinkhaus
Line 1: Line 1:
-Brinkhaus-OS (BOS) ist eine Betriebssystemvorlage,​ mit der ein Embedded-PC mit einem für Brinkhaus-Projekte standardmäßig genutzten Echtzeitbetriebssystem ausgestattet werden kann.+Brinkhaus-OS (BOS) is an operating system template that can be used to equip an embedded PC with a real-time operating system used as standard for Brinkhaus ​projects.
  
-Kurzfristige Ziele:+== Achieved goals ==
  
-  * Unterstützung des Bespielens von einem Boot-USB-Stick +  * Standardized operating system template for edge PCs 
-  * Updates von Apps und deren Einstellungen per SFTP +  * Installation using special boot USB sticks; installation as automatic sequence 
-  * Schutz des Kernsystems per Overlay-FS +  * Modified kernel supports real-time behavior of apps 
-  * Update ​per swupdate per A/B-Partitionsschema +  * Standardized equipping with apps 
-  * Ausführung von Docker-Containern+  * Separation of data/​settings/​logs supports separate backup of apps 
 +  * Boot stick creation and placement of BOS specific content on boot stick from code management; generation of boot stick image as automatic process 
 +  * Protection of the core system via write protection of the main partition 
 +  * Update ​with own installer application via A/B partition scheme
  
-== Betriebssystembasis ​==+== Initial setup ==
  
-BOS basiert auf Debian 10Das System wird automatisch eingerichtet und dabei wir unten genannt bespielt. Es wird eine Minimalkonfiguration vorgenommen. Insbesondere wird keine grafische Oberfläche installiert.+The PC to be set up with BOS must be connected to the Internet via DHCPBefore it is supplied with voltage, a USB stick provided by Brinkhaus must be inserted.
  
-Der installierte Kernel ist ein Standard-Debian-Kernelder mit der Option "​PREEMPT"​ kompiliert wurdeEr 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).+If you connect the PC to voltageyou can follow the automatic installationAfter that you will have a standardized Edge PC set up as described below.
  
-== Zugriff innerhalb des Systems ​==+== Operating system base ==
  
-Es gibt im System keine über die Standardmechanismen des Debian ​hinausgehenden hinausgehenden SchutzmechanismenInsbesondere gibt es keine Trennung von Apps in einzelne Schutzbereiche. Apps werdendamit sie auf Hardware zugreifen könnenals Benutzer ​"​root" ​ausgeführt.+BOS is based on Debian ​10The system is automatically set up and recorded as described below. A minimal configuration - without graphical user interface - is performed. 
 + 
 +The installed kernel was recompiled on the basis the standard Debian kernel sources with the option "​PREEMPT"​. It thus offers all standard interfaces, but additionally supports the creation of apps with stably reproducible timing. For programmers to achieve this, they must move their real-time tasks to suitable schedulers (in particular SCHED_FIFO). 
 + 
 +== Access within the system == 
 + 
 +There are no protections in the system beyond the standard Debian ones. In particular, there is no separation of apps into individual protection areas. Apps, so that they can access hardwareare run as user "​root"​.
  
 == Login == == Login ==
  
-Im Auslieferungszustand gilt: es gibt zwei User: //​root// ​und //bos//.+By default, there are two users: //​root// ​and //bos//
 + 
 +Both have the password "​bos1234!"​. You can log in to the system via SSH. It is not possible to log in directly via SSH as //root//. Instead you have to login as user //bos//. After that you can switch to a root shell via //su//. 
 + 
 +== Directory structure, partitioning in delivery state == 
 + 
 +  * 500MB EFI partition 
 +  * 4GB system (mounted on /) 
 +  * 4GB system (mounted on /reserve), used for updates 
 +  * no swap 
 +  * 2GB under /​var/​bos/​apps 
 +  * 2 GB under /​var/​bos/​settings 
 +  * 2 GB under /​var/​bos/​logs 
 + 
 +In each of the directories under /var/bos there is one APP_NAME directory per app with APP_NAME as the name of the app
  
-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// ​erfolgenDanach kann man per //su// in eine Root-Shell wechseln.+  * /var/bos/apps/APP_NAME: contains the actual app; at system start /var/bos/apps/APP_NAME/​run.sh is executed 
 +  * /var/bos/settings/APP_NAME: contains the settings of the app  
 +  * /​var/​bos/​logs/​APP_NAME:​ contains the logs of the app
  
-== Start von Diensten ​==+== Starting apps ==
  
-Unter /​var/​bos/​bin ​liegen drei Skripte, welche bei Servicetätigkeiten ​relevant ​sind.+Under /​var/​bos/​bin ​there are three scripts which are relevant ​for service activities.
  
-  * reInitBosApps.sh : stoppt alle zuvor von diesem Skript eingerichteten DiensteLegt hiernach pro Verzeichnis ​in /​var/​bos/​apps ​einen SystemD-Dienst im Modus "​simple" ​ander bei Hochlauf das Skript ​run.sh ​im jeweiligen Verzeichnis startet+  * reInitBosApps.sh : stops all services previously set up by this scriptCreates hereafter per directory ​in /​var/​bos/​apps ​SystemD ​service in the mode "​simple", ​which starts on startup the script ​run.sh ​in the respective directory
-  * stopBosApps.sh: ​stoppt alle mit reInitBosApps ​angelegten Dienste manuell per Aufruf an SystemD. +  * stopBosApps.sh: ​stops all services created with reInitBosApps ​manually by calling ​SystemD. 
-  * startBosApps.sh: ​startet alle mit reInitBosApps ​angelegten Dienste manuell per Aufruf an SystemD.+  * startBosApps.sh: ​starts all services created with reInitBosApps ​manually by calling ​SystemD.
  
-== Verzeichnisstruktur ​==+== Execution of containers ​==
  
-Die folgenden Verzeichnisse existieren auf dem System: +Containers can be a BOS app. For this it is recommended to export the container as a tar file. The tar file should then be placed in the app directory with the Dockerfile. The first step in run.sh is to execute a "​docker load -i" on the tar file. Then you can start the container via "​docker-compose up".
-  * /​var/​bos/​apps/​ +
-  * /​var/​bos/​settings/​ +
-  * /​var/​bos/​logs/​+
  
-In jedem Verzeichnis existiert ein Verzeichnis APP_NAME pro App mit APP_NAME als Namen der App. +== Updates of apps and their settings via SFTP ==
  
-  * /​var/​bos/​apps/​APP_NAME:​ beinhaltet die eigentliche App; bei Systemstart wird run-sh ​ausgeführt +Apps can be written and exchanged directory by directory via SFTP. Also their settings. Using the above scripts, the run-sh ​of apps can be raised to the status of SystemD services.
-  * /​var/​bos/​settings/​APP_NAME:​ beinhaltet die Einstellungen der App  +
-  * /​var/​bos/​logs/​APP_NAME:​ beinhaltet die Logs der App+
  
  
bos/start.1602153302.txt.gz · Last modified: 2020/10/08 10:35 by brinkhaus