9.1 - Tipps für Benutzer von anderen Unix-ähnlichen
Betriebssystemen
Während OpenBSD ein sehr traditionelles Unix-ähnliches Betriebssystem
ist und daher sehr vertraut für diejenigen ist, die bisher schon andere
Unix-ähnliche Betriebssysteme verwendet haben, gibt es einige wichtige
Unterschiede.
Neue Benutzer von OpenBSD müssen ihre eigene Erfahrung einschätzen:
Wenn deine Erfahrung mit Unix aus dem Experimentieren mit einigen
Varianten von Linux besteht, wirst du OpenBSD als »merkwürdig« empfinden.
Im Übrigen wirkt Linux recht merkwürdig auf jene, die mit OpenBSD
angefangen haben.
Du musst den Unterschied zwischen »Standard« und deiner Erfahrung
erkennen.
Wenn du Unix durch einige der guten
Bücher gelernt hast, die generell über Unix handeln, die
»Unix-Philosophie« verstanden hast und dann dein Wissen auf eine
bestimmte Plattform erweitert hast, wirst du OpenBSD als ein sehr
»wahres« und vertrautes Unix wahrnehmen. Wenn du Unix durch einen
»Tippe dies ein um das zu machen«-Prozess oder durch
ein Buch wie zum Beispiel »Lerne PinkBeenie v8.3 in 31,4 Stunden« und
dir selbst dann eingeredet hast, dass du »Unix kennst«, wirst du sehr
wahrscheinlich OpenBSD als völlig anders ansehen.
Ein sehr wichtiger Unterschied zwischen OpenBSD und vielen anderen
Betriebssystemen ist die Dokumentation. OpenBSD-Entwickler sind sehr
stolz auf die System-Manualseiten. Die Manualseiten sind die maßgebliche Quelle
der OpenBSD-Dokumentation - nicht diese FAQ, nicht von unabhängigen
weiteren Personen verwaltete Seiten, nicht »HOWTOs« etc.
Wenn Entwickler eine Änderung am System durchführen, wird von
ihnen erwartet, dass sie die Manualseiten neben ihren Änderungen
aktualisieren: nicht erst später, nicht erst wenn sie dafür Zeit finden
oder wenn sich jemand beschwert. Eine Manualseite existiert für so
gut wie jedes Programm, Treiber, Konfigurationsdatei und so weiter aus
dem Basissystem.
Es wird erwartet, dass der Benutzer die Manualseiten durchsucht, bevor er
in den Mailinglisten nach Hilfe fragt.
Hier sind einige häufig aufgefallene Unterschiede zwischen OpenBSD und
anderen Unix-Varianten.
OpenBSD ist ein recht pures BSD-artiges Unix, das dem 4.4BSD-Design
sehr genau folgt. Linux und SCO Unix sind System-V-artige Systeme.
Einige Unix-ähnliche Systeme (dazu zählen auch einige
Linux-Distributionen) mixen einige SysV- und BSD-Charakteristiken.
Ein typischer Platz, wo dies Verwirrung hervorruft, ist bei den
Startskripten - OpenBSD verwendet den
traditionellen BSD4.4-artigen rc(8)-Stil.
OpenBSD ist ein vollständiges System, dessen Absicht es ist,
synchron gehalten zu werden. Es ist nicht ein »Kernel mit Anwendungen«,
die separat voneinander aktualisiert werden können.
Fehlschläge, dein System (Kernel, Benutzeranwendungen und Programme)
synchron zu halten, resultieren in schlimmen Dingen, die passieren werden.
Da viele Applikationen nicht dafür entwickelt worden sind, direkt
in einer OpenBSD-Umgebung zu kompilieren und ausgeführt zu werden,
hat OpenBSD einen Ports-Tree, ein System
in dem Benutzer auf einfachem Wege Code beziehen, diesen für
OpenBSD patchen, Abhängigkeiten installieren, ihn kompilieren,
installieren und auf einem standardisierten und verwaltbaren Weg
deinstallieren können. Vorkompilierte
Packages werden vom OpenBSD-Portsteam
erstellt und zur Verfügung gestellt.
Benutzer werden gebeten, diese
Packages zu benutzen, statt ihre eigenen zu kompilieren.
OpenBSD verwendet CVS, um die Änderungen am Quelltext zu verwalten.
OpenBSD leistete Pionierarbeit für Anonymous
CVS, welches es jedermann ermöglicht, den kompletten Source-Tree
für jegliche Version von OpenBSD (von 2.0 bis Current und alle
Revisionen von allen Dateien zwischen ihnen) jederzeit zu extrahieren und
du kannst auf die aktuellsten Änderungen zugreifen - innerhalb von Stunden
nach deren Einbindung.
Es gibt auch ein sehr bequemes und einfach zu benutzendes
Webinterface zum CVS.
OpenBSD produziert alle sechs Monate ein offizielles Release,
das auf CD und über
FTP verfügbar ist - so wie es unser
vordefinierter Zeitplan vorsieht.
Snapshots für alle unterstützten Plattformen werden semiregulär
mit dem aktuellen Entwicklungscode erstellt.
Es ist das Ziel, dass der Source-Tree jederzeit vollständig erzeugbar und
das resultierende System nutzbar ist.
Der Tree ist gelegentlich kaputt, aber dies ist ein ungewöhnlicher
Vorfall, der schnell behoben wird und nicht etwas ist, dessen Fortsetzung
geduldet wird.
OpenBSD beinhaltet starke
Kryptographie, die nicht in Betriebssysteme eingefügt werden können,
die in einigen Ländern entwickelt werden.
OpenBSD wurde schweren und kontinuierlichen Sicherheitsüberprüfungen
unterzogen, um die Qualität (und daher Sicherheit) des Codes zu
gewährleisten.
OpenBSDs Kernel ist /bsd.
Der Name der Festplatten ist gewöhnlicherweise /dev/wd
(IDE) und /dev/sd (SCSI oder Geräte, die SCSI-Platten
emulieren).
/sbin/route mit keinen Argumenten gibt unter Linux den Status von
allen aktiven Routen aus. Unter OpenBSD (und vielen anderen
Betriebssystemen) benötigst du den Parameter show. Du kannst
alternativ dazu auch »netstat -r«
ausführen.
OpenBSD unterstützt KEINE Journaling-Dateisysteme wie ReiserFS, IBMs
JFS oder SGIs XFS. Stattdessen verwenden wir die
Softupdates-Funktion
des bereits sehr robusten Unix Fast File Systems (FFS), um die
Ziele der Geschwindigkeit und Stabilität zu erreichen.
OpenBSD wird mit Packet Filter
(PF) (nicht mit ipfw, ipchains, netfilter, iptables oder ipf)
ausgeliefert. Das bedeutet, dass Network Address Translation
(als IP-Masquerading unter Linux bekannt), Queuing und die Filterung
durch pfctl(8), pf(4) und pf.conf(5) ausgeführt werden.
Lies das PF-Benutzerhandbuch für
detaillierte Konfigurationsinformationen.
Die Interfaceadresse ist in /etc/hostname.<interfacename>
gespeichert (z. B. /etc/hostname.dc0 für eine Netzwerkkarte,
die die dc(4)-Treiber verwendet).
In ihr können Hostnamen (aufgelöst in
/etc/hosts)
statt einer IP-Adresse stehen.
Das standardmäßige Gateway wird in /etc/mygate vermerkt.
OpenBSDs standardmäßige Shell ist /bin/ksh (dabei handelt es sich um pdksh, die
»Public Domain Korn Shell«). Andere eingefügte Shells sind csh
und sh.
Shells wie zum Beispiel bash oder tcsh können als
Package oder aus den
Ports installiert werden.
Benutzern, die bash gewohnt sind, wird geraten,
ksh(1) auszuprobieren, bevor sie sich
bash auf ihre System laden - es macht das, was die meisten Leute
von der bash erwarten.
Passwortverwaltung unter OpenBSD ist anders als die Passwortverwaltung
unter einigen anderen Unix-ähnlichen Betriebssystemen.
Das tatsächliche Passwort wird in der Datei master.passwd(5) gespeichert, welche nur von root gelesen
werden kann. Diese Datei sollte nur mit dem Programm vipw geändert werden.
Devices werden nach dem Treiber benannt - nicht nach dem Typ. Zum
Beispiel gibt es keine eth*-Devices. Es wäre ne0 für eine
NE2000-Netzwerkkarte oder xl0 für eine 3Com Etherlink XL oder einer
Fast-Etherlink-XL-Netzwerkkarte etc. Alle diese Treiber haben
Manualseiten in der Sektion 4. Um also mehr Informationen über die
Nachrichten zu erfahren, die dein 3c905-Treiber ausspuckt, kannst du
»man 4 xl« ausführen.
OpenBSD/i386, amd64 und einige andere Plattformen verwenden ein
zweischichtiges Plattenpartitionierungssystem, bei dem die erste
Schicht die fdisk-Partition ist (BIOS-sichtbar),
die den meisten IBM-kompatiblen Computerbenutzern bekannt
ist, die zweite Schicht das Disklabel,
ein traditionelles BSD-Partitionierungssystem.
OpenBSD unterstützt bis zu 15 Disklabel-Partitionen auf einer Platte,
die alle in einer fdisk-Partition liegen.
Dies erlaubt OpenBSD neben anderen Betriebssystemen zu existieren, zu
denen auch andere Unix-ähnliche Betriebssysteme zählen.
OpenBSD muss auf einer der vier primären Partitionen installiert werden.
Einige andere Betriebssysteme erwarten, dass du deinen Kernel für
deine Maschine anpasst.
Von OpenBSD-Benutzern wird erwartet, dass sie
einfach den standardmäßigen GENERIC-Kernel verwenden, der von
den Entwicklern bereitgestellt und getestet wurde. Benutzer, die
versuchen, ihren Kernel anzupassen oder zu optimieren, verursachen
normalerweise mehr Probleme als sie lösen und werden von den Entwicklern
nicht unterstützt.
OpenBSD arbeitet hart daran, die Lizenzbestimmungen und Sicherheit des Projektes aufrecht zu erhalten. Aus diesem Grund
werden einige neue Versionen von bestimmten Softwareprodukten, die
entweder der Lizenz oder den Sicherheitszielen des Projektes nicht
entsprechen, noch nicht oder niemals in OpenBSD integriert.
Sicherheit und freie Lizenzen werden niemals nach hinten gestellt, um die
größte Versionsnummer zu haben.
9.3 - Deine Linux- (oder andere Sixth-Edition-artige) Passwortdatei
nach BSD konvertieren.
Finde zuerst heraus, ob deine Linux-Passwortdatei mit Shadow arbeitet
oder nicht. Wenn ja, installiere
John the Ripper
aus den Packages oder Ports
(security/john) und benutze das Werkzeug unshadow, das darin
enthalten ist, um deine passwd- und shadow-Datei in
eine Sixth-Edition-artige Datei umzuwandeln.
In deiner Linux-Passwortdatei (wir nennen sie linux_passwd)
musst du nun ::0:0 zwischen den Feldern 4 und 7 einfügen.
awk(1)
kann das für dich erledigen.
An diesem Punkt angelangt, solltest du jetzt die new_passwd-Datei
ändern und root und andere Systemeinträge löschen, die bereits in deiner
OpenBSD-Passwortdatei enthalten sind, oder die es in OpenBSD gar nicht
gibt (und zwar alle davon). Stelle auch sicher, dass es keine doppelten
Usernamen oder User-IDs zwischen new_passwd und dem
/etc/passwd auf deiner OpenBSD-Rechner gibt. Der einfachste
Weg ist, einfach mit einer frischen /etc/passwd anzufangen.
Der letzte Schritt (pwd_mkdb) ist notwendig, um die /etc/spwd.db-
und /etc/pwd.db-Dateien neu zu erzeugen. Es erzeugt auch eine
Sixth-Edition-artige Passwortdatei (ohne verschlüsselte Passwörter)
unter /etc/passwd für die Programme, die darauf zugreifen.
OpenBSD benutzt eine stärkere Verschlüsselung für Passwörter (nämlich
Blowfish), die man wohl kaum auf Systemen mit vollständig
Sixth-Edition-artigen Passwortdateien finden wird. Um zu dieser
stärkeren Verschlüsselung zu wechseln, müssen die Benutzer einfach passwd
aufrufen (bzw. tippen) und ihr Passwort ändern. Das neu eingegebene
Passwort wird mit deiner Standardeinstellung verschlüsselt (normalerweise
Blowfish - es sei denn, du hast /etc/login.conf verändert). Oder du
machst es als root mit passwd Benutzername.
9.4 - Linux-Binarys unter OpenBSD ausführen
OpenBSD/i386 ist in der Lage, Linux-Binarys auszuführen, wenn der Kernel
mit der COMPAT_LINUX-Option kompiliert und die Sysctl
kern.emul.linux zur Laufzeit gesetzt ist. Wenn du den GENERIC-Kernel
verwendest (den du verwenden solltest), ist COMPAT_LINUX bereits
aktiviert und du musst nur noch Folgendes tun:
# sysctl kern.emul.linux=1
Damit dies automatisch jedes Mal ausgeführt wird, wenn der Computer
bootet, entferne das #-Zeichen (Kommentar) am Anfang der Zeile
#kern.emul.linux=1 # enable running Linux binaries
in /etc/sysctl.conf, sodass die Zeile wie folgt aussieht:
kern.emul.linux=1 # enable running Linux binaries
Starte dein System neu, damit die Änderung wirksam wird.
Um Linux-Binarys zum Laufen zu bringen, die nicht statisch gelinkt sind
(und die meisten sind es nicht), solltest du den Anweisungen auf der
compat_linux(8)-Manualseite
folgen.
Ein einfacher Weg, die meisten nützlichen Linux-Bibliotheken zu beziehen,
ist fedora/base als Package vom nächstliegenden
FTP-Server zu installieren. Um mehr über das Package- und das
Ports-System zu erfahren, lies einfach FAQ 15 - Das
Packages- und Portssystem von OpenBSD.
Um das oben erwähnte Package zu installieren, würdest du Folgendes
aufrufen:
Beachte, dass pkg_add(1) automatisch sysctl ausführt, um kern.emul.linux auf den
korrekten Wert zu setzen, wenn dieses Package hinzugefügt wird. Es
ändert jedoch nicht /etc/sysct.conf, so dass du kern.emul.linux
dort manuell ändern musst, damit die Linuxemulation bei jedem
Systemstart aktiviert wird.
9.5 - Von OpenBSD aus auf deine Linuxdateien zugreifen
OpenBSD unterstützt das EXT2FS-Dateisystem.
Lies FAQ 14 für weitere
Informationen.