Das NetBSD System
Klares Design
Das wahrscheinlich wichtigste Ziel von NetBSD ist eine klare Struktur und
saubere Programmierung des Betriebssystems. Ein Beispiel dafür ist die
Einführung einer maschinenunabhängigen Businfrastruktur,
die es den einzelnen Treibern einer Komponente (z. B. eine Ethernet- oder
SCSI-Schnittstelle) ermöglicht unter verschiedenen Bussystemen (wie z. B.
PCI oder EISA) und auf verschiedenen Plattformen zu verwenden. Dies ist dem
traditionellen Verfahren, viele verschiedene Versionen eines Treibers mit all
seinen Tücken zu schreiben und auf dem Laufenden zu halten, vorzuziehen.
In NetBSD werden diese Tücken durch
kleine Verbindungs-Funktionen, die die notwendigen Verbesserungen des Treibers
für eine bestimmte Plattform beinhalten, gemeistert.
So ist es in vielen Fällen möglich, NetBSD lediglich durch die
Implementation des Maschinen-spezifischen Codes der auf die -- bereits
geschriebenen -- Treiber für die unabhängige Bus Infrastruktur
zurückgreift auf eine neue
Rechnerplattform oder CPU-Architektur zu übertragen.
Manche Systeme scheinen einer Philosophie des "Wenn's funktioniert, wird's schon
stimmen" zu folgen. NetBSD könnte so gesehen als "Es
funktioniert nur dann, wenn's stimmt" beschrieben werden.
Vollständigkeit
Was macht ein "vollständiges" System aus?
NetBSD bietet ein relativ schlankes Grundsystem mit der gesamten Funktionalität, die
von einem BSD System erwartet wird: Netzwerkprotokolle, die
Möglichkeit, sich selbst neu zu kompilieren und so weiter.
Weitere Funktionalität wird durch ein Paketsystem zur Verfügung gestellt,
wodurch Anwendungen Dritter einfach -- entweder vom Quellcode oder von bereits
erstellten binär-dateien -- installiert werden können.
Durch dieses System können sich die NetBSD-Entwickler auf die eigentliche
Arbeit, das Basissystem, konzentrieren.
Stabilität
NetBSD läuft auf einer großen Auswahl von Systemen mit
unzähligen Hardware Kombinationsmöglichkeiten. Dies macht ein
klares, Maschinenunabhängiges Design zwingend notwendig. Im Ende ergibt
es ein System das in Produktionsumgebungen auf der ganzen Welt auf duzenden
unterschiedlichster Hardware Plattformen benutzt wird. Und darauf kommt es
an.
Geschwindigkeit
NetBSD läuft sowohl auf einigen der langsamsten
vax- und
hp300-Maschinen, als auch auf den
größten
AlphaServer
8x00-Systemen. Eine zufrieden stellende Leistung auf langsamen Rechnern
zu erreichen zahlt sich auch auf schnellen Maschinen aus; dazu muss der
Programmcode so schlank wie möglich gehalten werden.
Des Weiteren unterstützen wir eine breite
Palette von Kommunikations-Hardware, von langsamen seriellen und parallelen
Komponenten bis hin zu Ethernet, FDDI und (800Mb/s) HIPPI Schnittstellen.
Lokale Optimierungen spielen in jedem System eine Rolle, aber das Design
sollte immer im Vordergrund stehen. Eine Routine so
umzuschreiben, dass sich die Geschwindigkeit um 80% verbessert mag
eindrucksvoll erscheinen, doch diese Routine hat vielleicht nur 5% CPU-Zeit
benutzt. Sieht man sich statt dessen die Gesamtstruktur an und kann durch deren
Änderung 10% CPU-Zeit insgesamt einsparen, so hat man mehr als doppelt so
viel erreicht. Auch wenn für NetBSD beides gebrauchen kann, so bevorzugen wir,
das Design von Anfang an korrekt auszulegen
als eine mittelmäßige Implementation zurechtzubiegen.
(Ihre Meinung)
$NetBSD: system.html,v 1.15 2004/10/30 22:34:09 jschauma Exp $
Copyright © 1996-2003
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.