diplomarbeit autor: rade bozic portierung eines linux systems auf ein arm modul und implementierung...
Post on 05-Apr-2015
106 Views
Preview:
TRANSCRIPT
Diplomarbeit
Autor: Rade Bozic
Portierung eines LINUX Systems auf ein ARM Modul und Implementierung eines
embedded Web Servers
Fernsystem
Zielsetzung
Universell einsetzbares System im Bereichen:
• Fern - Wartung
• Fern - Diagnose
Einleitung Planung eines Fernsystems Aufbau eines Linux- Systems
Hardware Bootloader Root Dateisystem
Entwicklungsumgebung Web Server Realisierung einer Anwendung
Gliederung des Vortrages
Einleitung
Service
Lieferzeit
Erfahrung
Technischer Vorsprung
Preis
Qualität
15 %
17 %
31 %
3 %
12 % 11 %
11 %Sonstige (3%)
Qualität entscheidet
Einleitung
Qualität
Preise
KostenUnternehmen
ProdukteEigenschaften
KundeAnforderungenErwartungen
Spannungsfeld Qualität
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
Einleitung
Was bedeutet Qualität in Bezug auf das Fernsystem?
Fernsystem
Abstraktionsebene (Konfigurationsfenster)
Anwender
Einleitung
Planung eines Fernsystems
Einsatz eines Fernsystems
Ziel:
Aktuellen Zustand der Technische Prozesse darstellen Änderungen an den Technischen Prozess vornehmen
Fernsystem FernsystemFernsystemFernsystem
TechnischerProzeß
TechnischerProzeß
TechnischerProzeß
TechnischerProzeß
Browser
Techniker
SERVER
InternetoderIntranet
Planung eines Fernsystems
Steuerung eines Technischen Prozesses mit dem Fernsystem
Administration des Fernsystems
Aufteilung in zwei Bereiche
Planung eines Fernsystems
Werkzeuge (Tools)Software Hardware
Konzept(Planung undOrganisation)
Software Hardware
FertigesFernsystem
En
twic
klu
ng
de
s F
ern
sy
ste
ms
Kunden spezifischeAnwendung
(Integration in dasFernsystem)
InbetriebnahmeTesten der
Amwendung
Konfigurationsfensterdes
Fernsystems
Konfigurationsfensterder
Anwendung
Fernsystem
Technischer Prozzes
Administrator
Techniker
Integration
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
Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten?
Software - Programme Netzwerkdienste Hardware System Benutzer Andere
Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten?
System Update Software installieren Software löschen Andere
Software – Programme:
Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten?
FTP TFTP HTTP NFS Remote Steuerung Andere
Netzwerkdienste:
Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten?
Hardware Information LAN CAN RS232 RS485 Andere
Hardware:
Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten?
Datum und Zeit sysconfig Flash Speicher Integration einer Anwendung Andere
System:
Welche Standardkomponente sollte das Konfigurationsfenster eines Fernsystems beinhalten?
Benutzterverwaltung Gruppenverwaltung Andere
Benutzer:
Administration eines Fernsystems
Ziel:
Änderungen an den Fernsystem vornehmen Aktuellen Zustand des Fernsystems darstellen
Fernsystem FernsystemFernsystemFernsystem
TechnischerProzeß
TechnischerProzeß
TechnischerProzeß
TechnischerProzeß
Browser
Administrator
SERVER
InternetoderIntranet
SSL
Administration eines Fernsystems
Aktuellen Zustand des Fernsystems ändern oder darstellen mit den System Programmen
InternetoderIntranet
Fernsystem
AD-Wandler(Temperatur)
Browser
Administrator
Datenbank(Meßwerte)
Dynamischerzeugte
HTML
HTML Dateiübergeben
Einstellung desFernsystems
TechnischerProzess
Auftrag abschicken
Dynamischerzeugte
HTML
Umgebungsvariable
CGI-Programm
HTML Dateierzeugen
Web Server
APACHE
CGI Programmaufrufen
System Programme
SSL
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
InternetoderIntranet
Fernsystem
AD-Wandler(Temperatur)
Browser
Techniker
Datenbank(Meßwerte)
Dynamischerzeugte
HTML
HTML Dateiübergeben
Datenbankabfragen
TechnischerProzess
Auftrag abschicken
Dynamischerzeugte
HTML
Umgebungsvariable
CGI-Programm
HTML Dateierzeugen
Web Server
APACHE
CGI Programmaufrufen
Beispiel eines technischen Prozesses
Änderungen an den Technischen Prozess vornehmen
InternetoderIntranet
Fernsystem
AD-Wandler(Temperatur)
Browser
Techniker
Datenbank(Meßwerte)
Dynamischerzeugte
HTML
HTML Dateiübergeben
Konfigurationändern
TechnischerProzess
Auftrag abschicken
Dynamischerzeugte
HTML
Umgebungsvariable
CGI-Programm
HTML Dateierzeugen
Web Server
APACHE
CGI Programmaufrufen
Konfigurationsdateides AD-Wandler
Aufbau eines Linux- Systems
Aufbau eines Linux-Sytems
Hardware Bootloader Betriebsystem Dateisystem
Aufbau eines Linux-Sytems
Hardware
Betriebsystem LinuxBootloader(Firmware)
Root Dateisystem
Treiber TCP/IP
FTP
KonfigurationDateien
NFSWeb Server
(Apache)
RS232 Ethernet Flash Specher
Biblioteken
TelnetBusybox
Dateisystem
RTClock
Planung eines Linux-Sytems
Linux-System
Hardware
Betriebsystem LinuxBootloader(Firmware)
Root Dateisystem
Treiber TCP/IP
FTP
KonfigurationDateien
NFSWeb Server
(Apache)
RS232 Ethernet Flash Specher
Biblioteken
TelnetBusybox
Dateisystem
RTClock
Hardware
Entwicklungsboard (Eval-Board) DIMM Modul Entwicklungsrechner
Hardware – Eval-Board
DEBUGRS232
RS232 RS485 CAN USB-HostUSB-Device MODEM
MM
C/S
D
Ethernet
Sm
art
-C
ard
RT
-C
lock
DIMM-RM9200 EVAL-Board
HW-Treiber HW-Treiber
HW
-Tre
iber
AT91RM9200 DIMM-Modul(Blatt 1)
SO-DIMM connector
JTA
G-S
teck
er
Dis
pla
y-S
teck
er
Pow
er
Reset
Hardware – DIMM Modul
AT91RM9200ARM920T CPU
with MMU
USARTUSB
Device
GP
IO/
CF
SS
I/I2
S
USBHost
Me
mo
ryIF
MM
C/S
D
Eth
ern
et
10/1
00
MB
it
SP
I
SDRAM FLASH
10/100MBitEthernet Phy
SO-DIMM connector
DATAFLASH
1.8VRegulator
3.3V
BUFFER
16 Bit Data /23 BitAddress
MII
AT91RM9200 DIMM-Modul
Hardware – Entwicklungsrechner
Desktop PC(Entwicklungsrechner)
RS232
Seriell 1
Seriell 2
parallel
Eval-Board
Embedded System
AT91RM9200
JTAG
Externe Geräte(z.B USB Stick)
DEBUG
DATA
Bootloader
Bootloader
Uploader (max. 12 KByte groß) initialisierung :1. SRAM2. Xmodem Protocol über DBGU Serial3. SPI Flash4. Programm in SRAM laden und starten
Vector gefunden
1. Der interne Bootloader wird gestartet der sich in internen ROM befindet.
2. Der interne Bootloader durchsucht die Peripherie nach einem bootfähigen Programm (start Sequenz). Durchsuchung der Peripherie in dieser Reihenfolge:
1. Dataflash an NPCS0 des SPI2. EEPROM (FLASH) an TWI3. 8-Bit Speichermedium an NSC0 des EBI
DBGU Serial wird initialisiert von deninternen Bootloader. Es wird das Zeichen'C' über Xmodem auf dem Terminala u s g e g e b e n , u n d w a r t e t a u f e i nDownload. Das Programm wird in dasinterne SRAM geladen und gestartet.Das Programm darf max. 12 KByte großsein ( interner SRAM=16 KByte ->12KByte für Programm 4 KByte für Stack).
JA Nein
Eigenes Programm starten(z.B. Test des Uploaders)
U-Boot (max. 128 KByte) Initialisierung des Boards:1. Ramdisk in SRAM laden2. Linux in SRAM laden3. bootargs an linux übergeben4. Linux starten
Bootloader
Stufe1
Stufe2
Power onoder
Reset
Start des Bootvorgangs beim DIMM-Modul
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
Interne Firmware (Bootloader)ARM920T Core
Memory
Controller
Data Cache16KByte
MMUInstruction Cache
16KByte
Fast SRAM16KByte
Fast ROM128KByte
Bootloader
Funktion des „remap“ Befehls
InternerROM
(128 KByte)
InternerROM
(128 KByte)
InternerSRAM
(16 KByte)
InternerSRAM
(16 KByte)
remap 0x00100000
0x00000000
0x00200000
0x00000000
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
SDRAM Xmodem Protocol über DBGU Serial
SPI Flash
Aufgaben des Uploaders
Initialisierung :
Laden und starten von Programmen in SDRAM
Bootloader -Uploader
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
Funktionen des Uploaders
Bootloader – U-Boot
Open-Source Projekt Sehr gute Dokumentation Portiert auf mehr als 100 Plattformen Sehr flexibel Viele Funktionen
U-Boot => Universal Bootloader
Bootloader – U-Boot
Initialisierung des Boards Ramdisk in SDRAM laden Linux in SDRAM laden bootargs an Linux übergeben Linux starten
Aufgaben von U-Boot
Bootloader – U-Boot
U-Boot wurde auf die DIMM-RM9200 Plattform portiert
make DIMM_rm9200_config
make
U-Boot wird für das DIMM-RM9200 Board konfiguriert
U-Boot wird für das DIMM-RM9200 Board übersetzt
Bootloader – U-Boot
Starten aus dem parallelen Flash Starten aus dem seriellen Flash
Zwei Boot-Modi
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
U-Boot für den parallelen Flash (PU-Boot) U-Boot für den seriellen Flash (SU-Boot)
Zwei U-Boot Programme
Bootloader – U-Boot
PU-Boot hat seine Umgebungsvariable im parallelen Flash, SU-Boot im seriellen Flash.
Uploader wird beim Start von PU-Boot
nicht benötigt
Unterschiede zwischen den beiden U-Boot Programmen
Bootloader – U-Boot
Entwicklungablauf des Bootloaders
Entwicklungsumgebungaufbauen (arm-linux-gcc)
Uploaderanpassen
SU-Boot kann den parallelen Flash
lesen und beschreiben
PU-Boot konfigurieren und übersetzen
SU-Boot kopiert PU-Boot in denersten Sektor von parallelen
FlashZ
eit
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
über Uploader aus dem seriellen Flash (Jumper nicht aufgesetzt)
aus dem parallel Flash (Jumper aufgesetzt)
über Uploader mit dem XModem Protocol(Jumper nicht aufgesetzt)
Es gibt drei Möglichkeit U-Boot zu starten:
Bootloader – U-Boot
Manipulation von Flash Speicher boot Befehle (laden und starten von Programmen) Netzwerk Befehle informations- Befehle
Arbeiten mit dem U-Boot
U-Boot Befehle:
Bootloader – U-Boot
Mehrere Befehle in einem Befehl vereinen Scripte werden mit dem Befehl „run“ gestartet Ein Script startet das Betriebsystem
U-Boot Scripte
Bootloader – U-Boot
Starten von U-Boot
CONFIG_BOOTCOMMANDIst leer
Nein
Ja Prompt ausgeben auf dieConsole und auf Eingabe
warten
Timeout=3s wird gestartet
Ist Timeout unterbrochen?
Ja Prompt ausgeben auf dieConsole und auf Eingabe
warten
Script starten
Nein
Startablauf von U-Boot
Bootloader – U-Boot
Variablen:
#define CONFIG_BOOTCOMMAND "run tftpboot„
#define CONFIG_BOOTARGS
#define CONFIG_EXTRA_ENV_SETTINGS
Drei wichtigsten Variablen zum starten von Linux
Konfigurationsdatei DIMM_rm9200.h
Bootloader – U-Boot
"tftpboot=tftp $(initrdload) initrd.bin;tftp $(kernelload) uImage;bootm\0"
Beispiel: Script „tftpboot“
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
Das Script „tftpboot“ ist in der Variable CONFIG_EXTRA_ENV_SETTINGS definiert
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
Linux-Kernel C-Bibliothek Shell Dienst - Programme
Komponente eines lauffähigen Linux-Systems
Funktion eines Linux-Systems
Benutzter-Programme
Hardware
Betriebsystem Linux
C-Bibliothek
Dienst-ProgrammeDienst-
Programme
ShellShell
Linux-Kernel
Kernel mit dem Modulen Kconfig (Konfigurationsprogramm)
Im Linux Quellen existieren zwei separate Programme
Linux-Kernel
Kernel erstellen:
make xconfig make
Module erstellen:
make modules make INSTALL_MOD_PATH=${SYSROOT} modules_install
Neuen Kernel generieren
Linux-Kernel
Module sind Programme wie jede andere Programme auch, nur das die im Kernel-Space ablaufen.
Kernel-Space
User-Space
0
0xC0000000
Virtueller Adressraum
0xFFFFFFFF
User Programme
Kernel Programme
Was sind Module?
Root Dateisystem
Filesystem Hierarchy Standard (FHS) /bin
/sys
/sbin
/root
/proc
/mnt
/lib
/home
/etc
/dev
/user
Ha
upt D
ate
isys
tem
Root Dateisystem
/bin
/include
/local
/src
/sbin
/lib
Su
b D
atei
syst
em
/www
/usr
/var
/apache
/cf
/usb
/nfs
/
/tmp
/tmp
make menuconfig Programme auswählen Root Dateisystem angeben Cross-Kompiler eintragen
make make install
Root Dateisystem
BusyBox => „Multi-Call Binary“
Root Dateisystem
mime.types, protocols, rpc, services.
/etc
Dateien mit allgemeinen Informationen
Root Dateisystem
passwd, group, shadow.
/etc
Dateien mit Benutzerinformationen
Root Dateisystem
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
/etc
Dateien für die Netzwerkkonfiguration
Root Dateisystem
ifcfg-eth0 ifcfg-lo network_cfg
/etc/sysconfig
Dateien für die Netzwerkkonfiguration
Init-Scripte
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
Nach System-V-Init-Style gibt es 6 Runlevel.
Root Dateisystem
Init-Scripte
/sbin/init::sysinit:/etc/rc.d/rcS
runlevel=3
for i in /etc/rc.d/rc$runlevel.d/K*do if [ "$i" = "/etc/rc.d/rc$runlevel.d/K*" ]; then break fi $i stopdone
for i in /etc/rc.d/rc$runlevel.d/S*do if test $i = "/etc/rc.d/rc$runlevel.d/S*"; then break fi $i startdone
Kernel
S01fbsetS02fsmountS10Network . . . .S40apacheS50ftp
/etc/rc.d/rcS
/etc/Inittab
/etc/rc.d/rc3.d
( beinhalted nurLinks zu den Init-Scripten )
apachefbsetfsmount . . . .rtctelned
/etc/init.d/
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
Root Dateisystem
Toolchain = Werkzeug – Kette
Entwicklungsumgebung
Open-Source => Die GNU-Toolchain
Entwicklungsumgebung
Editor
CPP
CC
AS
LD
test.c
Bibliotheken(glibc)
test.out
test . o
test . s
test . i
OBJCOPY
Bin
utils
(bi
nary
Util
itis)
test.srectest.bin test.hex
Makefile
make
Standardtexte
Funktionsweise einer Entwicklungsumgebung
Programmierer
Entwicklungsumgebung
cygwin1.dll Cygwin Programme
Windows 2000
Cygwin => „www.cygwin.com/setup“
UNIX-Umgebung wird simuliert
Installieren: www.gnuarm.com
Hauptverzeichnis: c:\GNUARM
Entwicklungsumgebung
Toolchain für die ARM-Architektur
Windows 2000
Verzeichnis in den Suchpfad einbinden : PATH=/GNUARM/bin:$PATH; export PATH
Testen: arm.elf.gcc -v
Entwicklungsumgebung
Toolchain für die ARM-Architektur
Windows 2000
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
Entwicklungsumgebung
Linux
Toolchain für die ARM-Architektur
Installationsschritte:1. binutils-2.16.tar.gz
2. glibc-2.3.5.tar.gz
3. gcc-3.4.4.tar.bz2
Entwicklungsumgebung
Linux
Toolchain für die ARM-Architektur
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
insight ddd
Fehlersuche mit Debugger „gdb“
Grafische Unterstützung
arm-elf-gcc -g
Entwicklungsumgebung
IDE (Integrated Development Environment)
Integrierte Entwicklungsumgebung
Editor Compiler Debugger
KDevelop (KDE) und Anjuta (GNOME),
Entwicklungsumgebung
Integrierte Entwicklungsumgebung bei der SUSE 9.3 Distribution
Web Server
Browser
Browser WEB SERVER
HTTP Anfrage
HTTP Anfrage
HTML Daten
HTML DatenSessionID-1
SessionID-2
Transaktion einer HTTP Anfrage
Web Server
Web Technologien
CGI (Common Gateway Interface) JavaScript Java-Applets Java-Servlets.
Web Server
Web Technologien
JSP ( Java Server Pages) ASP ( Active Server Pages) PHP ( Hypertext Preprocessor)
Allgemeiner Begriff: „Web Services“
Linux Apache MySQL Perl oder PHP
Web Server
Open-Source => LAMP
Web Server
inetd standalone
httpd parents
HTTPClient-1
ConfigDateien
HTTPClient-2
HTTPClient-n
httpdchild-1
httpdchild-2
httpdchild-n
Forking
APACHE
Pre-Forking ModellAPACHE
httpd.conf srm.conf access.conf
Web Server
Konfigurationsdateien
Base Extension Experimental
Web Server
Apache und Module
AddModule: aktiviert ein zur Verfügung stehendes Modul.
ClearModuleList: deaktiviert alle zur Verfügung stehenden Module.
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
Hilfsprogramme
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
Web Server
CGI – Commom Gateway Interface
Umgebungsvariablen Kommandozeilenparameter Standardeingabe (stdin) Standardausgabe (stdout)
Fehlerausgabe „error.log“
Web-Anwendung
Standardkonzepte von Unix
Web Server
Browser(Anwender)
Embedded Web Server
AD-Wandler(Temperatur)Browser
user
Datenbank(Meßwerte)
Dynamischerzeugte
HTML
HTML Dateiübergeben
Datenbankabfragen
TechnischerProzess
Auftrag abschicken
Dynamischerzeugte
HTML
Umgebungsvariable
CGI-Programm
HTML Dateierzeugen
Web Server
APACHE
CGI Programmaufrufen
Dynamische Seitengenerierung eines CGI-Programms
Web-Anwendung
CGI – Commom Gateway Interface
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
Web-Anwendung
FastCGI
apache-1.3.xx.tar.gz (Version 1.3) httpd-2.0.xx.tar.gz (Version 2.0)
Web Server
Der embedded Server
Anwendungsbeispiel
Anwendungsbeispiel
Anwendungsbeispiel
Fragen?
Vielen Dank für Ihre Aufmerksamkeit!
top related