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!