blog ° about me ° iknz ° photos ° coding ° writing ° unix ° cats ° wasser ° external
 

XYRIA

Beim Xyria-Projekt -- der Name hat übrigens keine Bedeutung -- handelt es sich um eine Suite von System- und Netzwerkdiensten für UNIX. Es handelt sich dabei um Lightweight-Dienste. Jeder Dienst kann nur das, was ich benötige und ist nach den folgenden Richtlinien konzipiert:

  • je nach Aufgabe hochperformant
  • sicher (Primärziel)
  • kompakter Code
  • einfach zu konfigurieren

DNS-Server (seit April 2004)

Die erste Komponente des Xyria-Projektes ist der DNS-Server DNSd. Er unterstützt nur die wichtigsten Resource-Records, ist performance-optimiert (s. unten), unterstützt IPv6, load ballancing via Round-Robin und kann extrem einfach konfiguriert werden (7 Zeilen Konfiguration sollten reichen).

Hier ist ein erster Performance-Vergleich zwischen Bind-9.2.2p3 und Xyria:DNSD-0.0.17-alpha (durchgeführt auf einem Linux-2.4.22 System, Athlon-2400+, 512 MB RAM). Dabei ist deutlich der Unterschied zwischen der Speicherung der Datensätze zwischen den Xyria-Versionen zu erkennen: 0.0.16-alpha verwendete hashed Single-Link-Lists (selbst diese waren in normalen Sphären noch deutlich schneller als Bind), 0.0.17 Binärbäume mit einem verbesserten Hash-Algorithmus.

Xyria:DNSd vs Bind-9

Der Xyria:DNSd kann bis zu 40% schneller sein als Bind (je nach Datenbankinhalt und -größe). Es wurde bisher noch kein einziges Sicherheitsloch im DNSd entdeckt.

NNTP-Server (seit Oktober 2004)

Das zweite Subprojekt, der cdpnntpd ist ein Usenet-Server. Das Basissystem habe ich mittlerweile fertig entwickelt. Allerdings sind noch nicht alle Befehle aus RFC 977 implementiert. Was die IETF-NNTP Extensions von RFC 28?? angeht: Davon fehlt noch fast alles.

Ich habe den Usenet-Server entwickelt, weil ich zu faul war, INNd zu konfigurieren. Natürlich hätte ich das in ein paar Tagen locker lernen können, aber man kann auch ein Jahr an einem eigenen Server rumprogrammieren, wenn es Spaß macht ;-) Ich sah mir natürlich auch einige Alternativen, speziell mini-NNTP-Server, an... ...aber die waren so Standardkonform das nur ein Bruchteil der Clients damit funktionieren. Ich sage nur: Non-Case-Sensitive Kommandos und Headerzeilen oder auch: man kann eine 'From:'-Line auf 3 verschiedene Arten Standardkonform aufbauen. Alles muss so ein Server abdecken und parsen können (Ich hab das übrigens mit Hilfe von RegEx implementiert.).

echod (seit ????/200[45]

Ein echo-Server, geschrieben in 2 Zeilen Common-Lisp.

Komponente Stadium Version prim. TODO
DNSd stable 0.7 -
cdpNNTPd stable 0.1.7 -
  • Projektseite: http://xyria.doomed-reality.org
  • Platform: i386: OpenBSD, Linux, Solaris
  • Projektstart: offiziell: August 2004, DNSd aber schon April 2004
  • Sprache(n): C
  • Status: stable

(c) 1999-2005 Steffen Wendzel ; index.php3 v. 1.24 (Dez 2005)