121
Embedded Linux Open Frame Smart Panel (OFSP) von Ultratronik mit Nano-X ur analytische Ger¨ ate 13 — 01 — 2009 oren Wellh¨ ofer

Embedded Linux with Nano-X

Embed Size (px)

DESCRIPTION

This is a professional PDFLaTeX Presentation focusing on the key concepts derived in a paper of mine. Therein, I make the case that OpenSource Software, mainly GNU/Linux in connection with the flexible windowing environment Nano-X, is a good alternative for Embedded Systems used on certain analytic instruments. The Open Frame Smart Panel from Ultratronik is introduced as a sample hardware solution of choice.

Citation preview

Page 1: Embedded Linux with Nano-X

Embedded LinuxOpen Frame Smart Panel (OFSP) von Ultratronik

mit Nano-Xfur analytische Gerate

13—01—2009

Soren Wellhofer

Page 2: Embedded Linux with Nano-X

OpenSourceHard- und Software

Nano-XUnix

Quellen

Gliederung

1 OpenSource

2 Hard- und Software

3 Nano-X

4 Unix

5 Quellen

Soren Wellhofer Embedded Linux mit Nano-X - Open Frame Smart Panel (OFSP) von Ultratronik fur analytische Gerate

Page 3: Embedded Linux with Nano-X

OpenSource

Page 4: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community

• Stabilitat vonSource-Code

• Source-Wiederverwertung

• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 5: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code

• Source-Wiederverwertung

• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 6: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code• Source-

Wiederverwertung

• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 7: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code• Source-

Wiederverwertung• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 8: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code• Source-

Wiederverwertung• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 9: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code• Source-

Wiederverwertung• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 10: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code• Source-

Wiederverwertung• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 11: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code• Source-

Wiederverwertung• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 12: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code• Source-

Wiederverwertung• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 13: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code• Source-

Wiederverwertung• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 14: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code• Source-

Wiederverwertung• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 15: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code• Source-

Wiederverwertung• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 16: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code• Source-

Wiederverwertung• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 17: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code• Source-

Wiederverwertung• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 18: Embedded Linux with Nano-X

Vorteile

• Geringe Kosten

• OpenSource-Community• Stabilitat von

Source-Code• Source-

Wiederverwertung• Unterstutzung

• KeineLizenz-Gebundenheit

• KeineMaintainance-Kosten

Nachteile

• Kein Support

• Konkurrenz / Ausnutzung

• Einarbeitung / Umstieg

• Hardware-Unterstutzung

• Lizenzen

• Keine Garantie

”There is NO warranty; not

even forMERCHANTABILITY orFITNESS FOR APARTICULAR PURPOSE.“

Page 19: Embedded Linux with Nano-X

GNU General Public License

• Starkes Copyleft

• Software-Derivate unter GPL

• Garantiert”Freiheit von Software“

”Free as in Freedom“

• 4 Grund-Freiheiten:

1 Ausfuhren

2 Anpassen

3 Verteilen

4 Verbessern

Quelltextjedem

zuganglich!

Page 20: Embedded Linux with Nano-X

GNU General Public License

• Starkes Copyleft

• Software-Derivate unter GPL

• Garantiert”Freiheit von Software“

”Free as in Freedom“

• 4 Grund-Freiheiten:

1 Ausfuhren

2 Anpassen

3 Verteilen

4 Verbessern

Quelltextjedem

zuganglich!

Page 21: Embedded Linux with Nano-X

GNU General Public License

• Starkes Copyleft

• Software-Derivate unter GPL

• Garantiert”Freiheit von Software“

”Free as in Freedom“

• 4 Grund-Freiheiten:

1 Ausfuhren

2 Anpassen

3 Verteilen

4 Verbessern

Quelltextjedem

zuganglich!

Page 22: Embedded Linux with Nano-X

GNU General Public License

• Starkes Copyleft

• Software-Derivate unter GPL

• Garantiert”Freiheit von Software“

”Free as in Freedom“

• 4 Grund-Freiheiten:

1 Ausfuhren

2 Anpassen

3 Verteilen

4 Verbessern

Quelltextjedem

zuganglich!

Page 23: Embedded Linux with Nano-X

GNU General Public License

• Starkes Copyleft

• Software-Derivate unter GPL

• Garantiert”Freiheit von Software“

”Free as in Freedom“

• 4 Grund-Freiheiten:

1 Ausfuhren

2 Anpassen

3 Verteilen

4 Verbessern

Quelltextjedem

zuganglich!

Page 24: Embedded Linux with Nano-X

Hard- und Software

Page 25: Embedded Linux with Nano-X

”Eingebettetes System“

• Technischer Kontext

• Steuern, Regeln, Uberwachen

• In PKWs, TVs, DVD-Playern, Handys, ...

”Eingebettete Software“

• Hardware-speziell und -restriktiv

• Aufgaben-spezifisch

=⇒ Nicht-universell

Page 26: Embedded Linux with Nano-X

”Eingebettetes System“

• Technischer Kontext

• Steuern, Regeln, Uberwachen

• In PKWs, TVs, DVD-Playern, Handys, ...

”Eingebettete Software“

• Hardware-speziell und -restriktiv

• Aufgaben-spezifisch

=⇒ Nicht-universell

Page 27: Embedded Linux with Nano-X

”Eingebettetes System“

• Technischer Kontext

• Steuern, Regeln, Uberwachen

• In PKWs, TVs, DVD-Playern, Handys, ...

”Eingebettete Software“

• Hardware-speziell und -restriktiv

• Aufgaben-spezifisch

=⇒ Nicht-universell

Page 28: Embedded Linux with Nano-X

”Eingebettetes System“

• Technischer Kontext

• Steuern, Regeln, Uberwachen

• In PKWs, TVs, DVD-Playern, Handys, ...

”Eingebettete Software“

• Hardware-speziell und -restriktiv

• Aufgaben-spezifisch

=⇒ Nicht-universell

Page 29: Embedded Linux with Nano-X

”Eingebettetes System“

• Technischer Kontext

• Steuern, Regeln, Uberwachen

• In PKWs, TVs, DVD-Playern, Handys, ...

”Eingebettete Software“

• Hardware-speziell und -restriktiv

• Aufgaben-spezifisch

=⇒ Nicht-universell

Page 30: Embedded Linux with Nano-X

”Eingebettetes Betriebssystem“

• Kompakte, kleine und effiziente Echtzeit-Betriebssysteme

• Steueraufgaben: Programme

=⇒ Universell und Integrierbar

Page 31: Embedded Linux with Nano-X

”Eingebettetes Betriebssystem“

• Kompakte, kleine und effiziente Echtzeit-Betriebssysteme

• Steueraufgaben: Programme

=⇒ Universell und Integrierbar

Page 32: Embedded Linux with Nano-X

”Eingebettetes Betriebssystem“

• Kompakte, kleine und effiziente Echtzeit-Betriebssysteme

• Steueraufgaben: Programme

=⇒ Universell und Integrierbar

Page 33: Embedded Linux with Nano-X

Windows Embedded

• Support

• Hardware-Unterstutzung

• OEM-Versionen

Embedded Linux

• Optimierbar

• Viele Architekturen

• Kernel-Modularitat

• OpenSource Tools

Page 34: Embedded Linux with Nano-X

Windows Embedded

• Support

• Hardware-Unterstutzung

• OEM-Versionen

Embedded Linux

• Optimierbar

• Viele Architekturen

• Kernel-Modularitat

• OpenSource Tools

Page 35: Embedded Linux with Nano-X

Windows Embedded

• Support

• Hardware-Unterstutzung

• OEM-Versionen

Embedded Linux

• Optimierbar

• Viele Architekturen

• Kernel-Modularitat

• OpenSource Tools

Page 36: Embedded Linux with Nano-X

Windows Embedded

• Support

• Hardware-Unterstutzung

• OEM-Versionen

Embedded Linux

• Optimierbar

• Viele Architekturen

• Kernel-Modularitat

• OpenSource Tools

Page 37: Embedded Linux with Nano-X

Windows Embedded

• Support

• Hardware-Unterstutzung

• OEM-Versionen

Embedded Linux

• Optimierbar

• Viele Architekturen

• Kernel-Modularitat

• OpenSource Tools

Page 38: Embedded Linux with Nano-X

Windows Embedded

• Support

• Hardware-Unterstutzung

• OEM-Versionen

Embedded Linux

• Optimierbar

• Viele Architekturen

• Kernel-Modularitat

• OpenSource Tools

Page 39: Embedded Linux with Nano-X

Windows Embedded

• Support

• Hardware-Unterstutzung

• OEM-Versionen

Embedded Linux

• Optimierbar

• Viele Architekturen

• Kernel-Modularitat

• OpenSource Tools

Page 40: Embedded Linux with Nano-X

Windows Embedded

• Support

• Hardware-Unterstutzung

• OEM-Versionen

Embedded Linux

• Optimierbar

• Viele Architekturen

• Kernel-Modularitat

• OpenSource Tools

Page 41: Embedded Linux with Nano-X

Open Frame Smart Panel

• MIPS Prozessor 131 MHz

• 64 MB SDRAM, 32 MB Flash

• 5.7”320x240 QVGA Touchscreen

• 1 x 10/100 MBit Ethernet

• 1 x USB

• 2 x RS232 Serielle Schnittstellen

• Klein, Gunstig und Leistungsstark

Page 42: Embedded Linux with Nano-X

Open Frame Smart Panel

• MIPS Prozessor 131 MHz

• 64 MB SDRAM, 32 MB Flash

• 5.7”320x240 QVGA Touchscreen

• 1 x 10/100 MBit Ethernet

• 1 x USB

• 2 x RS232 Serielle Schnittstellen

• Klein, Gunstig und Leistungsstark

Page 43: Embedded Linux with Nano-X

Open Frame Smart Panel

• MIPS Prozessor 131 MHz

• 64 MB SDRAM, 32 MB Flash

• 5.7”320x240 QVGA Touchscreen

• 1 x 10/100 MBit Ethernet

• 1 x USB

• 2 x RS232 Serielle Schnittstellen

• Klein, Gunstig und Leistungsstark

Page 44: Embedded Linux with Nano-X

Open Frame Smart Panel

• MIPS Prozessor 131 MHz

• 64 MB SDRAM, 32 MB Flash

• 5.7”320x240 QVGA Touchscreen

• 1 x 10/100 MBit Ethernet

• 1 x USB

• 2 x RS232 Serielle Schnittstellen

• Klein, Gunstig und Leistungsstark

Page 45: Embedded Linux with Nano-X

Open Frame Smart Panel

• MIPS Prozessor 131 MHz

• 64 MB SDRAM, 32 MB Flash

• 5.7”320x240 QVGA Touchscreen

• 1 x 10/100 MBit Ethernet

• 1 x USB

• 2 x RS232 Serielle Schnittstellen

• Klein, Gunstig und Leistungsstark

Page 46: Embedded Linux with Nano-X

Windows CE

• Schlanker Kernel

• Komponenten-basierend

• Teilweise Quellcode

• Entwicklungsumgebungen

• Microwindows (Nano-X)

Page 47: Embedded Linux with Nano-X

Windows CE

• Schlanker Kernel

• Komponenten-basierend

• Teilweise Quellcode

• Entwicklungsumgebungen

• Microwindows (Nano-X)

Page 48: Embedded Linux with Nano-X

Windows CE

• Schlanker Kernel

• Komponenten-basierend

• Teilweise Quellcode

• Entwicklungsumgebungen

• Microwindows (Nano-X)

Page 49: Embedded Linux with Nano-X

Windows CE

• Schlanker Kernel

• Komponenten-basierend

• Teilweise Quellcode

• Entwicklungsumgebungen

• Microwindows (Nano-X)

Page 50: Embedded Linux with Nano-X

Windows CE

• Schlanker Kernel

• Komponenten-basierend

• Teilweise Quellcode

• Entwicklungsumgebungen

• Microwindows (Nano-X)

Page 51: Embedded Linux with Nano-X

Windows CE

• Schlanker Kernel

• Komponenten-basierend

• Teilweise Quellcode

• Entwicklungsumgebungen

• Microwindows (Nano-X)

Page 52: Embedded Linux with Nano-X

Ultratronik (Debian) Linux

• Modifiziertes und reduziertesDebian

• GNU Tools und Bibliotheken

• Linux Kernel Trees fur OFSP

• Root-Dateisystem

• Microwindows (Nano-X)

Page 53: Embedded Linux with Nano-X

Ultratronik (Debian) Linux

• Modifiziertes und reduziertesDebian

• GNU Tools und Bibliotheken

• Linux Kernel Trees fur OFSP

• Root-Dateisystem

• Microwindows (Nano-X)

Page 54: Embedded Linux with Nano-X

Ultratronik (Debian) Linux

• Modifiziertes und reduziertesDebian

• GNU Tools und Bibliotheken

• Linux Kernel Trees fur OFSP

• Root-Dateisystem

• Microwindows (Nano-X)

Page 55: Embedded Linux with Nano-X

Ultratronik (Debian) Linux

• Modifiziertes und reduziertesDebian

• GNU Tools und Bibliotheken

• Linux Kernel Trees fur OFSP

• Root-Dateisystem

• Microwindows (Nano-X)

Page 56: Embedded Linux with Nano-X

Ultratronik (Debian) Linux

• Modifiziertes und reduziertesDebian

• GNU Tools und Bibliotheken

• Linux Kernel Trees fur OFSP

• Root-Dateisystem

• Microwindows (Nano-X)

Page 57: Embedded Linux with Nano-X

Ultratronik (Debian) Linux

• Modifiziertes und reduziertesDebian

• GNU Tools und Bibliotheken

• Linux Kernel Trees fur OFSP

• Root-Dateisystem

• Microwindows (Nano-X)

Page 58: Embedded Linux with Nano-X
Page 59: Embedded Linux with Nano-X

Nano-X

Page 60: Embedded Linux with Nano-X

Nano-X – Ein schlankes graphisches System

”The Nano-X Window System is an Open Source

project aimed at bringing the features of moderngraphical windowing environments to smaller devicesand platforms.“

”... Open Source ... “

”... modern graphical windowing environments ... “

”... smaller devices ... “

Graphics Windowing Standard fur Embedded Linux

Page 61: Embedded Linux with Nano-X

Nano-X – Ein schlankes graphisches System

”The Nano-X Window System is an Open Source

project aimed at bringing the features of moderngraphical windowing environments to smaller devicesand platforms.“

”... Open Source ... “

”... modern graphical windowing environments ... “

”... smaller devices ... “

Graphics Windowing Standard fur Embedded Linux

Page 62: Embedded Linux with Nano-X

Nano-X – Ein schlankes graphisches System

”The Nano-X Window System is an Open Source

project aimed at bringing the features of moderngraphical windowing environments to smaller devicesand platforms.“

”... Open Source ... “

”... modern graphical windowing environments ... “

”... smaller devices ... “

Graphics Windowing Standard fur Embedded Linux

Page 63: Embedded Linux with Nano-X

Mozilla Public License

• Schwaches Copyleft • Derivate auch MPL

Original-Quelltext

Originalautor

OpenSource

Autor von Derivaten

Neuentwicklungen ClosedSource

Proprietar

Page 64: Embedded Linux with Nano-X

Mozilla Public License

• Schwaches Copyleft • Derivate auch MPL

Original-Quelltext

Originalautor

OpenSource

Autor von Derivaten

Neuentwicklungen ClosedSource

Proprietar

Page 65: Embedded Linux with Nano-X

Mozilla Public License

• Schwaches Copyleft • Derivate auch MPL

Original-Quelltext

Originalautor

OpenSource

Autor von Derivaten

Neuentwicklungen ClosedSource

Proprietar

Page 66: Embedded Linux with Nano-X

Mozilla Public License

• Schwaches Copyleft • Derivate auch MPL

Original-Quelltext

Originalautor

OpenSource

Autor von Derivaten

Neuentwicklungen ClosedSource

Proprietar

Page 67: Embedded Linux with Nano-X

Mozilla Public License

• Schwaches Copyleft • Derivate auch MPL

Original-Quelltext

Originalautor

OpenSource

Autor von Derivaten

Neuentwicklungen

ClosedSource

Proprietar

Page 68: Embedded Linux with Nano-X

Mozilla Public License

• Schwaches Copyleft • Derivate auch MPL

Original-Quelltext

Originalautor

OpenSource

Autor von Derivaten

Neuentwicklungen ClosedSource

Proprietar

Page 69: Embedded Linux with Nano-X

Mozilla Public License

• Schwaches Copyleft • Derivate auch MPL

Original-Quelltext

Originalautor

OpenSource

Autor von Derivaten

Neuentwicklungen ClosedSource

Proprietar

Page 70: Embedded Linux with Nano-X

Mozilla Public License

• Schwaches Copyleft • Derivate auch MPL

Original-Quelltext

Originalautor

OpenSource

Autor von Derivaten

Neuentwicklungen ClosedSource

Proprietar

Page 71: Embedded Linux with Nano-X

Nano-X Architektur

Page 72: Embedded Linux with Nano-X

”Glue-Layer“ - Prinzip

Treiberebene”Driver level“

Betriebsebene”Engine level“ (MicroGUI)

Anwendungsebene Nano-X API Microwindows API

Nano-X API =⇒ Xlib (X11)

Microwindows API =⇒ APIW (Win32 API)

Page 73: Embedded Linux with Nano-X

”Glue-Layer“ - Prinzip

Treiberebene”Driver level“

Betriebsebene”Engine level“ (MicroGUI)

Anwendungsebene Nano-X API Microwindows API

Nano-X API =⇒ Xlib (X11)

Microwindows API =⇒ APIW (Win32 API)

Page 74: Embedded Linux with Nano-X

”Glue-Layer“ - Prinzip

Treiberebene”Driver level“

Betriebsebene”Engine level“ (MicroGUI)

Anwendungsebene Nano-X API Microwindows API

Nano-X API =⇒ Xlib (X11)

Microwindows API =⇒ APIW (Win32 API)

Page 75: Embedded Linux with Nano-X

”Glue-Layer“ - Prinzip

Treiberebene”Driver level“

Betriebsebene”Engine level“ (MicroGUI)

Anwendungsebene Nano-X API Microwindows API

Nano-X API =⇒ Xlib (X11)

Microwindows API =⇒ APIW (Win32 API)

Page 76: Embedded Linux with Nano-X

”Glue-Layer“ - Prinzip

Treiberebene”Driver level“

Betriebsebene”Engine level“ (MicroGUI)

Anwendungsebene Nano-X API Microwindows API

Nano-X API =⇒ Xlib (X11)

Microwindows API =⇒ APIW (Win32 API)

Page 77: Embedded Linux with Nano-X

Advanced Programmer’s Interfaces

Nano-X API

• Client/Server

• Ressourceneffizient

• X11 Entwicklungsumgebung

• Erweiterungen

Microwindows API

• Kein Client/Server

• Langsamere Programme

• Großere Executables

• Win32 API Unterstutzung

Page 78: Embedded Linux with Nano-X

Advanced Programmer’s Interfaces

Nano-X API

• Client/Server

• Ressourceneffizient

• X11 Entwicklungsumgebung

• Erweiterungen

Microwindows API

• Kein Client/Server

• Langsamere Programme

• Großere Executables

• Win32 API Unterstutzung

Page 79: Embedded Linux with Nano-X

Advanced Programmer’s Interfaces

Nano-X API

• Client/Server

• Ressourceneffizient

• X11 Entwicklungsumgebung

• Erweiterungen

Microwindows API

• Kein Client/Server

• Langsamere Programme

• Großere Executables

• Win32 API Unterstutzung

Page 80: Embedded Linux with Nano-X

Advanced Programmer’s Interfaces

Nano-X API

• Client/Server

• Ressourceneffizient

• X11 Entwicklungsumgebung

• Erweiterungen

Microwindows API

• Kein Client/Server

• Langsamere Programme

• Großere Executables

• Win32 API Unterstutzung

Page 81: Embedded Linux with Nano-X

Advanced Programmer’s Interfaces

Nano-X API

• Client/Server

• Ressourceneffizient

• X11 Entwicklungsumgebung

• Erweiterungen

Microwindows API

• Kein Client/Server

• Langsamere Programme

• Großere Executables

• Win32 API Unterstutzung

Page 82: Embedded Linux with Nano-X

Advanced Programmer’s Interfaces

Nano-X API

• Client/Server

• Ressourceneffizient

• X11 Entwicklungsumgebung

• Erweiterungen

Microwindows API

• Kein Client/Server

• Langsamere Programme

• Großere Executables

• Win32 API Unterstutzung

Page 83: Embedded Linux with Nano-X

Kernkonzepte Nano-X API

Fenster

• Fenster-ID (GR WINDOW ID)

• Baumstrukture (Parent, Child, Sibling, ...)

• Bildschirm =”Root window“

• Eigenschaften (Hintergrundfarbe, Rahmen, ...)

Graphische Kontexte

• Menge an graphischen Eigenschaften (Farbe, Dicke, ...)

• GR GC ID kontext = GrNewGC();

• Ahnliche graphische Elemente

Page 84: Embedded Linux with Nano-X

Kernkonzepte Nano-X API

Fenster

• Fenster-ID (GR WINDOW ID)

• Baumstrukture (Parent, Child, Sibling, ...)

• Bildschirm =”Root window“

• Eigenschaften (Hintergrundfarbe, Rahmen, ...)

Graphische Kontexte

• Menge an graphischen Eigenschaften (Farbe, Dicke, ...)

• GR GC ID kontext = GrNewGC();

• Ahnliche graphische Elemente

Page 85: Embedded Linux with Nano-X

Kernkonzepte Nano-X API

Fenster

• Fenster-ID (GR WINDOW ID)

• Baumstrukture (Parent, Child, Sibling, ...)

• Bildschirm =”Root window“

• Eigenschaften (Hintergrundfarbe, Rahmen, ...)

Graphische Kontexte

• Menge an graphischen Eigenschaften (Farbe, Dicke, ...)

• GR GC ID kontext = GrNewGC();

• Ahnliche graphische Elemente

Page 86: Embedded Linux with Nano-X

Kernkonzepte Nano-X API

Ereignisse

• Ereignisschlange(”Event queue“)

• Ereignisstruktur furEreignistypen

• Polymorpher C-UnionTyp GR EVENT

typedef union {

/* Ereignistyp */GR_EVENT_TYPE type;

/* Ereignisstrukturen */...GR_EVENT_BUTTON button;GR_EVENT_MOUSE mouse;GR_EVENT_EXPOSURE ex;...

} GR_EVENT;

Page 87: Embedded Linux with Nano-X

Kernkonzepte Nano-X API

Ereignisse

• Ereignisschlange(”Event queue“)

• Ereignisstruktur furEreignistypen

• Polymorpher C-UnionTyp GR EVENT

typedef union {

/* Ereignistyp */GR_EVENT_TYPE type;

/* Ereignisstrukturen */...GR_EVENT_BUTTON button;GR_EVENT_MOUSE mouse;GR_EVENT_EXPOSURE ex;...

} GR_EVENT;

Page 88: Embedded Linux with Nano-X

Kernkonzepte Nano-X API

Ereignisse

• Ereignisschlange(”Event queue“)

• Ereignisstruktur furEreignistypen

• Polymorpher C-UnionTyp GR EVENT

typedef union {

/* Ereignistyp */GR_EVENT_TYPE type;

/* Ereignisstrukturen */...GR_EVENT_BUTTON button;GR_EVENT_MOUSE mouse;GR_EVENT_EXPOSURE ex;...

} GR_EVENT;

Page 89: Embedded Linux with Nano-X

Kernkonzepte Nano-X API

Ereignisse

• Ereignisschlange(”Event queue“)

• Ereignisstruktur furEreignistypen

• Polymorpher C-UnionTyp GR EVENT

typedef union {

/* Ereignistyp */GR_EVENT_TYPE type;

/* Ereignisstrukturen */...GR_EVENT_BUTTON button;GR_EVENT_MOUSE mouse;GR_EVENT_EXPOSURE ex;...

} GR_EVENT;

Page 90: Embedded Linux with Nano-X

Kernkonzepte Nano-X API

Ereignisse

• Ereignisschlange(”Event queue“)

• Ereignisstruktur furEreignistypen

• Polymorpher C-UnionTyp GR EVENT

typedef union {

/* Ereignistyp */GR_EVENT_TYPE type;

/* Ereignisstrukturen */...GR_EVENT_BUTTON button;GR_EVENT_MOUSE mouse;GR_EVENT_EXPOSURE ex;...

} GR_EVENT;

Page 91: Embedded Linux with Nano-X

Kernkonzepte Nano-X API

Ereignisse

• Ereignisschlange(”Event queue“)

• Ereignisstruktur furEreignistypen

• Polymorpher C-UnionTyp GR EVENT

typedef union {

/* Ereignistyp */GR_EVENT_TYPE type;

/* Ereignisstrukturen */...GR_EVENT_BUTTON button;GR_EVENT_MOUSE mouse;GR_EVENT_EXPOSURE ex;...

} GR_EVENT;

Page 92: Embedded Linux with Nano-X

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;

Page 93: Embedded Linux with Nano-X

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;

Page 94: Embedded Linux with Nano-X

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;

Page 95: Embedded Linux with Nano-X

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;

Page 96: Embedded Linux with Nano-X

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;

Page 97: Embedded Linux with Nano-X

Ereignisschleife (”Event loop“)

/* Deklarationen */GR_WINDOW_ID fenster;GR_EVENT ereignis;

/* Bitmaske: Akzeptierte Fenster-Ereignisse */GrSelectEvents(fenster, GR_EVENT_MASK_EXPOSURE);

/* Ereignisschleife */for(;;) {

/* Nachstes Ereignis */GrGetNextEvent(&ereignis);if (ereignis.type == GR_EVENT_TYPE_EXPOSURE)

{ /* Zeichenroutinen */ }

else if ...

}

Page 98: Embedded Linux with Nano-X

Ereignisschleife (”Event loop“)

/* Deklarationen */GR_WINDOW_ID fenster;GR_EVENT ereignis;

/* Bitmaske: Akzeptierte Fenster-Ereignisse */GrSelectEvents(fenster, GR_EVENT_MASK_EXPOSURE);

/* Ereignisschleife */for(;;) {

/* Nachstes Ereignis */GrGetNextEvent(&ereignis);if (ereignis.type == GR_EVENT_TYPE_EXPOSURE)

{ /* Zeichenroutinen */ }

else if ...

}

Page 99: Embedded Linux with Nano-X

Ereignisschleife (”Event loop“)

/* Deklarationen */GR_WINDOW_ID fenster;GR_EVENT ereignis;

/* Bitmaske: Akzeptierte Fenster-Ereignisse */GrSelectEvents(fenster, GR_EVENT_MASK_EXPOSURE);

/* Ereignisschleife */for(;;) {

/* Nachstes Ereignis */GrGetNextEvent(&ereignis);if (ereignis.type == GR_EVENT_TYPE_EXPOSURE)

{ /* Zeichenroutinen */ }

else if ...

}

Page 100: Embedded Linux with Nano-X

Ereignisschleife (”Event loop“)

/* Deklarationen */GR_WINDOW_ID fenster;GR_EVENT ereignis;

/* Bitmaske: Akzeptierte Fenster-Ereignisse */GrSelectEvents(fenster, GR_EVENT_MASK_EXPOSURE);

/* Ereignisschleife */for(;;) {

/* Nachstes Ereignis */GrGetNextEvent(&ereignis);

if (ereignis.type == GR_EVENT_TYPE_EXPOSURE){ /* Zeichenroutinen */ }

else if ...

}

Page 101: Embedded Linux with Nano-X

Ereignisschleife (”Event loop“)

/* Deklarationen */GR_WINDOW_ID fenster;GR_EVENT ereignis;

/* Bitmaske: Akzeptierte Fenster-Ereignisse */GrSelectEvents(fenster, GR_EVENT_MASK_EXPOSURE);

/* Ereignisschleife */for(;;) {

/* Nachstes Ereignis */GrGetNextEvent(&ereignis);if (ereignis.type == GR_EVENT_TYPE_EXPOSURE)

{ /* Zeichenroutinen */ }

else if ...

}

Page 102: Embedded Linux with Nano-X

Ereignisschleife (”Event loop“)

/* Deklarationen */GR_WINDOW_ID fenster;GR_EVENT ereignis;

/* Bitmaske: Akzeptierte Fenster-Ereignisse */GrSelectEvents(fenster, GR_EVENT_MASK_EXPOSURE);

/* Ereignisschleife */for(;;) {

/* Nachstes Ereignis */GrGetNextEvent(&ereignis);if (ereignis.type == GR_EVENT_TYPE_EXPOSURE)

{ /* Zeichenroutinen */ }

else if ...

}

Page 103: Embedded Linux with Nano-X

Ereignisschleife (”Event loop“)

/* Deklarationen */GR_WINDOW_ID fenster;GR_EVENT ereignis;

/* Bitmaske: Akzeptierte Fenster-Ereignisse */GrSelectEvents(fenster, GR_EVENT_MASK_EXPOSURE);

/* Ereignisschleife */for(;;) {

/* Nachstes Ereignis */GrGetNextEvent(&ereignis);if (ereignis.type == GR_EVENT_TYPE_EXPOSURE)

{ /* Zeichenroutinen */ }

else if ...

}

Page 104: Embedded Linux with Nano-X

Serielle Schnittstelleund Unix

Page 105: Embedded Linux with Nano-X

Weiblicher RS232 DB09 Connector

Page 106: Embedded Linux with Nano-X

Senden/dev/tts/0 /dev/tts/1

/* Offnen fur Lesezugriff */int f1 = open("/dev/tts/0", O_RDONLY | O_NDELAY);

/* Offnen zum Schreiben */int f2 = open("/dev/tts/1", O_WRONLY | O_NDELAY);

/* 4 Bytes von /dev/tts/0 */char buffer[4];read(f1, buffer, 4);

/* 4 Bytes an /dev/tts/1 */write(f2, buffer, 4);

Page 107: Embedded Linux with Nano-X

Senden/dev/tts/0 /dev/tts/1

/* Offnen fur Lesezugriff */int f1 = open("/dev/tts/0", O_RDONLY | O_NDELAY);

/* Offnen zum Schreiben */int f2 = open("/dev/tts/1", O_WRONLY | O_NDELAY);

/* 4 Bytes von /dev/tts/0 */char buffer[4];read(f1, buffer, 4);

/* 4 Bytes an /dev/tts/1 */write(f2, buffer, 4);

Page 108: Embedded Linux with Nano-X

Senden/dev/tts/0 /dev/tts/1

/* Offnen fur Lesezugriff */int f1 = open("/dev/tts/0", O_RDONLY | O_NDELAY);

/* Offnen zum Schreiben */int f2 = open("/dev/tts/1", O_WRONLY | O_NDELAY);

/* 4 Bytes von /dev/tts/0 */char buffer[4];read(f1, buffer, 4);

/* 4 Bytes an /dev/tts/1 */write(f2, buffer, 4);

Page 109: Embedded Linux with Nano-X

Senden/dev/tts/0 /dev/tts/1

/* Offnen fur Lesezugriff */int f1 = open("/dev/tts/0", O_RDONLY | O_NDELAY);

/* Offnen zum Schreiben */int f2 = open("/dev/tts/1", O_WRONLY | O_NDELAY);

/* 4 Bytes von /dev/tts/0 */char buffer[4];read(f1, buffer, 4);

/* 4 Bytes an /dev/tts/1 */write(f2, buffer, 4);

Page 110: Embedded Linux with Nano-X

Senden/dev/tts/0 /dev/tts/1

/* Offnen fur Lesezugriff */int f1 = open("/dev/tts/0", O_RDONLY | O_NDELAY);

/* Offnen zum Schreiben */int f2 = open("/dev/tts/1", O_WRONLY | O_NDELAY);

/* 4 Bytes von /dev/tts/0 */char buffer[4];read(f1, buffer, 4);

/* 4 Bytes an /dev/tts/1 */write(f2, buffer, 4);

Page 111: Embedded Linux with Nano-X

Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle

• Kostengunstig

• Ungebundenheit

• Moglichkeiten

• Graphisches

• GNU/Linux

Page 112: Embedded Linux with Nano-X

Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle

• Kostengunstig

• Ungebundenheit

• Moglichkeiten

• Graphisches

• GNU/Linux

Page 113: Embedded Linux with Nano-X

Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle

• Kostengunstig

• Ungebundenheit

• Moglichkeiten

• Graphisches

• GNU/Linux

Page 114: Embedded Linux with Nano-X

Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle

• Kostengunstig

• Ungebundenheit

• Moglichkeiten

• Graphisches

• GNU/Linux

Page 115: Embedded Linux with Nano-X

Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle

• Kostengunstig

• Ungebundenheit

• Moglichkeiten

• Graphisches

• GNU/Linux

Page 116: Embedded Linux with Nano-X

Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle

• Kostengunstig

• Ungebundenheit

• Moglichkeiten

• Graphisches

• GNU/Linux

Page 117: Embedded Linux with Nano-X

Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle

• Kostengunstig

• Ungebundenheit

• Moglichkeiten

• Graphisches

• GNU/Linux

Page 118: Embedded Linux with Nano-X

Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle

• Kostengunstig

• Ungebundenheit

• Moglichkeiten

• Graphisches

• GNU/Linux

Page 119: Embedded Linux with Nano-X

Embedded Linux + Nano-X = Alternative ... ?

Zusammenfassung

• Lizenzmodelle

• Kostengunstig

• Ungebundenheit

• Moglichkeiten

• Graphisches

• GNU/Linux

Page 120: Embedded Linux with Nano-X

[http://www.microwindows.org]The Official Microwindows WebsiteGreg Haerr ([email protected]), 05.01.2009

[http://www.ultratronik.de/linux.html]Ultratronik Linux DistributionUltratronik GmbH, 06.01.2009

[http://embedded.centurysoftware.com/docs/nx]Century Embedded Technologies Nano-X SDK andDeveloper’s GuideCentury Software, 04.01.2009

[http://www.webadventures.au]WebAdventures – Find your place on the webHeath L’Estrange, 03.01.2009

Page 121: Embedded Linux with Nano-X

Embedded LinuxOpen Frame Smart Panel (OFSP) von Ultratronik

mit Nano-Xfur analytische Gerate

13—01—2009

Soren Wellhofer