Planung eines Fernsystems

Werbung
Portierung eines LINUX Systems auf ein
ARM Modul und Implementierung eines
embedded Web Servers
Diplomarbeit
Autor: Rade Bozic
Fernsystem
Zielsetzung
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
Erfahrung
31 %
17 %
3%
11 %
15 %
Lieferzeit
Preis
Sonstige (3%)
12 %
11 %
Technischer Vorsprung
Service
Qualität entscheidet
Einleitung
Spannungsfeld Qualität
Kunde
Anforderungen
Erwartungen
Preise
Qualität
Unternehmen
Produkte
Eigenschaften
Kosten
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
Einleitung
Was bedeutet Qualität in Bezug auf das Fernsystem?
Anwender
Fernsystem
Abstraktionsebene
(Konfigurationsfenster)
Planung eines Fernsystems
Einsatz eines Fernsystems
Internet
oder
Intranet
SERVER
Fernsystem
Fernsystem
Fernsystem
Fernsystem
Technischer
Prozeß
Technischer
Prozeß
Technischer
Prozeß
Technischer
Prozeß
Browser
Techniker
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
Fernsystem
Konzept
Konfigurationsfenster
des
Fernsystems
Administrator
Entwicklung des Fernsystems
(Planung und
Organisation)
Werkzeuge (Tools)
Software
Hardware
Software
Hardware
Fertiges
Fernsystem
Integration
Konfigurationsfenster
der
Anwendung
Techniker
Kunden spezifische
Anwendung
(Integration in das
Fernsystem)
Testen der
Amwendung
Technischer Prozzes
Inbetriebnahme
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?
Software – Programme:
 System Update
 Software installieren
 Software löschen
 Andere
Welche Standardkomponente sollte das Konfigurationsfenster
eines Fernsystems beinhalten?
Netzwerkdienste:
 FTP
 TFTP
 HTTP
 NFS
 Remote Steuerung
 Andere
Welche Standardkomponente sollte das Konfigurationsfenster
eines Fernsystems beinhalten?
Hardware:
 Hardware Information
 LAN
 CAN
 RS232
 RS485
 Andere
Welche Standardkomponente sollte das Konfigurationsfenster
eines Fernsystems beinhalten?
System:
 Datum und Zeit
 sysconfig
 Flash Speicher
 Integration einer Anwendung
 Andere
Welche Standardkomponente sollte das Konfigurationsfenster
eines Fernsystems beinhalten?
Benutzer:
 Benutzterverwaltung
 Gruppenverwaltung
 Andere
Administration eines Fernsystems
Internet
oder
Intranet
SSL
SERVER
Fernsystem
Fernsystem
Fernsystem
Fernsystem
Technischer
Prozeß
Technischer
Prozeß
Technischer
Prozeß
Technischer
Prozeß
Browser
Administrator
Ziel:
 Änderungen an den Fernsystem vornehmen
 Aktuellen Zustand des Fernsystems darstellen
Administration eines Fernsystems
Auftrag abschicken
Fernsystem
CGI Programm
aufrufen
Internet
oder
Intranet
CGI-Programm
Datenbank
HTML Datei
erzeugen
(Meßwerte)
Einstellung des
Fernsystems
Umgebungsvariable
SSL
Web Server
System Programme
APACHE
Dynamisch
erzeugte
HTML
HTML Datei
übergeben
Dynamisch
erzeugte
HTML
AD-Wandler
(Temperatur)
Browser
Technischer
Prozess
Administrator
 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
Auftrag abschicken
Fernsystem
CGI Programm
aufrufen
Internet
oder
Intranet
CGI-Programm
HTML Datei
erzeugen
Datenbank
abfragen
Datenbank
(Meßwerte)
Umgebungsvariable
Web Server
APACHE
Dynamisch
erzeugte
HTML
HTML Datei
übergeben
Dynamisch
erzeugte
HTML
AD-Wandler
(Temperatur)
Browser
Technischer
Prozess
Techniker
 Aktuellen Zustand des Technischen Prozesses darstellen
Beispiel eines technischen Prozesses
Auftrag abschicken
Fernsystem
CGI Programm
aufrufen
Internet
oder
Intranet
CGI-Programm
Konfiguration
ändern
Datenbank
(Meßwerte)
HTML Datei
erzeugen
Umgebungsvariable
Web Server
Konfigurationsdatei
des AD-Wandler
APACHE
Dynamisch
erzeugte
HTML
HTML Datei
übergeben
Dynamisch
erzeugte
HTML
AD-Wandler
(Temperatur)
Browser
Technischer
Prozess
Techniker
 Änderungen an den Technischen Prozess vornehmen
Aufbau eines Linux- Systems
Aufbau eines Linux-Sytems
 Hardware
 Bootloader
 Betriebsystem
 Dateisystem
Aufbau eines Linux-Sytems
Konfiguration
Dateien
NFS
Busybox
Telnet
Web Server
(Apache)
Root Dateisystem
FTP
Biblioteken
Bootloader
(Firmware)
Betriebsystem Linux
Hardware
RS232
Treiber
Ethernet
TCP/IP
Flash Specher
Dateisystem
RTClock
Planung eines Linux-Sytems
Linux-System
Konfiguration
Dateien
NFS
Busybox
Telnet
Web Server
(Apache)
Root Dateisystem
FTP
Biblioteken
Bootloader
(Firmware)
Hardware
Betriebsystem Linux
RS232
Treiber
Ethernet
TCP/IP
Flash Specher
Dateisystem
RTClock
Hardware
 Entwicklungsboard (Eval-Board)
 DIMM Modul
 Entwicklungsrechner
Hardware – Eval-Board
Power
DIMM-RM9200 EVAL-Board
RTClock
Reset
SmartCard
Display-Stecker
AT91RM9200 DIMM-Modul
(Blatt 1)
HW-Treiber
DEBUG
RS232
RS232
RS485
MMC/SD
JTAG-Stecker
HW-Treiber
SO-DIMM connector
HW-Treiber
CAN
USB-Device
USB-Host
Ethernet
MODEM
Hardware – DIMM Modul
AT91RM9200 DIMM-Modul
DATA
FLASH
SPI
Memory
IF
SDRAM
USART
USB
Device
BUFFER
16 Bit Data /
23 Bit
Address
SSI/
I2S
GPIO/
CF
Ethernet
10/100MBit
MMC/SD
AT91RM9200
ARM920T CPU
with MMU
FLASH
USB
Host
MII
3.3V
1.8V
Regulator
SO-DIMM connector
10/100MBit
Ethernet Phy
Hardware – Entwicklungsrechner
Externe Geräte
Desktop PC
(z.B USB Stick)
(Entwicklungsrechner)
parallel
JTAG
Eval-Board
RS232
Seriell 1
Seriell 2
DATA
Embedded System
DEBUG
AT91RM9200
Bootloader
Bootloader
Start des Bootvorgangs beim DIMM-Modul
Power on
oder
Reset
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 SPI
2. EEPROM (FLASH) an TWI
3. 8-Bit Speichermedium an NSC0 des EBI
Uploader
(max. 12 KByte groß)
initialisierung :
1. SRAM
2. Xmodem Protocol über DBGU Serial
3. SPI Flash
4. Programm in SRAM laden und starten
Stufe1
U-Boot (max. 128 KByte)
JA
Vector
gefunden
Nein
DBGU Serial wird initialisiert von den
internen Bootloader. Es wird das Zeichen
'C' über Xmodem auf dem Terminal
ausgegeben, und wartet auf ein
Download. Das Programm wird in das
interne SRAM geladen und gestartet.
Das Programm darf max. 12 KByte groß
sein (interner SRAM=16 KByte ->12
KByte für Programm 4 KByte für Stack).
Initialisierung des Boards:
1. Ramdisk in SRAM laden
2. Linux in SRAM laden
3. bootargs an linux übergeben
4. Linux starten
Stufe2
Bootloader
Eigenes Programm starten
(z.B. Test des Uploaders)
Bootloader
Interne Firmware (Bootloader)
ARM920T Core
 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
Instruction Cache
16KByte
MMU
Fast SRAM
16KByte
Memory
Controller
Fast ROM
128KByte
Data Cache
16KByte
Bootloader
Funktion des „remap“ Befehls
Interner
SRAM
Interner
ROM
(16 KByte)
(128 KByte)
0x00200000
0x00000000
0x00100000
remap
Interner
ROM
Interner
SRAM
(128 KByte)
(16 KByte)
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
Aufgaben des Uploaders
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
Entwicklungsumgebung
aufbauen (arm-linux-gcc)
Zeit
Uploader
anpassen
SU-Boot
kann den parallelen Flash
lesen und beschreiben
PU-Boot
konfigurieren und übersetzen
SU-Boot kopiert PU-Boot in den
ersten Sektor von parallelen
Flash
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
Starten von U-Boot
Ja
CONFIG_BOOTCOMMAND
Ist leer
Prompt ausgeben auf die
Console und auf Eingabe
warten
Nein
Timeout=3s wird gestartet
Ist Timeout unterbrochen?
Nein
Script starten
Ja
Prompt ausgeben auf die
Console und auf Eingabe
warten
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  Ramdisk wird geladen ab der Adresse
„initrdload“
 tftp $(kernelload) uImage
 Kernel wird geladen ab der Adresse
„kernelload“
 bootm
 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
Benutzter-Programme
Shell
Shell
DienstProgramme
Dienst-Programme
C-Bibliothek
Betriebsystem Linux
Hardware
Linux-Kernel
Im Linux Quellen existieren zwei separate
Programme
 Kernel mit dem Modulen
 Kconfig (Konfigurationsprogramm)
Linux-Kernel
Neuen Kernel generieren
Kernel erstellen:


make xconfig
make
Module erstellen:


make modules
make INSTALL_MOD_PATH=${SYSROOT} modules_install
Linux-Kernel
Was sind Module?
0xFFFFFFFF
Kernel-Space
 Module sind
Kernel Programme
0xC0000000
Programme wie jede
andere Programme
auch, nur das die im
Kernel-Space ablaufen.
User Programme
User-Space
0
Virtueller Adressraum
Root Dateisystem
Root Dateisystem
/bin
/dev
/bin
/include
/etc
/home
/user
/lib
/nfs
/mnt
/usb
/proc
/cf
/lib
/sbin
/root
/sbin
/sys
/usr
/tmp
/var
/tmp
/www
/apache
/src
/local
Sub Dateisystem
/
Haupt 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 IPAdressen
 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
/etc/Inittab
Kernel
/sbin/init
::sysinit:/etc/rc.d/rcS
/etc/rc.d/rcS
runlevel=3
Init-Scripte
for i in /etc/rc.d/rc$runlevel.d/K*
do
if
[ "$i" = "/etc/rc.d/rc$runlevel.d/K*" ]; then break
fi
$i stop
done
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 start
done
/etc/init.d/
/etc/rc.d/rc3.d
( beinhalted nur
Links zu den
Init-Scripten )
S01fbset
S02fsmount
S10Network
.
.
.
.
S40apache
S50ftp
apache
fbset
fsmount
.
Init-Scripte
.
.
.
rtc
telned
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
Funktionsweise einer Entwicklungsumgebung
Makefile
make
Editor
test.c
CPP
Standardtexte
Binutils (binary Utilitis)
test . i
Programmierer
CC
test . s
AS
test . o
Bibliotheken
(glibc)
LD
test.out
OBJCOPY
test.bin
test.srec
test.hex
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
Entwicklungsumgebung
Linux
Toolchain für die ARM-Architektur
Installationsschritte:
1.
2.
3.
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
Transaktion einer HTTP Anfrage
HTTP Anfrage
SessionID-1
HTML Daten
Browser
HTTP Anfrage
SessionID-2
Browser
HTML Daten
WEB SERVER
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“
Web Server
Open-Source => LAMP
 Linux
 Apache
 MySQL
 Perl oder PHP
Web Server
APACHE
Pre-Forking Modell
httpd
child-n
 standalone
HTTP
Client-n
HTTP
Client-2
httpd
child-2
HTTP
Client-1
httpd
child-1
APACHE
httpd parents
Config
Dateien
Forking
 inetd
Web Server
Konfigurationsdateien
 httpd.conf
 srm.conf
 access.conf
Web Server
Apache und Module
 AddModule:
 ClearModuleList:
aktiviert ein zur Verfügung stehendes
Modul.
deaktiviert alle zur Verfügung stehenden
Module.
 Base
 Extension
 Experimental
Web Server
Hilfsprogramme

apxs

apachectl
wird zur Kompilierung externer Module für den Apache außerhalb des
eigentlichen Kontextes verwendet (Apache Extension Tool).
ist ein Shell-Skript, das den Webserver startet.














fullstatus
status
graceful
configtest
ab
htdigest
htpasswd
dbmmanage
start startet den Webserver
stop stoppt den Webserver
restart Neustart des Webservers (sendet SIGHUP an den Apache)
Ausgabe des Serverstatus
Kurzform des Serverstatus
"netter" Neustart (sendet SIGUSR1 an den Apache)
Syntaxtest der Konfigurationsdateien.
ist ein Tool zur Durchführung von Webserver-Benchmarks.
Verwaltung der Passwortdateien für die Digest-HTTPAuthentisierung.
Verwaltung der Passwortdateien für die Basic-HTTPAuthentisierung.
Verwaltung von Passwortdateien für die HTTPAuthentisierung im DBM
Format.
logresolve
ersetzt IP-Adressen in Logdateien durch die entsprechenden DNSAdressen.
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
Dynamische Seitengenerierung eines CGI-Programms
Browser
Embedded Web Server
(Anwender)
CGI Programm
aufrufen
CGI-Programm
HTML Datei
erzeugen
Auftrag abschicken
Datenbank
abfragen
Datenbank
(Meßwerte)
Umgebungsvariable
Web Server
Dynamisch
erzeugte
HTML
user
Browser
APACHE
HTML Datei
übergeben
Dynamisch
erzeugte
HTML
AD-Wandler
(Temperatur)
Technischer
Prozess
Web Server
Web-Anwendung
FastCGI
Offener TCP-Port



der Webserver und der Rechner, auf dem die FastCGIApplikation 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)
 httpd-2.0.xx.tar.gz
(Version 2.0)
Anwendungsbeispiel
Anwendungsbeispiel
Anwendungsbeispiel
Fragen?
Vielen Dank für Ihre Aufmerksamkeit!
Herunterladen