Allgemeine Frage zu Linux Programmierung

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    entwickle aktuell eine Anwendung für den Pi. Dabei stellt sich mir die Frage, wie es die Hersteller schaffen ein Gerät zu entwickeln, das beim booten z.B. das Hersteller Logo anzeigt und danach nur eine GUI zum bedienen erscheint, also ohne einen Desktop (Taskleiste, Fenster, etc). Vor allem mit welcher Sprache und Framework diese solche Anwendungen erstellen. Man liest bei den Geräten ja nur oft das es auf Linux basiert.

    Freu mich auf eure Antworten

    Grüße
    Stefan

    Einmal editiert, zuletzt von TStefan (23. Mai 2016 um 20:51)

  • Es gibt viele Möglichkeiten.

    Der Vanilla-Linuxkernel hat ja beispielsweise bereits ein Logo eingebaut, das beim Booten angezeigt wird (es wird afair ein Pinguin pro CPU angezeigt) - viele Linuxdistributionen haben diese Kerneloption aber nicht aktiviert. Einen Splashscreen kann man sich trotzdem anzeigen lassen, zB mit dem recht verbreiteten plymouth.
    In der Vergangenheit haben Linuxdistributionen, wie zB SuSE ein paar Versionen lang einfach den Kernel so gepatcht, dass eine Grafik rund um die Textkonsole angezeigt wurde - auf die Art könnte man natürlich auch ein beliebiges Bild in den Kernel patchen, das angezeigt wird.

    Nach dem Start Programme ohne Festerrahmen, Taskleiste oder sonstiges Panel und überhaupt ohne Desktopumgebung drumherum laufen zu lassen ist nicht weiter schwierig. Im Grunde kann man das mit jeder Anwendung machen. Der X-Server, also das Programm, das für die Darstellung der grafischen Inhalte auf der Hardware zuständig ist, wird normalerweise gemeinsam mit einem grafischen Programm (einem X-Client) gestartet.
    Bei normalen Desktopumgebungen ist das eben zuerst einmal der grafische Loginmanager (Displaymanager) und später nach der Anmeldung die Desktopumgebung oder der Windowmanager, aber man könnte ein beliebiges anderes grafisches Programm starten, das dann als einziges läuft und angezeigt wird.

    Welche Frameworks, Bibliotheken,… man dafür verwendet bleibt den eigenen Vorlieben überlassen.

    Eine weitere Variante ist es ein Display zu verwenden, das vom System gar nicht als normaler Bildschirm für die Konsole oder für X verwendet wird sondern über irgendeinen anderen Treiber ansprechbar ist. Ein Beispiel dafür wären die Text-Displays mit HD44780, die man recht gerne an den I²C-Bus anschließt.
    Diese Displays zeigen überhaupt nichts an solange nicht irgendein Programm läuft, das sie anspricht und es gibt auch grafische Displays mit denen es so läuft.


    Bei fertigen Geräten ist es dagegen im Gegensatz zu Debian GNU/Linux oder anderen Linuxdistributionen oft so, dass nur wenig GNU Software mit im Spiel ist. Android wäre so ein Beispiel. Es wird ein zum Zeil sehr stark angepasster Linuxkernel verwendet und auf dem die Hersteller ihr eigenes System laufen lassen, das

    • Offizieller Beitrag

    Kommt auf die Anwendung an, meistens gilt aber so wenig wie möglich, sprich es wird nur das geladen/installiert was absolut notwendig ist. Welche Distribution aber am Ende eingesetzt wird ist vollkommen egal und hängt auch vom Entwickler ab.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Diese Frage laesst sich nicht so einfach beantworten. Programmiersprache zB ist voellig egal - worin auch immer dein Programm laeuft, das System startet das halt.

    Fuer moeglichst kurze Boot-Zeiten benutzt man build-root, damit kommst du auch auf dem PI in einstellige Sekundenbereiche - aber hast halt ein sehr rudimentaeres System. Andere brauchen da vielleicht mehr, und nutzten dann eine angepasste Distribution.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!