Diplomarbeit Autor: Rade Bozic

Slides:



Advertisements
Ähnliche Präsentationen
Aufbau eines Netzwerkes
Advertisements

Forschungszentrum Informatik
Be.as WEB Technologie
allegro meets Internet
Installation der Linux-Musterlösung
Datenbankzugriff im WWW (Kommerzielle Systeme)
Enno Rehling und Roger Butenuth, Uni-GH Paderborn: Arminius: Software für Linux-basierte SCI-Cluster Arminius: Software für Linux-basierte SCI-Cluster.
Windows auf öffentlichen PCs
Java: Grundlagen der Sprache
Webserver, © Till Hänisch 2002 Apache The open way.
1 NetWork File System © April 2002, G. Hellberg Network File System Konfiguration und Einsatz.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Eingabeaufforderung (EA) Windows I Nützliche Kommandos (Kommando und /? liefert meist eine Liste von Optionen): cd bzw. chdir: change directory, wechselt.
Tomcat (I) Ende 1999 Jakarta-Projekt von Apache, IBM und Sun gegründet
Das Build-Tool ANT ETIS SS05. ETIS SS05 - Nadine FröhlichANT 2 Gliederung Motivation Build - Datei –Allgemeiner Aufbau –Project –Target –Task –Properties.
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
Fli4l Der Ein-Disketten-Router von Sebastian Röhl von Sebastian Röhl.
Linux-HA-Cluster – Heartbeat mit DRBD
Autoinstallation von SuSE Linux 9.3 Roland Mohl 2. Juni 2005.
WhatsUp Gold
Einführung in Visual C++
Open Source Prozessor Leon2 Peer Royla und Marco Siebert RST-Labor WS 04/05 Prof. Dr.-Ing. Thomas Risse.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
PHP Pakete und Beispiele Webengineering Robert Lemke.
Samba.
Einrichtung eines File- und Printservers mit
Mailserver-Installation mit LDAP-Schnittstelle für die Firma XYZ GmbH
Open Services Gateway Initiative
Einleitung Suse Linux (System- und Software-Entwicklung) Allgemein:
IGEL UMS Universal Management Suite Oktober 2011 Florian Spatz
Erste Schritte mit PHP 5 von Max Brandt, 22. September 2006.
Installationsdiskette booten Startdiskette und CD-1 einlegen und den Rechner starten Auswahl: Deutsch Auswahl: Farbbildschirm Auswahl: Deutsch Auswahl:
Linux GOIT – Der Kurs. Linux GOIT – Der Kurs Geschichte Mainframes (IBM System/360) Workstation Personal Computer Stapelverarbeitung Workstation Mehrbenutzersystem.
Web-HMI einbinden SPS-Technik mit Video, Multimedia und Entertainmentsystemen kombinieren I Peter Steib.
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Präsentation von Sonja Pathe
Betriebssysteme & BIOS
Seminar Internet Technologien
Linux Universität zu Köln
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Vergleich verschiedener Konzepte für das Software Engineering Praktikum.
CGI (Common Gateway Interface)
Präsentation von Lukas Sulzer
Seite 1 - Security in TYPO3 Willkommen Security in (und rund um) TYPO3 Christian Kurta
Herbers Excel-Server - der Workshop
Beat Rubischon Informatiksupport Departement Physik ETH Zürich
QIS/LSF Dr. Martin Klingspohn.
Embedded Linux Portierung auf mobiles Datenerfassungsterminal
Datenanbindung in Webapplikationen
Programmierung NGW100 Dipl.-Inf. Swen Habenberger 2. Februar 2009.
Infoscreen 2.0.
Infoscreen 2.0.
Aufzeichnung von Usability-Daten im www. Client-Side Log : automatisch (maschinell) generiertes Protokoll Client : Rechner mit dem Browser des Users Server:
Zero Administration Kit für Microsoft® Windows® Jörg Kramer University Support Center.
Backup der FTP-Daten mit BYSU (Back Your Space Up von George Ruinelli) Eine mögliche Variante, um FTP- Daten bei dem Provider „All-Inkl“ zu sichern.
Enhydra Shark Workflow-Management Frank Aurich Markus Reisch.
Linux Primary Domain Controller mit
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Webspace Stephan Herbst Christian Köhler. Themen des Vortrages Kurze Einführung ins Thema Kurze Einführung ins Thema Webspace - Was? Wozu? Wo? Wie? Webspace.
Linux oder GNU/Linux WS 2013/2014.
CODA - Installation Installation der Binärdateien –Venus: Client-Programm –Vice: Server-Programm –Für Windows existiert eine Alpha-Version (Coda Client.
Datenbanken im Web 1.
Webserver, Apache und XAMPP
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Geschichte - Entstehung - Was ist PHP? Einordnung - Allgemeines
Universität zu Köln WS 2012/13 Seminar: IT-Zertifikat der Phil.-Fak.: Allgemeine Informationstechnologien I Dozentin: Susanne Kurz M.A. Referenten: Irina.
User Mode Linux Sven Wölfel 1. Juni User Mode Inhalt  Was ist UML?  Wofür kann man UML benutzen?
1 Einführung TOMCAT Entwicklung Technischer Informationssysteme SS 2003 Florian Müller.
IT-Dienstleistungen E-Learning Systeme Content Management 1 Fallbeispiel ILIAS: Das Repository-Objekt-Plugin „Centra“
LINUX II Unit 7 LAMP Server. LAMP ● Linux – Apache - MySQL – PHP ● Leistungsfähiges und kostenloses System zur Genrierung von dynamischen Webseiten und.
 Präsentation transkript:

Diplomarbeit Autor: Rade Bozic Portierung eines LINUX Systems auf ein ARM Modul und Implementierung eines embedded Web Servers Diplomarbeit Autor: Rade Bozic

Fernsystem Zielsetzung Fern - Wartung Fern - Diagnose Universell einsetzbares System im Bereichen: Fern - Wartung Fern - Diagnose

Gliederung des Vortrages Einleitung Planung eines Fernsystems Aufbau eines Linux- Systems Hardware Bootloader Root Dateisystem Entwicklungsumgebung Web Server Realisierung einer Anwendung

Einleitung Qualität entscheidet

Einleitung Spannungsfeld Qualität Qualität Kunde Unternehmen Preise Kosten Unternehmen Produkte Eigenschaften Kunde Anforderungen Erwartungen

Begriffsdefinition „Qualität“ Einleitung Qualität Beschaffenheit einer Einheit bezüglich ihrer Eignung, festgelegte und vorausgesetzte Erfordernisse zu erfüllen Beschaffenheit Gesamtheit der Merkmale und Merkmalswerte einer Einheit Einheit Materieller oder immaterieller Gegenstand der Betrachtung Begriffsdefinition „Qualität“ DIN 55350, Teil 1

Was bedeutet Qualität in Bezug auf das Fernsystem? Einleitung Was bedeutet Qualität in Bezug auf das Fernsystem? Fernsystem Abstraktionsebene (Konfigurationsfenster) Anwender

Planung eines Fernsystems

Einsatz eines Fernsystems Ziel: Aktuellen Zustand der Technische Prozesse darstellen Änderungen an den Technischen Prozess vornehmen

Planung eines Fernsystems Aufteilung in zwei Bereiche Steuerung eines Technischen Prozesses mit dem Fernsystem Administration des Fernsystems

Planung eines Fernsystems

Planung eines Fernsystems Anforderungen: Konfigurationsfenster der Fernsysteme soll unabhängig von dem technischen Prozess sein Der Aufbau der Konfigurationsfenster soll einheitlich sein Leichte Integration eines technischen Prozesses in das Fernsystem Eigener Konfigurationsfenster für den technischen Prozess

Software - Programme Netzwerkdienste Hardware System Benutzer Andere Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Software - Programme Netzwerkdienste Hardware System Benutzer Andere

Software installieren Software löschen Andere Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Software – Programme: System Update Software installieren Software löschen Andere

FTP TFTP HTTP NFS Remote Steuerung Andere Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Netzwerkdienste: FTP TFTP HTTP NFS Remote Steuerung Andere

Hardware Information LAN CAN RS232 RS485 Andere Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Hardware: Hardware Information LAN CAN RS232 RS485 Andere

Integration einer Anwendung Andere Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? System: Datum und Zeit sysconfig Flash Speicher Integration einer Anwendung Andere

Benutzterverwaltung Gruppenverwaltung Andere Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten? Benutzer: Benutzterverwaltung Gruppenverwaltung Andere

Administration eines Fernsystems Ziel: Änderungen an den Fernsystem vornehmen Aktuellen Zustand des Fernsystems darstellen

Administration eines Fernsystems Aktuellen Zustand des Fernsystems ändern oder darstellen mit den System Programmen

Planung eines Konfigurationsfensters für eine Anwendung Konfigurationsfenster wird an das technische Problem angepasst Das Konfigurationsfenster sollte eigenständig funktionieren Integration des Konfigurationsfensters in das Fernsystem

Beispiel eines technischen Prozesses Aktuellen Zustand des Technischen Prozesses darstellen

Beispiel eines technischen Prozesses Änderungen an den Technischen Prozess vornehmen

Aufbau eines Linux- Systems

Aufbau eines Linux-Sytems Hardware Bootloader Betriebsystem Dateisystem

Aufbau eines Linux-Sytems

Planung eines Linux-Sytems

Hardware Entwicklungsboard (Eval-Board) DIMM Modul Entwicklungsrechner

Hardware – Eval-Board

Hardware – DIMM Modul

Hardware – Entwicklungsrechner

Bootloader

Bootloader

Bootloader Interne Firmware (Bootloader) Durchsucht die Peripherie nach dem bootfähigen Programm Lädt das Programm in den internen SRAM Führt den „remap“ Befehl aus Startet das Programm

Bootloader Funktion des „remap“ Befehls

Bootloader - Uploader Eigenschaften des Uploaders Darf max. 12 KByte groß sein (4 KByte Stack) Kann Programme die größer als 128 KByte sind nicht laden und starten

Bootloader - Uploader Aufgaben des Uploaders SDRAM Initialisierung : SDRAM Xmodem Protocol über DBGU Serial SPI Flash Laden und starten von Programmen in SDRAM

Bootloader -Uploader Funktionen des Uploaders aus dem SPI Flash lesen in den Bootsektor des SPI Flash schreiben den Bootsecktor im SPI Flash löschen laden eines Programms mit Xmodem (z.B. U-Boot) in den SDRAM und startet das Programm

Bootloader – U-Boot U-Boot => Universal Bootloader Open-Source Projekt Sehr gute Dokumentation Portiert auf mehr als 100 Plattformen Sehr flexibel Viele Funktionen

Bootloader – U-Boot Aufgaben von U-Boot Initialisierung des Boards Ramdisk in SDRAM laden Linux in SDRAM laden bootargs an Linux übergeben Linux starten

Bootloader – U-Boot U-Boot wurde auf die DIMM-RM9200 Plattform portiert make DIMM_rm9200_config U-Boot wird für das DIMM-RM9200 Board konfiguriert make U-Boot wird für das DIMM-RM9200 Board übersetzt

Bootloader – U-Boot Zwei Boot-Modi Starten aus dem parallelen Flash Starten aus dem seriellen Flash Mit einem Jumper (Schalter) wird entschieden von wo gestartet wird. Jumper hat eine ähnliche Funktion wie der „remap“ Befehl. Ist er aufgesetzt, wird die Adresse 0x00000000 auf die erste Adresse des parallelen Flashs gesetzt.

Bootloader – U-Boot Zwei U-Boot Programme U-Boot für den parallelen Flash (PU-Boot) U-Boot für den seriellen Flash (SU-Boot)

Bootloader – U-Boot Unterschiede zwischen den beiden U-Boot Programmen PU-Boot hat seine Umgebungsvariable im parallelen Flash, SU-Boot im seriellen Flash. Uploader wird beim Start von PU-Boot nicht benötigt

Bootloader – U-Boot Entwicklungablauf des Bootloaders

Bootloader – U-Boot Wie werden die zwei U-Boot Programme generiert? Konfigurationsdatei DIMM_rm9200.h Variable: #define CONFIG_BOOTBINFUNC 1 => PU-Boot //#define CONFIG_BOOTBINFUNC 1 => SU-Boot

Bootloader – U-Boot Es gibt drei Möglichkeit U-Boot zu starten: über Uploader aus dem seriellen Flash (Jumper nicht aufgesetzt) aus dem parallel Flash (Jumper aufgesetzt) über Uploader mit dem XModem Protocol (Jumper nicht aufgesetzt)

Bootloader – U-Boot Arbeiten mit dem U-Boot U-Boot Befehle: Manipulation von Flash Speicher boot Befehle (laden und starten von Programmen) Netzwerk Befehle informations- Befehle

Bootloader – U-Boot U-Boot Scripte Mehrere Befehle in einem Befehl vereinen Scripte werden mit dem Befehl „run“ gestartet Ein Script startet das Betriebsystem

Bootloader – U-Boot Startablauf von U-Boot

Bootloader – U-Boot Drei wichtigsten Variablen zum starten von Linux Konfigurationsdatei DIMM_rm9200.h Variablen: #define CONFIG_BOOTCOMMAND "run tftpboot„ #define CONFIG_BOOTARGS #define CONFIG_EXTRA_ENV_SETTINGS

Bootloader – U-Boot Beispiel: Script „tftpboot“ Das Script „tftpboot“ ist in der Variable CONFIG_EXTRA_ENV_SETTINGS definiert "tftpboot=tftp $(initrdload) initrd.bin;tftp $(kernelload) uImage;bootm\0" tftp $(initrdload) initrd.bin tftp $(kernelload) uImage bootm Ramdisk wird geladen ab der Adresse „initrdload“ Kernel wird geladen ab der Adresse „kernelload“ startet den Kernel und übergibt im die Argumente die in der Variable CONFIG_BOOTARGS stehen

Bootloader – U-Boot Wenn man soweit gekommen ist, das ein U-Boot Script automatisch ein Betriebsystem starten kann, dann hat der U-Boot seinen Zweck erfühlt.

Funktion eines Linux-Systems Komponente eines lauffähigen Linux-Systems Linux-Kernel C-Bibliothek Shell Dienst - Programme

Funktion eines Linux-Systems

Linux-Kernel Im Linux Quellen existieren zwei separate Programme Kernel mit dem Modulen Kconfig (Konfigurationsprogramm)

Linux-Kernel Neuen Kernel generieren Kernel erstellen: make xconfig Module erstellen: make modules make INSTALL_MOD_PATH=${SYSROOT} modules_install

Linux-Kernel Was sind Module? Module sind Programme wie jede andere Programme auch, nur das die im Kernel-Space ablaufen.

Root Dateisystem Filesystem Hierarchy Standard (FHS)

Root Dateisystem BusyBox => „Multi-Call Binary“ make menuconfig Programme auswählen Root Dateisystem angeben Cross-Kompiler eintragen make make install

Root Dateisystem /etc Dateien mit allgemeinen Informationen mime.types, protocols, rpc, services.

Root Dateisystem /etc Dateien mit Benutzerinformationen passwd, group, shadow.

Root Dateisystem /etc Dateien für die Netzwerkkonfiguration hosts statische Zuordnung von Hostnamen und IP- Adressen hosts.conf für Namensanfragen erst die Datei „hosts“ durchsuchen resolv.conf Eingabe eines Namensserver inetd.conf Konfigurationsdatei des inetd-Dämons exports werden lokale Verzeichnisse für NFS freigegeben host.allow Freigeben der Netzdienste host.dany Sperren der Netzdienste

Root Dateisystem /etc/sysconfig Dateien für die Netzwerkkonfiguration ifcfg-eth0 ifcfg-lo network_cfg

Root Dateisystem Init-Scripte Nach System-V-Init-Style gibt es 6 Runlevel. Runlevel 0 = Herunterfahren Runlevel 1 = Single-User Runlevel 2 = Multi-User ohne Netzwerk Runlevel 3 = Multi-User mit Netzwerk Runlevel 4 = hat keine Funktion Runlevel 5 = Multi-User mit Netzwerk und automatischen X-Start Runlevel6 = Reboot

Root Dateisystem Init-Scripte

Root Dateisystem Ramdisk erstellen #!/bin/sh cd /usr/src/root mkdir images mkdir initrd dd if=/dev/zero of=images/initrd.img bs=1k count=8192 /sbin/mke2fs -F -v -m0 images/initrd.img mount -o loop images/initrd.img initrd/ cp -av rootfs/* initrd/ umount initrd/ gzip -9 < images/initrd.img > images/initrd.bin mv images/initrd.bin /tftpboot rmdir initrd rm -r images exit 0

Entwicklungsumgebung Open-Source => Die GNU-Toolchain Toolchain = Werkzeug – Kette

Entwicklungsumgebung

Entwicklungsumgebung Windows 2000 Cygwin => „www.cygwin.com/setup“ UNIX-Umgebung wird simuliert cygwin1.dll Cygwin Programme

Entwicklungsumgebung Windows 2000 Toolchain für die ARM-Architektur Installieren: www.gnuarm.com Hauptverzeichnis: c:\GNUARM

Entwicklungsumgebung Windows 2000 Toolchain für die ARM-Architektur Verzeichnis in den Suchpfad einbinden : PATH=/GNUARM/bin:$PATH; export PATH Testen: arm.elf.gcc -v

Entwicklungsumgebung Linux Toolchain für die ARM-Architektur ftp.gnu.org/gnu/binutils/binutils-2.16.tar.gz ftp.gnu.org/gnu/gcc/gcc-3.4.4/gcc-3.4.4.tar.bz2 ftp.gnu.org/gnu/glibc/glibc-2.3.5.tar.gz ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.12.tar.gz maxim.org.za/AT91RM9200/2.6/2.6.12-at91.patch.gz

da die Schritte von einander abhängig sind. Entwicklungsumgebung Linux Toolchain für die ARM-Architektur Installationsschritte: binutils-2.16.tar.gz glibc-2.3.5.tar.gz gcc-3.4.4.tar.bz2 Die Einhaltung der Reihenfolge der Installationsschritte ist zwingend notwendig, da die Schritte von einander abhängig sind.

Entwicklungsumgebung Programme Beschreibung ld Zusammenfügen der einzelnen Objekt-Dateien. Erstellen von ausführbaren Images ar Ein Tool zum Erstellen und Modifizieren von Archiven. Das Extrahieren von Code aus Bibliotheken ist ebenfalls möglich. ranlib Index über ein Archiv erzeugen readelf Anzeigen von Informationen eines ELF-Files (Object oder ausführbar) nm Auflisten von Symbolen aus Object-Dateien addr2line Ermöglicht das Konvertieren von Adressen in Dateinamen mit zugehörigen Zeilennummern. Kann bei der Fehlersuche nützlich sein. as Umsetzen von ASCIII-Quellcode in eine Objekt-Datei. gprof Anzeigen von Profiling-Informationen. Diese sind bei der Laufzeit-Analyse von Programmen sehr hilfreich. size Anzeige der Größe einzelner Sektionen innerhalb einer Objekt- oder Archiv-Datei. objcopy Kopieren und Umwandeln von Objekt-Dateien. objdump Anzeige von Informationen über Objekt-Dateien. strings Anzeige druckbarer Zeichenketten innerhalb von Dateien. strip Löschen von Symbolfunktionen aus Dateien. Das kann zu einer drastischen Reduzierung der Größe dieser Dateien führen.

Entwicklungsumgebung Fehlersuche mit Debugger „gdb“ arm-elf-gcc -g Grafische Unterstützung insight ddd

Entwicklungsumgebung IDE (Integrated Development Environment) Integrierte Entwicklungsumgebung Editor Compiler Debugger

Entwicklungsumgebung Integrierte Entwicklungsumgebung bei der SUSE 9.3 Distribution KDevelop (KDE) und Anjuta (GNOME),

Web Server

Web Server Web Technologien CGI (Common Gateway Interface) JavaScript Java-Applets Java-Servlets.

Web Server Web Technologien Allgemeiner Begriff: „Web Services“ JSP ( Java Server Pages) ASP ( Active Server Pages) PHP ( Hypertext Preprocessor) Allgemeiner Begriff: „Web Services“

Web Server Open-Source => LAMP Linux Apache MySQL Perl oder PHP

Web Server APACHE inetd standalone

Web Server Konfigurationsdateien httpd.conf srm.conf access.conf

Web Server Apache und Module Base Extension Experimental AddModule: aktiviert ein zur Verfügung stehendes Modul. ClearModuleList: deaktiviert alle zur Verfügung stehenden Module. Base Extension Experimental

Web Server Hilfsprogramme apxs wird zur Kompilierung externer Module für den Apache außerhalb des eigentlichen Kontextes verwendet (Apache Extension Tool). apachectl ist ein Shell-Skript, das den Webserver startet. start startet den Webserver stop stoppt den Webserver restart Neustart des Webservers (sendet SIGHUP an den Apache) fullstatus Ausgabe des Serverstatus status Kurzform des Serverstatus graceful "netter" Neustart (sendet SIGUSR1 an den Apache) configtest Syntaxtest der Konfigurationsdateien. ab ist ein Tool zur Durchführung von Webserver-Benchmarks. htdigest Verwaltung der Passwortdateien für die Digest-HTTPAuthentisierung. htpasswd Verwaltung der Passwortdateien für die Basic-HTTPAuthentisierung. dbmmanage Verwaltung von Passwortdateien für die HTTPAuthentisierung im DBM Format. logresolve ersetzt IP-Adressen in Logdateien durch die entsprechenden DNS- Adressen. rotatelogs Rotieren der Logdateien, ohne dass ein Anhalten des Servers notwendig ist. log_server_status schreibt den aktuellen Apache-Status in eine Logdatei.

Web Server Web-Anwendung SSI – Server Side Include zwischen dem Kommentaranfang „<!--" und dem SSI-Befehl ist kein Leerzeichen und hinter dem SSI-Befehl und vor dem Kommentarende „-->“ muss ein Leerzeichen sein.

Web Server Web-Anwendung CGI – Commom Gateway Interface Standardkonzepte von Unix Umgebungsvariablen Kommandozeilenparameter Standardeingabe (stdin) Standardausgabe (stdout) Fehlerausgabe „error.log“

Web Server Web-Anwendung CGI – Commom Gateway Interface

Web Server Web-Anwendung FastCGI Offener TCP-Port der Webserver und der Rechner, auf dem die FastCGI-Applikation läuft, in einem abgesicherten Netzsegment stehen, alle Rechner in diesem Netzsegment vertrauenswürdig sind und keine Netzverbindungen von außen auf den von der FastCGI-Applikation verwendeten TCP-Port initiiert werden können.

Web Server Der embedded Server apache-1.3.xx.tar.gz (Version 1.3)

Anwendungsbeispiel

Anwendungsbeispiel

Anwendungsbeispiel

Vielen Dank für Ihre Aufmerksamkeit! Fragen? Vielen Dank für Ihre Aufmerksamkeit!