Eingebettetes Linux und Entwicklungsmethoden Informatik-Seminar Prof. Dr. Ulrich Hoffmann Prof. Dr. Uwe Schmidt Wintersemester 2008

Slides:



Advertisements
Ähnliche Präsentationen
E-Commerce Shop System
Advertisements

Thin Clients und SmartCards an der HU
Front-End Rechner: Alternativen zum Desktop (S. Herb, Mai 2004)
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
ilmenau.de Exploiting Pocket PC. ilmenau.de Exploiting Pocket PC PocketPC existiert seit über 5 Jahren (Windows CE seit ca. 10)
Introducing the .NET Framework
Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas Risse.
Linux Einführungskurs am MBI 1. Was ist Linux ? Stefan Gerlach 4. November 2002.
Java for Process Control P.Wüstner - Zentrallabor für Elektronik (ZEL) - JfPC: eine neue Technologie für den plattform- unabhängigen Zugriff auf Prozeßperipherie.
Linux auf iSeries und pSeries Beat Rubischon Informatiksupport Departement Physik ETH Zürich.
IGEL UMS Universal Management Suite Oktober 2011 Florian Spatz
SKALIERBARE HARDWARE UNABHÄNGIGE LÖSUNGEN FÜR HSM, ARCHIVIERUNG UND SICHEREN DATENAUSTAUSCH YOUR DATA. YOUR CONTROL.
Herzlich Willkommen Zu Meiner PowerPoint
IGEL UDC Universal Desktop Converter Oktober 2011 Florian Spatz
Thin Client vs. Zero Client Key Account Government 04 / 2012 Tim Riedel Welche Vorteile bieten Thin Clients gegenüber Zero Clients?
08. September 2010Entwicklungsstrategien in Liferay 1 Christian Krause, URZ FSU Jena, IDM-Arbeitsgruppe.
Betriebssystem Linux Von Sofia & Yasemin WG 12/3.
Betriebssysteme allgemein
Präsentation von Alexander Schönfeld
Xenario IES Information Enterprise Server. Xenario Information Enterprise Server (IES) Die neue Architektur des Sitepark Information Enterprise Servers.
Linux Universität zu Köln
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Thin Clients IGEL smart-132.
Embedded Systems Prof. Dr. H. Kristl
auf kleinen Linux-Devices
Präsentation von Lukas Sulzer
Embedded Linux Portierung auf mobiles Datenerfassungsterminal
LINUX.
Effizienz durch VIRTUALISIERUNG
Infoscreen 2.0.
Infoscreen 2.0. Agenda Motivation Projektorganisation Hardware Software Zukunftsvision.
Studiengang Informatik FHDW
Quellen: Internet INTRANET Ausarbeitung von Sven Strasser und Sascha Aufderheide im Modul Netzwerktechnik, Klasse INBS Mai 2003.
Open Source, Free Software, Freeware
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
Linux oder GNU/Linux WS 2013/2014.
Webserver, Apache und XAMPP
ROS – Robot Operating System
Referat von Marcel Poppen & Oliver Lennartz
Universität zu Köln WS 2012/13 Seminar: IT-Zertifikat der Phil.-Fak.: Allgemeine Informationstechnologien I Dozentin: Susanne Kurz M.A. Referenten: Irina.
KA – Rechnerarchitektur II ____________________________________________________________________________________________ ____________________________________________________________________________________________.
Linux – eine Einführung
SAN & NAS © Nicole Waibel Index NAS SAN Quellen
Johanna Denfeld Hannes Holzfuß
Linux Universität zu Köln HKI Seminar: IT-Basics
Multiprocessing mit OpenMPI Marius Albath. Vorlesung Betriebssysteme, Was ist OpenMPI Was ist OpenMPI OpenMPI Standard Setup OpenMPI Standard.
Projektvorstellung im Kurs „Praktisches Linux“, WS 2007/2008.
LINUX II Unit 7 LAMP Server. LAMP ● Linux – Apache - MySQL – PHP ● Leistungsfähiges und kostenloses System zur Genrierung von dynamischen Webseiten und.
Chaostreff Dortmund Desktop Virtualisierung Workshop von Tidirium workshop4all Der Lange August und der Chaostreff Dortmund begrüßt euch zum Workshop Desktop.
Linux – Ubuntu Präsentation zur Sitzung am Referent: S. Imdahl.
Tutoren: Caro von Groote, Christian Schilcher Universität Augsburg, Institut für Geographie IT-Tutorium Block 2: Einführung in Linux IT-Tutorium Einführung.
Anatomie eines Computersystems Kernel, Treiber, Windows Manager und anderes Spielzeug Manuel Blechschmidt & Volker Grabsch CdE Sommerakademie 2006 Kirchheim.
Linux Seminar Einführung Linux. Gliederung ● Was ist Linux? ● Geschichte ● GNU/GPL ● grundsätzliche Begriffe ● Vorteile ● Nachteile ● Hilfe? ● Unterschiede.
SOAP - WSDL Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 2 Hauptseminar: Virtuelle.
Zehn Schritte zu Linux Der Weg in eine andere Welt...
SE: Systementwurf, © Till Hänisch 2003 Systemarchitektur nach Sommerville, Software Engineering, Addison Wesley.
ein kurze Geschichte über Linux
WS2016: Container von A bis Z
Manuel Blechschmidt & Volker Grabsch CdE Sommerakademie 2006 Kirchheim
Web-Interface for Multi-FPGA Board Pamette
Ein kleiner (Ein|Über)blick
Betriebssystem, BIOS, Firmware, Treiber, Systemtools
Moderne Microsoft Windows-BetriebssystemE
I2C-HC / SCB Verifikation
Linux(Kernel) Klaus KULpa 1AHWIL.
System-on-Chip zur Steuerung von Messsystemen
Digitale Transformation
Proseminar: Allgegenwärtiges Rechnen
Überblick zur Protokoll-/ Verbindungswahl zwischen Backend-Server und Gateway ITC-MEETING Tobias Hänel.
Pro und Contra – Open Source bei Bibliothekskatalogen
 Präsentation transkript:

Eingebettetes Linux und Entwicklungsmethoden Informatik-Seminar Prof. Dr. Ulrich Hoffmann Prof. Dr. Uwe Schmidt Wintersemester Malte S. Stretz

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Linux ● Was ist Embedded Linux?

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Linux ● Was ist Embedded Linux? Ein Betriebssystem, angepasst für den Betrieb als Embedded System, basierend auf Linux. ➔ Was ist ein Embedded System? ➔ Was ist Linux? ➔ Was ist überhaupt ein Betriebssystem? ➔ Vor- und Nachteile von Linux ➔ Embedded Development mit Linux

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Systems (Theorie) ● Was ist ein Embedded System? ● Kombination aus einer Embedded (Hardware) Plattform und hierfür angepasster Software ● Nicht exakt/einheitlich definiert ● Fließender Übergang zu Appliances und Thin Clients ● Mögliche Merkmale ● Niedrige Hardwareanforderungen ● Hardware-nahe bzw. -spezifische Software ● Betriebssystem optional ● Echtzeitfähigkeit optional ● Spezifischer Einsatzzweck (Router, Storage, Kommunikation, Steuerung, etc.) ● Blackbox-Verhalten dem Anwender gegenüber ● Vom Anwender nur bedingt erweiterbar

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz ● Faustregel: Man arbeitet mit einem Embedded System, wenn... ●... die Software speziell an eine bestimmte Hardware-Architektur und - Umgebung angepasst wird. ●... diese auf einen bestimmten, begrenzten Einsatzzweck zugeschnitten ist. Embedded Systems (Theorie)

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Systems (Beispiele)

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Systems (Praxis) ● Prozessor ● Typen: µP, µC, DSP, FPGA, ASIC ● Architektur ● Desktop/Server: x86, PPC, SPARC, MIPS ● Embedded: 65816, 65C02, 68HC08, 68HC11, 68k, 8051, ARM, AVR, AVR32, Blackfin, C167, Coldfire, COP8, eZ8, eZ80, FR-V, H8, HT48, M16C, M32C, MIPS, MSP430, PIC, PPC, R8C, SHARC, ST6, SuperH, TLCS-47, TLCS-870, TLCS-900, Tricore, V850, x86, XE8000, Z80,... ● Reduzierte Rechenleistung ● Byteorder (Little oder Big Endian) ● FPU optional ● MMU optional

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Systems (Praxis) ● Arbeitsspeicher ● Typen: (S)DRAM, (F)SRAM ● Limitierte Größe ● Mehrere Speicher möglich ● Oder gar keine ● Nichtflüchtiger Speicher ● Typen: Flash, EEPROM, Festplatten ● Limitierte Größe ● Geringe Geschwindigkeit ● Falls überhaupt vorhanden

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Systems (Praxis) ● Schnittstellen ● EIA/RS-232, EIA/RS-485,... ● IEEE (Ethernet), IEEE (WLAN),... ● I²C/TWI, SPI,... ● CAN, IEC 61158,... ● Zusätzliche Hardware ● Crypto-, Compression-Chips

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Linux (Begriffsklärung) ● Mehrdeutig bzw. ungenau ● Ein Kernel ● Ein komplettes Betriebssystem bzw. eine Distribution, basierend auf dem Linux- Kernel ● Meist kombiniert mit Software aus dem GNU Projekt ● Das GNU system existiert 1983 ● Linux erst seit 1991 ● Im Embedded Bereich jedoch oft mit Alternativen ● „Busybox/Linux“? „GNU/Linux“

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Linux (Geschichte) ● Inspiriert von Unix/Minix ● Kurze Versionsgeschichte ● Aug.1991:0.01 ● Mär.1994:1.0 ● Jun.1996:2.0.0 ● Jan.1999:2.2.0 ● Aug.1999: ● Jan.2001:2.4.0 ● Mär.2003: ● Dez.2003:2.6.0 ● Feb.2004: ● Aug. 2006: ● Nov.2008: ● Nov.2008:

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz ● Allgemeiner Aufbau eines Betriebssystems ● Kernelspace ● Laufzeitumgebung des Kernel ● Ein Adressraum ● Verwaltet Hardware- Resourcen ● Verwaltet Prozesse im Userspace ● Userspace ● Laufzeitumgebung der Applikationen ● Adressraum pro Prozess ● Konfiguriert Kernel, Hardware Linux (Allgemein) Hardware Kernelspace Userspace Betriebssystem

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Linux (Kernel) ● Der Linux-Kernel ● Monolithisch ● Die meisten Dienste laufen im Kernelspace, in einem Adressraum ● Gegenkonzept: Mikrokernel ● Tendenz: Mehr Logik im Userspace (udev, FUSE, CRDA, etc.) ● Modular ● Module/Dienste (Scheduler, Treiber, Dateisysteme, etc.) sind unabhängig voneinander und können ausgetauscht werden Hardware Kernelspace Userspace Prozess- verwaltung Speicher- verwaltung Interprozesskommunikation Gerätetreiber Netzwerk- stack Dateisystem- stack

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Linux (Kernel) ● Ursprünglich entwickelt für den Intel (x86-32) ● Open Source (GPLv2) ● Anpassungen möglich ● Neue Prozessor-Architekturen ● Angepasstes Memory Management ● Angepasster Scheduler ● Schlankerer Kernel ● Statischer Kernel ● Derivate/Patches ● uClinux ● RTLinux, RTAI, RT-preempt ●... Kernelspace

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Linux (Schichten) ● Schichtenmodell ● Zwei Privilegstufen ● Zugriff auf Kernel via System Calls ● Ursprünglich nur x86 ● Kontextwechsel durch Interrupt 0x80 bzw. VDSO ● Zwei architekturabhängige Schnittstellen ● Weitere Abstraktions-schicht zur Steigerung der Portabilität Hardware Userspace Kernelspace System Calls Hardware Access (Ring 0) (Ring 3) portabel High-Level APIs

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Standard Linux (Userspace) ● High-Level APIs ● Kernel ● Devices ● Sockets ● libc ● GNU libc ● Userland ● GNU system ● Daemons ● udev, HAL, syslog, dhcpcd, D- Bus, NM, Avahi,... ● GUI ● X.Org ● Windowmanager Userspace Kernelspace System Calls High-Level APIs libc Devices Userland X Server Daemons WM Bibliotheken (Gtk, Qt,...) Desktop Environment (KDE, GNOME) Applikationen Betriebssystem

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Linux (Userspace) ● Modularer Aufbau erleichtert Portierung/Anpassung ● Einfache, portierbare, unabhängige Module mit klaren Schnittstellen ● Einfach? Portierbar? Klar? ● Code gewinnt ● Standards folgen Implementierungen ● Module sind austauschbar ● Diverse Alternativen ● Oft optional ● Meist Open Source ● Anpassungen möglich Userspace High-Level APIs libc Devices Userland X Server Daemons WM Bibliotheken (Gtk, Qt,...) Desktop Environment (KDE, GNOME) Applikationen KISS: Keep It Simple and Stupid.

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Linux (Userspace) ● Alternativen zur GNU libc ● uClibc ● dietlibc ● newlib ● (klibc) Userspace High-Level APIs libc Devices Userland X Server Daemons WM Bibliotheken Applikationen

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Linux (Userspace) ● Alternativen zum GNU system ● Busybox ● Single-Binary ● embutils ●...? Userspace High-Level APIs libc Devices Userland X Server Daemons WM Bibliotheken Applikationen

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Linux (Userspace) ● Alternativen zu Daemons ● udev ● Statische Device Nodes ● HAL ● Statische Device Informationen ● NetworkManager ● Semistatische Netzwerkkonfiguration ● Apache ● lighttpd, thttpd, fnord, mini_httpd,... ● OpenSSH ● Dropbear Userspace High-Level APIs libc Devices Userland X Server Daemons WM Bibliotheken Applikationen

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Linux (Userspace) ● Alternative X Server ● KDrive ● TinyX ● SmallX ● NanoX ● XDirectFB ●... ● Alternativen zu X ● DirectFB ● SDL ● GtkFB ● Qtopia/Qt Extended ●... Userspace High-Level APIs libc Devices Userland X Server Daemons WM Bibliotheken Applikationen

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Linux (Userspace) ● Der Vollständigkeit halber ● Angepasste Applikationen ● Angepasste Bibliotheken Userspace High-Level APIs libc Devices Userland X Server Daemons WM Bibliotheken Applikationen

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Linux ● Minimalanforderungen ● 4 MiB ROM ● 8 MiB RAM ● Minimalstanforderungen ● ca. die Hälfte Userspace Kernelspace High-Level APIs libc Devices UserlandDaemons Hardware

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Vorteile

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Vorteile ● Fast alle Features bereits vorhanden ● IP-Stack, USB, Bluetooth, iSCSI, I²C, HIDs, GUI- Frameworks... ● Embedded Distributionen ● Open Source-Lizenz ● Quellcode verfügbar ● Keine Lizenzgebühren ● Unabhängig von anderen Firmen ● Standardisiert... quasi ● POSIX, SUS, LSB, FHS ● Verschiedene Gremien ● Entwickler ● Kein Spezialwissen ● Kernel: C ● Userspace: ● C, C++ ● Perl, Python ● Packaging ● Frontend: ● PHP ● C, C++ ● Support ● Kostenlos (Community) ● Kostenpflichtig

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Nachteile ● Open Source (GPLv2) ● Lizenzbestimmungen müssen eingehalten werden! ● Aber: Die GPL hört sich schlimmer an als sie ist ● Kein stabiles Kernel-ABI ● Keine stabile interne API ● Entwickler ● Arbeitsweise anpassen ● Evtl. Neue Entwicklungsumgebungen ● Manager ●...

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Development ● Architekturen stimmen nicht überein ● Binaries sind Architektur-spezifisch Host x86 Target ARM

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Development ● Architekturen stimmen nicht überein ● Lösung 1: Entwickeln und Debuggen auf dem Host ● Problem: Keine Realumgebung Host x86 Target ARM

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Development ● Architekturen stimmen nicht überein ● Lösung 2: Entwickeln und Debuggen remote auf dem Target ● SSH über USB-Netzwerk ● Problem: Compiler sehr langsam ● Problem: Evtl. nicht genug Hardware Host x86 Target ARM

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Development ● Architekturen stimmen nicht überein ● Lösung 3: Entwickeln auf dem Host, debuggen remote auf dem Target ● Problem: Compiler erstellt falsche Binaries ● Lösung: Cross-compiling Host x86 Target ARM

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Embedded Development ● Architekturen stimmen nicht überein ● Lösung 4: Entwickeln in einer virtuellen Maschine auf dem Host

Eingebettetes Linux und Entwicklungsmethoden Malte S. Stretz Tipps zu Open Source ● Lizenzen beachten ● ● Forks considered harmful ● Der Wartungsaufwand kann immens werden ● Treiber im Kernel werden an API-Änderungen angepasst ● Coding Style einhalten ● Macht das spätere Einreichen von Patches einfacher ● Arbeitsweise anpassen ● Open Source-Projekte ticken anders ● Ein dickes Fell hilft ● Nicht immer ist jede Mail so gemeint wie sie klingt

Ende Danke für die Aufmerksamkeit