Beruflich Dokumente
Kultur Dokumente
13 — 01 — 2009
Sören Wellhöfer
OpenSource
Hard- und Software
Nano-X
Unix
Quellen
Gliederung
1 OpenSource
3 Nano-X
4 Unix
5 Quellen
Sören Wellhöfer Embedded Linux mit Nano-X - Open Frame Smart Panel (OFSP
OpenSource
Vorteile
• Geringe Kosten
• OpenSource-Community
Vorteile
• Geringe Kosten
• OpenSource-Community
• Stabilität von
Source-Code
Vorteile
• Geringe Kosten
• OpenSource-Community
• Stabilität von
Source-Code
• Source-
Wiederverwertung
Vorteile
• Geringe Kosten
• OpenSource-Community
• Stabilität von
Source-Code
• Source-
Wiederverwertung
• Unterstützung
Vorteile
• Geringe Kosten
• OpenSource-Community
• Stabilität von
Source-Code
• Source-
Wiederverwertung
• Unterstützung
• Keine
Lizenz-Gebundenheit
Vorteile
• Geringe Kosten
• OpenSource-Community
• Stabilität von
Source-Code
• Source-
Wiederverwertung
• Unterstützung
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community
• Stabilität von
Source-Code
• Source-
Wiederverwertung
• Unterstützung
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von
Source-Code
• Source-
Wiederverwertung
• Unterstützung
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source-
Wiederverwertung
• Unterstützung
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source- • Hardware-Unterstützung
Wiederverwertung
• Unterstützung
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source- • Hardware-Unterstützung
Wiederverwertung • Lizenzen
• Unterstützung
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source- • Hardware-Unterstützung
Wiederverwertung • Lizenzen
• Unterstützung
• Keine Garantie
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source- • Hardware-Unterstützung
Wiederverwertung • Lizenzen
• Unterstützung
• Keine Garantie
• Keine
Lizenz-Gebundenheit
• Keine
Maintainance-Kosten
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source- • Hardware-Unterstützung
Wiederverwertung • Lizenzen
• Unterstützung
• Keine Garantie
• Keine
Lizenz-Gebundenheit There is NO warranty; not
”
• Keine even for
Maintainance-Kosten MERCHANTABILITY or
FITNESS FOR A
PARTICULAR PURPOSE.“
Vorteile Nachteile
• Geringe Kosten • Kein Support
• OpenSource-Community • Konkurrenz / Ausnutzung
• Stabilität von • Einarbeitung / Umstieg
Source-Code
• Source- • Hardware-Unterstützung
Wiederverwertung • Lizenzen
• Unterstützung
• Keine Garantie
• Keine
Lizenz-Gebundenheit There is NO warranty; not
”
• Keine even for
Maintainance-Kosten MERCHANTABILITY or
FITNESS FOR A
PARTICULAR PURPOSE.“
GNU General Public License
• Starkes Copyleft
Eingebettete Software“
”
• Hardware-speziell und -restriktiv
Eingebettetes System“
”
• Technischer Kontext
• Steuern, Regeln, Überwachen
• In PKWs, TVs, DVD-Playern, Handys, ...
Eingebettete Software“
”
• Hardware-speziell und -restriktiv
• Aufgaben-spezifisch
Eingebettetes System“
”
• Technischer Kontext
• Steuern, Regeln, Überwachen
• In PKWs, TVs, DVD-Playern, Handys, ...
Eingebettete Software“
”
• Hardware-speziell und -restriktiv
• Aufgaben-spezifisch
=⇒ Nicht-universell
Eingebettetes System“
”
• Technischer Kontext
• Steuern, Regeln, Überwachen
• In PKWs, TVs, DVD-Playern, Handys, ...
Eingebettete Software“
”
• Hardware-speziell und -restriktiv
• Aufgaben-spezifisch
=⇒ Nicht-universell
Eingebettetes Betriebssystem“
”
• Kompakte, kleine und effiziente Echtzeit-Betriebssysteme
• Steueraufgaben: Programme
Eingebettetes Betriebssystem“
”
• Kompakte, kleine und effiziente Echtzeit-Betriebssysteme
• Steueraufgaben: Programme
=⇒ Universell und Integrierbar
Eingebettetes Betriebssystem“
”
• Kompakte, kleine und effiziente Echtzeit-Betriebssysteme
• Steueraufgaben: Programme
=⇒ Universell und Integrierbar
Windows Embedded
• Support
Embedded Linux
Windows Embedded
• Support
• Hardware-Unterstützung
Embedded Linux
Windows Embedded
• Support
• Hardware-Unterstützung
• OEM-Versionen
Embedded Linux
Windows Embedded
• Support
• Hardware-Unterstützung
• OEM-Versionen
Embedded Linux
• Optimierbar
Windows Embedded
• Support
• Hardware-Unterstützung
• OEM-Versionen
Embedded Linux
• Optimierbar
• Viele Architekturen
Windows Embedded
• Support
• Hardware-Unterstützung
• OEM-Versionen
Embedded Linux
• Optimierbar
• Viele Architekturen
• Kernel-Modularität
Windows Embedded
• Support
• Hardware-Unterstützung
• OEM-Versionen
Embedded Linux
• Optimierbar
• Viele Architekturen
• Kernel-Modularität
• OpenSource Tools
Windows Embedded
• Support
• Hardware-Unterstützung
• OEM-Versionen
Embedded Linux
• Optimierbar
• Viele Architekturen
• Kernel-Modularität
• OpenSource Tools
Open Frame Smart Panel
• 64 MB SDRAM, 32 MB Flash
Open Frame Smart Panel
• 64 MB SDRAM, 32 MB Flash
• 64 MB SDRAM, 32 MB Flash
• 1 x USB
• 64 MB SDRAM, 32 MB Flash
• 1 x USB
• 64 MB SDRAM, 32 MB Flash
• 1 x USB
Original-Quelltext
Mozilla Public License
• Schwaches Copyleft • Derivate auch MPL
Originalautor
Original-Quelltext
Mozilla Public License
• Schwaches Copyleft • Derivate auch MPL
Originalautor
Original-Quelltext OpenSource
Mozilla Public License
• Schwaches Copyleft • Derivate auch MPL
Originalautor
Original-Quelltext OpenSource
Originalautor
Original-Quelltext OpenSource
Neuentwicklungen
Originalautor
Original-Quelltext OpenSource
Neuentwicklungen ClosedSource
Originalautor
Original-Quelltext OpenSource
Proprietär
Neuentwicklungen ClosedSource
Originalautor
Original-Quelltext OpenSource
Proprietär
Neuentwicklungen ClosedSource
Nano-X API
• Client/Server
• Ressourceneffizient
• X11 Entwicklungsumgebung
Advanced Programmer’s Interfaces
Nano-X API
• Client/Server
• Ressourceneffizient
• X11 Entwicklungsumgebung
• Erweiterungen
Advanced Programmer’s Interfaces
Graphische Kontexte
Graphische Kontexte
Ereignisse
• Ereignisschlange
( Event queue“)
”
• Ereignisstruktur für
Ereignistypen
Kernkonzepte Nano-X API
Ereignisse
• Ereignisschlange
( Event queue“)
”
• Ereignisstruktur für
Ereignistypen
• Polymorpher C-Union
Typ GR EVENT
Kernkonzepte Nano-X API
• Ereignisschlange
( Event queue“)
”
• Ereignisstruktur für
Ereignistypen
• Polymorpher C-Union
Typ GR EVENT
} GR_EVENT;
Kernkonzepte Nano-X API
• Ereignisschlange /* Ereignistyp */
( Event queue“) GR_EVENT_TYPE type;
”
• Ereignisstruktur für
Ereignistypen
• Polymorpher C-Union
Typ GR EVENT
} GR_EVENT;
Kernkonzepte Nano-X API
• Ereignisschlange /* Ereignistyp */
( Event queue“) GR_EVENT_TYPE type;
”
/* Ereignisstrukturen */
• Ereignisstruktur für
...
Ereignistypen
GR_EVENT_BUTTON button;
GR_EVENT_MOUSE mouse;
• Polymorpher C-Union GR_EVENT_EXPOSURE ex;
Typ GR EVENT ...
} GR_EVENT;
Kernkonzepte Nano-X API
• Ereignisschlange /* Ereignistyp */
( Event queue“) GR_EVENT_TYPE type;
”
/* Ereignisstrukturen */
• Ereignisstruktur für
...
Ereignistypen
GR_EVENT_BUTTON button;
GR_EVENT_MOUSE mouse;
• Polymorpher C-Union GR_EVENT_EXPOSURE ex;
Typ GR EVENT ...
} GR_EVENT;
Kernkonzepte Nano-X API
GR EVENT EXPOSURE
• Bei Fenster-Sichtbarkeit • (Neu)zeichnen von Inhalten
Kernkonzepte Nano-X API
GR EVENT EXPOSURE
• Bei Fenster-Sichtbarkeit • (Neu)zeichnen von Inhalten
typedef struct {
} GR_EVENT_EXPOSURE;
Kernkonzepte Nano-X API
GR EVENT EXPOSURE
• Bei Fenster-Sichtbarkeit • (Neu)zeichnen von Inhalten
typedef struct {
/* Ereignistyp = GR_EVENT_TYPE_EXPOSURE */
GR_EVENT_TYPE type;
} GR_EVENT_EXPOSURE;
Kernkonzepte Nano-X API
GR EVENT EXPOSURE
• Bei Fenster-Sichtbarkeit • (Neu)zeichnen von Inhalten
typedef struct {
/* Ereignistyp = GR_EVENT_TYPE_EXPOSURE */
GR_EVENT_TYPE type;
/* Sichtbarkeits - Informationen */
GR_WINDOW_ID wid;
GR_COORD x, y;
GR_SIZE width, height;
} GR_EVENT_EXPOSURE;
Kernkonzepte Nano-X API
GR EVENT EXPOSURE
• Bei Fenster-Sichtbarkeit • (Neu)zeichnen von Inhalten
typedef struct {
/* Ereignistyp = GR_EVENT_TYPE_EXPOSURE */
GR_EVENT_TYPE type;
/* Sichtbarkeits - Informationen */
GR_WINDOW_ID wid;
GR_COORD x, y;
GR_SIZE width, height;
} GR_EVENT_EXPOSURE;
Ereignisschleife ( Event loop“)
”
/* Deklarationen */
GR_WINDOW_ID fenster;
GR_EVENT ereignis;
Ereignisschleife ( Event loop“)
”
/* Deklarationen */
GR_WINDOW_ID fenster;
GR_EVENT ereignis;
/* Ereignisschleife */
for(;;) {
}
Ereignisschleife ( Event loop“)
”
/* Deklarationen */
GR_WINDOW_ID fenster;
GR_EVENT ereignis;
/* Ereignisschleife */
for(;;) {
/* Nächstes Ereignis */
GrGetNextEvent(&ereignis);
}
Ereignisschleife ( Event loop“)
”
/* Deklarationen */
GR_WINDOW_ID fenster;
GR_EVENT ereignis;
/* Ereignisschleife */
for(;;) {
/* Nächstes Ereignis */
GrGetNextEvent(&ereignis);
if (ereignis.type == GR_EVENT_TYPE_EXPOSURE)
{ /* Zeichenroutinen */ }
}
Ereignisschleife ( Event loop“)
”
/* Deklarationen */
GR_WINDOW_ID fenster;
GR_EVENT ereignis;
/* Ereignisschleife */
for(;;) {
/* Nächstes Ereignis */
GrGetNextEvent(&ereignis);
if (ereignis.type == GR_EVENT_TYPE_EXPOSURE)
{ /* Zeichenroutinen */ }
else if ...
}
Ereignisschleife ( Event loop“)
”
/* Deklarationen */
GR_WINDOW_ID fenster;
GR_EVENT ereignis;
/* Ereignisschleife */
for(;;) {
/* Nächstes Ereignis */
GrGetNextEvent(&ereignis);
if (ereignis.type == GR_EVENT_TYPE_EXPOSURE)
{ /* Zeichenroutinen */ }
else if ...
}
Serielle Schnittstelle
und Unix
Weiblicher RS232 DB09 Connector
Senden
/dev/tts/0 /dev/tts/1
/* 4 Bytes an /dev/tts/1 */
write(f2, buffer, 4);
Senden
/dev/tts/0 /dev/tts/1
/* 4 Bytes an /dev/tts/1 */
write(f2, buffer, 4);
Embedded Linux + Nano-X = Alternative ... ?
Zusammenfassung
• Lizenzmodelle
Embedded Linux + Nano-X = Alternative ... ?
Zusammenfassung
• Lizenzmodelle
• Kostengünstig
Embedded Linux + Nano-X = Alternative ... ?
Zusammenfassung
• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
Embedded Linux + Nano-X = Alternative ... ?
Zusammenfassung
• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
• Möglichkeiten
Embedded Linux + Nano-X = Alternative ... ?
Zusammenfassung
• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
• Möglichkeiten
• Graphisches
Embedded Linux + Nano-X = Alternative ... ?
Zusammenfassung
• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
• Möglichkeiten
• Graphisches
• GNU/Linux
Embedded Linux + Nano-X = Alternative ... ?
Zusammenfassung
• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
• Möglichkeiten
• Graphisches
• GNU/Linux
Embedded Linux + Nano-X = Alternative ... ?
Zusammenfassung
• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
• Möglichkeiten
• Graphisches
• GNU/Linux
Embedded Linux + Nano-X = Alternative ... ?
Zusammenfassung
• Lizenzmodelle
• Kostengünstig
• Ungebundenheit
• Möglichkeiten
• Graphisches
• GNU/Linux
[http://www.microwindows.org]
The Official Microwindows Website
Greg Haerr (greg@censoft.com), 05.01.2009
[http://www.ultratronik.de/linux.html]
Ultratronik Linux Distribution
Ultratronik GmbH, 06.01.2009
[http://embedded.centurysoftware.com/docs/nx]
Century Embedded Technologies Nano-X SDK and
Developer’s Guide
Century Software, 04.01.2009
[http://www.webadventures.au]
WebAdventures – Find your place on the web
Heath L’Estrange, 03.01.2009
Embedded Linux
Open Frame Smart Panel (OFSP) von Ultratronik
mit Nano-X
für analytische Geräte
13 — 01 — 2009
Sören Wellhöfer