IRC-Daemon

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Als IRC-Daemon, kurz IRCd, wird der Daemon (Server-Software) bezeichnet, der bei einem IRC-Server im Internet Relay Chat zum Einsatz kommt.[1]

Der IRCd nimmt Verbindungen von IRC-Clients und anderen IRC-Servern entgegen und baut gegebenenfalls Verbindungen zu anderen IRC-Servern auf, um mit diesen ein IRC-Netzwerk zu bilden.[2] Hauptaufgabe ist es, Chats entgegenzunehmen und die einzelnen Nachrichten zwischen den IRC-Clients, also den Gesprächspartnern, zu vermitteln.[3]

Der erste IRCd wurde als freie Software 1988 von Jarkko Oikarinen entwickelt.[4] Die meisten IRC-Netzwerke setzen andere IRC-Daemons ein[5], die entweder Weiterentwicklungen des originalen oder anderer IRCds sind[6], oder auch komplett von Grund auf neu entwickelt wurden, wie InspIRCd. Die Version eines auf einem Server benutzten IRCds lässt sich meist dem IRC-Befehl /version abfragen.[7]

IRC-Services können als Erweiterung des IRCd gesehen werden, die den Nutzern weitere Funktionen bieten, und sind externe Programme, die sich mit dem IRCd verbinden wie auch die Clients oder die anderen Server im Netzwerk.[8]

IRC-Daemons sind in aller Regel ein einziger Systemprozess ohne Threads, da die meisten Aktionen auf den globalen Status der User oder Channel im Speicher lesend und oft auch schreibend zugreifen müssen und Threads kaum Geschwindigkeitszuwachs ermöglichen würden.

Dies stellt auch besondere Anforderungen an die Gestaltung der Software: Um einen Echtzeit-Chat[9] zu ermöglichen, darf der Prozess zu keinem Zeitpunkt länger an einer bestimmten Stelle blockieren bzw. auf externe Aktionen warten. Aus diesem Grund werden beispielsweise DNS-Abfragen oft durch einen internen Resolver durchgeführt statt über Betriebssystemfunktionen[10], was z.B. auch mehrere simultane Namensauflösungen ermöglicht.

Weblinks[Bearbeiten]

Referenzen[Bearbeiten]

  1. http://www.irchelp.org/irchelp/ircd/server-request.html
  2. http://tools.ietf.org/html/rfc1459#section-1.1
  3. http://tools.ietf.org/html/rfc2810#section-4.2
  4. http://www.irc.org/history_docs/jarkko.html
  5. http://searchirc.com/ircd-versions
  6. http://ircd-hybrid.com/history.html
  7. http://tools.ietf.org/html/rfc1459#section-4.3.1
  8. http://tools.ietf.org/html/rfc2810#section-2.2.2
  9. http://tools.ietf.org/html/rfc2810#section-4
  10. http://www.vulnscan.org/UnrealIRCd/faq/#58