Diplomarbeit, 2004
83 Seiten, Note: 1,7
1 Einleitung
2 Projekt Internetnutzung/Filetransferservice
2.1 Aufgabenstellung
2.2 Technische Analyse
2.2.1 Analyse der Hardware
2.2.2 Analyse der zu unterstützenden Betriebssysteme
3 Theoretische Entwicklung
3.1 Anpassung des Betriebssystems Linux
3.2 Komponente „Internet Station“
3.2.1 Grafische Oberfläche mit „X“
3.2.1.1 Was ist das „X“- Windowssystem?
3.2.2 Userverwaltung der Clients
3.2.2.1 Userverwaltung mit NIS
3.2.2.2 Einbindung der Home-Verzeichnisse
3.3 Komponente „FileServer“
3.3.1 Sicherheit
3.3.2 Datenbankstruktur
3.3.3 PHP– Webprogrammierung
3.3.3.1 Was ist PHP ?
3.3.3.2 Vorteile von PHP
3.3.4 Servereinbindung in das Netzwerk
4 Praktische Realisierung
4.1 Realisierung „Internet Stations“
4.1.1 Probleme und Lösungsansätze
4.2 Realisierung „FileServer“
4.2.1 PHP- Funktionen
4.2.1.1 „Session“- Bildung
4.2.1.2 Sicherheit der Folgeseiten
4.2.1.2.1 Funktion „login_vorhanden“
4.2.1.3 Kernfunktion „Datei kopieren“
4.2.1.4 Erzeugung „Gastlogin“
4.2.2 Probleme und Lösungsansätze
5 Zusammenfassung
6 Ausblick
7 Glossar
8 Abbildungsverzeichnis
9 Literaturverzeichnis
10 Selbstständigkeitserklärung
11 Inhalt der CD-ROM
12 Anhang
Anhang A
Im Jahr 2002 absolvierte ich mein Praktikum im Fachbereich Maschinenbau der Fachhochschule Lausitz. Schon damals bestand ein Schwerpunkt darin, große Dateimengen zu transferieren. Ein Lösungsansatz war der Einsatz eines FTP-Servers. Allerdings war die Anwenderfreundlichkeit und die Sicherheit der Daten nur im geringen Maß gegeben. Hier besteht bis heute Handlungsbedarf, um eine einfache und sichere Möglichkeit zu schaffen. Während des Praktikums entstand ein Kontakt zu ehemaligen HP- Rechnern des Studienganges Maschinenbau. Bereits zu diesem Zeitpunkt entwickelte sich die Idee, diese wieder zu reaktivieren und dadurch den Studenten die Möglichkeit zu geben, mit den HP- Rechnern das Internet nutzen zu können.
Anhand dieses Kenntnisstandes entwickelte sich die Aufgabenstellung der vorliegenden Diplomarbeit. In Konsultationen mit Herr Prof. Dr.-Ing. Thomas Meißner vertieften sich immer mehr die Ansatzpunkte zur Lösung. Die Suche nach einer kostengünstigen Variante war ebenfalls eines der Ziele dieses Projektes.
Die zu verwendenden Rechner sind eine Eigenkonstruktion von Hewlett Packard, das erschwerte die Lösungsumsetzung erheblich. Nach genauer Prüfung, der zur Verfügung stehenden Betriebssysteme, kristallisierte sich die Anwendung von Linux heraus. Durch die Benutzung von Linux konnte die Hardware optimal genutzt und kostengünstig umgesetzt werden.
Die Problematik eines File- Transfersystems wurde komplett überarbeitet. Die Nutzung des Services erfolgt nun über eine Web- Anbindung und das Sicherheitssystem wurde erheblich verbessert.
Das überarbeitete System ermöglicht auch den Zugang von Gästen und sichert die Immunität der gesamten Dateien. Das war vorher nicht machbar. Bedingt durch die Nutzung der Web- Anbindung braucht der Benutzer (User) keine spezifischen Computerkenntnisse, wie zum Beispiel FTP- Befehle, mehr zu besitzen.
Die Aufgabenstellung ist sehr komplex, in dieser vorliegenden Diplomarbeit wurde die Basis des Projektes geschaffen. Um eine optimale Ausnutzung der vorhandenen Systeme zu schaffen, bedarf es weiterer Projekte, entweder im Rahmen mehrerer Praktika oder einer Diplomarbeit.
Die Aufgabe des Projektes ist die Schaffung einer Möglichkeit zur Internetnutzung für die Studierenden der Fachhochschule Lausitz, insbesondere für die des Fachbereiches Informatik/Elektronik/Maschinenbau (IEM), und für Gäste der FH Lausitz, ohne dabei, wie bisher geschehen, die CAD-Rechner im Gebäude 21 oder die Rechner anderer Pools zu belegen.
Dies soll durch die Wiederverwendung der Rechner Modell HP 712/60 bzw. der HP Apollo Serie 700, auf Basis der UNIX/LINUX- Betriebssysteme gelöst werden. Bei der Realisierung muss darauf geachtet werden, dass die User-Login- Berechtigungen von der Datenbank im Hochschulrechenzentrum (HRZ) bzw. vom jeweils eingeloggten Server genutzt werden können. Der Sicherheitsaspekt, gegenüber Missbrauch von den genutzten Rechnern, steht hierbei an erster Stelle. Die Internet-Rechner sollen an zentralen Stellen in den Laborgebäuden oder an beliebigen Orten auf dem FHL- Gelände aufgestellt werden können, so dass für die Studenten und Gäste der FH Lausitz die Nutzung des Internets und Intranets gewährleistet werden kann.
Es ist zu prüfen, ob zur besseren Bedienerfreundlichkeit auf den Internet- Rechnern ein Windows- Emulator installiert werden kann. Eingetragene Nutzer der Fachhochschule Lausitz sollen, unter Wahrung der Datensicherheit, Zugriff auf ihre Nutzerdaten (eigenes Verzeichnis und freigegebene Verzeichnisse) bekommen.
Des weiteren besteht im Studiengang Maschinenbau des Fachbereiches IEM zur Zeit keine zufriedenstellende Möglichkeit, große Datenmengen (bis zu 100 MB) von externen Netzwerken auf ein Home- Verzeichnis bzw. ein Upload- Verzeichnis, innerhalb des FH- Netzwerkes ohne Sicherheitsprobleme abzuspeichern oder davon abzuholen. Dies ist jedoch nötig, um z.B. Konstruktionsprojekte mit Unternehmen im Studiengang Maschinenbau zu realisieren. Eine effiziente Lösung für dieses Problem wird eine Teilaufgabe des Projektes sein.
Um das Betriebssystem optimal auf die Hardwarekomponenten abstimmen zu können, müssen diese vorher bekannt sein. Mit Hilfe der Gerätenummer des Rechners konnten, durch das Internet, folgende Baugruppen entschlüsselt werden.
Die folgende Tabelle listet die vorhandenen Geräte des Fachbereiches Maschinenbau auf.
Abbildung in dieser Leseprobe nicht enthalten
Diese Tabelle zeigt die vorhandene Grundausstattung des Fachbereiches Maschinenbau.
Die vorhandenen Rechner gehören zur Baureihenserie HP-9000. Hierbei gibt es verschiedene Geräteklassifikationen. Die größten Unterschiede sind bei der CPU, der Grafikkarte und den Anschlussports für weitere Peripherie- Geräte zu finden.
Diese Hardwarekomponenten sind bei den Rechnern identisch:
1. 10 MBit Ethernet Adapter (i82596);
2. 8 Bit SCSI-2 Bus (53c710); maximale Datenübertragungsrate beträgt 10 MB/s
3. PS/2- oder HIL- Adapter für Keyboard und Mouse
4. Seriell Bus (16550A)
5. Parallel Bus (37C65C)
6. “Harmony” Soundcontroller.
Die Rechner basieren auf der CPU-Familie PA- 7000/7100(LC). Diese CPU-Familie baut auf die RISC Architektur auf.
RISC steht für „ R educed I nstruction S et C omputer“, was soviel bedeutet wie „Verminderter Befehlssatz“. Untersuchungen in den 80er Jahren ergaben, dass der Befehlsumfang einer CISC Architektur, „ C omplex I nstruction S et C omputer“, im Arbeitsalltag der CPU auf einige wenige Befehle zentriert wird.
Teilt man die Maschinenbefehle einer CISC Architektur in die folgenden 8 Klassen ein,
I. Datentransportbefehle
II. Sprungbefehle und Unterprogrammsprünge
III. Arithmetische Befehle
IV. Vergleichsbefehle
V. Logische Befehle
VI. Schiebebefehle
VII. Bit-Manipulationsbefehle
VIII. Sonstige Befehle
dann entspricht diese Einteilung den beobachteten Häufigkeiten in der Verwendung der folgenden Grafik.
Anhand dieser Erkenntnis wurden die Prozessoren beschleunigt durch:
- Beschleunigung des Datentransportes zwischen den Registern, möglichst auf dem Chip und nicht im Speicher.
- Um Datentransport weiter zu beschleunigen, sollte nicht Byteweise auf dem Speicher zugegriffen werden, sondern Wortweise, mit 32 Bit auf die Daten und Befehle in Wortlängen, pro Speicherzugriff ein Befehl
- Die Abarbeitung von arithmetischen Befehlen sollte durch Schaltnetze im Rechenwerk unterstützt werden (32 Bit Addierer und Multiplizierer, 32 Bit Barrelshifter).
- Die Zahl der Befehle im Vergleich zur CISC- Architektur ist zu reduzieren, wobei die Abarbeitung der Befehle synchron zu dem CPU-Takt erfolgt. Es wird eine Befehlspipeline benötigt, da das Rechenwerk für alle Befehle die gleiche Zeit beansprucht.
- Die Unterstützung von Prozeduraufrufen höherer Sprachen kann durch ein Registerband geschehen.
Die Kennzeichen einer RISC Architektur ergeben sich daraus wie folgt:
- Befehle gleicher Länge (meist 32 Bit)
- Abarbeiten mit gleicher Taktzahl: erlaubt Befehlspipelines
- Eingeschränkter Befehlssatz (meist 32 –128 Befehle)
- Explizite Lade/Speicher – Befehle
- Registerband mit Registerfenstern
-3 – Adress-Befehle
Hewlett Packard entwickelte als eine der ersten Firma RISC-Prozessoren vom Typ PA-RISC. PA steh für „ Precision Architecture“. Dieser Prozessortyp besitzt zusätzlich einen „MAX“ -Befehlssatz. „MAX“ steht für „ M ultimedia A cceleration e X tensions“ (= “Multimedia-Beschleunigungs-Erweiterungen“).
Die zur Verfügung stehenden Prozessoren der Baureihe PA-RISC 7100/7000 unterstützen den MAX-1 Befehlssatz und gehören zu der PA-RISC 1.1 32-Bit Architektur.
Ein entscheidender Kernpunkt, bei der Wahl des Betriebssystems, ist die Unterstützung des Befehlssatzes der vorhandenen CPU im Rechner. Bei der Hardwareanalyse wurde festgestellt, dass es sich um einen PA-RISC 1.1 CPU- Typ handelt. Des weiteren ist es wichtig, ob die Treibersoftware für die jeweiligen Hardwarekomponenten vorhanden ist. Für den späteren Umgang mit dem Rechner, bezüglich des Betriebssystems ist auch zu berücksichtigen, in welchem Umfang das System bedienerfreundlich für den Anwender ist. Um bei eventuellen Problemen oder bei Fehleranalysen schnell Hilfe zu bekommen, ist es sehr hilfreich, wenn über das Betriebssystem ausreichend Dokumentationen zu finden sind. Ein weiterer Gesichtspunkt dieses Projektes ist die Finanzierung der Lizenzen zur Benutzung des Betriebssystems. Da dieses Projekt keine weiteren Kosten verursachen soll, muss dieses Betriebssystem weites gehend kostenfrei sein.
Das Betriebssystem „Windows“ von der Firma „Microsoft“ unterstützt ausschließlich Intel Prozessoren(CISC- Architektur). Aus diesem Grund können die Anwendungen für „Windows“, die nur die Befehlssätze der Intel-Prozessoren unterstützen, nicht auf die PA-RISC Plattform übernommen werden. Die Recherche im Internet ergibt, dass ausschließlich UNIX-konforme Betriebssysteme für die PA-RISC Technologie zur Verfügung stehen.
PA-RISC Technologie unterstützende Betriebssysteme:
1. HP-UX (HP eigenes UNIX-System)
2. NeXTSTEP
3. Linux (DEBIAN Linux)
4. OpenBSD
HP-UX
HP-UX läuft auf der HP- eigenen PA-RISC-Architektur. Der Vorteil dieses Betriebsystems ist die optimale Ausnutzung der Hardware, da alles aus einem Hause ist, allerdings ist HP-UX lizenzpflichtig.
Abbildung in dieser Leseprobe nicht enthalten
Je höher die Unix- Version ist, desto mehr RAM wird im Basissystem benötigt.
NeXTSTEP (GNUstep)
NeXTSTEP war ein Betriebssystem der Firma NeXT, welches seinerzeit (erste Version 1989) eines der technisch fortschrittlichsten und bedienungsfreundlichsten war. Es basierte auf BSD Unix und einem Mach-2.5-Kernel.
Als Steve Jobs, Mitbegründer von Apple, 1988 die Firma verließ, gründete er einfach seine nächste Firma, die er NeXT nannte. NeXT stellte ein Betriebssystem namens NeXTstep her. Es war POSIX- kompatibel, hatte eine bahnbrechende grafische Oberfläche und Konzepte, die seiner Zeit weit voraus waren. Leider waren die Rechner, auf denen NeXTstep lief, sehr teuer und das System konnte sich nicht so richtig durchsetzen. Als es NeXT auf dem Wirtschaftsmarkt nicht mehr so gut ging, wurde NeXTstep in OpenStep umbenannt.
Das Betriebssystem MacOS X benutzt bis heute NeXTstep als Grundlage -- mit einem neuen Kernel. In MacOS X gibt es zwei API´ s (Application Program Interface), in denen man Anwendungen schreiben kann. Einmal für den Übergang Carbon (C++) und als natives API Cocoa (Objective C). Cocoa ist das alte API von NeXTstep mit wenigen Erweiterungen und einer neuen Oberfläche.
GNUstep hat vor einigen Jahren mit dem Ziel begonnen, das NeXTstep- API komplett neu zu implementieren. In der Zwischenzeit wurde dies auch auf Cocoa ausgedehnt. Es soll ein komplett freier NeXTstep / OpenStep- Klon entstehen.
Es gibt bereits einige Anwendungen für GNUstep. Hervorragend sind "Desktop Manager" (ein Dateimanager) sowie GNUmail.app (ein sehr gutes Mailprogramm). Auch ein entsprechender GUI- Anwendungs- Builder existiert und ist benutzbar. Die Bibliotheken sind relativ vollständig und man kann OpenStep- und sogar MacOS X-Anwendungen durch einfaches Neukompilieren auf GNUstep, und damit auf Linux, portieren. GNUstep hat noch lange nicht den Umfang von KDE oder GNOME, ist aber eine sehr gute Alternative der NeXT- / OpenStep- Umgebung.
NeXTstep Version 3.3 läuft ohne Probleme, allerdings bei der 735 Serie könnte es eventuell Probleme mit den SCSI- Adapter geben. Sobald es Probleme mit dem SCSI- Controller gibt, sind diese Rechner nur über Netz bootbar. Wenn das Betriebssystem NeXTSTEP läuft, funktionieren dieses sehr gut.
Linux
Der Quellcode des Betriebssystems Linux steht unter der GNU Public License (GPL), d.h. ist frei erhältlich und darf nach Belieben weiterentwickelt werden. Linux hat sich bereits als leistungsfähiges Betriebssystem im Server-Bereich bewiesen und setzt sich zunehmend auch im Anwenderbereich als Alternative zu Betriebssystemen, wie MS- Windows, durch. Es wird mittlerweile auch von zahlreichen namhaften Software-Herstellern unterstützt. Der Einsatz von Linux erfordert jedoch immer noch ein gewisses Maß an technischer Kompetenz.
Für das Betriebssystem Linux existieren sehr gute Dokumentationen und umfangreiche Foren. Zum großen Teil basieren die meisten Server der Fachhochschule Lausitz auf Debian Linux. Diese Gegebenheiten erleichtern erheblich das Einbinden der Rechner, die für dieses Projekt zur Verfügung stehen, in das Netzwerk der Fachhochschule Lausitz.
Probleme mit der Hardware sind bei Debian Linux unbekannt.
OpenBSD
OpenBSD entstand 1996 aufgrund eines internen Zerwürfnisses der NetBSD- Gruppe. Da das Hauptziel der OpenBSD- Gruppe auf Sicherheit liegt, konnte auf die Qualität von RSA und Algorithmen nicht verzichtet werden. Strenge Gesetze in den USA die Kryptographie betreffend, zwangen die Entwickler das Projekt nach Kanada zu verlegen. Das OpenBSD- Team bemüht sich ausschließlich um offene Entwicklungen. Dies gilt sowohl für die Unterstützung von Plattformen als auch für die Verwendung des Systems. OpenBSD implementiert ganze Teile anderer freier Betriebssysteme, wie NetBSD und FreeBSD, aber auch Linux. OpenBSD kommt im kleinen bis mittleren Serverumfeld für sicherheitskritische Anwendungen zum Einsatz (z.B. Firewall).
Da hinter dem OpenBSD- Projekt keine Firma steht, wird es durch den Verkauf von CDs und T-Shirts, sowie durch Spenden finanziert. OpenBSD wird durch freiwillige Programmierer und Entwickler vorangetrieben, die auf der ganzen Welt verteilt sind.
Das OpenBSD Projekt produziert ein freies Multi-Plattform 4.4BSD-basiertes UNIX-ähnliches Betriebssystem. Die Anstrengungen liegen vor allem bei Portabilität, Standardisierung, Korrektheit, proaktiver Sicherheit und integrierter Kryptographie. OpenBSD unterstützt Binäremulationen der meisten Programme von System V R4 (Solaris), FreeBSD, Linux, BSD/OS, SunOS und HP-UX.
Von OpenBSD stammt auch OpenSSH, welches heute bereits auf allen Unix-Derivaten und natürlich unter Linux zu finden ist. OpenBSD unterstützt SSH1 und SSH2 und verfügt über das Sicherheitsfeature "W^X" („ W riteable xor e X ecutable“). OpenBSD kann neuerdings auch NTFS- Partitionen lesen. Die aktuelle OpenBSD- Version ist 3.4, welche am 1. November 2003 freigegeben wurde. Diese Version läuft offiziell auf 11 verschiedenen Hardwarearchitekturen, dazu zählt u.a. PA-RISC.
Das System unterstützt keinen SCSI-Adapter und kann dadurch nur über das Netzwerk gebootet werden; sonst läuft es schnell und zuverlässig.
Aus der Analyse der geeigneten Betriebssysteme geht hervor, dass Linux sich für dieses Projekt am besten eignet. Die bei der Realisierung verwendete Software untersteht der GNU/GPL- Lizenz. GNU steht für „GNU´s Not Unix“ und GPL für „General Public License“. Die GNU General Public License ist eine von der ‚Free Software Foundation’ herausgegebene Lizenz für die Lizenzierung freier Software. Die GPL gewährt jedermann die folgenden vier Freiheiten als Bestandteil dieser Lizenz:
1. Die Freiheit, ein Programm für jeden Zweck zu nutzen.
2. Die Freiheit, Kopien des Programms umsonst oder gegen eine Gebühr zu verteilen (wobei der Quellcode mit verteilt werden oder öffentlich verfügbar sein muss).
3. Die Freiheit, ein Programm den eigenen Bedürfnissen entsprechend zu ändern (die Verfügbarkeit der Quellcodes ist garantiert).
4. Die Freiheit, veränderte Versionen des Programms beliebig zu verteilen (wobei der Quellcode mit verteilt werden oder öffentlich verfügbar sein muss).
Durch diese Lizenz ist die freie Nutzung des Betreibsystems und der zu verwendenden Software rechtlich abgesichert.
Um mit einem Rechner und seinen Komponenten vielseitig arbeiten zu können, ist es wichtig, dass Betriebssystem darauf abzustimmen. Das Betriebssystem ist die Schnittstelle zwischen Menschen und Computer. Es steuert und kontrolliert interne Abläufe, überwacht Komponenten und ist für einen fehlerfreien Zustand notwendig. Kommt es zu Störungen in den Anläufen oder liegen schwerwiegende Fehler vor, so ist dieser Zustand nicht mehr gewährleistet. Um das Betriebssystem an die Hardware anzupassen, muss diese genau bekannt sein. Das Betriebssystem wird fachlich Kernel genannt. Die Hardwareanalyse ergibt folgendes Bild vom Aufbau des Rechners HP 712 (ähnlich im Aufbau sind die Rechner der Serien 720/735).
Abbildung in dieser Leseprobe nicht enthalten
Um mit den einzelnen Komponenten des Systems zu arbeiten, muss das Betriebssystem Zugriff auf die dazu gehörigen Treiber haben. Unter Linux gibt es zwei Möglichkeiten der Realisierung. Erstens können die Treiber modular abgespeichert und bei Bedarf in das System geladen oder entfernt werden, zweitens können diese Treiber statisch in den Kernel hinein kompiliert werden. Die modulare Vorgehensweise hat den Vorteil, dass neue Treiberversionen als Modul separat für die jeweilige Hardwarekomponente kompiliert werden können. Dadurch ist es nicht nötig, den ganzen Kernel neu zu kompilieren. Eine fehlerfreie Kompilierung des Kernels kann auf diesen Rechnern bis zu vier Stunden oder länger dauern.
Im Internet stehen vorkompilierte Kernelversionen zur Verfügung. Diese sind jedoch bis zu drei Jahren alt. Um Weiterentwicklungen und Verbesserungen, die in dieser Zeit gemacht worden sind, nutzen zu können, muss der Kernel dem System angepasst und komplett neu kompiliert werden. Eine Verbesserung ist zum Beispiel der STI- Framebuffer. Die neuere Version des STI- Framebuffer, für die HP9000-Serie, unterstützt den CRX-24 Grafikchipsatz (A1439A). Er findet Verwendung in den Geräten der 735er- Serie. Durch die jetzt gegebene Möglichkeit, die Grafikausgabe auf den 735er- Geräten darzustellen, stehen weitere Rechner zur grafischen Nutzung für dieses Projekt zur Verfügung.
Wie die meisten Betriebssysteme, ist Linux eigentlich nur der Kern, der für die Hardware zuständig ist. Er koordiniert und verteilt begehrte Ressourcen wie CPU-Zeit und Speicherverteilung, kommuniziert über Treiber mit den verschiedenen Geräten, d.h. vom Chipsatz des Boards bis hin zur Soundkarte und stellt grundlegende Netzwerkprotokolle wie TCP/IP bereit. Durch Neukompilieren des Kernels werden die benötigten Gerätetreiber, Dateisysteme und Kernel- Funktionen eingebunden. So entsteht ein optimal an die Hardware angepasster Kernel.
Um einen optimalen Linux- Kernel für den jeweiligen Rechnertyp zu erreichen, werden zwei separate Kernelversionen entwickelt. Die Rechnerserie 720/735 besitzt zum Beispiel keinen PS/2- Anschluss, sondern, ähnlich dem heutigen USB, einen HP- Hil- Adapter. Jeder Rechnertyp erhält ein spezifisch zugeschnittenes Betriebssystem. Das Ziel besteht darin, den Kernel so klein wie möglich zu halten.
Die Geräte der 712-Serie unterstützen „Color Recovery“. Die Farbqualität wird dadurch auf dem Desktop erheblich verbessert. Mit Hilfe des „Color Recovery“ – Verfahrens ist es möglich, auf 8-Bit D/A- Wandlern eine Darstellungsqualität zu erreichen, die in etwa der Qualität einer Echtfarbdarstellung entspricht. Dabei wird aus dem 8-Bit Daten im Framebuffer mit Hilfe eines speziellen Signalprozessors das Originalbild rekonstruiert. Im Idealfall lässt sich durch dieses Verfahren eine Farbtiefe von 23-Bit darstellen.
Um die Farbinformationen zu speichern, stehen der Grafikkarte 8 Bit pro Bildpunkt zur Verfügung. Dadurch ergibt sich eine gesamte Farbpalette von 256 Farben ► 28=256. Durch das Dithering der Daten wird versucht, eine Annäherung an die 24 Bit Darstellung zu erreichen. Beim Dithern von Grafiken wird die Farbe eines Bildpunktes durch die Kombination der Farben benachbarter Bildpunkte gebildet. Aus der Ferne betrachtet, entsteht dadurch der Eindruck, dass das Bild in den korrekten Farben erscheint. Üblicherweise werden beim Dithern in einer 8 Bit- Umgebung drei Bit für die Farben rot und grün und zwei Bit für die Farbe blau verwendet. Es werden deshalb nur zwei Bit für die Farbe blau verwendet, da das menschliche Auge gegenüber blau unempfindlicher ist, als gegenüber rot und grün.
Eine weit verbreitete Methode zu Dithern, ist die Verwendung einer 2x2- Matrix für einen 24 Bit Wert. Dabei wird die Farbe eines Bildpunktes aus einer 24 Bit Darstellung durch den Dither, 2x2- Matrix- Filter, zu einem 8 Bit D/A- Grafikprozessor(= “DSP“, Digitaler Signal Prozessor für die Grafik) übergegeben. Das Hauptproblem beim Dithern der Bilder ist, dass sie zwar aus der Ferne betrachtet in den richtigen Farben erscheinen, normalerweise jedoch aus einer relativ geringen Distanz betrachtet werden und dadurch die Artefakte des Ditherns sichtbar werden. Mit dem Begriff Artefakte ist die Unschärfe der Bildausgabe gemeint.
Durch das Dithern der Farben wird eine bestimmte Fläche des Bildschirms pro Bildpunkt benötigt (bei einem 2x2- Dither sind dies beispielsweise vier Bildpunkte pro Farbe), wodurch das Bild an Detailreichtum verliert. Das Dithern von Bildern kann daher auch als ein Kompromiss zwischen der Anzahl der darstellbaren Farben und der Bildauflösung angesehen werden.
Mit der Anwendung eines Framebuffers kann der Grafikspeicher direkt adressiert werden. Es muss dabei berücksichtigt werden, das der Grafik- Bios auf VESA- kompatibel eingestellt ist. Das Besondere an dieser Methode ist, dass dazu nicht ein spezieller, an die Grafikkarte angepasster Treiber gebraucht wird, sondern dass der Grafikspeicher über einfache Dateioperationen (open(), write(), read() ) zugänglich ist. Der STI- Framebuffer ist fest in den Kernel einkompiliert und wird bei dem Systemstart mit geladen. Die Auflösung, in welcher der Framebuffer später arbeitet, muss im BIOS des Rechners vorher eingestellt werden. Dies ist eine Besonderheit der 9000er- Serie von Hewlett Packard. Sobald der Framebuffer vom System geladen ist, wird der Text- Modus in einer höheren Auflösung aktiviert. Dadurch ist es zum Beispiel möglich, das FHL- Logo mit dieser hohen Farbbrillanz bei dem Systemstart darzustellen.
Der STI- Framebuffer kann den Hardware- Dither nicht aktivieren und muss dies über eine Software tun. Das geht jedoch zu Lasten der CPU und der Leistungsgewinn durch die RISC-Architektur geht dabei etwas verloren.
Das X- Windowssystem ist die weitverbreitetste Implementierung einer graphischen Desktopoberfläche. Es wird von vielen verschiedenen Unix-artigen Computer-Betriebssysteme, wie z.B. Linux, Solaris(SUN), HP-UX und neuerdings auch MacOS verwendet. Das X- Window- System wurde von der Firma DEC (Digital Equipment Corporation) und dem MIT (Massachusetts Institute of Technology) 1984 entwickelt und stellt bis heute einen Standard für grafische Bedieneroberflächen für Unix- Systeme dar.
Eigenschaften
X besitzt die Eigenschaft, netzwerktransparent zu sein und baut dadurch auf dem Client-Server-Modell auf. Zu beachten ist hierbei, dass der X-Server auf dem lokalen Arbeitsplatzrechner läuft, während der X-Client auf einem entfernten Rechner ausgeführt werden kann. Was zunächst unwirklich klingt, stellt sich bei genauerer Betrachtung als logisch heraus:
Der X-Server läuft auf dem Rechner am Arbeitsplatz und stellt seine (graphischen) Dienste den X-Clients zur Verfügung.
Der X-Client wird hingegen durch das Anwendungsprogramm dargestellt, welches lokal auf dem selben Rechner oder auch auf irgendeinem entfernten Rechner laufen
kann (solange nur eine Netzwerkverbindung zwischen beiden besteht). Der X-Client benutzt die Dienste des X-Servers um eine graphische Darstellung zu erreichen.
Ein besonderes X-Server – System stellt ein so genanntes X-Terminal dar. Darunter ist ein Rechner zu verstehen, auf dem nichts anderes als ein X-Server läuft.
X ist ein rastergrafikbasiertes Fenstersystem und stellt Funktionalität bereit, zum Zeichnen und Bewegen der Fenster, zur Handhabung eines Zeigergeräts wie einer Maus, zur Interprozesskommunikation und teilweisen Verwaltungsfunktionen für Druck und Sound. Es ist ein absolutes Low- Level System, d.h. zum Zeichnen werden lediglich Primitive wie Linien, Muster, etc. bereitgestellt. Das eigentliche Aussehen und Verhalten des Fenstersystems wird deshalb nicht von X bestimmt, sondern von dem Windowmanager, der wie eine normale Anwendung, einfach als Client des X-Servers läuft.
Dieser Windowmanager ist eine Software, die verwendet wird, um den Anwenderprogrammen zusätzliche Funktionen wie Minimieren, Vergrößern, Schließen usw. zu verleihen. Oftmals bestimmt der Windowmanager die Titelleiste und den Rahmen der Fenster. Der Inhalt der Fenster wird jedoch meist unabhängig davon, mit Hilfe von Programmbibliotheken erstellt, die den Programmierern von GUI´s die Arbeit erleichtern und auch für ein einheitliches Aussehen der Programme sorgen.
Außer den bereits genannten Komponenten des X-Servers und des Windowmanager ist meistens auch noch mindestens eine Oberflächenbibliothek mit in der Nutzung, die das Zeichnen und Verwalten der typischen Elemente einer grafischen Oberfläche, wie zum Beispiel Menüs und Buttons, übernimmt.
Das alles führt dazu, dass X ein sehr flexibles aber oft auch sehr uneinheitliches System ist. Es kann durchaus vorkommen, dass jedes der Programme, die man selbst benutzt, unterschiedlich aussieht und sich geringfügig unterschiedlich verhält. Darin besteht ein häufiger Kritikpunkt an X.
Ein möglicher Lösungsansatz ist die Erstellung einer Desktopoberfläche mit einheitlichen Oberflächenbibliotheken. Die heute bekanntesten Systeme dieser Art sind KDE und GNOME. Sie haben aber den Nachteil, dass diese sehr rechenintensiv sind. Eine Alternative zu den rechenintensive Desktopoberflächen bzw. Windowmanager bietet IceWM in Kombination mit dem WDM (W INGs D isplay M anager). Dieser Windowmanager (IceWM) hat die Geschwindigkeit und Bedienerfreundlichkeit (not getting in the user's way) zum Ziel. Dies wird erreicht durch die Schlichtheit (simplicity) der Oberfläche, d.h. es wird auf viele Verzierungen der Oberfläche verzichtet, welche zwar schön anzusehen sind, aber auf die Rechenleistung der CPU gehen.
Vorteile
Linux ausgezeichnete X11 Unterstützung macht es möglich, Anwendungen auf fast allen Windowmanagern ausführen zu können. Die Möglichkeit, dass das X- System netzwerkfähig ist, lässt eine Arbeitsaufteilung durch einen Application Server (X-Client) zu. Dadurch können rechenintensive Anwendungen, wie zum Beispiel Open Office bis hin zu ganzen Windowmanagern auf dem Application Server ausgeführt und auf den Rechnern ausgegeben werden. Dadurch kann Software genutzt werden, welche sonst auf dem Rechner nicht laufen würde. Jedoch beansprucht das dazugehörige Netzwerkprotokoll, XDMCP, eine hohe Netzlast vom Netzwerk. XDMCP steht für „ X Display Manager Control Protocol “ und wird für die Kommunikation zwischen einem X-Server und einem X-Terminal benötigt.
Eine Kompensierung des hohen Netzwerktraffics durch das XDMCP- Protokoll wird erreicht durch den Einsatz von Netzwerkkomponenten, wie zum Beispiel Switch.
Das XDMCP- Protokoll setzt auf dem Nutzdatenbereich des TCP/IP- Protokolls auf, dadurch sind die Switches im Netzwerk in der Lage, zielgerichtet zwischen Server und Client eine Verbindung aufzubauen.
Linux ist ein Multiuser- und Mehrprozess-System. Mehrere Benutzer können zur gleichen Zeit mehrere Prozesse bzw. Programme ausführen. Alle Programme, die ein Benutzer startet, laufen unter seiner Benutzerkennung. Alle Dateien, die von einem User angelegt werden, werden unter dieser Benutzerkennung gespeichert. Die Benutzerkennung besteht aus dem Benutzernamen, mit dem sich der User anmeldet und einer User-ID, mit der das Betriebssystem arbeitet.
Rechte auf einem Mehrbenutzersystem bedeuten, dass immer auch ein Rechtekonzept für Prozesse, Dateien und Verzeichnisse existiert, damit User A nicht auf die Dateien von User B zugreifen kann. Linux implementiert dazu das Standardkonzept aller Unix Betriebssysteme.
-Jede Datei/Verzeichnis ist genau einem User und einer Gruppe zugeordnet.
-Jeder User kann Mitglied mehrerer Gruppen sein.
-Jede Datei kennt Berechtigungen für den User, die Gruppe und allen Anderen.
Für diese drei Gruppen können jeweils Schreib-, Lese- und Ausführungsrechte vergeben werden. Anhand dieser Berechtigungen ist somit festgelegt, wer eine Datei lesen, schreiben oder ausführen darf.
NIS steht für „ N etwork I nformation S ervice“ und dient zur zentralen Haltung von Information in einem UNIX bzw. UNIX-konformen Netz. Dadurch können Daten wie Anmeldename und Passwörter zentral an einer Stelle administriert werden und stehen dem Netz zur Verfügung. Um diese in einer einheitlichen User-Verwaltung zu nutzen, muss die dazugehörige Datenbank auf den Clients mit eingebunden werden.
NIS wurde von der Firma SUN entwickelt. Anfangs hieß dieses System „Yellow Pages“ (YP), welches aber rechtliche Konsequenzen mit der Britischen Post mit sich brachte. Darauf hin wurde dieses System zu NIS umgenannt. Durch die Erstbenennung sind noch viele Dateien mit dem Namen „Yellow Pages“ bzw. „YP“ verbunden.
NIS stellt ein einfaches Netzwerk-Nachschlage-System, bestehend aus einer Datenbank und entsprechenden Dämons, zur Verfügung. Sein Zweck ist Informationen bereitzustellen, die im gesamten Netzwerk allen Rechnern bekannt sein sollen. Informationen, die normalerweise durch NIS verteilt werden, sind z.B.:
1. Login- Namen, Passwörter und Home-Verzeichnisse (/etc/passwd)
2. Gruppen-Informationen (/etc/group)
3. Rechner-Namen und IP- Nummern (/etc/hosts).
Ist ein Passwort in der „NIS passwd- Datenbank“ eingetragen, so ist der Inhaber in der Lage, sich auf jedem Rechner einzuloggen, der zur gleichen Domain gehört und auf dem die NIS Client-Programme laufen. Das Passwort braucht nur einmal von einem beliebigen Client aus geändert zu werden und nicht auf jedem Client extra.
Der technischen Ansatz ist folgender: ein normales Anwendungsprogramm bekommt davon nichts mit, dass die libc - Funktionen NIS benutzen. Es ruft ganz normal die Funktionen der C-Library auf. Diese stellt fest, dass NIS benutzt werden soll, was vom Interface her ähnlich aufgebaut ist wie ein gdbm, ndbm oder db -Library Interface. Der Domainname (wird mit /bin/domainname gesetzt und angezeigt) gibt an, in welcher Domain/Gruppe gesucht werden soll. Dann wird der Name der Datenbank, auch Map genannt, angegeben und was daraus gesucht werden soll.
Über den Dämon ypbind, der auf jedem Client laufen muss, wird schließlich der Name des Servers erfahren. Mit ypwhich kann sich jeder User den benutzten Server anzeigen lassen.
Die C-Library sendet jetzt eine entsprechende Anfrage an den Server und bekommt eine Antwort, die in das vom aufrufenden Programm erwartete Format umgewandelt wird. Auf dem Server läuft der ypserv- Prozess, der die Anfragen annimmt und bearbeitet. Die Kommunikation läuft dabei über RPC ab. Ypserv hat vom Aufbau der Maps und deren Bedeutung keine Ahnung. Es öffnet im Verzeichnis /var/yp/<domainname> die entsprechende Map und lässt sich den, zu einem Key gehörenden Eintrag, zurückgeben. Dieser wird an den Client zurückgeschickt. Da der Aufbau der Map immer gleich ist, gibt es einen Schlüssel, zu dem die entsprechende Zeile aus der Source-Datei gehört. Sun`s ypserv benutzt zum Beispiel ‚ndbm’ als zugrundeliegende Datenbankbbliothek, Linux ‚gdbm’ und die BSD Varianten ‚db’. Bei der „passwd.byname“ sieht das so aus, dass nach dem login-Namen gesucht werden kann, während die passwd.byuid nach den User ID' s aufgebaut ist.
Sicherheit vom NIS- System
Ein oft vernachlässigtes Problem mit NIS ist dessen Unsicherheit. Jeder User kann sich mit „ ypcat passwd.byname“ die User-Daten und verschlüsselten Passwörter ansehen. Dies hat den gleichen Effekt, wie ein „ cat /etc/passwd“ auf Systemen ohne NIS. Auf diesen Rechnern wurde das Problem mit der Einführung von Shadow-Passwörtern behoben. Mit NIS ist dies nicht ganz so einfach.
Jeder der den Domainnamen errät und weiß, auf welchem Rechner ypserv läuft, kann sich die Map anzeigen lassen. Dieses Problem existiert nicht, wenn die passwd -Datei nur auf jedem Rechner lokal vorliegt. Dafür gibt es eine zweigleisige Lösung. Zum einen wird ein spezieller Portmapper installiert, der nur Daten an freigegebene Rechner schickt. Außerdem verhindert er, das spezielle Anfragen an den ypserv -Prozeß weitergereicht werden. Diese Anfragen kommen im normalen Betrieb nicht vor und werden gerne von Hackern benutzt. Dazu gehört zum Beispiel die Broadcast-Suche in einem lokalen Netzwerk durch „ rpcinfo -b 100004 2 “. Eigentlich sollten sich daraufhin alle Rechner melden, auf denen ein ypserv - Prozess läuft. Da ypbind aber eine andere RPC-Funktion benutzt, die einen Domainnamen mitliefert und nur eine Antwort bekommt, wenn der Server die Domain unterstützt, ist diese Eigenschaft nicht notwendig. Damit bekommen Unbefugte nur heraus, an welchen Stellen ein NIS- Server läuft.
Ypserv selber besitzt auch eine Methode, um Hackern das Leben schwerer zu machen. Alle ypserv -Implementierungen unterstützen das „securenets-Feature“. In dieser Datei steht, welche Subnetze und Rechner als sicher gelten und Anfragen stellen dürfen. Dabei darf nie vergessen werden, das NIS die über das Netz verschickten Daten nicht verschlüsselt und auch keine Form der User- Authentifizierung vorgenommen wird. Dadurch gibt es jede Menge Angriffspunkte.
Für die Realisierung muss im FH- Netzwerk ein NIS- Server kontinuierlich bereitstehen, der die komplette Userdatenbank der FH zur Verfügung stellt. Die Konfiguration auf den Clients ist relativ einfach. Sobald der NIS- Dämon mit den NIS- Serverdaten gestartet ist, gleicht dieser die Account Datenbank lokal ab. Darauf hin sollte sich jeder mit einem FH- Account auf den Rechnern einloggen können.
Die Home-Verzeichnisse für den User sind notwendig, damit dieser Daten speichern und Anwendungen in temporäre Dateien auslagern kann. Temporäre Dateien entstehen unter anderem bei der Benutzung des Internets. Die Verzeichnisstruktur von Linux ist organisiert nach dem sogenanntem FHS Standart (engl. „ F ilesystem- H ierarchy- S tandard“). Von diesem ausgehend, ist es sinnvoll, die Home-Verzeichnisse der User unter \home anzulegen bzw. einzubinden. Soll nun jeder User an jedem Rechner sein eigenes Home-Verzeichnis wiederfinden, so muss auch das Home-Verzeichnis zentral auf einem Server gelagert werden. Dieses kann beim Login des Users über das Netzwerk mit eingebunden werden.
Für derartige Aufgaben empfiehlt sich der Einsatz des Network-File-Systems (NFS). Dafür muss auf dem Server, auf welchem die Home-Verzeichnisse gespeichert sind, ein NFS- Server-Dämon laufen und im Client ebenfalls das Network-File-System im Kernel für die Nutzung vorhanden sein. Darauf wurde bei der Neukompilierung des Kernels geachtet und NFS direkt im Kernel mit eingebunden.
Automatisches Mounten der Home-Verzeichnisse
Um den Rechner die Möglichkeit zu geben, die Home-Verzeichnisse automatisch mit zu mounten (einzubinden), kann „autofs“ genutzt werden. Da die eigentliche mount- Möglichkeit nur dem Administrator vorbehalten ist, muss er den Automounter so konfigurieren, das dieser bei Benutzung auf das jeweilige Dateisystem bzw. Server zugreifen kann.
Dies erlaubt dem Benutzer eines Rechners automatisch verschiedene Dateisysteme bzw. Server zu mounten, in dem Moment, wo diese gebraucht werden. Für den Benutzer ist dies völlig transparent.
„Automount“ bzw. „autofs“ sind sehr leistungsfähige Werkzeuge, um das Management von Dateisystemen zu erleichtern. Der Automounter wird in der vorliegenden Konfiguration zum automatischen Mounten von NFS verwendet. Dabei werden anhand des NIS die entsprechenden Maps verteilt.
In Abhängigkeit von den physikalischen Gegebenheiten (hard disks, floppies, cdrom, etc.) und dem Betriebssystem ist der Vorgang des Schreibens von Daten unterschiedlich. Die Datei /etc/fstab enthält die „ hard (fest) mount - Punkte“, die zur Boot- Zeit gemountet werden. Jeder mount- Punkt entspricht einem Verzeichnis im Verzeichnisbaum.
Das Paar (automount, autofs) kann als ein Client-Server-System verstanden werden. Ein Server läuft und wartet auf eine Anfrage. Wenn die Anfrage kommt, dupliziert sich der Server. Ein Teil beantwortet die Anfrage und der andere wartet auf weitere Anfragen. Hier spielt „autofs“ die Rolle des wartenden Servers und „ automount“ die des duplizierten Servers. Die Anfragen kommen aus einer Konfigurationsdatei.
Der Entwicklung des FileServers liegt die Problematik zugrunde, dass immer größere Dateivolumen über das Internet versendet werden. Diese Daten können zum Beispiel nicht mehr als Anhang einer E-mail hinzugefügt werden. Es gibt zwar Möglichkeiten, z.B. über FTP, im Netzwerk große Dateien zu transferieren, nur sind hier meist Kenntnisse mit dessen Umgang erforderlich bzw. Zusatzsoftware notwendig. Des weiteren ist zum Beispiel bei FTP auf mindestens einem Rechner ein FTP-Server nötigt, um diesen Service nutzen zu können.
Viele Browser unterstützen heutzutage die Möglichkeit, die Dienste eines FTP-Servers zu nutzen, doch haben viele Anwender Schwierigkeiten mit dieser Art und Weise umzugehen.
In den letzten Jahren wurden Anwendungserweiterungen für den Browser entwickelt, um den Umgang mit dem Browser zu erleichtern bzw. mehr Features bereit zu stellen. Diese sind zum Beispiel Macromedia Flash, Active X von Microsoft, Java Scripte. Diese Protokolle sind jedoch clientseitig, d.h. der Browser muss dies unterstützen können. Jedoch sind diese Plugins noch in der Entwicklung und können von vielen Browser noch nicht im vollen Umfang genutzt werden.
Damit der FileServer durch die meisten Browser genutzt werden kann, wird die Ausgabe nur im HTML-Protokoll gehalten. Im Vordergrund steht hier die Funktion, dass der Anwender weiterhin eine bequeme Möglichkeit hat, dem Empfänger die Daten einfach und sicher zukommen zu lassen.
Für den Betrieb dieses Services ist eine gültige E-mail Adresse sowie ein WWW- Browser notwendig. Bei den heute erhältlichen Betriebssystemen ist meistens in der dazugehörigen Software ein WWW-fähiger Browser vorhanden.
Angesichts dessen, dass dieser Server die Möglichkeit bietet, große Dateimengen durch das Internet zu transferieren, muss eine hohe Sicherheit gewährleistet sein. Die Sicherheit, die der Server bietet, kann man in drei Stufen unterteilen:
1. Die Sicherheit durch das FHL-Netzwerk
2. Die Sicherheit bei dem Login des Servers
3. Die Sicherheit die die Intimität der Daten gewährleistet.
Um weitestgehend den Missbrauch des Servers durch dritte auszuschließen, muss sich jeder Nutzer autorisieren. Um hier eine optimale Sicherheit auf dem FileServer zu bekommen, wird der Zugang in drei Usergruppen unterteilt:
-Gastzugang
-Hauptuser
-Administrator.
Die unterste Gruppe hat nur die einmalige Berechtigung zum Login auf dem Server. Hierzu zählt ausschließlich der Gastzugang. Dies hat zwei Gründe. Zu einem wird dieser Gastzugang per E-mail an den Empfänger gesendet. Bekommt ein Dritter Zugang zu diesen Logindaten, so kann er sich, der zu übertragenden Datei, ermächtigen. Soweit dieser Zugang noch seine Gültigkeit besitzt, kann das System dies zwar nicht verhindern, aber man registriert den Missbrauch und kann Folgeschritte einleiten. Zum anderen kann der Empfänger die Datei nicht versehentlich durch eine andere Datei überschreiben bzw. diese Datei nicht zweimal durch das Netzwerk senden. Das kommt dem Netzwerktraffic zu gute.
Die zweite Usergruppe ist die Hauptgruppe. Die Hauptgruppe bzw. der Hauptuser sind die eigentlichen Nutzer des Servers. Nur diese Gruppe kann einen Auftrag zum Empfänger starten. Die Zugangsdaten zum Login des FileServer besitzen immer die Gültigkeit. Deshalb muss hier eine andere Möglichkeit genutzt werden, um einen Missbrauch durch Dritte festzustellen. Um zu registrieren, das dieser Zugang von Dritten genutzt wird, ist die Eigenkontrolle des Hauptusers erforderlich. Das System speichert selbstständig das Datum und die Zeit von dem letzten Login des Hauptusers. Zusätzlich wird die Anzahl der erfolgreichen Logins des Users mitgezählt. Sollte hier eine Unregelmäßigkeit festgestellt werden, so kann der User zum Beispiel durch Ändern seines Passwortes Abhilfe schaffen.
Die dritte Gruppe ist ausschließlich für die Verwaltung des Servers gedacht. Nur dieser Administratorlogin kann einen Hauptuser erstellen. Des weiteren bietet dieser Login die Möglichkeit, Userdaten zu ändern oder zu löschen. Die Möglichkeit Userdaten zu ändern ist zum Beispiel notwendig, falls ein Nutzer seine Logindaten vergessen hat. Um den Administratorlogin zu ändern, ist ein separates Setup notwendig. Dieses Setup kann ebenfalls über einen Browser aufgerufen werden, doch sind hierzu eigene, nur dem Administrator zugängliche, Logindaten notwendig.
Um die Sicherheit weiter zu erhöhen, bekommt jeder User bei erfolgreichem Login eine Session-ID zugewiesen. Nur durch diese Session-ID ist es möglich, die Folgeseiten des FileServers auszuführen. Diese ID wird vom System selbst generiert und dem Client-Rechner übergeben. Der User des Servers bekommt davon nichts mit, er sieht höchstens diesen Key in der URL des Browsers. Um den File- Service ebenfalls bei Browsern nutzen zu können, die keine Cookies unterstützen, muss das System für den File- Service so programmiert werden, dass auf Cookies für die Datenspeicherung verzichtet wird.
Eine der wichtigsten Aufgabe des Servers ist es, dem jeweiligen Empfänger die für ihn bestimmte Datei zuzustellen. Bei der Zwischenspeicherung der Dateien muss gewährleistet sein, das diese persönlichen Daten nicht für Dritte zugänglich sind. Diese werden in einem sicheren Bereich auf dem Server abgelegt, für den nur der Administrator und das Betriebssystem Zugangsberechtigungen haben.
Warum die Datenbank „MySQL“?
Um alle anfallenden Daten von dem FileServer speichern und verarbeiten zu können, wird eine Datenbank benötig. Einer der GNU- GPL Lizenz unterstehenden und dadurch frei nutzbarer Datenbank-Server ist MySQL. MySQL hat fast eine ähnliche Erfolgsgeschichte vorzuweisen, wie das freie Betriebssystem Linux.
Anfangs hatte diese Datenbank noch nicht die gleiche Funktionsfülle wie die damaligen kommerziellen Datenbanksysteme. Dies änderte sich jedoch bis heute. Dank der GPL wurde MySQL auf der ganzen Welt verbreitet und gleichzeitig von Programmieren verbessert und weiter entwickelt. Der Erfolg gibt ebenfalls der MySQL Idee recht. In den letzten Jahren hat MySQL, vor allem als Datenbank für dynamische Webseiten, breite Zuneigung gefunden. In Kombination mit L inux + A pache Web-Server + M ySQL + P HP oder Pearl, kurz LAMP genannt, stellt dies fast einen De-Facto-Standard dar.
MySQL gilt im allgemeinen als eine sehr schnelle Datenbank. Die Geschwindigkeit wird durch zahlreiche Benchmark-Tests untermauert. Einige Quellen geben an, das sich diese Geschwindigkeit durch das Fehlen von bestimmten Merkmalen, wie etwa Transaktionen, ergibt. Des weiteren wird nach der mSQL Idee ein API-Interface eingesetzt und die Tabellen werden mit eigenen, schnellen ISAM Routinen verbunden.
Struktur der Datenbank
Um eine sinnvolle Struktur in der Datenbank zu erreichen, muss vorher ermittelt werden, was und in welchen Umfang gespeichert werden soll. Ebenfalls ist es wichtig, die Aufteilung der Daten in mehreren Tabellen sinnvoll zu unterteilen. Das erhöht die Zuverlässigkeit, Flexibilität und die Geschwindigkeit. Letzteres wird sich bemerkbar machen in der Darstellung der jeweiligen Web-Seiten.
MySQL verwaltet die Tabellen so, dass bei Benutzung diese komplett im Arbeitsspeicher des Servers geladen werden.
Um der Struktur der Datenbank eine sinnvolle Unterteilung zu geben, muss ermittelt werden, wo überall Daten anfallen werden.
Eine Grobunterteilung kann man wie folgt vornehmen:
1. Zugangsdaten des Servers
2. Speicherung von Kontaktdaten
3. Zugehörigkeit des Empfängers und der für ihn bestimmten Datei
4. Sicherheitsrelevante Datenspeicherung.
Zu den Zugangsdaten des Servers zählen:
- Username
- Passwort
- Unterteilung ob es sich um einen Gast-, Haupt- oder Administratorzugang handelt
- Gültigkeit des Zuganges (Gastzugang).
Um eine Vereinfachung beim Umgang des Servers bei der Auftragsvergabe zu ermöglichen, speichert dieser selbstständig Kontakte. Dadurch wird das Benutzen des Servers vereinfacht. Zu der Kontaktspeicherung wird benötigt:
- E-Mail Adresse des Empfängers
- Anrede des Empfängers.
Um bei dem Datentransfer dem Empfänger auch die, für ihn bestimmte, Datei zuzustellen, sind folgende Daten notwendig:
- Aufenthaltsort der Datei auf dem Server
- Empfängername für die Datei.
Bei der Speicherung von sicherheitsrelevanten Daten sind weitestgehend die Logout- Daten zur Selbstkontrolle wichtig:
-Logout- Daten
-Sonstige Sicherheitsrelevanten Daten.
Daraus ergeben sich zwei Haupttabellentypen. Die eine ist für die Zugangsverwaltung des Servers zuständig und die andere für die userrelevanten Daten. Diese Aufteilung hält die Tabellen überschaubar und vereinfacht den Umgang mit ihnen (praktische Anwendung der Datenbanktabellen siehe Kapitell 4.2).
Um die Datenbank und den eigentlichen File- Services nutzen zu können, müssen alle Komponenten des Servers mit einander fungieren. Die einzelnen Komponenten sind grob umfasst:
1. Das Betriebssystem (Linux)
2. Anwendungssoftware „Apache“ – Webserver und der „MySQL“ – Datenbank Server
3. Sicherheitsrelevante Funktionen
4. Ein-/Ausgabe Clientseitig.
Die Webprogrammiersprache PHP wird dazu benutzt, das Zusammenspiel der einzelnen Komponenten zu realisieren. Die Grundlagen des PHP, welches wir heute kennen, wurden im Jahre 1995 von Rasmus Lerdorf gelegt. Er entwickelte ein Tool, das er "Personal Home Page Tools" nannte, um die Zugriffe auf seinen Webauftritt zu erfassen. Dieses Tool war komplett in Perl geschrieben. Außer einem Zähler konnte man mittels der "Personal Home Page Tools" noch ein Gästebuch sowie sehr einfache dynamische Seiten erstellen. Um mehr Funktionalität zu haben, entschied sich Rasmus die "Personal Home Page Tools" in C neu zu schreiben. Das war die Geburtstunde von PHP/FI (Personal Home Page / Forms Interpreter).
PHP/FI war bereits in der Lage mit Datenbanken zu kommunizieren. Um den Benutzern die Möglichkeit zu geben, mögliche Fehler zu beseitigen und weiterzuentwickeln, entschloss sich Rasmus den Quellcode offen zu legen. Im November 1997 wurde PHP/FI 2.0 offiziell freigegeben, nachdem es einen Grossteil seines Lebens bereits im Betastadium verbracht hatte. Kurz darauf wurde von PHP/FI 2.0 bereits von PHP 3.0 abgelöst.
PHP 3.0 wurde geschrieben von Andi Gutmans und Zeev Suraski denen PHP/FI nicht stark genug war. Zusammen mit Rasmus einigte man sich darauf, PHP 3.0 als offiziellen Nachfolger von PHP/FI 2.0 vorzustellen. Der Vorteil von PHP 3.0 war die gute Erweiterbarkeit sowie eine gute Unterstützung für die gängigsten Datenbanken. Auch Unterstützte PHP 3.0 die objektorientierte Programmierung und hatte generell schon eine konsistentere Sprachsyntax.
Dies lockte eine große Anzahl an Entwicklern an, die gemeinsam die Weiterführung von PHP 3.0 vorantrieben und wahrscheinlich als Grund für die heutige große Verbreitung und die gute Qualität der Sprache angesehen sind. Bereits kurz nach der offiziellen Veröffentlichung von PHP 3.0 begannen Andi Gutmanns und Zeev Suraski den Kern von PHP neu zu schreiben. Diese neue Engine, die nach den Vornamen der Entwickler Zend-Engine heißt (ZEev aNDi), sollte die Entwicklung komplexer Applikationen noch weiter vereinfachen. PHP 4.0 wurde im Jahr 1999 vorgestellt und ist zur Zeit die aktuelle Version.
Da die Programmiersyntax von PHP (auch "PHP: Hypertext Preprocessor" genannt) ähnlich dem zu C, Java oder Perl ist, gliedert sich der Umgang damit in große und vertraute Programmiersprachen ein. Die Befehlsvielfalt, die PHP bietet, lässt komplexe Problemlösungen zu und ist ideal geeignet zur Programmierung des FileServers.
PHP ist eine serverseitig interpretierte Skriptsprache, die bei Aufruf des Skriptes dem PHP- Compiler des Web-Servers übergeben und ausgeführt wird. Da der Apache Webserver, ähnlich dem Linux Betriebssystem, die Modul-Technik anwendet, können die benötigten Treiber-Module für die Ausführung der Scripte beim Start des Servers in die Arbeitsplattform mit eingebunden werden. Hierbei stößt man auch auf die Grenzen der Modul-Technik, da sich diese auch gegenseitig bei der Funktionsausführung stören können. Bei der Konfiguration des Servers ist darauf zu achten, das sich das Modul für die PHP 3 Architektur nicht mit dem Modul des PHP 4 beeinflusst. Dies erreicht man nur, in dem ein Modul nicht geladen wird.
Nachteilig ist, dass jede Aktion des Benutzers erst bei einem erneuten Aufruf der Seite erfasst werden kann. Außerdem wird jede PHP- Seite vom Server interpretiert, wodurch die Auslastung des Servers steigt. Diese Vor- und Nachteile sind nicht PHP- spezifisch, sondern treten bei grundsätzlich jeder Webapplikation auf.
Netzwerkstruktur
Abbildung in dieser Leseprobe nicht enthalten
Eine zusätzliche Sicherheit bietet die Integration des Servers in das FHL- Netzwerk. Da der FileServer nicht direkt mit dem Internet verbunden ist, bietet dieser keine direkte Angriffsfläche für Hacker.
Der Server wird zusätzlich zu seinen Sicherheitsmassnahmen durch die Firewall der FH geschützt. Die Firewall ist ein separates Serversystem der FH, welches die DNS des FileServers unabhängig auflöst und direkt eine Verbindung zu dem FileServer aufbaut. Dadurch werden alle Anfragen außerhalb des Netzes durch die Firewall abgefangen.
Der FileServer besitzt eine lokale IP- Adresse (Class C – Netz). Wird eine Anfrage vom Internet an die FileServer – Adresse (http://fsmb.fh-lausitz.de) gesendet, so meldet sich auf diese DNS- Anfrage das Firewall- System der FH. Diese baut nun eine Router- Funktion zwischen FileServer und Anwender auf. Alle Netzwerkpakete vom TCP Port 80 werden zu dem FileServer übermittelt und die Antwort davon wieder zurück zum Anwender übergeben.
Bei der Realisierung der „Internet Stations“ der 712-Serie gab es bei der Implementierung des Betriebssystems keine großen Schwierigkeiten. Als anfängliches Problem erwies sich nur die Ausführung des X- Window Systems. Das Bios der Onboard Grafikkarte muss auf VESA- kompatibel gesetzt sein, damit die Grafikausgabe des X-Window- Systems mit dem STI- Framebuffer möglich ist. Bei der Konfiguration des X- Systems muss die Auflösung des Desktops identisch mit der im Bios eingestellten Größe sein und auf 8 Bit Farbtiefe gesetzt werden. Dadurch ist es möglich, den X-Server zu starten.
In Folge von immer detaillierteren und farbreichen Desktopoberflächen verbrauchen die Window- und Desktop- Manager immer mehr Rechenleistung von der CPU. So beanspruchte der KDE- Window-/Desktop- Manager im Test eine Ladezeit von fast 10 Minuten bis zur Nutzung der Oberfläche. Der KDE (K D esktop E nvironment, ursprünglich K ool D esktop E nvironment), ist ein frei verfügbarer Desktop. Das ist eine grafische Benutzeroberfläche mit vielen Zusatzprogrammen für den täglichen Gebrauch.
Ebenfalls lange bis zur Nutzung brauchte die GNOME- Oberfläche. Diese zwei Standard- Windowmanager sind für diese Rechner zu rechenintensiv und daher nicht zu gebrauchen. Eine Optimierung bringt hier der WDM (W INGs D isplay M anager) mit dem Windowmanager IceWM, welche sich besonders durch ihre Schnelligkeit auszeichnen.
Der WINGs Display Manager ist der eigentliche XDM - Ersatz mit WindowMaker - Aussehen. Er zeichnet sich durch Schnelligkeit und Farbbrillanz bei der Wiedergabe auf dem Desktop aus. Der WDM basiert auf dem WINGs - Widget- Set, dies ist ein Satz NeXT-ähnlicher GUI- Elemente, der von WindowMaker und einigen anderen Programmen benutzt wird. WDM bietet die komplette XDM - Funktionalität.
Um das Internet nutzen zu können, wird ein Browser benötigt. Der Standartbrowser für Linux ist meistens der Mozilla. Das vorkompilierte Programm funktioniert hier für die HP-PA Architektur noch nicht. Ebenfalls trat dieses Problem bei den meisten anderen vorkompilierten Browsern auf. Das einzig funktionierende Programm, mit welchem man auch das Internet nutzen kann, ist der Konqueror. Der Konqueror hat den großen Nachteil, das dieser die KDE Oberflächen- Librarys benutzt. Diese Librarys verursachen hohe CPU Last. Zusätzlich lädt sich der Konqueror mehrfach in den Arbeitsspeicher, um Zusatzfenster schnellstmöglichst zur Verfügung zu stellen. Der Konqueror benötigt dadurch eine Ladezeit von ca. einer Minute bis zur Nutzung des Programms. Eine Möglichkeit für die hohe Ladezeit wäre, das nicht genügend Arbeitsspeicher vorhanden ist. Dadurch würde das Betriebssystem eventuell durch Auslagern in den virtuellen Arbeitsspeicher auf der Festplatte, Hauptspeicher freigeben. Ein Test zeigte, das dies nicht der Fall ist.
Abbildung in dieser Leseprobe nicht enthalten
Arbeitsspeicherverbrauch mit dem Browser – Programm „ Konqueror“.
Dieser Zustand ist nicht zufriedenstellend. Daher wurde nach Alternativen gesucht. Eine Recherche im Internet ergab, das die meisten vorkompilierten Browser nur für die Intel-Architektur zu bekommen sind. Die meisten Browser für Linux unterstehen dem GUI/GPL und deren Programm-Codes sind frei zugänglich. Dadurch ist es möglich, die Browser auf den Rechnern separat, dem System angepasst, neu zu kompilieren. Eine erfolgreiche Kompilierung wurde bis jetzt nur bei dem DILLO erreicht. Die Schwierigkeit bei den anderen Kompilierungsversuchen sind die für die Binarisierung genutzten Librarys. Diese sind entweder nicht vorhanden oder nicht auf dem neusten Stand. Um hier alle benötigten Softwareupdates durchzuführen, ist ein hoher zeitlicher Aufwand notwendig. Des weiteren bringt die Anpassung der Quellcodes der Browser für die HP-PA Architektur ein Problem mit sich. Dies ist notwendig, damit die Hardware, zum Beispiel die Register in der CPU, korrekt angesprochen werden. Ein vielversprechender Versuch läuft momentan noch für den „Firefox“, ein Mozilla-Kind.
Bei diesem Versuch zeigt sich ein weiteres großes Problem, die Zuverlässigkeit der Festplatten. Bei der Kompilierung des Browsers „Firefox“ fallen ca. bis zu einem Gigabyte an temporären Daten an. Durch fehlerhafte Sektoren kann die Kompilierung nicht ordnungsgemäß beendet werden. Zusätzlich hat dies noch zur Folge, dass der Rechner nicht mehr reagiert und bei einem neuen Bootversuch auch das Betriebssystem nicht mehr startbar ist. Das Betriebsystem Linux erkennt diesen Festplattenfehler und versucht ihn noch zu reparieren, meist schlägt dieser Versuch leider fehl.
Ausgehend davon, das neue Festplatten mit einem Gigabyte Speicherkapazität ca. 50 € kosten, benötigt die FH Lausitz für den Ankauf von 7 Festplatten für die vorhandenen Workstation ca. 350 bis 400 €.
Theoretische Ansätze zur weiteren Nutzung der vorhandenen Festplatten- kapazität
Alle Festplattentests wurden mit dem Programm „ badblocks “ unter dem Betriebssystem Linux (Kernelversion 2.4.22) durchgeführt. Alle beim Probelauf genutzten Festplatten erwiesen sich als fehlerhaft. Die Festplatten wiesen bei längeren Gebrauch fehlerhafte Sektoren auf. Die Datei, in welcher fehlerhafte Sektoren gespeichert werden, bindet badblocks, ohne diese noch einmal zu prüfen, mit ein. Somit kann eine Fehlerquelle ausgeschlossen werden.
Die von uns sehr genau geprüften Festplatten zeigten Mängel in den hohen Speicherbereichen. Daraus ergibt sich für uns, dass der Nutzdatenspeicherbereich eingeschränkt werden muss. Der Nutzdatenspeicherbereich ist auf 500 MB zu partitionieren. Dadurch wird ausgeschlossen, dass die hohen Speicherbereiche, welche Mängel aufwiesen, benutzt werden. Diese technische Realisierung ist sehr zeitaufwendig und muss für jede Festplatte separat durchgeführt werden.
Weiterhin besteht eine Möglichkeit unter der Verwendung firmeneigener Software, die Festplatten eventuell zu reparieren. Für IBM Festplatten wurde der folgende Link gefunden: http://www-306.ibm.com/pc/support/site.wss/MIGR-4HXKVX.html. Ein Versuch konnte aus Zeitgründen jedoch noch nicht durchgeführt werden.
Schlussfolgernd muss dazu gesagt werden, dass nicht eingeschätzt werden kann, wie lange die Festplatten genutzt werden können. Es kann über mehrere Jahre gut funktionieren oder, wie es in der Testphase passierte, nach einigen Wochen können fehlerhafte Sektoren auftreten.
Ein weiterer Ansatz wäre, ein Speichermedium über das Netzwerk, vom Bootprozess des BIOS, mit einzubinden und nur dieses zu nutzen.
Die Rechnerserie 735 hat das Problem, im Gebrauch stehen zu bleiben. Der Fehler konnte bis zum Abschluss dieser Arbeit nicht gefunden werden. Denkbar ist eine Fehlerursache durch die Festplattenproblemmatick oder durch ein schlichtes Überhitzen der Hardware.
Aufgefallen ist, dass die interne Uhr unkorrekt die Zeit anzeigte, was vermutlich auf das „2000er Problem“ zurückzuführen ist. Abhilfe schafft ein selbstgeschriebenes Skript (siehe Anhang à „rdate“). Dieses Skript kontaktiert den Zeitserver der FHL (time.fh-lausitz.de). Somit wird in regelmäßigen Abständen die aktuelle Zeit abgeglichen.
Für Programme, welche Konfigurationsdateien benötigen, stehen Skripte (siehe Anhang à „Konqueror“, „Dillo“, „KsIRC“) zur Verfügung. Sie vereinfachen den Umgang mit den Programmen. Benutzt ein User eines der Programme, wird sein gemountetes Home- Verzeichnis auf das Vorhandensein der Konfigurationsdateien überprüft. Existiert keine Konfigurationsdatei, wird diese selbständig eingeführt.
Beim Start umfangreicher Programmsoftware zeigte sich, dass diese zu rechenintensive für die zu nutzenden Rechner sind. Die Windows- Emulatoren simulieren komplette Computersysteme und sind daher zu rechenaufwendig um zufriedenstellend auf der HP 9000 – Serie zum laufen zu bringen. Eine Abhilfe für umfangreiche Programmsoftware kann nur ein Application- Server schaffen.
Der User erhält die Möglichkeit einer einfachen Nutzung des Application- Servers, indem er das Skript „BigWin“ (siehe Anhang) benutzt. Dieses Skript baut selbständig eine Verbindung zwischen dem Client und dem Server auf. Das Skript dupliziert sich in das Home- Verzeichnis des Users. Soweit der User sich auf dem Application- Server autorisiert hat, kann er mit Hilfe des Skriptes die gewünschte Anwendung starten, welche auf dem Client sichtbar ist.
Durch den Application- Server kann der User Software nutzen, welche für die Rechner zu rechenintensiv sind. Die Nutzung eines Windows- Emulator kann dadurch ermöglicht werden. Auf dem Server befindet sich der Windows- Emulator „Wine“, welcher ein Microsoft - Windows – Betriebssystem simuliert.
Aus der theoretischen Entwicklung ergeben sich für die praktische Anwendung zwei Haupttabellentypen. Diese können in einzelne Segmente unterteilt werden.
Login- Tabelle:
Abbildung in dieser Leseprobe nicht enthalten
Ein besonderes Augenmerk muss auf die extra entwickelten PHP- Funktionen gelegt werden, die für die Realisierung unumgänglich sind.
Bei dem FileServer sind einige Sicherheitskriterien programmiertechnisch umgesetzt worden. So wird bei jedem erfolgreichen Login eine Session gebildet, die nur bei der aktuellen Sitzung ihre Gültigkeit besitzt.
Im Anhang ist der gesamte FileServer schematisch abgebildet.
Folgendes Schema wird beim Login aktiviert:
Soweit die Benutzererkennung erfolgreich bestätigt wurde, wird die Session gebildet. In diesem sogenannten Session- Key sind der Benutzer-, das Passwort und die aktuelle Zeit enthalten. Dieser Key ist notwendig, damit die Folgeseiten ausgeführt werden können. Nachdem die Sitzung beendet wird, ist dieser Key ungültig.
In jedem PHP- Skript werden die Sessiondaten ausgelesen und auf deren Gültigkeit hin überprüft. Es werden von der Session- ID die Benutzer- und Passwortdaten ausgelesen und der Funktion „login_vorhanden“ übergeben.
Hier findet die eigentlich Überprüfung der Daten statt; wenn die Benutzerdaten nicht in Ordnung sind, werden diese angefordert bzw. auf die index-seite(=login des Servers) verwiesen.
Diese Funktion ist die wesentliche Aufgabe des Servers; eine Datei wird kopiert. Dabei wird eine Fehleranalyse durchgeführt. Hierbei ermittelt das System die Dateigröße. Beträgt die Dateigröße 0 Byte, wird dies als Fehler interpretiert.
Das System erstellt selbständig ein Gastlogin. Damit eine Mehrfachnutzung der Anfrage vermieden wird, überprüft das System, ob ein Prozess bereits schon aktiv ist. Da die Datenbank Mehrfachanfragen parallel beantworten kann, ist dies ein kritischer Prozess. Um das zu vermeiden, wird eine log-Datei eingesetzt. So bald eine Anfrage stattfindet, wird in der log-Datei ein Nutzungsbit gesetzt. Folgt eine weitere Anfrage, wird diese in einen Wartezyklus versetzt, bis der aktuelle Prozess abgearbeitet ist. Falls die Datei nicht ordnungsgemäß wieder frei gegeben wurde, erfolgt nach 15 Wartezyklen automatisch der Eintritt in diesen kritischen Prozess.
Die eigentliche Serverhardware, HP-PA 735, hat Probleme bei der Ausführung des MySQL– Servers verursacht. Dieses beruht vermutlich auf den Socks in Verbindung mit der Netzwerkkarte. Abhilfe schaffte nur ein Server auf Intelbasis, welcher zur Verfügung stand, und dessen Hardwareleistung schnell genug ist den File- Service zu realisieren. Auf dem jetzigen Server läuft die gleiche Software, die für den Einsatz auf dem 735-System gedacht war. Der theoretische Ansatz wurde dadurch bestätigt.
Ein weiteres Problem stellte sich beim Dateiupload, das heißt, beim Senden einer Datei heraus. Bei diesem Service erhält der User keine direkte Bestätigung vom Server über den Verlauf des Versendens der Datei. Es sollte eine Lösung gefunden werden, damit der User eine Statusanzeige erhält. Eine Möglichkeit besteht darin, den spezifischen Datenstrom des Users, welcher durch das Versenden der Datei verursacht wird, abzuteilen, zu verarbeiten und dann dem User wieder zukommen zu lassen. Als zweiter Ansatzpunkt kann die Dateigröße des Originals beim User mit den schon übertragenen Dateigrößen auf dem Server verglichen und die daraus resultierende Dateidifferenz dem User übermittelt werden. Aus dieser Differenz kann dann auch die Bandbreite der Übertragung bzw. die Übertragungsgeschwindigkeit berechnet werden.
Beim Dateidownload, das heißt, wenn die Verlinkung der zu speichernden Datei ausgewählt wird, kann es vorkommen, dass der Browser versucht diese Datei zu öffnen. Dabei kann der Browser ein, für das Clientsystem bekanntes Dateiformat, erkennen. Der Browser sucht nach der dazugehörigen Dateisoftware und führt diese aus. Dadurch wird die Datei nicht ordnungsgemäß gespeichert. Bemerkt der User diese Fehlfunktion des Browsers nicht und loggt sich aus, so kann es vorkommen, dass der User auf diese Datei, unter Umständen, nicht mehr zugreifen kann. Eine Lösung für dieses Problem gibt es nicht, da die Browser multimedial ausgelegt sind. Die einzige Möglichkeit dieses Problem zu verhindern, besteht darin, denn User auf ein korrektes Speichern der Datei hinzuweisen.
Die Aufgabenstellung, Entwicklung eines Filetransfer- Services und die Nutzung des Internets, mit der zur Verfügung stehende Rechnerserie HP-9000, wurde erfolgreich verwirklicht. Bei der technischen Umsetzung dieser Arbeit galt es vorher nicht bekannte bzw. vorhersehbare Probleme zu lösen. Das Projekt konnte erst mit der Zusammenarbeit von Herr Prof. Dr.-Ing. Thomas Meißner und Herr Dipl.-Ing. Heiko Lehmann realisiert werden. Durch die vielen Versuchsreihen, Gesprächen und Diskussion gemeinsam mit den Betreuern, wurde das System weiter optimiert. Herr Prof. Dr.-Ing. Thomas Meißner wies mit seinen Zielgerichteten Anfragen auf Probleme im Alltag hin, wodurch Fehler beseitigt werden konnten. Bei der Verbesserung des Systems konnte Herr Dipl.-Ing. Heiko Lehmann immer einen Rat geben. Mit seiner technischen Kompetenz und Raphinessen auf dem Gebiet mit dem Betriebssystems Linux, war es erst möglich, eine erhebliche Verbesserung des Systems zu erreichen. Beiden Betreuern gilt an dieser Stelle mein besonderer Dank.
Die Anwendung des Betriebssystems Linux mit der HP-PA- Architektur hat die Erwartungen übertroffen. Von der technischen Anpassung des Betriebssystems Linux bis hin zur grafischen Ausgabe durch das X- Systems gab es keine großen Probleme. Schwierigkeiten gibt es bei der Zuverlässigkeit des Festplatten – Speichers. Dadurch konnte zum Beispiel noch nicht der „Firefox“, ein Browser basierend auf der Mozilla Technologie, kompiliert werden. Momentan ist die Internetnutzung nur durch den lokale Browser „Konqueror“ möglich. Dieser ist jedoch, bedingt durch die KDE- Oberflächen Librarys, sehr rechenintensiv. Deshalb wird der Startprozess des Programmes bis dessen Nutzung sehr lang.
Werden die bereits genannten Probleme durch weitere Projekte in Angriff genommen und einer Lösung zugeführt, besitzt die FH Lausitz eine kostengünstige Variante den Studenten, sowie den anderen Interessierten, das Internet nutzbar zu machen.
In dieser vorliegenden Diplomarbeit wurde die Basis für das Funktionieren der HP-9000 Rechnerserie geschaffen. Um eine optimale Ausnutzung des vorhandenen Systems zu erreichen, bedarf es weiterer Projekte, entweder im Rahmen mehrerer Praktika oder einer Diplomarbeit.
Das größte Problem besteht bei der Zuverlässigkeit des Festplattenspeichers. Es muss überprüft werden, ob weitere Festplatten- Serien ebenfalls Probleme verursachen oder, bedingt durch das Alter, nur die momentan genutzten Festplatten fehlerhaft sind.
Ein Ansatz ist auch die hardwareinterne Fehlerkorrektur des 8 Bit SCSI-2 (53c710) - Controllers. Ob im diesem Zusammenhang, zum Beispiel in Form verschmutzter Kontakte, Fehler auftreten.
Gute Browser sind Nautilus, Phoenix, Thunderbird (Mozilla) um nur einige zu nennen. Um diese auf der HP-9000 Architektur nutzen zu können, müssen diese meist noch kompiliert werden. Dies bedarf wahrscheinlich die Anpassung einiger Dateien des Quellcodes, die durch rechnerspezifische Besonderheiten notwendig sind. Bei der Kompilierung der Programme ist darauf zu achten, das ausreichend Platenkapazität für die temporären Auslagerungsdateien vorhanden ist.
Bei dem FileServer sollte eine Möglichkeit geschaffen werden, um den Status der Netzwerkübertragung anzeigen zu können. Folgende Lösungsansätze können eventuell als Ansatzpunkt genommen werden. Entweder realisiert man dies dadurch, dass auf dem FileServer jeweils der Upload- sowie der Download- Kanal überwacht wird und die Differenz dem User, in Form eines aktuellen Status, zukommen lässt. Eine weitere Möglichkeit besteht auch darin, die original Dateigröße auf dem Client mit den empfangenen Daten auf dem Server zu Vergleichen. Ebenfalls wird diese Differenz, in Form einer Statusanzeige, dem User übermittelt.
Im Studiengang Maschinenbau wird ein Druckerserver benötigt. Dieser soll die Aufgabe der kompletten Druckerverwaltung übernehmen. Dieses System ist so angedacht, das dem User ein Druck- Kontingent zur Verfügung steht. Dieses Kontingent ist nach Farb-, Schwarzweiß- und unterschiedlichen Papiergrößen unterteilt. Der Kontingentstatus des Users kann über eine Web-Anbindung erfolgen. Die Schwierigkeit besteht darin, die Anzahl und Art der zu druckenden Seiten zu erkennen und dem User, bei Überschreitung seines Kontingents, dies zu übermitteln.
Der zu verwendende Druckerserver kann einer der HP- 720/735- Serie sein.
API:
API ist die Abkürzung des engl. Wortes „Application Programming Interface" und bezeichnet die Anwendungsprogrammierschnittstelle.
Application- Server:
Anwendungs- Server in einem Netzwerk. Ist meistens der leistungsstärkste Computer im einem Netzwerk. Dieser bietet die Möglichkeit, rechenintensive Anwendungen/Programme für Rechner bereitzustellen und auszuführen, die keine leistungsstarke CPU besitzen.
Broadcast:
Als Broadcast bezeichnet man einen Rundruf an alle Netzteilnehmer. Broadcast – Meldungen werden nicht über Router oder Bridges weitergegeben.
Browser:
Webbrowser oder Browser sind Computerprogramme, die zum Betrachten verschiedener (v. a. textorientierter) Inhalte benutzt werden. Vorwiegend werden sie verwendet um Websites im World Wide Web anzuzeigen.
Client:
Computer oder Anwendung, die Dienste von sogenannten Server in Anspruch nehmen.
Client- Server- Architektur:
System der „verteilten Intelligenz“, bei dem der Client Verbindung zu einem Server aufbaut, um vom Server angebotene Dienste in Anspruch zu nehmen. Manche Server-Anwendungen können mehrere Clients gleichzeitig bedienen.
CPU:
Eine CPU (für englisch Central Processing Unit, wörtlich Zentrale Verarbeitungseinheit oder Zentraleinheit), im allgemeinen Sprachgebrauch oft auch nur als Prozessor bezeichnet, ist das Herz eines Rechners.
Der Mikroprozessor ist die moderne, heutzutage übliche Bauform der Zentraleinheit.
Firewall:
Unter Firewall versteht man Netzwerkkomponenten, die ähnlich einem Router ein internes Netzwerk (Intranet) an ein öffentliches Netzwerk (zum Beispiel Internet) ankoppeln. Hierbei lassen sich die Zugriffe ins jeweils andere Netz abhängig von der Zugriffsrichtung, dem benutzten Dienst sowie der Authentifizierung und Identifikation des Netzteilnehmers begrenzen oder komplett sperren.
HTML – Hypertext-Markup-Language:
Auszeichnungssprache, die über Schlüsselwörter vorgibt, wie die Inhalte im Browser angezeigt werden, wo Multimedia-Elemente zu finden sind und welche Elemente wie verlinkt sind.
HTTP – Hypertext Transfer Protocol:
Das HTTP- Protokoll setzt auf TCP auf und regelt die Anforderungen und Übertragung von Webinhalten zwischen HTTP- Server und Browser.
HP:
HP ist eine Abkürzung für den Computer-Hersteller H ewlett P ackard.
ID:
ID ist die Abkürzung vom engl. Wort "Identification" und steht für die Identifizierung(snummer), (Personen-)Kennzahl.
Internet:
Das Internet ist der weltweit größte Netzverbund, der den angeschlossenen Netzteilnehmer eine nahezu grenzenlose Kommunikationsinfrastruktur zur Verfügung stellt.
Intranet:
Ein abgeschlossenes Netzwerk (innerhalb des FHL – Netzwerkes).
IP – Internet Protocol:
Protokoll, das die Verbindung von Teilnehmern ermöglicht, die in unterschiedlichen Netzwerken positioniert sind.
IP- Adresse:
Die IP- Adresse ist eine 32-Bit-Zahl, die jeden Netzteilnehmer im Internet bzw. Intranet eindeutig identifiziert. Sie besteht aus einem Netzwerkteil (Net- ID) und einem Benutzerteil (Host- ID).
PS/2:
PS2 oder PS/2 ist die Abkürzung für das Personal System 2, welches von IBM Ende der 1980er Jahre eingeführt wurde. An das PS/2-System erinnert heute nur noch die gleichnamigen Anschlüsse für Tastatur und Maus.
Router:
Ein Router verbindet zwei unterschiedliche Netze, wobei im Gegensatz zu Bridges nicht anhand der Ethernet-Adresse, sondern in Abhängigkeit von der IP- Adresse entschieden wird, welche Datenpakete weiterzuleiten sind.
SCSI:
SCSI (gesprochen skasi), steht für Small Computer System Interface und stellt eine standardisierte Schnittstelle zur Datenübertragung zwischen Geräten auf einem Computer-Bus zur Verfügung.
Switch:
Ein Switch bietet die Möglichkeit, mehrere Netzteilnehmer miteinander zu verbinden. Er „lernt“ die Ethernet- Adresse des, an einen Port angeschlossenen Netzteilnehmers und leitet dorthin nur noch diejenigen Datenpakete weiter, die an diesen Netzteilnehmer adressiert sind. Eine Ausnahme sind die Broadcast- Meldungen, diese werden an alle weitergegeben.
TCP – Transmission Control Protocol:
TCP setzt auf IP auf und sorgt nicht nur für die Verbindung der Teilnehmer während der Übertragung, sondern stellt auch die Korrektheit der Daten und die richtige Abfolge der Datenpakete sicher.
Treiber:
Treiber sind Programme, über die das Betriebssystem oder ein Anwendungsprogramm mit einem Peripheriegerät kommuniziert. Der Treiber übersetzt die Befehle des Betriebssystem in Kommandos für das jeweilige Gerät und umgekehrt.
URL – Uniform Resource Locater:
Der Anwender kann mit Hilfe der URL im Browser eine Adresse von einem Objekt im Internet angeben.
Windows- Emulator:
Hierbei ist meistens ein Emulator für das Microsoft Betriebssystem „Windows“ gemeint. Da hierfür in der Regel ganze Computersysteme simuliert werden müssen, ist ein leistungsstarker Rechner notwendig. Der gängigste Emulator für UNIX- konforme Systeme ist das Programm „Wine“, dieser kann Windows 95/98 und Windows 2000 simulieren.
Bild 1: Datentransportbefehle treten in einer CPU am häufigsten auf
Bild 2: Schematischer Aufbau eines HP 712 – Rechners 16 Quelle: http://www.openpa.net/systems/712.html
Bild 3: Schematische Darstellung des eigentlichen Betriebssystems 17 Quelle: „Ausarbeitung für den Schwerpunkt Linux“ – pdf- Datei S
Bild 4: Schematische Darstellung des „Color Recovery“ 18 Quelle: http://www.prz.tu-berlin.de/docs/html/MMC/research/ leymann/diplom/diplom70.htm#
Bild 5: Durch Überlappen der Farbe Rot und Blau ergibt sich die Farbe Lila
Bild 6: Schematische Darstellung des X- Window- Systems
Bild 7: Verzeichnisstruktur auf dem Server
Bild 8: Schematische Darstellung des Schutzes durch die Firewall
Bücher:
1. „PHP“ Egon Schmid, Christian Cartus, Richard Blume Mark&Technik 1999
2. „MySQL“ Michael Kofler ADDISON-WESLEY 2001
3. „Firewall- Systeme“ Nobert Pohlmann MITP 2001
4. „LINUX“ Torbjörn Gripp, Günter Klappheck, Peter Glinsky, Frank Gehrke SYBEX 1998
5. „LINUX“ Michael Kofler ADDISON-WESLEY 1999
6. „der RISC-PC der 90er Jahre“ Hans Günter Dahn ADDISON-WSLEY 1992
7. „LINUX für Durchstarter“ Fred Hantelmann Springer-Verlag 1997
Internetadressen :
Hardware:
http://www.openpa.net/systems/index.html
http://www.openpa.net/systems/712.html
http://www.openpa.net/pdc.html#examples
Linux:
http://www.openpa.net/index.html
http://www.parisc-linux.org/release-0.9/index.html
http://tldp.org/HOWTO/PA-RISC-Linux-Boot-HOWTO/paloappusage.html
http://www.dolug.de/dbah/index.html
http://linuxwiki.de/LinuxKernel
http://www.selflinux.org/portal/
X-Window:
http://xwinman.org/
PHP- Programmierung:
http://www.selfphp.info/
http://de3.php.net/manual/en/index.php
http://www.dynamic-webpages.de/php/
http://ffm.junetz.de/members/reeg/DSP/
http://www.php-homepage.de/
MySQL:
http://www.dynamic-webpages.de/php/ref.mysql.php
http://www.selfphp.info/funktionsuebersicht/mysql_funktionen.php
Ich erkläre hiermit, dass ich die hier vorliegende Diplomarbeit selbständig verfasst und zu deren Anfertigung keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe.
Stephan Calließ Senftenberg, den 17.03.2004
Betriebssystem
Boot-CD_Image
Kernel
Kernel_Image_2.4.22
FileServer
Anleitung
Quellecodes
Internetstations
Anleitung_HP-9000
Config_dateien
Dillo-0.7.3
Kurzanleitung_Rechner
Mozilla
Scripte
A Dokumentation
Server Login
Der Fileserver Maschinebau ist unter der WWW-Adresse http://fsmb.fh-lausitz.de zu erreichen. Bei den erscheinenden Loginscript muss sich jeder User autorisieren. Der Administrator benutzt des selbige Loginscript. Bei dem Usernamen ist es egal ob dieser in Groß- oder Kleinbuchstaben eingegeben wird, das System erkennt dies selbstständig. Bei dem Passwort wird dies jedoch unterschieden. Das System erkennt selbstständig ob es sich um einen Gastuser, Hauptuser oder um den Administrator handelt. Es verweist den User auf die für ihn bestimmten Folgeseiten. Bei Fehlerhafter Login Eingabe gibt das System für den User einen Hinweis aus.
Abbildung in dieser Leseprobe nicht enthalten
Bei erfolgreichen Login kontrolliert das System automatisch die Folgeseiten auf die Gültigkeit der aktuellen Sitzung um den Missbrauch weitestgehend auszuschließen.
Login User
Nachdem sich der Hauptuser (Hauptbenutzer) autorisiert hat, überprüft das System ob für den User Dateien zum Download bereit stehen. Ist dies der Fall so wird er darauf hin gewiesen und zu seinem Dateien Archiv verwiesen.
Für den User stehen zwei Transferarten zur Verfügung. Entweder möchte der User an jemanden eine Datei verschicken oder er bekommt von jemanden eine Datei. Sollen mehrere Dateien auf einmal versendet werden so sind diese in einem Archiv, zum Beispiel zu einem ZIP- Archiv, vorher zusammen zu führen.
Zur besseren Bedienerfreundlichkeit trägt die Funktion „Kontakte“ bei. Diese Funktion merkt sich alle gültigen Adresseingaben. Diese Kontakte können unter dem Link „Kontakte löschen“ wieder entfernt werden.
Datei senden
Unter dem Link „Dateien senden“ steht dem User die Möglichkeit zur Verfügung eine Datei zu versenden. Es öffnet sich für den User ein Eingabeformular in dem die E-Mail Adresse -, Anrede - und die Datei für den Empfänger eingegeben wird. Das System prüft hier auf die Gültigkeit der Eingaben und weist den User bei fehlerhafter Eingabe darauf hin, diese zu korrigieren. Wurde zum Beispiel nur die Datei angegeben so brauch der User diese nicht noch einmal versenden. Das System „merkt“ sich diese Datei solange bis alle Daten korrekt eingegeben wurden. Bricht aber der User diesen Auftrag ab so wird diese Datei gelöscht.
Nachdem alle Daten auf ihre Gültigkeit überprüft wurden und die Datei ordnungsgemäß auf dem Server hinterlegt wurde, bekommt der User eine Zusammenfassung des Auftrages.
Hinweis: Bei der Gültigkeitsprüfung der Datei muss diese Größer 0 Byte sein! Ist dies nicht der Fall so wird dies als Fehler interpretiert. Es entspricht im übrigen auch nicht dem Sinn dieses Services 0 Byte große Dateien zu transferieren!
Datei empfangen
Möchte der User eine Datei bekommen so kann er diese unter dem Link „Datei empfangen“ in Auftrag geben. Hier öffnet sich ebenfalls ein Eingabeformular welches der User ausfüllen muss.
Nachdem ebenfalls alle Daten auf ihre Gültigkeit überprüft sind, bekommt der User eine Zusammenfassung des Auftrages.
Gast Zugang
Sobald die Auftragsvergabe erfolgreich verlaufen ist, erzeugt das System selbstständig die Gast Zugangsdaten für den Empfänger. Der Empfänger bekommt durch die E-Mail einen Userkey mit Passwort übermittelt. Des weiteren sind Informationen über Auftragsart und Auftraggeber in dieser E-Mail enthalten.
Autorisiert sich der Empfänger durch diesen Gastzugang auf dem Server so erkennt das System dessen Zugehörigkeit. Das System erkennt selbstständig ob es sich um einen Download oder Upload handelt und weist dem Gast die jeweils korrekte Seite zu. Ist der Gast Empfänger einer Datei so wird diese ihm zum Download bereit gestellt.
Der Gast Zugang verliert seine Gültigkeit nach erfolgreicher Vollendung des Auftrages. Der Auftraggeber bekommt als Information des erfolgreichen Abschlusses eine E-Mail zu gesandt.
Login Administrator
Der Administrator Login dient nur zur Userverwaltung. Er kann einen neuen User anlegen oder seine Daten verändern bzw. löschen.
User erstellen
Liegt bei der Eingabe der neuen Userdaten ein Fehler vor, so weist das System auf die jeweils fehlerhafte Eingabe hin. Es ist lediglich darauf zu achten das der neue Username größer 5 Buchstaben ist und die E-Mail Adresse eine gültige Adresse der Fachhochschule ist.
Userdaten ändern/löschen
Hier hat der Administrator die Möglichkeit Userdaten zu ändern bzw. zu löschen. Alle Hauptuser des FileServers werden alphabetisch in einer Tabelle aufgelistet, danach wählt der Administrator den zu ändernden User aus. Nun hat der Administrator die Möglichkeit Einträge zu editieren oder den User zu löschen. Diese Änderungen können problemlos bei laufenden Aufträgen durchgeführt werden. So lange der User nicht gelöscht wird, gehen die zwischengespeicherten Dateien dabei nicht verloren.
Administrator Setup
Dieses Setup hat zwei Aufgaben. Als erstes wird diese Setup benötigt um bei einer Neuinstallation die Datenbank „db_fh_mb_fileserver“ sowie benötigte Dateien anzulegen. Diese sind für den Betrieb des FileServers notwendig. Des weiteren hat hier der Administrator die Möglichkeit sein Passwort zu ändern.
Unter der Adresse http://fsmb.fh-lausitz.de/adminsetup.php ist dieses Script aufzurufen. Die Login Daten entsprechen dem des MySQL- Servers! (Benutzer, Passwort) . Mit diesen Login Daten ist höchste Vorsicht geboten (Sicherheitsrisiko).
Hinweis: Wird dieses Script benutzt zum Passwort ändern, so werden alle Administratordaten zurück gesetzt.
Config Datei
Die Config Datei kann nur der Administrator des FileServers nur lokal ändern. Diese Datei hat zur Aufgabe die Administrierung des FileServices einfach zu gestalten.
/var/www/config.php
die wichtigsten Angaben sind wie folgt:
Die Konfiguration „daten_path_server” gibt an, wo sich das Verzeichnis für die Daten sich befindet. Es kann sich hier auch um den Mountpoint für die Datenfestplatte handeln. Der Ausgangspunkt für die Angabe ist aus dem WWW-Verzeichnis, indem sich die „index.php“ befindet, zu machen.
Beispiel der Verzeichnisstruktur:
Abbildung in dieser Leseprobe nicht enthalten
bei diesem Beispiel ist die Angabe wie folgt: ../fileserver.transferdaten
die „..“ stehen für „ein Verzeichnis zurück“
//--- pfad der Daten
function daten_path_server()
{
return "../fileserver.transferdaten";
}
Der Fileserver besitzt eine Schutzfunktion um ein Mangel an Speicherkapazität zu vermeiden. Unterschreitet das Speichermedium eine mindest Kapazität so wird dem Anwender dies übermittelt. Der Anwender kann zu dieser Zeit keine Daten auf dem Server hinterlegen. Das System ist so programmiert, das alle laufenden Aktionen ordnungsgemäß beendet werden. Dieser Wert wird in Byte angegeben 100MegaByte sind 100.000.000 Byte (die Angabe erfolgt in der config.php ohne Punkt!).
//--- minimum der kapazität der festplatte (device 0) hier www!--------------
function mem_device_0()
{
return "100000000"; // in Byte
}
Die Verweildauer gibt an, wie lange Daten zum Download bereit gestellt werden. Ist die Verweildauer überschritten so werden diese Daten gelöscht. Diese Angabe wird in der Form JahrMonatTageStundeMinutenSekunden angegeben. Ein Tag wäre dann: 0000.00.01.00.00.00 (diese Angabe ist in der config.php ebenfalls ohne Punkt anzugeben!) Die Nullen am Anfang können weg gelassen werden!
//--- verweildauer www
function verweildauer_www()
{
return "1000000"; //jahre0000-monate00-tage00-stunden00-minuten00-sekunden00
}
B Quelltexte
rdate
#! /bin/sh
#
# rdate sync systemtime with time.fh-lausitz.de
#
#
#Written by Stephan Calliess <>.
#
# Version: @(#)rdate 0.0.1 17-Nov 2003
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/rdate
NAME=rdate
DESC="sync system time"
test -x $DAEMON || exit 0
set -e
case "$1" in
start)
echo "Starting $DESC: $NAME"
rdate time.fh-lausitz.de
echo "Have a Nice Day!!! Gruss Foxi >:oD"
;;
stop)
echo "We never Stop $DESC: $NAME :oP"
rdate time.fh-lausitz.de
echo "."
;;
restart|force-reload)
echo -n "Restarting $DESC: $NAME"
/var/run/$NAME.pid --exec $DAEMON
/var/run/$NAME.pid --exec $DAEMON
echo "."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
BigWin
#! /bin/sh
#
# bigwin connecting with leo.fh-lausitz.de <-Application-Server!
#
# Written by Stephan Calliess <>.
#
# Version: @(#)bigwin 0.0.1 1-Feb 2004
#
NAME=BigWin
DESC="Connecting to Application-Server LEO"
#IP oder DNS von HOST bildausgabe auf terminal + grafikkartennummer meist 0
MY_HOST_IP=192.168.11.201:0.0
#IP oder DNS des APPLICATION-SERVERS -> z.B.: leo.fh-lausitz.de
APP_HOST_IP=leo.fh-lausitz.de
case "$1" in
start)
echo "Starting \"$NAME\""
if test -e ~/bigwin ; then
echo "Alte Temp.-Datei wird gelöscht..."
chmod 777 ~/bigwin
rm ~/bigwin
fi
echo "**********************************************"
echo "* *"
echo "* Geben Sie \"./bigwin help\" für Hilfe ein! *"
echo "* *"
echo "**********************************************"
echo "$DESC for User `logname`"
echo "Temp.-Datei wird erstellt..."
cp /usr/local/bin/bigwin ~/
chmod 777 ~/bigwin
#xhost zieladresse -> xhost leo.fh-lausitz.de
xhost $APP_HOST_IP
#ssh zu zielhost -> ssh user@leo.fh-lausitz.de
echo ""
echo ""
echo "Bitte geben Sie das Passwort vom HRZ (HochschulRechenZentrum) ein!"
echo "...Versuche Verbindungsaufbau zum SERVER..."
echo " ...Please Wait!..."
echo ""
ssh `logname`@$APP_HOST_IP
;;
help)
echo "Starting $1 ..."
echo "***************************************************************"
echo "* *"
echo "* \"./bigwin kde\" -> startet KDE-Oberfläche *"
echo "* \"./bigwin mozilla\" -> startet Mozilla (www Browser) *"
echo "* \"./bigwin konqueror\" -> startet Konqueror (www Browser) *"
echo "* \"./bigwin help\" -> startet diese Hilfe *"
echo "* \"exit\" oder \"logout\" -> Beendet \"BigWin\" *"
echo "* *"
echo "***************************************************************"
;;
konqueror)
echo "Starting $1 ..."
export DISPLAY=$MY_HOST_IP
$1
;;
mozilla)
echo "Starting $1 ..."
export DISPLAY=$MY_HOST_IP
mozilla-1.0.0
;;
kde)
echo "Starting $1 ..."
export DISPLAY=$MY_HOST_IP
kde2
;;
esac
exit 0
Dillo
#! /bin/sh
#
# dillo start script for www-browser DILLO
#
# Written by Stephan Calliess
#
# Version @(#)dillo 0.0.1 1-Feb 2004
#
#start script fuer dillo
#damit Cookies akzeptiert werden
#und Proxy Einstellungen
if [ $UID -gt 499 ] ; then
if test ! -d ~/.dillo ; then
mkdir ~/.dillo
cp /var/config_var/cookiesrc ~/.dillo
cp /var/config_var/dillorc ~/.dillo
fi
fi
/usr/local/bin/dillo_start
Konqueror
#! /bin/sh
#
# konqueror start script for www-browser KONQUEROR
#
#
# Written by Stephan Calliess
#
# Version @(#)konqueror 0.0.1 1-Feb 2004
#
#start script fuer:
#konqueror Browser
#-> Einstellungen für Proxy und Plugins
if [ $UID -gt 499 ] ; then
if test ! -e ~/.kde/share/config/konquerorrc ; then
if test ! -d ~/.kde ; then
mkdir ~/.kde
fi
if test ! -d ~/.kde/share ; then
mkdir ~/.kde/share
fi
if test ! -d ~/.kde/share/config ; then
mkdir ~/.kde/share/config
fi
cp /var/config_var/konquerorrc ~/.kde/share/config
fi
if test ! -e ~/.kde/share/config/kioslaverc ; then
cp /var/config_var/kioslaverc ~/.kde/share/config
fi
if test ! -e ~/.kde/share/config/kio_httprc ; then
cp /var/config_var/kio_httprc ~/.kde/share/config
fi
fi
/usr/bin/konqueror_start
KsIRC
#! /bin/sh
#
# ksirc start script for irc prog. KSIRC
#
# Written by Stephan Calliess
#
# Version @(#)ksirc 0.0.1 1-Feb 2004
#
#start script fuer:
#ksirc irc-prog. -> config Einstellungen
if [ $UID -gt 499 ] ; then
if test ! -e ~/.kde/share/config/ksircrc ; then
if test ! -d ~/.kde ; then
mkdir ~/.kde
fi
if test ! -d ~/.kde/share ; then
mkdir ~/.kde/share
fi
if test ! -d ~/.kde/share/config ; then
mkdir ~/.kde/share/config
fi
cp /var/config_var/ksircrc ~/.kde/share/config
fi
fi
/usr/bin/ksirc_start
„Session“- Bildung
if($IDSubmit)
// Anfrage an db ob Eingabe richtig bzw. User vorhanden
{
$UserID = strtolower($UserID);
$result = mysql_query(" SELECT login_name FROM user_login_db
WHERE login_name = '$UserID' AND
passwort = PASSWORD('$Passwort') " );
// ist User vorhanden
if(mysql_num_rows($result)==1 )
{ //ab hier wenn User ok!!!
session_start();
//session_ID wird gebildet mit den User/Gast-daten
$_SESSION['User'] = $UserID;
$_SESSION['Sitzung'] = $Passwort;
$_SESSION['Zeit'] = time();
if(SID)
// Session wird geprüft
{
$sid1 = "?" . SID;
header("Location: checkID.php$sid1");
//Verweis auf die Folgeseite > Index end !
exit();
} ...
Sicherheit der Folge Seiten
include("read-connect_functions.php");
session_start();
//fortsetzen der Session von Login erfolgreich
$UserID = $_SESSION['User'];
$Passwort = $_SESSION['Sitzung'];
$connID = connect_to_database()
// Verbindung zu Datenbank
$user_login_ok = login_vorhanden($UserID, $Passwort);
//abfrage ob Userlogin vorhanden wegen missbrauch
Funktion „login_vorhanden“
function login_vorhanden($UserID, $Passwort)
{
$result = mysql_query(" SELECT login_name, passwort FROM user_login_db WHERE login_name = '$UserID' AND
passwort = PASSWORD('$Passwort') ");
if(mysql_num_rows($result)!=1 )
{
header("Location: index.php");
//wenn User nicht vorhanden!!! -> Login anfordern
exit();
}
else
{
return $user_login_ok;
}
}
Kernfunktion „Datei kopieren“
$upload_datei_name = $_FILES["upload_datei"]["name"]; //für mail
$upload_datei_groesse = $_FILES["upload_datei"]["size"]; //für mail
if($upload_datei_groesse>0)
{
@$path = "$daten_path_server/$gast_von_wem/$server_gast_verzeichnis/";
@mkdir($path,0777);
@chmod($path,0777);
@move_uploaded_file($_FILES["upload_datei"]["tmp_name"], "$daten_path_server/$gast_von_wem/$server_gast_verzeichnis/".$_FILES["upload_datei"]["name"]);
@chmod("$path/$upload_datei_name",0777);
}
else
{ //wenn Datei vergessen!!!!! (FEHLER!!!!)
header("Location: gastlogin.php$sid1&error=1");
exit();
}
Erzeugung „Gastlogin“
function create_gast_login
while(($i++)!=15)
//um bei gleichen Zugriffszeiten keine gleichen Gastzugänge zu bekommen
{
$log_read = fopen("$daten_path_server/log","r");
$log = fgets($log_read,2);
if(($log==0)||$i==15)
//falls nach 15 Durchläufen immer noch nicht (-> kill Prozess) a 24 Sekunden
{
fclose($log_read);
$log = fopen("$daten_path_server/log","w+");
fwrite($log,1,1);
fclose($log);
while($login_ok == 1)
{
$time = gettimeofday();
$time_a = $time[usec];
$time = gettimeofday();
$time_b = $time[usec];
srand((double)microtime()*(rand($time_a,$time_b)));
$gast_nummer = rand(1000,99999);
$gast_id = "gast_$gast_nummer";
$login_ok = check_user($gast_id);
if($login_ok!=1)
//wenn Gast ok -> in db speichern & Prozess freigeben
{
mysql_query(" INSERT INTO user_login_db SET
login_name = '$gast_id' ");
$log = fopen("$daten_path_server/log","w+");
fwrite($log,0,1);
fclose($log);
$i = 15;
}
}
}
else
{
fclose($log_read);
usleep(1600000);
//wait time in Millisekunden = 1,6 Sekunden
}
}
Abbildung in dieser Leseprobe nicht enthalten
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!
Kommentare