Home About us Products Services Contact us Bookmark
:: wikimiki.org ::
Apache (Software)

Apache (Software)

Der Apache HTTP Server [] ist ein Produkt der Apache Software Foundation und der meistverbreitete Webserver im Internet, noch vor den Internet Information Services (IIS) von Microsoft. Laut offizieller Apache-FAQ wurde der Name aus Respekt vor dem nordamerikanischen Indianerstamm der Apachen gewählt, nach vielen anderen Quellen handelt es sich dagegen um eine Umdeutung von „a patchy server“, was soviel wie ein zusammengeflickter Server bedeutet. Da der Apache HTTP Server ursprünglich eine gepatchte Erweiterung des alten NCSA HTTP Servers war, scheint auch diese Variante plausibel. Neben Unix und Linux läuft Apache auch auf Win32, NetWare sowie einer Vielzahl weiterer Betriebssysteme. In der aktuellen Version 2.0 wurde die Stabilität und Geschwindigkeit des Servers - vor allem auch auf Nicht-UNIX-Systemen - erheblich verbessert: Die Bibliothek Apache Portable Runtime (APR) stellt eine Verallgemeinerung wichtiger Systemaufrufe zur Verfügung, so dass die individuellen Stärken des jeweiligen Betriebssystems ausgenutzt werden können. Hinzu kommen verschiedene Multiprocessing-Module (MPM), die je nach Plattform unterschiedliche Lösungen für die gleichzeitige Bedienung mehrerer Client-Anfragen anbieten: Beispielsweise setzt das MPM prefork für klassische UNIX-Systeme auf Forking von Prozessen, während mpm_winnt für die unter Windows empfehlenswerteren Threads optimiert ist. Der Apache-Webserver ist modular aufgebaut: Durch entsprechende Module kann er beispielsweise die Kommunikation zwischen Browser und Webserver verschlüsseln (mod_ssl), als Proxy-Server eingesetzt werden (mod_proxy) oder komplexe Manipulationen von HTTP-Headern (mod_headers) und URLs (mod_rewrite) durchführen. Der Apache bietet die Möglichkeit, mittels serverseitiger Skriptsprachen Webseiten dynamisch zu erstellen. Häufig verwendete Skriptsprachen sind PHP oder Perl. Diese sind kein Bestandteil des Webservers, sondern müssen ebenfalls entweder als Module eingebunden werden oder über die CGI-Schnittstelle angesprochen werden. Über das bei der Apache-Installation enthaltene mod_include können so genannte Server Side Includes (SSI) ausgeführt werden. Damit ist es möglich, einfache dynamische Webseiten zu erstellen und den Verwaltungsaufwand von statischen Webseiten zu minimieren. Der Apache HTTP Server ist, wie alle Produkte der Apache Software Foundation, kostenlos als Open Source unter der Apache-Lizenz verfügbar. Die aktuelle Version ist 2.0.55, die aktuelle Version des verbreiteten 1.3-Zweiges ist 1.3.34.

Siehe auch


- Microsoft Internet Information Server
- Cocoon
- Common Gateway Interface (CGI)
- Servlet
- LAMP
- Perl
- PHP
- Python bzw. mod_python
- WAMP
- XAMPP
- .htaccess

Weblinks


- [http://httpd.apache.org/ Apache HTTP Server] ([http://httpd.apache.org/docs/misc/FAQ.html FAQ], [http://httpd.apache.org/docs-2.0/ Handbuch])
- http://www.apachefriends.org/ - freies WAMP und LAMP Programmpaket für Linux und Windows - zur einfachen Installation eines Apache Servers inklusive der MySQL, PHP und Perl-Module
- Kategorie:Server Kategorie:Apache-Projekt Kategorie:World Wide Web ja:Apache

Apache Software Foundation

Die Apache Software Foundation [] (ASF) ist eine ehrenamtlich arbeitende Organisation zur Förderung der Apache-Softwareprojekte, zu denen unter anderem auch der Apache-Webserver gehört. Die ASF entstand im Juni 1999 aus der Apache Group und wurde in Delaware (USA) gegründet. Die Apache Software Foundation ist eine verteilte Gemeinschaft, die aus Entwicklern besteht, welche an Open-Source-Softwareprojekten arbeiten. Charakteristisch für Apache-Projekte ist der gemeinschaftliche und diskussionsfreudige Entwicklungsprozess und die offene und pragmatische Software-Lizenz. Jedes Projekt wird von einem gewählten Team aus Experten geleitet. Diese beteiligen sich auch aktiv an der Entwicklung der Projekte. Die ASF ist eine Leistungsgesellschaft, deren Mitgliedschaft nur aktiven Entwicklern der Apache-Projekte zu teil wird. Zu den Aufgaben der ASF gehört der rechtliche Schutz aller Projekt-Mitarbeiter und der Schutz der Marke "Apache". Weiterhin ist sie der Ursprung der Apache-Lizenz, welche auch von externen Open-Source-Projekten benutzt und angepasst wurde. Das Logo der Apache Software Foundation ist die bunte Feder, welche auch die meisten Apache-Projekte schmückt.

Geschichte

Die Geschichte der Apache Software Foundation ist eng mit der Entwicklung des Apache HTTP Servers verknüpft. Eine Gruppe von acht Entwicklern begann 1994 den NCSA HTTPd Server zu erweitern. Sie waren im einzelnen: Brian Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau und Andrew Wilson mit Unterstützung von Eric Hagberg, Frank Peters und Nicolas Pioch. Sie nannten das Ergebnis ihrer Arbeit Apache HTTP Server und veröffentlichten es im April 1995. Stand 2005 hat die ASF 125 Mitglieder.

Projekte

Eine Liste von aktiven Apache-Projekten:
- Apache HTTP Server
- Ant
- Apache Portable Runtime (APR)
- Cocoon
- DB
- Directory
- Excalibur
- Forrest
- Geronimo
- Gump
- Incubator
- Jakarta
- James
- Lenya
- Logging Services
- Lucene
- Maven
- MyFaces
- Portals
- SpamAssassin
- Struts
- TCL
- Web Services
- Xerces
- Apache XML-Projekt
- XMLBeans
- XML Graphics
- ApacheCon (eine Konferenz) ruhende Apache-Projekte:
- Crimson geschlossene Apache-Projekte:
- Avalon Schwesterprojekte:
- PHP

Weblinks


- http://www.apache.org
- http://wiki.apache.org/
- http://www.apachecon.com/ Kategorie:Apache-Projekt Kategorie:Freie Software Kategorie:Organisation (Informatik) ja:Apacheソフトウェア財団

Webserver

Ein Webserver ist im engeren Sinne ein Server-Dienst, der Informationen nach dem HTTP-Protokoll zur Verfügung stellt. Die Daten werden über HTTP-URLs adressiert. Im weiteren Sinne wird der Begriff Webserver – wie bei Server – auch für den Host verwendet (dann Web-Host genannt), auf dem der Server-Dienst betrieben wird.

Funktion

Ein Nutzer stellt eine Anforderung, z.B. durch Anklicken eines Links in seinem Browser (Client). Der Browser leitet einen HTTP-Request an den im Link adressierten Webserver. Der Webserver liefert die adressierte Seite mitsamt eines Mime-Types zurück. Der Browser zeigt die übertragenen Daten entsprechend ihres Mime-Types an. Die Standard-Ports für Webserver sind Port 80 für HTTP und Port 443 für HTTPS (per SSL verschlüsselte HTTP-Verbindung). Im typischen Umfeld einer Website liefert ein Webserver vorwiegend statische Daten wie HTML-Seiten, Stylesheets oder Bilder und Grafiken (JPG, GIF, PNG) zurück. Neben statischen Daten werden zunehmend dynamische, d.h. beim Abruf erzeugte Daten, ausgeliefert. Dies geschieht durch den Einsatz von Skripten (PHP, JSP, ASP), Server-Containern (Servlets, ASP.NET) und Webservices (Soap). Durch die Verwendung dynamischer Seiten wird u.a. interaktive Benutzerführung ermöglicht. Beispiele für dynamische Seiten sind Foren, Datenbank-Interface oder Suchmaschinen. Auf dem Webserver werden üblicherweise alle Anfragen in einem Logfile protokolliert, aus dem mittels Logfile-Analyse Statistiken über Besucherzahlen bzw. Anzahl der Zugriffe pro Seite generiert werden können. Da HTTP ein verbindungs- und zustandsloses Protokoll ist, ist eine eindeutige Zuordnung einer Anforderung zu einem Nutzer nicht möglich. Die Angabe von Visits, Hits, Benutzer o.ä. ist daher nur eingeschränkt aussagekräftig. Zwischengeschaltete Proxy-Server, die gegenüber dem Webserver als Client auftreten, erschweren diese Zuordnung zusätzlich. Um genauere Daten zu erhalten, werden Cookies und dynamische Seiten (s.o.) eingesetzt.

Webserver-Software

1989 schlug Tim Berners-Lee seinem Arbeitgeber CERN (Europäisches Kernforschungslabor) ein Projekt vor, das auf dem Prinzip des Hypertexts beruhte und den weltweiten Austausch sowie die Aktualisierung von Informationen zwischen Wissenschaftlern vereinfachen sollte. Er verwirklichte dieses Projekt, und entwickelte neben dem ersten WWW-Browser WorldWideWeb auch den ersten Webserver unter NeXTSTEP (das Gerät, auf dem die Server-Software lief, ist heute in der Ausstellung [http://microcosm.web.cern.ch/Microcosm/ "Microcosm"] des CERN-Besucherzentrums zu besichtigen). Die beiden heute mit Abstand bedeutendsten Webserver sind Apache HTTP Server und Microsoft Internet Information Server (kurz: IIS). Auf der frei zugänglichen Webseite http://netcraft.com kann man anfragen, welchen Webserver eine bestimmte Domain benutzt. Nachfolgend sind bedeutende Webserver aufgelistet:
- Apache HTTP Server (Apache Software Foundation; freie Software)
- Internet Information Services (Microsoft)
- Jakarta Tomcat (Apache Software Foundation; freie Software)
- AOLserver (America Online; freie Software)
- Tux
- iPlanet
- Zope
- [http://www.roxen.com/products/webserver/ Roxen WebServer]
- [http://www.acme.com/software/thttpd/ thttpd]
- [http://www.boa.org/ Boa Webserver]
- [http://lighttpd.net/ lighttpd]
- [http://www.w3.org/Jigsaw/ Jigsaw]
- [http://www.wnserver.org/ WN server]
- [http://wp.netscape.com/enterprise/ Netscape Enterprise Server]
- [http://www.sun.com/software/products/web_srvr/home_web_srvr.xml Sun Java System Web Server]
- Caudium
- [http://www.chez.com/emarsden/downloads/ Httpd für Emacs]
- [http://elserv.sourceforge.net/ Elserv für Emacs]

Siehe auch


- Server
- Virtueller Server
- Dedicated Server
- World Wide Web
- CGI
- Servlet

Weblinks


- http://httpd.apache.org
- http://www.aolserver.com
- http://www.janaserver.de Kategorie:World Wide Web Kategorie:Server ja:Webサーバ simple:Web server

Internet Information Services

Internet Information Server (auch Internet Information Services) (IIS) ist die Bezeichnung für bestimmte Funktionen zur Veröffentlichung von Dokumenten und Dateien im Internet und Intranet, die von Microsoft Windows Servern zur Verfügung gestellt werden. Die Internet-Funktionen sind Webserver-, FTP-, SMTP-, POP3-, WebDAV- und Index-Dienste. Die Server-Plattformen, die IIS-Dienste zur Verfügung stellen, sind Windows NT Server, Windows 2000 Server und Microsoft Windows Server 2003 sowie Windows 2000 Professional Server und Windows XP Professional Server (mit Einschränkungen in Bezug auf die Anzahl gleichzeitiger Verbindungen). Der IIS kann Active Server Pages oder .NET-Applikationen (ASP.NET) ausführen und auf PHP basierende Websites betreiben. Siehe auch: WWW

Weblink


- [http://www.microsoft.com/windowsserver2003/iis/default.mspx Microsoft Internet Information Services]
- [http://news.netcraft.com/ Netcraft Web Server Survey] Kategorie:Internet Kategorie:Microsoft Kategorie:Windows Kategorie:Server ja:Internet Information Services

Inde (Volk)

Inde (je nach Dialekt auch T`Inde, N`de, N`ne = "die Menschen" bekannt auch als Apachen, dem Zuni-Wort für Feind) ist die Sammelbezeichnung für verschiedene Südliche Athapasken-Gruppen im Südwesten der heutigen USA und im Norden Mexikos. Die Sprachen der Inde, Apache, bilden eine eigene Untergruppe der Na-Dene-Sprachfamilie, wie auch die der Diné. Die Inde leben heute mehrheitlich in Reservationen in den US-Bundesstaaten Neu-Mexiko, Arizona und Oklahoma.

Gruppen der Inde

Die als Inde zusammengefassten Stämme können wie folgt klassifiziert werden:
- Chiricahua (Nahuatl: "wilde Krieger aus den Bergen")
  - Chu-ku-nde/Chokonen (= "Ridge of the Mountainside People", auch Hiu-Ha = "Volk der aufgehenden Sonne", "wirkliche" oder "zentrale" Chiricahua)
  - Chi-he-nde/Chihenne (= "rot bemaltes Volk", Warm Springs, "östliche" Chiricahua)
  - Bi-dan-ku/Bedonkohe (= "In Front of the End People", Mimbreno, Mogollon, Gila Apache, "östliche" Chiricahua)
  - Ndè`ndai/Nednhi (= "feindliches Volk", Bronco Apache, "südliche" Chiricahua)
- Mescalero (span: "Mescalsammler", Natage, Faraone, Eigenbez.: Shis-Inday = "Volk der (Berg)Wälder")
  - Nataina (Natage)
  - Tuetinini
  - Tsihlina-Inde (Chilpaines)
  - Guhlka-Inde (Cuelcajenne)
  - Tahuunde
- Anima-Gruppe (lebten als Nachbarn der Bedonkohe in den Mogollon Mountains)
- Jicarilla (span: "kleine Körbe", Eigenbez.: T`inde)
  - Olleros (span: "Töpfer", Eigenbez.: Sai N`de = "Sand-Volk/Berg-Volk")
  - Llaneros (span: "Volk der Ebene", Eigenbez.: Kolkahin/Gulgahén = "Volk der Ebene")
- Lipan (von Ipa N`de = "Ipa`s Volk", Ndee buffalo hunters, Texas-Apache, Eigenbez.: Naizhan = "wir", "von unserer Art")
  - Lipajenne
  - Arriba-Lipan
  - Abajo-Lipan
- Kiowa-Apache (Eigenbez.: Na-di-isha-dena = "fürstliches Volk", Plains-Apache, Gataka)
- Westliche Apachen (Coyotero = "Coyotenesser", auch Garroteros = "Keulenmänner", Eigenbez.: T`iis Ebah N`nee = "Volk der grauen Baumwolle")
  - White Mountain/Sierra Blanca ("Volk der weißen Berge")
    - Westliche White Mountain-Gruppe
    - Östliche White Mountain-Gruppe
  - Cibecue (von
Dishchíí Bikoh = "Volk des roten Canyon")
    - Canyon Creek-Gruppe
    - Carrizo-Gruppe (
Tł’ohk’aa’ digaidn)
    - Cibecue-Gruppe (
Dziłghą́’é)
  - San Carlos (
Tsék’áádn)
    - Apache Peaks-Gruppe
    - San Carlos-Gruppe
    - Akonye Bande
    - Pinaleno/Pinal (
T’iisibaan; span: "Pinienvolk")
    - Arivaipa/Aravaipa (Pima: "Feiglinge", "Weiber")
  - Tonto (span: "wild", "verrückt", Ben-et-dine = "wild", "verrückt", "die man nicht versteht",Eigenbez.: Dilzhé`e)
    - Nördliche Tonto
      - Bald Mountain-Gruppe
      - Fossil Creek-Gruppe
      - Mormon Lake-Gruppe
      - Oak Creek-Gruppe
    - Südliche Tonto
      - Mazatzal-Gruppe
      - sechs Klein-Gruppen Zuweilen werden auch einige Yuma-Stämme zu den Inde gezählt, so die Yavapai, die Apache Mohave und die Hualapai/Walapai, die Yuma-Apachen.

Geschichte der Inde

Die Inde-Stämme wanderten im 14. und 15. Jahrhundert zusammen mit den Diné vom Norden, vermutlich über die östlichen Ausläufer der Rocky Mountains in die Gegend der heutigen US-Bundesstaaten New Mexico und Arizona sowie ins westliche Texas, südöstliche Colorado und nördliche Mexiko. Die Inde-Gruppen (Gotahs) lebten als halbnomadische Sammler und Jäger, einige Banden betrieben zusätzlich Ackerbau. Hinzu gesellte sich das Beutemachen auf Raubzügen gegen ihre indianischen Nachbarn, die Pima, Pueblo-Indianer, Yuma, Pawnee, Caddo und Opata. Die Inde lebten in matrilinearen Lokalgruppen, die sich zu Gruppen (Gotahs) zusammenschlossen, "Stämme" im eigentlichen Sinn gab es nicht. Die Todfeinde der Inde waren die Comanche, Pima, und die texanischen Stämme. Die Inde-Gruppen in Arizona, New Mexico und Mexiko lebten in Wickiups, einfachen Strauch- und Grashütten, die auf den Plains in Texas beheimateten Lipan und Kiowa Apache in Tipis, und die Mescalero und Jicarilla sowohl in Wickiups als auch in Tipis. Die Inde bezeichneten ihre Behausungen als "Kowa". Die Inde-Krieger waren keinem Häuptling (Nantan) zum Gehorsam verpflichtet, sondern schlossen sich einflussreichen Männern (und gelegentlich Frauen) an, die aufgrund ihres Reichtums, ihrer Fähigkeiten, persönlichen Überzeugungskraft und ihrer "Diyah" = "Kraft" Prestige besaßen. Meistens waren daher die Anführer gleichzeitig auch Schamanen (Diyin). Neben "Diya" besaßen manche Frauen und Männer zudem "Inda-ce-ho-ndi" ("Enemies-Against-Power"), die ihnen ermöglichte, Feinde zu lokalisieren, deren Anzahl zu benennen, und diesen durch ihre Macht zu schaden. Es gab zuweilen auch Kriegerinnen, wie zum Beispiel Lozen ("geschickte Pferdediebin") oder Gouyen ("Weise Frau"). Zwischen Raubüberfällen und Kriegszügen gab es bei den Inde einen scharfen sozialen Unterschied: Raubzüge wurden organisiert, um Nahrungsvorräte, Pferde, Waffen u.a. zu besorgen, Ziel war es hierbei nicht, zu töten, sondern möglichst ohne Verluste und Begegnung mit dem Feind, erfolgreich die Familien zu versorgen. Diese Beutezüge wurden durch Lokalgruppen durchgeführt, die oft nur aus 10 - 20 Kriegern bestanden. Kriegszüge hingegen wurden von Gruppen organisiert, um den Tod eines Inde zu rächen, und konnten aus bis zu 200 Kriegern bestehen. Dabei gab es bei den Inde keine Kriegerbünde, die Inde zählten keine Coups und erlangten durch die Tötung eines Feindes kein Prestige. Zudem nahmen sie keine Skalps. Als vielleicht erster Weißer stieß 1540 der spanische Konquistador Francisco Vásquez de Coronado auf Inde-Indianer. 1598 traf sein Landsmann Juan de Oñate auf sie. Er war der erste, der den Zuni-Begriff "Apachù" (= "Feind") als "Apache" übernahm. Durch die unfreiwillige Einführung des Pferdes durch die Spanier nach dem Pueblo-Aufstand von 1680 erhöhten sich die Mobilität und der Aktionsradius der Inde-Gruppen enorm. Vom Arkansas River im südlichen Colorado im Norden bis in die mexikanischen Staaten Sonora, Sinaloa, Chihuahua, Coahuila, Durango und Jalisco im Süden, vom Colorado River im Westen bis nach Zentral- und Süd-Texas im Osten plünderten die Inde indianische und weiße Besitzungen gleichermaßen. Tausende Indianer und Weiße wurden getötet und entführt, ganze Landstriche entvölkert. Hierdurch konnten die Inde die Spanier und Mexikaner größtenteils aus ihrem Gebiet, das die Spanier Apacheria nannten, fernhalten. Zum gemeinsamen Schutz und um die Inde zu isolieren, schlossen die Spanier und Mexikaner Allianzen mit den Pima, Opata, Tarahumara, Pueblo, Wichita, Caddo und ab 1786 mit den Comanche. Als Gegenleistung für die indianische Unterstützung öffneten die Spanier und Mexikaner ihre Märkte den indianischen Produkten und Waren, und versorgten die Stämme mit Waffen und logistischer Unterstützung in deren Kämpfen gegen die Inde. Im Jahr 1835 führten die mexikanischen Staaten Sonora und Chihuahua Skalp-Prämien auf Inde-Skalpe ein, um dem "Apache-Problem" Herr zu werden. Während dieser Auseinandersetzungen schlossen immer wieder einzelne mexikanische Staaten mit verschiedenen Inde Verträge ab, boten diesen Schutz vor Verfolgungen durch die Armee, und erlaubten den Banden Zugang zu ihren Märkten, um dort Beute und Produkte gegen Waffen, Munition, Kaffee, Zucker und andere Waren einzutauschen. Als später die USA ehemals mexikanische Gebiete übernahmen, lieferten die Inde der US-Armee erbitterte Kämpfe. Die "Apache-Kriege" (1850 - 1890) waren die längsten und kostspieligsten Kriege der USA. Durch die hohen Verluste an Soldaten und Zivilisten, die Schwierigkeiten im Gelände, die Schnelligkeit, Schlauheit und Grausamkeit der Inde und ihr verzweifelter und langandauerender Widerstand wurden viele ihrer Anführer berühmt. Erst gegen Ende des 19. Jahrhunderts kapitulierten die letzten Inde und zogen in Reservationen. Die letzten Überfälle kleiner Inde-Gruppen erfolgten 1930 auf Ansiedlungen und Auswanderer im Norden Mexikos. Berühmte Anführer: Juan Josè Compa, Mangas Coloradas, Cochise, Nana, Geronimo, Juh, Victorio, Santana, Gian-na-tah, Delshay, Chuntz, Naiche, Ulzana Noch Anfang des 20. Jahrhunderts wurden Inde-Kinder von ihren Eltern getrennt und weißen US-Bürgern zur Adoption gegeben. Die Enkel oder Urenkel erfahren dies heute nur noch aus mündlichen Überlieferungen, wenn ein Inde-Kind damals alt genug war, sich zu erinnern.

Demographie

1840 zählten sie etwa 15.000, 1906 nur noch 6.000. Der US-Zensus von 2000 nennt 96.833 Inde, wovon rund 31.000 gemischter ethnischer Herkunft sind. Die Zahlenangabe von 1840 ist höchstwahrscheinlich eine Übertreibung der Spanier und Mexikaner, deren Schätzungen bis zu 30 000 Menschen reichten, anscheinend zählten alle Inde zusammen niemals mehr als 10 000.

Siehe auch

Liste nordamerikanischer Indianerstämme

Weblinks


- http://www.indianerwww.de/indian/n_apache.htm (Kultur und Stammesstruktur der Inde) Kategorie:Nordamerikanische Ethnie nb:Apasje


Patch

Der Begriff Patch [] (von engl. 'Flicken' ) wird in verschiedenen Bedeutungen benutzt:
- für ein i.d.R. kleineres Softwareupdate bzw. Softwarekorrektur - siehe Patch (Software)
- für ein medizinisches Implantat - siehe Patch (Medizin)
- in der Telekommunikationstechnik für eine Verbindung zwischen zwei Punkten eines Rangierverteilers - siehe Rangierung
- für ein UNIX-Tool - siehe Patch (Unix)
- als neudeutsche Bezeichnung für einen (Stoff-)Aufnäher.

NCSA

Das National Center for Supercomputing Applications (NCSA) wurde 1986 an der amerikanischen University of Illinois in Urbana-Champaign als eines von ursprünglich fünf Zentren des National Science Foundation's Supercomputer Centers Program gegründet. Das NCSA wurde 1993 weltweit bekannt durch den ersten grafischen Webbrowser NCSA Mosaic und den NSCA httpd, einen Webserver und Vorläufer des heute weit verbreiteten Apache-Servers. Durch das NCSA wurde auch das Hierarchical Data Format (HDF) entwickelt, welches die NASA in ihrem Earth Observation System (EOS) verwendet. Die ersten NCSA Mosaic Versionen waren auch in der Lage, in HDF-Dateien gespeicherte Bilder und Zusatzinformationen darzustellen.

Weblinks


- http://www.ncsa.uiuc.edu/ Kategorie:Forschungszentrum ja:NCSA ko:NCSA

Unix

UNIX [] ist ein Mehrbenutzer-Betriebssystem. Es wurde Anfang der 1970er Jahre von Bell Laboratories zur Unterstützung der Software-Entwicklung entwickelt. Unix bezeichnet im allgemeinen Sprachgebrauch Betriebssysteme, die entweder ihren Ursprung im Unix-System von AT&T (ursprünglich Bell Laboratories) der 1970er haben oder dessen Konzepte implementieren. Da UNIX ein eingetragenes Markenzeichen der Open Group ist, dürfen nur zertifizierte Systeme den Namen UNIX führen. Dennoch ordnet man auch Betriebssysteme wie Linux der Unix-Familie zu. In der Fachliteratur verwendet man üblicherweise Unix als Bezeichnung für unix-artige Systeme, während man UNIX (in Großbuchstaben oder Kapitälchen) dazu nutzt, zertifizierte Systeme zu kennzeichnen. Zu all diesen Systemen, die in Unix-Derivate und Unix-artige Betriebssysteme eingeteilt werden können, zählen zum Beispiel die BSD-Systeme, Mac OS X, HP-UX, AIX, IRIX und Solaris. Einige andere Systeme wie GNU/Linux oder QNX sind im historischen Sinne keine Unix-Derivate, da sie nicht auf dem ursprünglichen Unix-Quelltext basieren, sondern separat entwickelt wurden. BSD basierte zwar ursprünglich auf Bell Labs-Quelltexten, diese wurden jedoch bis Mitte der 1990er vollständig entfernt.

Merkmale

Der Unix-Kernel hat über Gerätetreiber allein Zugriff auf die Hardware und verwaltet Prozesse. Daneben stellt er das Dateisystem zur Verfügung, in modernen Varianten zusätzlich den Netzwerk-Protokollstapel. Systemaufrufe aus Prozessen dienen zum Starten (Systemrufe fork, exec) und Steuern von weiteren Prozessen sowie zur Kommunikation mit dem Dateisystem. Zugriffe auf die Gerätetreiber werden auf Zugriffe auf spezielle Dateien im Dateisystem abgebildet. Dadurch werden Dateien und Geräte aus Sicht der Prozesse und damit Anwendungsprogramme soweit wie möglich vereinheitlicht (Systemrufe open, read, write, ...). Eine Vielzahl von Programmen inklusive eines C-Entwicklungssystems und eines Textsatzprogrammes (troff) vervollständigen das System. Das Dateisystem ist als hierarchisches Verzeichnis mit beliebigen Unterverzeichnissen organisiert, ein damals neues Konzept, das heute überall selbstverständlich ist. Wurzelverzeichnis (Root-Verzeichnis) dieser Hierarchie ist das Verzeichnis "/". Eins der hervorragenden Grundkonzepte von UNIX ist, auch Disketten- und CD-Laufwerke, weitere Festplatten des eigenen oder fremder Rechner, Terminals, Bandgeräte und andere "special files" im Dateisystem abzubilden. "Alles ist eine Datei" ist ein Grundprinzip von Unix. Dieser verallgemeinerte Dateibegriff gehört zum Wesen von UNIX und ermöglicht eine einfache, einheitliche Schnittstelle für die verschiedensten Anwendungen. In manchen UNIX-Derivaten werden selbst Prozesse und deren Eigenschaften auf Dateien abgebildet (proc-Filesystem). Der Kommandointerpreter, die Shell, – unter Unix ein normaler Prozess ohne Privilegien – sowie zahlreiche Standard-Kommandos ermöglichen dem Anwender eine unerreicht einfache Ein-/Ausgabeumleitung in diese Dateien, und über Pipes die Verkettung von mehreren Programmen. Eine große Sammlung von einfachen Kommandos, der "UNIX-Werkzeugkasten", kann so mit Hilfe der Programmiermöglichkeiten des Kommandointerpreters kombiniert werden und komplizierte Aufgaben übernehmen. Durch die Kombinierbarkeit der größtenteils standardisierten Werkzeuge wird häufig vermieden, dass man für "Einmalaufgaben" oder einfachere Administrationsarbeiten jeweils spezialisierte Programme schreiben muss, wie dies in anderen Betriebssystem häufig der Fall ist. Zu den wichtigen Merkmalen eines typischen Unixsystems gehören: hohe Stabilität, Multiuser, Multitasking (mittlerweile auch Multithreading), Speicherschutz und virtueller Speicher (zuerst implementiert in der BSD-Linie), TCP/IP-Netzwerkunterstützung (ebenfalls zuerst in der BSD-Linie), hervorragende Scriptingeigenschaften, eine voll ausgebaute Shell und eine Vielzahl von Werkzeugen (siehe Unix-Kommandos) und Daemonen. Betriebssysteme von Unix-Workstations sowie Unix-Derivate enthalten in der Regel eine grafische Benutzeroberfläche basierend auf X11. Unix ist historisch eng mit der Programmiersprache C verknüpft – beide verhalfen sich gegenseitig zum Durchbruch, und so ist C auch heute noch die bevorzugte Sprache unter Unixsystemen.

Der Name Unix

Das System hieß ursprünglich Unics (später gekürzt auf Unix), eine Anspielung auf das Multics-System. Der Name Unics wurde gerne auch als UNIplexed Information and Computing Service interpretiert, allerdings ist dies eine nachträgliche Interpretation – weder Unics noch Unix oder UNIX sind Akronyme. Die Diskussion, welcher Name nun der richtigere sei, UNIX oder Unix, entflammt immer wieder von Neuem. Geschichtlich ist Unix der ältere Name, UNIX als Name tauchte erst 1974 auf – aus rein ästhetischen Gründen.

Geschichte

Für ausführlichere Informationen siehe Geschichte von Unix. Ken Thompson erstellte 1969 die erste Version von Unix in Assemblersprache auf der DEC PDP-7 als Alternative zu Multics. Als eines der ersten Programme für den neuen Betriebssystem-Kern schrieben Thompson und Ritchie das Spiel Space Travel, um auszuloten was für Schnittstellen sie brauchen würden. Das 19721974 in C komplett neu implementierte System wurde gemeinsam mit einem C-Compiler kostenfrei an verschiedene Universitäten verteilt – aus ihr entwickelte sich die BSD-Linie von Unix. AT&T versuchte schließlich selbst, Unix gewinnbringend zu vermarkten, woraus die System V Linie von Unix entstand. In den 1980er Jahren wurde Unix zum dominierenden Betriebssystem an den Universitäten, und es existierte eine Fülle verschiedenster Unix-Derivate, die alle in irgendeiner Form von den beiden Hauptlinien abstammten, womit langsam Bedarf nach Standardisierung entstand.

Aktuelle Rechteverteilung

Die Rechte am Quellcode liegen laut eigener Behauptung bei der SCO Group (wobei Novell dies jedoch teilweise bestreitet; siehe [http://en.wikipedia.org/wiki/SCO_v._Novell SCO v. Novell]). Die Rechte am Warenzeichen liegen dagegen bei der Open Group.

Standards

Jeder Hersteller änderte und erweiterte das System in den 1980er Jahren nach eigenen Vorstellungen. Es entwickelten sich Versionen mit unterschiedlichen Fähigkeiten, Kommandos, Kommandooptionen und Programmbibliotheken. Um 1985 begann die IEEE zunächst, die Schnittstellen für Anwendungsprogramme zu standardisieren. Daraus entwickelte sich der IEEE 1003-Standard, der auf Anregung von Richard Stallman POSIX genannt wird. Er besteht heute aus etwa 15 Dokumenten, die sich mit allen Aspekten von Unix-Systemen wie dem Kommandozeileninterpreter (POSIX schreibt zwingend die Korn Shell vor), den Unix-Kommandos und deren Optionen, der Ein-/Ausgabe und anderem befassen. Die Preise der IEEE für die POSIX-Dokumentation sind sehr hoch, die Veröffentlichung ist durch Urheberrecht untersagt. In neuerer Zeit ist deshalb eine Tendenz zum Single Unix Specification-Standard der Open Group zu verzeichnen. Dieser Standard ist offen, im Internet frei verfügbar und akzeptiert Vorschläge von jedem.

Freie Unix-Derivate

Bis Unix V7 1979 erschien, wurde der Quellcode von Unix gegen Erstattung der Kopier- und Datenträgerkosten an Universitäten verteilt. Unix hatte damit den Charakter eines freien, portablen Betriebssystems. Der Code wurde in Vorlesungen und Veröffentlichungen verwendet und konnte nach eigenen Vorstellungen geändert und ergänzt werden. Die Universität Berkeley entwickelte eine eigene Distribution mit wesentlichen Erweiterungen, die Berkeley Software Distribution (BSD). In den frühen 80er Jahren beschloss AT&T, Unix zu vermarkten; der AT&T-Quellcode durfte ab diesem Zeitpunkt nicht mehr öffentlich zugänglich gemacht werden. Auch die Verwendung in Vorlesungen etc. war ausgeschlossen. Auch auf auf BSD basierende Systeme wurden – da ein Teil des Codes von AT&T stammte – hohe Lizenzgebühren erhoben. Viele Firmen lizenzierten den UNIX-Quellcode und brachten ihre eigenen Varianten auf den Markt, selbst Microsoft hatte mit Xenix einige Zeit ein Unix im Angebot. Die Nichtverfügbarkeit des Quellcodes veranlasste 1983 Richard Stallman, das GNU-Projekt ("Gnu is not Unix") ins Leben zu rufen. Ziel des Projekts war ein freies, Unix-kompatibles System. Bis 1990 hatte das Projekt alle wesentlichen Teile – inklusive des GNU-C-Compilers – entwickelt, jedoch mit Ausnahme des Kernels. 1987 erschien das Lehrsystem Minix der Vrije Universiteit Amsterdam. Minix war ein Unix-Klon mit Mikrokernel, C-Compiler, Editor und vielen Kommandos, das auf anspruchsloser PC-Hardware lief. Der Quellcode war Teil des Lieferumfangs. Es war zwar kommerziell, aufgrund seines sehr niedrigen Preises kam es einem freien System aber sehr nahe. Wie vormals Unix diente dieses System vielen als Ausgangspunkt für eigene Experimente. 1991 arbeitete der Student Linus Torvalds an einem Terminal-Emulator, mit dem er auf einen Uni-Computer zugreifen wollte. Mit der Zeit baute er Dateisystem-Zugriff und viele andere nützliche Features ein. Bald bemerkte er, dass er mehr als einen Terminal-Emulator programmierte. Den Sourcecode veröffentlichte er in der Newsgroup comp.os.minix als Betriebssystem, das auf einem Intel-386er-PC lauffähig sein sollte. Zuerst sollte sein Projekt Freax heißen. Da der übereifrige Administrator der Universität ihm als Login für sein FTP-Repository „Linux“ vergab, nannte er es einfach so. Im Sourcecode der Version 0.01 von Linux kommt noch der Name Freax vor („Makefile for the FREAX kernel“). Der POSIX-Standard und das GNU-Projekt, das alle nötigen Werkzeuge wie Compiler und Shells bietet, boten einen geeigneten Weg dahin. Torvalds verwendete das Minix-System und den GNU-C-Compiler als Grundlage. Er schrieb einen Kern, den er Linux nannte. Darauf übertrug er die Softwarewerkzeuge und Bibliotheken des GNU-Projekts. Diese Werkzeuge boten in Kombination mit dem Linux-Kern die Grundlage für ein POSIX-getreues freies Betriebssystem, bekannt als GNU/Linux oder einfach Linux. Siehe auch Geschichte von Linux. 1992 erschien mit 386BSD von Bill Jolitz ein weiteres freies System für 80386-Prozessoren. Es bestand aus einem Patch für die nicht von AT&T stammenden freien Teile der BSD-Distribution und bildete ein weiteres freies sehr fortgeschrittenes Betriebssystem für Intel-Prozessoren. 1994 veröffentlichte Berkeley mit 4.4BSDLite die letzte Version ihrer Distribution, die von AT&T-Quellcode befreit war. Dieses bildete zusammen mit 386BSD die Grundlage für NetBSD, FreeBSD und kurz darauf OpenBSD. 2000 gab Apple den Quelltext des Betriebssystems Darwin, Bestandteil von Mac OS X, frei. Es basiert auf FreeBSD und dem Mach-Mikrokernel. Seit 2005 ist auch Solaris (Version 10) in der jeweils aktuellen Fassung für die gebührenfreie Benutzung erhältlich. Solaris läuft auf 32-bit Prozessoren (x86) von AMD und Intel sowie auf 64-bit Systemen mit Suns UltraSPARC und sogenannten x64-Systemen wie z.B. AMDs Opteron. Für Zugriff auf Quellen und Mitarbeit incl. Erweiterung ist es in der Fassung OpenSolaris erhältlich, die sich funktionell nicht von der Binärversion unterscheidet. Sun Microsystems verlangt allerdings eine Registrierung und hat eigene Lizenzbestimmungen, die von der GPL abweichen. Ein weiteres Unix-"Derivat" ist LUnix (kurz für little Unix), welches ein Unix-ähnliches System auf Commodore C64 oder C128 zur Verfügung stellt.

Erscheinungsdaten

Die folgende Zusammenstellung gibt nur einen groben Überblick. Es werden nur die wichtigsten Systeme erwähnt. Diese haben jeweils ihre eigenen Versionen und ihre eigene Entwicklungsgeschichte.

Siehe auch


- Geschichte von Unix, Unix-Shells, Unix-Kommandos, Unix-Derivate, Unixzeit, Unix-Humor

Literatur


- The Bell System Technical Journal, Vol. 57, July-August 1978, No. 6, Part 2, p. 1897–2312
- Kernighan/Pike: Der Unix Werkzeugkasten, deutsche Übersetzung, Hanser Verlag, 1986, ISBN 3446142738
- E. Foxley: Unix für Super-User, Addison-Wesley Verlag, 1988, ISBN 3-925118-24-1
- J. Gulbins, K. Obermayr: UNIX System V.4. Begriffe, Konzepte, Kommandos, Schnittstellen, 4. Aufl. 1995, ISBN 3540588647
- J. Peek, T. Codinp. J. Strang: UNIX. Ein praktischer Einstieg, O' Reilly Verlag, 2002, ISBN 3897211572

Weblinks


- http://www.unix.org/
- [http://www.operating-system.org/betriebssystem/_german/bs-unix.htm Webseite mit Informationen über Unix]
- [http://www-users.rwth-aachen.de/g.ohrner/Unix/unixgeschichte.html Geschichte von UNIX]
- [http://www.unix.org/what_is_unix/history_timeline.html Geschichte und Zeitlinie zu UNIX]
- [http://www.bell-labs.com/history/unix/ The Creation of the UNIX Operating System] (engl.)
- [http://www.unix.com/ Forum für Nutzer von Unix-Derivaten]
- [http://www.unixforum.net/ Deutschsprachiges Unix-User-Forum]
- [http://www.fas.harvard.edu/~lib215/reference/history/spacetravel.html Space Travel] (engl.)
- [http://www.pathname.com/fhs/2.2/ Filesystem Hierarchy Standard] (engl.)
- [http://docs.freebsd.org/44doc/ 4.4BSD Documents] (engl.)
- [http://sites.inka.de/mips/unix/unixphil.html Die Unix-Philosophie]
- [http://www.levenez.com/unix/ Wichtige Unix Derivate auf einer Zeitleiste von 1969 bis heute (mit History-Baum zum Ausdrucken)]
- [http://www.de.netbsd.org/Misc/call-it-a-duck.html Über Verwirrungen mit der Handelsmarke UNIX]
-
- [http://www.linux.de/ Linux-Verband] Kategorie:Betriebssystem ! ja:UNIX ko:유닉스 ms:UNIX simple:Unix th:ยูนิกซ์

Win32


- Win32 ist eine beliebte Abkürzung für die teilweise oder komplett 32-Bit-basierten Microsoft Windows-Betriebssysteme Windows 95 (16/32 Bit), Windows 98 (16/32 Bit), Windows ME (16/32 Bit), Windows NT ab Version 4.0 (32 Bit), Windows 2000 (32 Bit) und Windows XP (32 Bit).
Die Abkürzung für rein 16-Bit-basierten Microsoft Windows-Betriebssysteme wie Windows 3.1 und Windows 3.11 lautet dementsprechend Win16.
- Die Windows-API der teilweise oder vollständig 32-Bit-basierten Windows-Systeme wird ebenfalls Win32 bzw. Win32-API genannt. Microsoft Win32 Kategorie:Windows Kategorie:Microsoft

NetWare

NetWare ist ein Serverbetriebssystem, das von Novell entwickelt wurde. Der Schwerpunkt von NetWare liegt bei der netzwerkweiten Bereitstellen von Datei-, Druck- und Verzeichnisdiensten. Es unterscheidet sich von den meisten anderen PC Betriebssystemen dadurch, dass es nicht als Betriebssystem für die Workstations eingesetzt wird; die entsprechenden Dienste werden über Zusatzprogramme für das Betriebssystem der Klienten, den Netware-Client genutzt. NetWare war Anfang/Mitte der 1980er Jahre die einzige brauchbare Möglichkeit, um x86-basierte PCs zu vernetzen, Dateien über zentrale Verzeichnisse auszutauschen und Drucker gemeinsam zu verwenden. Es bot damals schon eine außerordentlich leistungsfähige und fein granulierbare Rechteverwaltung, die ab NetWare 4.0 mit der NDS (Novell Directory Services) zu einem hochskalierbaren verteilten Verzeichnisdienst erweitert wurde. Novell entkoppelte die NDS später von NetWare und vertreibt sie seitdem auch als eDirectory für verschiedene Plattformen. NetWare setzte zu Beginn auf das eigene IPX als Netzwerkprotokoll, das in der Konfiguration einfacher und im Datendurchsatz leistungsfähiger als TCP/IP ist. Als jedoch mit dem Internet die Bedeutung von TCP/IP wuchs, unterstützte NetWare ab Version 3 mit einem Zusatzprodukt und ab Version 5 auch als Standardprotokoll TCP/IP. Zur Kommunikation zwischen Servern und Klienten dient das so genannte NetWare Core Protocol (NCP). Um über dieses Protokoll auf einen Server zuzugreifen, benötigt der PC einen Netware-Client. Durch die Verbreitung von Windows als PC-System hat, obwohl technisch unterlegen, das SMB-Protokoll (Server Message Block) bzw. dessen Nachfolger CIFS (Common Internet FileSystem) an Bedeutung gewonnen. Es ist für den Zugriff auf Windows-Server standardmäßig in allen Windows-Betriebssystemen enthalten. NetWare unterstützt ab Version Netware 5.1 Enhancement Pack neben NCP auch CIFS, sowie die Protokolle Network File System (NFS) und Apple Filing Protocol (AFP) zur Kommunikation mit Windows Rechnern, UNIX-Derivaten bzw. Macintosh Rechnern. Dadurch wird meistens kein Netware-Client mehr benötigt. Netware Open Enterprise Server (OES) nutzt wahlweise einen Netware 6.5 (SP3) oder einen (Suse) Linux mit 2.6 Betriebsystemkern.

Weblinks


- http://www.novell.com/products/netware/
- http://www.netwarefaq.de Kategorie:Betriebssystem

Apache Portable Runtime

Die Bibliothek Apache Portable Runtime (APR) ist ein Open Source-Softwareprodukt der Apache Software Foundation. Es handelt sich um die konsequente Weiterentwicklung einzelner Verallgemeinerungsfunktionen aus einer älteren Version des Apache HTTP Servers: Dieser Webserver läuft unter verschiedenen Betriebssystemen (unter anderem Linux und andere Unix-Varianten, Windows und Netware). Auf jedem dieser Systeme werden identische Aufgaben jeweils leicht unterschiedlich erledigt. In früheren Versionen von Apache behalf man sich auf Nicht-Unix-Plattformen mit einer POSIX-Emulationsschicht, um dieses Problem zu lösen; man zwang also die anderen Systeme, sich "wie Unix zu verhalten". Da dies auf Kosten von Stabilität und Geschwindigkeit geht, gingen die Entwickler bei der Apache-Version 2.0 einen neuen Weg: Die APR wird für jede Plattform separat aufgesetzt und stellt nach außen Funktionen mit identischem Verhalten zur Verfügung. Auf diese Weise verallgemeinert (abstrahiert) sie bestimmte Basisfunktionen, die der Webserver benötigt, ohne die individuellen Stärken der einzelnen Systeme auszubremsen. Die Apache Portable Runtime stellt unter anderem Funktionen aus folgenden Aufgabengebieten bereit:
- Dateizugriffe
- Netzwerk-Sockets
- Speicherverwaltung
- Datums- und Uhrzeitfunktionen
- Text- und Zeichenkettenbehandlung
- Angleichung von Datei- und Pfadnamen in ein dateisystemunabhängiges Format
- Zufallsgenerator
- Thread- und Prozessverwaltung
- Laden dynamischer Bibliotheken Da die APR die Programmierung plattformunabhängiger Netzwerkanwendungen stark vereinfacht, machen inzwischen auch andere Projekte der Apache Software Foundation sowie von Drittanbietern Gebrauch von ihr, zum Beispiel Apache Flood, JXTA-C, einige Tomcat-Module oder das Versionskontroll-System Subversion.

Weblinks


- http://apr.apache.org - Apache Portable Runtime Projekt
- http://apr.apache.org/docs - Dokumentation zur APR
- http://httpd.apache.org - Apache HTTP Server Projekt
- http://www.apache.org - Apache Software Foundation Kategorie:Apache-Projekt Kategorie:World Wide Web

Betriebssystem

Ein Betriebssystem ist die Software, die die Verwendung (den Betrieb) eines Computers ermöglicht. Es verwaltet Betriebsmittel wie Speicher, Ein- und Ausgabegeräte und steuert die Ausführung von Programmen. Betriebssystem heißt auf Englisch operating system (OS). Dieser englische Ausdruck kennzeichnet den Sinn und Zweck: Die in den Anfängen der Computer stark mit schematischen und fehlerträchtigen Arbeiten beschäftigten Operatoren schrieben Programme, um sich die Arbeit zu erleichtern; diese wurden nach und nach zum operating system zusammengefasst. Betriebssysteme bestehen in der Regel aus einem Kern (englisch: Kernel), der die Hardware des Computers verwaltet, sowie grundlegenden Systemprogrammen, die dem Start des Betriebssystems und dessen Konfiguration dienen. Unterschieden werden Einbenutzer- und Mehrbenutzersysteme, Einzelprogramm- und Mehrprogrammsysteme, Stapelverarbeitungs- und Dialogsysteme. Betriebssysteme finden sich in fast allen Computern: als Echtzeitbetriebssysteme auf Prozessrechnern, auf normalen PCs und als Mehrprozessorsysteme auf Servern und Großrechnern.

Betriebssystemarten

Im PC-Bereich sind derzeit die meistgenutzten Betriebssysteme die verschiedenen Varianten von Microsoft Windows, Apple Mac OS X, Linux (GNU-Lizenz), OS/2 bzw. eComstation sowie BSD-Unix. Für spezielle Anwendungen (Beispiel: industrielle Steuerung) werden auch experimentelle Betriebssysteme für Forschungs- und Lehrzwecke eingesetzt. Neben den klassischen Varianten gibt es noch spezielle Betriebssysteme für verteilte Systeme, bei denen zwischen dem logischen System und den physikalischen System(en) unterschieden wird. Der logische Rechner besteht aus mehreren physikalischen Rechnereinheiten. Viele Großrechner, Numbercruncher und die legendären Systeme aus dem Hause Cray arbeiten nach diesem Prinzip. Eine der bekanntesten Betriebssysteme im Bereich verteilte Systeme ist Amoeba. Siehe auch: Liste der Betriebssysteme Die Aufgaben des Betriebssystems lassen sich mit den folgenden Stichworten zusammenfassen:
- Benutzerführung
- Laden und Unterbrechung von Programmen
- Verwaltung der Prozessorzeit
- Verwaltung des Speicherplatzes für Anwendungen
- Verwaltung der angeschlossenen Geräte
- Bereitstellung von Dienstprogrammen (im Unterschied zu Anwendungsprogrammen)

Programme, Speicher- und Geräteverwaltung

Zu den Aufgaben eines Betriebssystems gehören meist:
- Speicherverwaltung
  - Zuweisung und Überwachung des Betriebsmittels Speicher (Haupt- und Hintergrundspeicher).
  - Führung von Tabellen der Speicherbelegung durch Benutzerjobs bzw. Prozesse (laufende Programme).
  - Bedienung von Anforderungen und Freigabe von Speicher.
- Programm-(Prozess)-Verwaltung
  - Betreuung sämtlicher Prozesse (im Ablauf befindlicher Programme) im Rechnersystem.
  - Erzeugung von neuen Prozessen auf Anforderung des Betriebssystems bzw. anderer existierender Prozesse,
  - Entfernung von Prozessen aus dem System.
  - Kommunikation und Synchronisation von Prozessen untereinander (Interprozesskommunikation)
- Geräte- und Dateiverwaltung
  - Effiziente Zuweisung von Ein-/Ausgabegeräten und Vermittlungseinheiten (Datenkanäle, Steuereinheiten), Vermeidung von Konflikten
  - Initiierung, Überwachung der Ausführung, Terminierung von Ein-/Ausgabevorgängen.
  - Verwaltung des Dateisystems. Erzeugung eines Namensraums mit zugehörigen Speicherobjekten und gegebenenfalls weiteren Objekten.
- Abstraktion
  - Verbergen der Komplexität der Maschine vor dem Anwender
  - Abstraktion des Maschinenbegriffes (nach Coy):
    - Reale Maschine = Zentraleinheit + Geräte (Hardware)
    - Abstrakte Maschine = Reale Maschine + Betriebssystem
    - Benutzermaschine = Abstrakte Maschine + Anwendungsprogramm Als Gerät aus der Sicht eines Betriebssystems bezeichnet man aus historischen Gründen alles, was über Ein-/Ausgabekanäle angesprochen wird. Dies sind nicht nur Geräte im herkömmlichen Sinn, sondern mittlerweile auch interne Erweiterungen wie Grafikkarten, Netzwerkkarten und anderes. Die (Unter-)Programme zur Initialisierung und Ansteuerung dieser "Geräte" bezeichnet man zusammenfassend als Gerätetreiber.

Dienstprogramme und Anwendungsprogramme

Die meisten Betriebssysteme enthalten Dienstprogramme, auch Utilities oder Werkzeuge (Tools) genannt. Sie ermöglichen dem Benutzer bzw. Systemverwalter die Bearbeitung allgemeiner sowie systemnaher Aufgaben. Dazu gehören unter anderem Editoren, Kopierprogramme, Benutzerverwaltungsprogramme, Systemüberwachungsprogramme und Werkzeuge zur Datensicherung. Anwendungsprogramme zählen in der Regel nicht zum eigentlichen Betriebssystem. Sie stammen entweder vom Hersteller des Systems oder von anderen Anbietern. Anwendungsprogramme können auch mit dem Betriebssystem ausgeliefert werden (Beispiele: Viele Programme in Linux-Distributionen oder der Internet-Explorer als Teil von Microsoft Windows).

Betriebsmittelverwaltung und Abstraktion

Als Betriebsmittel oder Ressourcen bezeichnet man alle von der Hardware eines Computers zur Verfügung gestellten Komponenten, also den Prozessor (bei Mehrprozessorsystemen natürlich die Prozessoren), den physikalischen Speicher und alle Geräte wie Festplatten-, Disketten- und CD-ROM-Laufwerke, Netzwerk- und Schnittstellenadapter und andere. Die Hardware Compatibility List enthält alle Hardware-Produkte die im Zusammenhang mit einem bestimmten Betriebssystem auf ihre Funktionalität hin getestet wurden.

Einführendes Beispiel: Zeitgeberbausteine

Moderne Rechnersysteme besitzen Zeitgeberbausteine (Timer). In frühen PCs wurde z.B. der Baustein 8284 der Firma Intel eingesetzt. Dieser Baustein muss zunächst initialisiert werden. Er kann dann nach Ablauf einer Zeitspanne oder periodisch den Prozessor unterbrechen und ihn zur Abarbeitung einer eigenen Routine veranlassen. Neben der Initialisierung ist eine Unterbrechungsroutine zu erstellen, deren Aufruf in einer dafür geeigneten Sprache (meist Assembler) programmiert werden muss. Da Unterbrechungen asynchron auftreten, sind komplexe Verhältnisse hinsichtlich der Datenstrukturen zu berücksichtigen. Genaue Kenntnisse des Bausteins (Datenblatt), der Computerhardware (Unterbrechungsbehandlung) und des Prozessors sind erforderlich. Die einzelnen Komponenten, die an diesem Prozess beteiligt sind, fasst man unter dem Begriff Rechnerarchitektur zusammen.

Virtuelle Prozessoren

Ein modernes Mehrprogrammbetriebssystem verwendet einen solchen Zeitgeberbaustein um den normalerweise einzigen Prozessor periodisch (normalerweise im Millisekundenbereich) zu unterbrechen und eventuell mit einem anderen Programm fortzufahren (so genanntes präemptives Multitasking). Die Initialisierung und die Unterbrechungsroutine werden dabei vom Betriebssystem implementiert. Auch wenn nur ein einzelner Prozessor zur Verfügung steht, können mehrere Programme ausgeführt werden, jedes Programm erhält einen Teil der Prozessorzeit (Scheduling). Jedes Programm verhält sich, bis auf die verlangsamte Ausführungszeit, so als hätte es einen eigenen virtuellen Prozessor.

Virtuelle Zeitgeber

Über einen Systemruf, z. B. alarm, wird jedem Programm darüber hinaus ein eigener virtueller Zeitgeber zur Verfügung gestellt. Das Betriebssystem zählt die Unterbrechungen des Original-Zeitgebers und informiert Programme, die den alarm-Systemruf verwendeten. Die einzelnen Zeitpunkte werden über eine Warteschlange verwaltet.

Abstraktion

Die Hardware des Zeitgebers ist damit vor den Programmen verborgen. Ein System mit Speicherschutz erlaubt den Zugriff auf den Zeitgeberbaustein nur über den Kernel und nur über exakt definierte Schnittstellen (meist Systemrufe genannt, die über spezielle Prozessorbefehle wie TRAP, BRK, INT realisiert werden). Kein Programm kann somit das System gefährden, die Verwendung des virtuellen Zeitgebers ist einfach und portabel. Der Anwender oder Programmierer braucht sich nicht um die (komplexen) Details zu kümmern.

Virtualisierung weiterer Betriebsmittel

So wie Prozessoren und Zeitgeber virtualisiert werden, ist dies auch für alle anderen Betriebsmittel möglich. Dabei werden einige Abstraktionen teilweise nur als Software implementiert, andere erfordern spezielle Hardware.

Dateisysteme

Über Dateisysteme werden die Details der externen Speichersysteme (Festplatten-, Disketten- oder CD-ROM-Laufwerke) verborgen. Dateinamen und Verzeichnisse erlauben den bequemen Zugriff, die eigentlich vorhandene Blockstruktur und die Geräteunterschiede sind vollkommen unsichtbar.

Interner Speicher

Der interne Speicher (RAM) wird in Blöcke (Kacheln) aufgeteilt und den entsprechenden Programmen zur Verfügung gestellt. Über virtuellen Speicher wird bei vielen Systemen jedem Programm ein kontinuierlicher Bereich zur Verfügung gestellt. Dieser Speicher ist physikalisch nicht kontinuierlich, es können sogar unbenutzte Teile auf den externen Speicher ausgelagert sein. Der virtuelle Speicher eines Programms kann sogar größer als der reale Speicher sein.

Netzwerk

Die Details der Netzwerkzugriffe werden verborgen, indem auf die eigentliche Hardware (Netzwerkkarte) ein Protokollstapel aufgesetzt wird. Die Netzwerksoftware erlaubt beliebig viele virtuelle Kanäle. Auf der Ebene der Sockets (Programmierung) ist die Netzwerkkarte vollkommen unsichtbar, das Netzwerk hat viele neue Fähigkeiten (bidirektionale, zuverlässige Datenströme, Adressierung, Routing) bekommen.

Bildschirm

Als Grafische Benutzeroberfläche (GUI, grafisches Benutzerinterface) wird generell eine Bildschirmausgabe beschrieben, wenn sie über einen Prompt hinausgeht. Mit den richtigen Grafikkarten und Bildschirmen ist die Darstellung von geometrischen Objekten (Linien, Kreisen, Ellipsen, aber auch Schriftattributen und Farben) auf dem Bildschirm möglich, aus denen sich komplexere geometrische Elemente wie Knöpfe, Menüs, etc. Benutzeroberflächen zum einfachen Steuern von Programmen erstellen lassen. Die Grafikkarte als Hardware ist für den Programmierer und Anwender vollkommen verborgen.

Geschichte und Beispiele der Betriebsmittelverwaltung

Erste Betriebssysteme (bis 1980)

BenutzeroberflächeDie ersten Rechner besaßen keine Betriebssysteme. Dies lag einerseits in deren Bauweise (mechanische Rechenmaschinen wie Abacus, Rechenschieber usw.) oder an ihrem stark eingeschränkten Einsatzgebiet (Mark I, ENIAC, Colossus). Mit der Erfindung und dem Einsatz des Transistors (1947) und der Erfindung der Mikroprogrammierung 1955 durch Maurice Wilkes wurden in der Folge nicht mehr Einzelmaschinen, sondern ganze Modellreihen eingesetzt. Jeder Hersteller lieferte zu dieser Zeit sogar für verschiedene Modellreihen seiner Produkte verschiedene Betriebssysteme, so dass Programme nur auf einer bestimmten Modellreihe liefen und weder zwischen verschiedenen Computer noch über verschiedene Generationen portierbar waren. Mit der Einführung der Modellreihe System/360 von IBM führte IBM 1964 das Betriebssystem OS/360 ein. Es war das erste Betriebssystem, das modellreihen-übergreifend eingesetzt wurde. Ab 1963 wurde Multics in Zusammenarbeit von MIT, General Electric und den Bell Labs von AT&T entwickelt, das jedoch erst ab 1969 bis 2000 im Einsatz war. Multics wurde in PL/1 programmiert. Inspiriert von den Arbeiten an Multics startete eine Gruppe um Ken Thompson und Dennis Ritchie an den Bell Laboratories von AT&T 1969 mit der Entwicklung von Unix. Unix wurde in den Jahren 19721974 bis auf wenige Teile in der höheren Programmiersprache C mit dem Ziel der Portabilität neu implementiert. Zu dieser Zeit war auch das Betriebssystem CP/M weit verbreitet.

Der C64, ein Heimcomputer der 1980er Jahre

In den 1980er Jahren wurden Heimcomputer populär. Diese konnten neben nützlichen Aufgaben auch Spiele ausführen. Die Hardware bestand aus einem 8-Bit-Prozessor mit bis zu 64KB RAM, einer Tastatur und einem Monitor- bzw. HF-Ausgang. Einer der populärsten dieser Computer war der Commodore C64 mit dem Mikroprozessor 6510. Dieser Computer hatte ein 8KB-ROM-BIOS, das die Geräte Bildschirm, Tastatur, serielle IEC-Schnittstelle für Diskettenlaufwerke bzw. Drucker, Kassetteninterface initialisierte und über ein Kanalkonzept teilweise abstrahierte. Über ein 8KB-ROM-BASIC, das auf die Funktionen des BIOS aufsetzte, konnte das System bedient und programmiert werden. Das Betriebssystem dieses Computers kann auf der Ebene des BASIC-Interpreters als gute Hardwareabstraktion angesehen werden. Natürlich sind weder Kernel, Speicher- oder sonstiger Hardwareschutz vorhanden. Viele Programme, vor allem auch Spiele, setzten sich über das BIOS hinweg und griffen direkt auf entsprechende Hardware zu.
Abstraktionsschichten im Betriebssystem des Heimcomputers C64 Abstraktionsschichten im Betriebssystem des Heimcomputers C64

Die grafische Benutzeroberfläche (GUI) von Apple

Dominik Hagen, ein ehemaliger Mitarbeiter von Xerox, motivierte Steve Jobs, das Xerox Palo Alto Research Center (PARC) zu besuchen. Dort wurde Jobs vor allem der Prototyp eines Smalltalk-Entwicklungssystems gezeigt (Xerox entwickelte mit ALTO (1973) und Star (1981) erste Rechner mit grafischer Benutzeroberfläche). Apple bot Xerox an, die Technologie zu kaufen; da PARC aber vor allem ein Forschungszentrum war, bestand kein Interesse an Verkauf und Vermarktung. Nachdem Steve Jobs Xerox Aktienanteile von Apple anbot, wurde ihm erlaubt, einigen Apple-Entwicklern die Xerox-Demos zu zeigen. Danach war den Apple-Entwicklern auf jeden Fall klar, dass der grafischen Benutzeroberfläche die Zukunft gehörte, und Apple begann, eine eigene GUI zu entwickeln. Viele Merkmale und Prinzipien jeder modernen grafischen Benutzeroberfläche für Computer, wie wir sie heute kennen, sind originale Apple-Entwicklungen (Pull-Down-Menüs, die Schreibtischmetapher, Drag&Drop, Doppelklicken). Die Behauptung, Apple habe seine GUI von Xerox "abgekupfert" ist ein ständiger Streitpunkt; es existieren jedoch gravierende Unterschiede zwischen einem Alto von Xerox und der Lisa/dem Macintosh). Macintosh Nach dem Ausscheiden von Steve Jobs aus dem Unternehmen setzte bei Apple die Phase der Pragmatiker ein. Nachfolger von Jobs wurde der von ihm eingestellte ehemalige Pepsi-Manager John Sculley, ihm folgte 1993 der Deutsche Michael Spindler. 1996 wurde Spindler von Gil Amelio abgelöst.

Der Mac OS Nachfolger

Mitte der 1990er Jahre steckte Apple in einer tiefen Krise; die Firma schien kurz vor dem Ruin. Ein dringliches Problem war dabei, dass Apples Betriebssystem als veraltet betrachtet wurde und Apple sich nach Alternativen umzusehen begann. Nach dem Scheitern des wichtigsten Projektes für ein modernes Betriebssystem mit dem Codenamen Copland sah sich Apple gezwungen, Ausschau nach einem für die eigenen Zwecke verwendungsfähigen Nachfolger für das eigene Betriebssystem zu halten. Zuerst wurde vermutet, dass Apple die Firma Be Incorporated, mit ihrem auch auf Macs lauffähigen Betriebssystem BeOS übernehmen würde. Die Übernahmeverhandlungen scheiterten jedoch im November 1996, da der frühere Apple-Manager und Chef von Be Jean-Louis Gassée, im Falle einer Übernahme 300 Millionen US-Dollar und einen Sitz im Vorstand verlangte. Da Amelio versprochen hatte bis zur MacWorld im Januar 1997 die zukünftige Strategie in Bezug auf Mac OS zu verkünden, musste schnell eine Alternative gefunden werden. Überraschend übernahm Apple dann noch im Dezember 1996 die Firma NeXT, des Apple-Gründers Steve Jobs, und deren Betriebssystem NeXTStep/OPENSTEP für 400 Millionen US-Dollar. Dieses sollte die Grundlage für die nachfolgende Generation des Apple-Betriebssystems werden. Das den neuen Erfordernissen angepasste und optisch aktualisierte NeXTStep wurde dann unter dem Namen Mac OS X ein großer Erfolg. Mit der Übernahme von NeXT zog bei Apple auch eine neue Firmenkultur ein. Steve Jobs, in den 1980ern von der von ihm mitgegründeten Firma vergrault, nun Chief Executive Officer (CEO) von NeXT, wurde 1997 wieder Firmenchef von Apple. Avie Tevanian, auch ein NeXT-Mitarbeiter, übernahm die Entwicklungsabteilung. Jobs beendete die Lizenzierung des Betriebssystems an andere Hersteller (z.B. Power Computing) und stellte die Produktion des Newton ein. Mit der Einführung des Einsteigerrechners iMac führte Apple eine neue Gestaltung dieser Rechner ein: Sie waren fortan transparent und farbenfroh. Jonathan Ive, der Gestalter des iMacs, wurde Chef der Gestaltungsabteilung bei Apple.

DOS, ein Diskettenbetriebssystem

Der Ursprung von DOS liegt in CP/M und wurde 1974 von Digital Research eingesetzt. Die Portierung auf den Motorola 68000, genannt CP/M-68k, selbst kein großer kommerzieller Erfolg, wurde zur Grundlage für TOS, das Betriebssystem des Atari ST. MS-DOS Version 1.0 erschien 1981 als Nachbildung von CP/M und wurde für PCs eingesetzt. Es setzt auf das BIOS auf und stellt Dateisystemoperationen zur Verfügung. Die ersten IBM-PCs waren ganz ähnlich wie der C64 aufgebaut. Auch sie verfügten über ein eingebautes BIOS zur Initialisierung und Abstraktion der Hardware. Sogar ein BASIC-Interpreter war vorhanden. Im Gegensatz zum BIOS wurde auf BASIC jedoch in den kompatiblen Rechnern anderer Firmen verzichtet. Der PC konnte mit seinem Intel 8088-Prozessor (16-Bit-Register) bis zu 1 MB Speicher adressieren, die ersten Modelle waren jedoch nur mit 64KB ausgestattet. Diskettenlaufwerke lösten die alten Kassettenrekorder als Speichermedium ab. Diese erlauben vielfaches Schreiben und Lesen einzeln adressierbarer 512-Byte-Blöcke. Die Benutzung wird durch ein Diskettenbetriebssystem (Disk Operating System, DOS) vereinfacht, das ein abstraktes Dateikonzept bereitstellt. Blöcke können zu beliebig großen Clustern (Zuordnungseinheit, kleinste für das Betriebssystem ansprechbare Einheit) zusammengefasst werden. Dateien (logische Informationseinheiten) belegen einen oder mehrere (verkettete) dieser Cluster. Eine Diskette kann viele Dateien enthalten, die über Namen erreichbar sind. Auf den ersten PCs war kein Speicherschutz realisiert, die Programme konnten daher an DOS vorbei direkt auf BIOS und sogar auf die Hardware zugreifen. Erst spätere PCs wurden mit dem Intel 80286-Prozessor ausgestattet, der Speicherschutz ermöglichte. MS-DOS stellte auch keinen für alle Zwecke ausreichenden Abstraktionsgrad zur Verfügung. Es ließ sich nur ein Programm gleichzeitig starten, die Speicherverwaltung war eher rudimentär. Ein Teil der Hardware wurde nicht unterstützt und musste von Programmen direkt angesprochen werden, was dazu führte, dass beispielsweise für jedes Spiel die Soundkarte neu konfiguriert werden musste. Die Performance einiger Routinen, speziell zur Textausgabe, war verbesserungswürdig. Viele Programme setzten sich daher zwangsläufig über das Betriebssystem hinweg und schrieben z.B. direkt in den Bildschirmspeicher. MS-DOS wurde mit einem Satz von Programmen (so genannten Werkzeugen) und einem Kommandointerpreter (COMMAND.COM) ausgeliefert.
Abstraktionsschichten eines PC unter DOS Abstraktionsschichten eines PC unter DOS

Linux (GNU/Linux), ein modernes Mehrprogrammsystem

1991 begann Linus Torvalds in Helsinki/Finnland mit der Entwicklung von Linux, das er bald danach der Öffentlichkeit zur Verfügung stellte. Es läuft als portables Betriebssystem auf verschiedenen Rechnerarchitekturen, wurde aber zunächst für PCs mit Intel 80386-Prozessor entwickelt. Das in diesen Rechnern verwendete BIOS dient nur noch zum Initialisieren der Hardware und zum Starten des Betriebssystem-Kernels, da die Routinen des BIOS für Mehrprogrammsysteme wie Linux ungeeignet sind. Dies kommt zustande, da insbesondere der Prozessor durch Warten belastet wird anstatt durch eine – in der Hardware durchaus vorhandene – geschickte Unterbrechungsverwaltung (interrupt handling) auf Ereignisse (events) zu reagieren. Linux verwendet daher nach dem Starten des Systems eigene Gerätetreiber. Es verteilt die Prozessorzeit auf verschiedene Programme (Prozesse). Jeder dieser Prozesse erhält einen eigenen, geschützten Speicherbereich und kann nur über Systemaufrufe auf die Gerätetreiber und das Betriebssystem zugreifen. Die Prozesse laufen im Benutzermodus (user mode), während der Kernel im Kernel-Modus (kernel mode) arbeitet. Die Privilegien im Benutzermodus sind sehr eingeschränkt. Abstraktion und Speicherschutz sind nahezu vollkommen, ein direkter Zugriff wird nur sehr selten und unter genau kontrollierten Bedingungen gestattet. Dies hat den Vorteil, dass kein Programm z.B. durch einen Fehler so das System zum Absturz bringen kann. Linux stellt wie sein Vorbild Unix eine vollständige Abstraktion und Virtualisierung für nahezu alle Betriebsmittel bereit (z.B virtueller Speicher, Illusion eines eigenen Prozessors etc.).
Abstraktionsschichten unter Linux Fast vollständige Abstraktion unter Linux

MS Windows

1983 begann die Firma Microsoft mit der Entwicklung eines grafikfähigen Betriebssystemaufsatzes für MS-DOS namens Windows – es handelte sich dabei jedoch nicht um ein Betriebssystem. Das MS-DOS und BIOS-Design der PCs erlaubten keine Weiterentwicklung in Richtung moderner Serverbetriebssysteme. Microsoft begann Anfang der 1990er ein solches Betriebssystem zu entwickeln, das zunächst als Weiterentwicklung von OS/2 geplant war (Microsoft war zwischen 1987-1991 an der Entwicklung beteiligt): Windows NT 3.1 (Juli 1993). Für den Consumer-Markt brachte Microsoft am 15. August 1995 Windows 95 heraus, es basiert auf MS-DOS. Dieser "Consumer-Zweig" wurde mit der Veröffentlichung von Windows Millennium (August/September 2000) abgeschlossen. Aufbau von Windows NT: Über die Hardware wurde eine Abstraktionsschicht, der Hardware Abstraction Layer (HAL) gelegt, auf den der Kernel aufsetzte. Verschiedene Gerätetreiber waren als Kernmodule ausgeführt und liefen wie der Kernel im privilegierten Kernel Mode. Sie stellten Möglichkeiten der E/A-Verwaltung, Dateisystem, Netzwerk, Sicherheitsmechanismen, virtuellen Speicher usw. zur Verfügung. Systemdienste (System Services) ergänzten das Konzept; wie ihre UNIX-Pendants, die daemons, waren sie in Form von Prozessen im User-Mode ausgeführt.
Abstraktionsschichten unter Windows NT Abstraktionsschichten unter Windows NT (etwas vereinfacht)
Über so genannte Personalities wurden dann die Schnittstellen bestehender Systeme nachgebildet, zunächst für Microsofts eigenes, neues Win32-System, aber auch für OS/2 (ohne Grafik) und POSIX.1, also einer Norm, die eigentlich Unix-Systeme vereinheitlichen sollte. Personalities liefen wie Anwenderprogramme im unprivilegierten User-Mode. Das DOS-Subsystem war in Form von Prozessen implementiert, die jeweils einen kompletten PC mit MS-DOS als virtuelle Maschine darstellten; darauf konnte mit einer besonderen Version von Windows 3.1, dem Windows-on-Windows, auch Win16-Programme ausgeführt werden. Windows-on-Windows blendete dazu die Fenster der Win16-Programme in das Win32-Subsystem ein, das die Grafikausgabe verwaltete. Das System erlaubte daher die Ausführung von Programmen sowohl für MS-DOS wie für die älteren Windows-Betriebssysteme, allerdings unter vollkommener Kontrolle des Betriebssystems. Dies galt aber nur für die Implementierung für Intel 80386 Prozessoren und dessen Nachfolger. Programme, die direkt auf die Hardware zugreifen, blieben aber außen vor. Insbesondere viele Spiele konnten daher nicht unter Windows NT ausgeführt werden, zumindest bis zur Vorstellung von WinG, das später in DirectX umgetauft wurde. Ohne die Möglichkeit eines direkten Zugriffs auf die Grafikhardware bzw. -treiber war die Programmierung von leistungsfähigen Actionspielen zunächst auf die älteren Windows-Versionen beschränkt. Windows NT erschien in den Versionen 3.1, 3.5, 3.51 und 4.0. Windows 2000 stellte eine Weiterentwicklung von Windows NT dar. Auch Windows XP, Windows Server 2003 und Windows Vista bauen auf der Struktur von Windows NT auf.

Siehe auch


- Liste der Betriebssysteme
- Entwicklung der heutigen Betriebssysteme
- Echtzeit-System
- Single-user Single-tasking

Literatur


- Andrew S. Tanenbaum: Moderne Betriebssysteme, 2., überarb. Aufl., Pearson Studium 2004, ISBN 3827370191

Weblinks


- [http://www.kreissl.info/diggs/bs_inhalt.php Einführung in Betriebssysteme – Online-Tutorial]
- [http://www.oshistory.net/ Historischer Baum aller Nicht-UNIX-Betriebssystme]
- [http://www.levenez.com/unix/ Historischer Baum aller UNIX-Betriebssysteme]
- [http://www.levenez.com/windows/ Windows-Geschichte]
- als:Betriebssystem ja:オペレーティングシステム ko:운영체제 ms:Sistem pengoperasian simple:Operating system th:ระบบปฏิบัติการ zh-min-nan:Chok-gia̍p hē-thóng

Client

Ein Client (engl. für "Klient", "Mandant") ist eine Anwendung, die in einem Netzwerk den Dienst eines Servers (von engl. "to serve" = (be-)dienen) in Anspruch nimmt. Man spricht dann vom Client-Server-Prinzip. Der Web-Browser ist ein Beispiel für einen Client, denn er sendet bei jedem Aufruf einer Webseite eine Anfrage an einen Web-Server und erhält dann von diesem eine Antwort. Im E-Mail-Verkehr (be)dienen die Posteingangs- (POP3) und Postausgangsserver (SMTP) die E-Mail-Programme (Outlook Express, Eudora, Thunderbird, Mutt, etc), in diesem Falle die Clients. Der vom User beauftragte Client kontaktiert und kommuniziert also mit dem jeweiligen Server, bei welchem er eingegangene Mails abholt oder Ausgangspost einliefert. Im Usenet (-> Newsgroups) beispielsweise stehen sich Newsserver und Client (Agent, 40tude, slrn, etc.) gegenüber. Der Client holt Postings beim Newsserver ab und/oder übergibt an diesen vom User hierzu Erstellte. Client wird umgangssprachlich auch oft verwendet, um einen Computer in einem Netzwerk zu bezeichnen. Der Client (Rechner und Programm) ist bei einer Datenübertragung für die Kontaktaufnahme verantwortlich und bestimmt deren Zeitpunkt. Das hat für den Client-Rechner den Vorteil, dass er erst zum Zeitpunkt der Kontaktaufnahme eine Netzverbindung benötigt. Daher kann der Client beispielsweise auch kostengünstige Wählverbindungen nutzen. Kategorie:IT-Architektur ja:クライアント

Anfrage

Eine Anfrage oder Abfrage ist eine Frage, die eine bestimmte Art von Antwort erwartet.
- Im Wirtschaftsleben dient eine Anfrage (Wirtschaft) der Einholung von Angeboten.
- Als Kleine Anfrage bezeichnet man eine auf wenige Punkte begrenzte Fragestellung eines Parlamentariers an die Exekutive.
- Große Anfragen sind meist von der Opposition an die Bundes- oder Landesregierung gerichtet
- Anfragen an ein Informationssystem werden in einer formalen Anfragesprache gestellt

Fork

Wörtlich übersetzt ist Fork das englische Wort für Gabel, Gabelung oder Aufspaltung. Es ist verwandt mit dem deutschen Wort Forke und bedeutet im Einzelnen:
- ein durch das Betriebssystem bereitgestellter Systemaufruf, durch den ein Folgeprozess gestartet wird (siehe Prozess)
- die Aufspaltung eines Projektes (siehe Fork (Projektaufspaltung))
- die Möglichkeit einiger Dateisysteme zur Unterteilung von Dateien (siehe Hierarchisches Dateisystem und Alternate Data Streams)

Webserver

Ein Webserver ist im engeren Sinne ein Server-Dienst, der Informationen nach dem HTTP-Protokoll zur Verfügung stellt. Die Daten werden über HTTP-URLs adressiert. Im weiteren Sinne wird der Begriff Webserver – wie bei Server – auch für den Host verwendet (dann Web-Host genannt), auf dem der Server-Dienst betrieben wird.

Funktion

Ein Nutzer stellt eine Anforderung, z.B. durch Anklicken eines Links in seinem Browser (Client). Der Browser leitet einen HTTP-Request an den im Link adressierten Webserver. Der Webserver liefert die adressierte Seite mitsamt eines Mime-Types zurück. Der Browser zeigt die übertragenen Daten entsprechend ihres Mime-Types an. Die Standard-Ports für Webserver sind Port 80 für HTTP und Port 443 für HTTPS (per SSL verschlüsselte HTTP-Verbindung). Im typischen Umfeld einer Website liefert ein Webserver vorwiegend statische Daten wie HTML-Seiten, Stylesheets oder Bilder und Grafiken (JPG, GIF, PNG) zurück. Neben statischen Daten werden zunehmend dynamische, d.h. beim Abruf erzeugte Daten, ausgeliefert. Dies geschieht durch den Einsatz von Skripten (PHP, JSP, ASP), Server-Containern (Servlets, ASP.NET) und Webservices (Soap). Durch die Verwendung dynamischer Seiten wird u.a. interaktive Benutzerführung ermöglicht. Beispiele für dynamische Seiten sind Foren, Datenbank-Interface oder Suchmaschinen. Auf dem Webserver werden üblicherweise alle Anfragen in einem Logfile protokolliert, aus dem mittels Logfile-Analyse Statistiken über Besucherzahlen bzw. Anzahl der Zugriffe pro Seite generiert werden können. Da HTTP ein verbindungs- und zustandsloses Protokoll ist, ist eine eindeutige Zuordnung einer Anforderung zu einem Nutzer nicht möglich. Die Angabe von Visits, Hits, Benutzer o.ä. ist daher nur eingeschränkt aussagekräftig. Zwischengeschaltete Proxy-Server, die gegenüber dem Webserver als Client auftreten, erschweren diese Zuordnung zusätzlich. Um genauere Daten zu erhalten, werden Cookies und dynamische Seiten (s.o.) eingesetzt.

Webserver-Software

1989 schlug Tim Berners-Lee seinem Arbeitgeber CERN (Europäisches Kernforschungslabor) ein Projekt vor, das auf dem Prinzip des Hypertexts beruhte und den weltweiten Austausch sowie die Aktualisierung von Informationen zwischen Wissenschaftlern vereinfachen sollte. Er verwirklichte dieses Projekt, und entwickelte neben dem ersten WWW-Browser WorldWideWeb auch den ersten Webserver unter NeXTSTEP (das Gerät, auf dem die Server-Software lief, ist heute in der Ausstellung [http://microcosm.web.cern.ch/Microcosm/ "Microcosm"] des CERN-Besucherzentrums zu besichtigen). Die beiden heute mit Abstand bedeutendsten Webserver sind Apache HTTP Server und Microsoft Internet Information Server (kurz: IIS). Auf der frei zugänglichen Webseite http://netcraft.com kann man anfragen, welchen Webserver eine bestimmte Domain benutzt. Nachfolgend sind bedeutende Webserver aufgelistet:
- Apache HTTP Server (Apache Software Foundation; freie Software)
- Internet Information Services (Microsoft)
- Jakarta Tomcat (Apache Software Foundation; freie Software)
- AOLserver (America Online; freie Software)
- Tux
- iPlanet
- Zope
- [http://www.roxen.com/products/webserver/ Roxen WebServer]
- [http://www.acme.com/software/thttpd/ thttpd]
- [http://www.boa.org/ Boa Webserver]
- [http://lighttpd.net/ lighttpd]
- [http://www.w3.org/Jigsaw/ Jigsaw]
- [http://www.wnserver.org/ WN server]
- [http://wp.netscape.com/enterprise/ Netscape Enterprise Server]
- [http://www.sun.com/software/products/web_srvr/home_web_srvr.xml Sun Java System Web Server]
- Caudium
- [http://www.chez.com/emarsden/downloads/ Httpd für Emacs]
- [http://elserv.sourceforge.net/ Elserv für Emacs]

Siehe auch


- Server
- Virtueller Server
- Dedicated Server
- World Wide Web
- CGI
- Servlet

Weblinks


- http://httpd.apache.org
- http://www.aolserver.com
- http://www.janaserver.de Kategorie:World Wide Web Kategorie:Server ja:Webサーバ simple:Web server

Kommunikation

Kommunikation (lat. communicare „teilen, mitteilen, teilnehmen lassen; gemeinsam machen, vereinigen“) bezeichnet auf der menschlichen Alltagsebene den wechselseitigen Austausch von Gedanken in Sprache, Gestik, Mimik, Schrift oder Bild. Im erweiterten Sinn ist Kommunikation das wechselseitige Übermitteln von Daten oder von Signalen, die einen festgelegten Bedeutungsinhalt haben, auch zwischen tierischen und pflanzlichen Lebewesen und technischen Objekten oder Systemen. Der Begriff ist eng verwandt mit dem der Interaktion, in vielen Bereichen sind diese Begriffe sogar synonym, besonders dann, wenn Wechselseitigkeit für den Kommunikationsbegriff vorausgesetzt wird.

Definition und Zusammenhang

Interaktion einen Brief" von Ilja Repin (1880)]] Eine allgemein anerkannte Definition des Begriffs existiert nicht. Ein Ansatz besagt, dass die Teilnehmer einer Kommunikation Menschen aber auch andere Lebewesen oder Objekte (insbesondere Geräte) sein können. Demnach kann auch zwischen Menschen und Dingen eine Kommunikation stattfinden, etwa zwischen Mensch und Computer nach dem Schlagwort der „Mensch-Maschine-Kommunikation“. Diskutiert wird vor allem, ob die Teilnehmer einer Kommunikation Individuen sein müssen, beziehungsweise ob jeder Kommunikation ein Bewusstsein zu Grunde liegt (siehe Turing-Test). In den technischen Disziplinen wird dies verneint und die Kommunikation als ein Prozess betrachtet, der den Zustand des Empfängers verändert. Aus philosophischer Sicht ist fraglich, ob es Kommunikation ohne "Verständnis" und "Erinnerung" überhaupt geben kann. Umstritten ist auch, ob Kommunikation intentional sein muss und ob es einseitige Kommunikation gibt.
- Vertikale Kommunikation ist die Kommunikation von Höhergestellten mit Untergebenen (auch komplementäre Kommunikation).
- Horizontale Kommunikation meint die Kommunikation von Gleichgestellten untereinander (auch symmetrische Kommunikation).

Kommunikation in verschiedenen Wissenschaftsbereichen


- Kommunikation (Soziologie) (auch:Soziale Interaktion und Interpersonelle Kommunikation)
  - Kommunikationswissenschaft
  - Informationswissenschaft
  - Medienwissenschaft
  - Informationstheorie
  - Sprechakttheorie
  - Linguistik
  - Semiotik
- Kommunikation (Biologie)
- Kommunikation (Informationstheorie)
- Kommunikation (Astronomie)
- Kommunikation (Konstruktivismus)
- Kommunikation (Kybernetik)
- Kommunikation (Nachrichtentechnik)
- Kommunikation (Psychologie)
- Kommunikation (Systemtheorie)
- Kommunikation (Wirtschaft)
- Kommunikation (Unterricht) Weitere Übersichten in: Kommunikationsmodell

Speziellere Bereiche

Nach den beteiligten Sendern und Empfängern, Techniken und Einzugsbereichen wird unterschieden zwischen: # Computervermittelte Kommunikation # Mensch-Maschine-Kommunikation #