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.


NetBSD Home Page
NetBSD Projektziele

(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.