9.1 - Rady dla użytkowników Linuksa i innych darmowych systemów Uniksowych
Chociaż OpenBSD jest bardzo tradycyjnym uniksopodobnym systemem operacyjnym,
i wyda się znajomy tym, którzy korzystali już z innych systemów uniksowych,
istnieją pewne bardzo ważne różnice.
Nowi użytkownicy OpenBSD muszą zweryfikować swoje doświadczenie:
jeżeli twoją jedyną wiedzą o uniksie jest trochę doświadczenia z pewnym typem
Linuksa, możesz postrzegać OpenBSD "jako dziwne".
Zresztą Linux wygląda całkiem dziwnie dla każdego kto zaczynał z
OpenBSD.
Musisz rozpoznać różnicę pomiędzy "standardem" i swoim
doświadczeniem.
Jeżeli uczyłeś się Uniksa z jakiejkolwiek dobrej
książki, starając się zrozumieć filozofię Uniksów, a później
rozszerzałeś swoją wiedzę na konkretne platformy, stwierdzisz że OpenBSD
jest "prawdziwym" i znanym Uniksem.
Jeżeli uczyłeś się Uniksów w stylu "napisz to by zrobić tamto", lub z książek
takich jak "Learn PinkBeenie v8.3 in 31.4 Hours", i powiedziałeś sobie,
że "znasz uniksa", odnajdziesz OpenBSD zupełnie różnym.
Jedną z ważniejszych różnic pomiędzy OpenBSD i wieloma innymi systemami
operacyjnymi, jest dokumentacja. Developerzy OpenBSD są dumni z systemowych
stron manuala.
Strony manuali są autorytatywnym źródłem wiedzy o OpenBSD
-- nie to FAQ, nie niezależnie tworzone dokumenty "third-party",
nie "HOTWO", itd.
Gdy developer dokonuje zmian w systemie, oczekujemy że
będzie uaktualniał stronę manuala, tak długo jak długo istnieje jego zmiana w kodzie, nie
"później", "gdy zaczną się przekonywać do tego" lub "gdy ktoś zacznie narzekać".
Strona manuala istnieje właściwie dla każdego programu, narzędzia, sterownika,
pliku konfiguracyjnego, i wszystkiego innego czym system dysponuje.
Oczekuje się że użytkownik sprawdzi strony manuali zanim poprosi o
pomoc na grupie dyskusyjnej.
Poniżej opisano zazwyczaj podawane różnice pomiędzy OpenBSD i
pozostałymi Uniksami.
OpenBSD jest uczciwie czystym BSD Uniksem, opartym na 4.4BSD.
Linux i SCO Unix należą do rodziny System V. Niektóre uniksopodobne
systemy operacyjne (włączając niektóre dystrybucje Linuksa) są
mieszaniną SysV i BSD. Miejscem gdzie najczęściej występują różnice
są
skrypty startowe.
OpenBSD używa tradycyjnego BSD4.4-style
rc(8).
OpenBSD jest kompletnym systemem, zaprojektowanym do
zachowywania spójności. Nie jest to tylko "jądro systemu i dodatki",
które mogą być aktualizowane oddzielnie. Utrata spójności systemu
(jądro, narzędzia użytkowników i aplikacje) może doprowadzić do sytuacji
w której będą się dziać dziwne rzeczy.
Jako że wiele aplikacji nie jest przygotowanych by bezpośrednio
kompilować je i używać w środowisku OpenBSD, w OpenBSD stworzono
drzewo portów, miejsce z którego użytkownicy
mogą w łatwy sposób pobierać kod źródłowy, paczować go, uzgadniać zależności,
kompilować go, instalować i usuwać w standaryzowany oraz kontrolowany sposób.
Pre-kompilowane pakiety są tworzone i
rozpowszechniane przez twórców OpenBSD.
Użytkownicy są zachęcani do używania tych pakietów
zamiast kompilować własne.
Do kontrolowania wersji źródeł OpenBSD wykorzystuje system CVS. W
OpenBSD wprowadzono
anonymous CVS, który
pozwala każdemu pobrać pełny kod źródłowy dla
każdej wersji OpenBSD (od 2.0 do obecnej, i wszystkich wersji plików
pośrednich) w dowolnym czasie, dając przy tym dostęp do najnowszych zmian.
Istnieje także bardzo wygodny i łatwy w użyciu
interfejs www dla
CVS'a.
OpenBSD tworzy wydanie oficjalne dostępne na
CD i FTP co sześć miesięcy
zgodnie z założonym rozkładem.
Snapshoty dla poszczególnych platform są tworzone quazi-regularnie z
aktualnego kodu źródłowego.
Celem jest by drzewo źródłowe dawało możliwość pełnej kompilacji,
a wynikowy system zdolny do pracy.
Czasem zdarza się że dane drzewo jest uszkodzone, dzieje się tak niezwykle rzadko,
i jest bardzo szybko poprawiane.
OpenBSD zawiera mechanizmy silnej kryptografii,
które nie mogą być dostarczana z systemami tworzonymi w niektórych krajach.
OpenBSD przeszło przez ciężki i ciągły audyt bezpieczeństwa kodu, by zapewnić jego jakość
(czyli także bezpieczeństwo).
Jądrem OpenBSD jest /bsd.
Nazwy dysków to zazwyczaj /dev/wd (IDE) i /dev/sd
(SCSI oraz urządzenia emulujące dyski SCSI).
/sbin/route,
bez argumentów, w linuksie zwróci aktualną tablicę routingu, pod OpenBSD
(oraz wielu innych OS'ach), będziesz potrzebował parametru "show",
lub polecenia
netstat -r.
OpenBSD NIE zapewnia wsparcia dla systemów plików z księgowaniem takich
jak: ReiserFS, IBM JFS, lub SGI XFS. Zamiast tego używamy
Soft Updates
z bardzo odpornego systemu Unix Fast File System (FFS) spełniającego
wymogi wydajności i stabilności.
OpenBSD jest dostarczany z PacketFilter (PF)
zamiast ipfw, ipchains, netfilter, iptables, lub ipf. To oznacza że
Network Address Translation (znane także jako IP-Masquerading w Linuksie),
kolejkowanie i filtrowanie, są wykonywane poprzez
pfctl(8),
pf(4) oraz
pf.conf(5).
Zobacz PF Users Guide
by znaleźć więcej konfiguracyjnych informacji.
Adresy interfejsów sieciowych są przechowywane w
/etc/hostname.<interface>
(np. /etc/hostname.dc0 dla kart używających sterownika
dc(4)).
Możesz zapisać nazwę hosta (resolwowaną w
/etc/hosts)
zamiast numeru IP.
Domyślną powłoką w OpenBSD jest
/bin/ksh,
która jest pdksh,
powłoka Public Domain Korn.
Pozostałe dostępne powłoki to:
csh
oraz
sh.
Powłoki takie jak bash oraz tcsh mogą być dodane jako
pakiet lub zainstalowane z
portów.
Użytkownicy zaznajomieni z bash-em są namawiani by
wypróbować ksh(1) zanim załadują bash na swoich
systemach -- robi to co większość oczekuje od bash'a.
Mechanizm haseł w OpenBSD jest inny niż mechanizmy stosowane
w innych uniksowych systemach operacyjnych.
Aktualne hasła są przechowywane w pliku
master.passwd(5)
który może być czytany tylko przez root'a.
Plik ten powinien być modyfikowany tylko przy pomocy programu
vipw.
Urządzenia są nazwane poprzez sterowniki, nie poprzez typ.
Dla przykładu, nie ma urządzeń eth*. Będą to ne0 dla karty NE200,
oraz xl0 dla karty 3Com Etherlink XL lub Fast Etherlink XL, itd.
Wszystkie sterowniki mają strony man w sekcji 4.
Tak więc, by znaleźć informację o sterowniku karty 3c905
Możesz wykonać
"man
4 xl".
OpenBSD/i386, amd64 i kilku innych platform, korzysta z "dwu-warstwowego"
systemu partycjonowania systemu, przy czym pierwsza warstwa to
fdisk, widoczna z poziomu BIOS-u
partycja, podobnie jak w większości komputerów
Druga warstwa to disklabel,
tradycyjny system partycjonowania w BSD. OpenBSD obsługuje do 15
partycji disklabel na dysku, wszystkie rezydujące na jednej
partycji w sensie fdisk. To pozwala OpenBSD współistnieć
z innymi OS'ami, liczając także inne uniksopodobne systemy.
OpenBSD musi być zainstalowany na jednej z czterech partycji "primary".
Niektóre inne systemy operacyjne zachęcają do rekompilacji jądra
dla twojej maszyny.
Użytkownicy systemu OpenBSD są zachęcani by po prostu
używać standardowego (GENERIC) jądra dostarczanego i testowanego przez developerów.
Użytkownicy usiłujący "dostosować" lub "zoptymalizować" swoje kernele zwykle
powodują znacznie więcej problemów niż mogą rozwiązać, a to nie jest wspierane
przez developerów.
OpenBSD bardzo stara się trzymać licencji
oraz bezpieczeństwa w projekcie.
Z tych powodów, niektóre nowsze wersje niektórych programów które nie godzą
licencji z celami bezpieczeństwa, nie wchodzą i mogą nigdy nie wejść
do OpenBSD.
Bezpieczeństwo i zasady licencyjne nigdy nie będą pozostawione w tyle
wobec wyższego numeru wersji.
9.2 - Uruchamianie OpenBSD i Linuksa na jednym komputerze
9.3 - Konwersja pliku haseł Linuksa (lub innego systemu w stylu
System-6) do postaci BSD
Po pierwsze, sprawdź czy Twoje hasła w Linuksie przechowywane są
jako shadow czy też nie. Jeśli tak, zainstaluj program
John the Ripper
z pakietów lub portów (security/john)
i użyj narzędzia unshadow które się w nim znajduje do scalenia
plików passwd i shadow w jeden plik specyficzny
dla stylu pliku haseł System-6.
Plik z hasłami Linuksa będziemy nazywać linux_passwd,
musisz dodać ::0:0 po czwartym polu każdego wpisu.
awk(1)
może to zrobić za Ciebie.
W tym momencie, zechcesz zapewne wyedytować plik new_passwd
i usunąć z niego wpis użytkownika root oraz inne konta systemowe
które obecne są w Twoim pliku z hasłami OpenBSD lub są po prostu
niepotrzebne.
Ponadto upewnij się, że nie w obu plikach (new_passwd oraz
/etc/passwd w OpenBSD) nie występują zduplikowane
nazwy użytkowników oraz ich numery ID. Najprościej zacząć jest
z czystym plikiem /etc/passwd.
Ostatnim krokiem jest skorzystanie z pwd_mkdb, jest to
konieczne do przebudowania plików /etc/spwd.db oraz /etc/pwd.db.
Dodatkowo utworzony zostanie plik haseł /etc/passwd w stylu System-6
(bez zaszyfrowanych haseł) aby mogły z niego korzystać programy.
OpenBSD potrafi korzystać z potężniejszych narzędzi kryptograficznych
dla haseł (takich jak blowfish), które nie powinny się znaleźć
w systemie korzystającym z pliku haseł w stylu System-6.
Aby skorzystać z tych mechanizmów użytkownicy powinni skorzystać
po prostu z 'passwd' by zmienić swoje hasła.
Nowe hasło zaszyfrowane zostanie zgodnie z ustawieniami domyślnymi
(standardowo blowfish o ile nie edytowałeś pliku /etc/login.conf).
Możesz również jako root wykonać polecenie
passwd nazwa_użytkownika.
9.4 - Korzystanie z aplikacji linuksowych w OpenBSD
OpenBSD/i386 posiada zdolność uruchamiania aplikacji linuksowych
jeśli jądro skompilowane zostało z opcją COMPAT_LINUX i zmienna
sysctl kern.emul.linux jest ustawiona. Jeśli używasz jądra GENERIC,
COMPAT_LINUX jest domyślnie włączone, i jedyne co pozostaje do
zrobienia to
# sysctl -w kern.emul.linux=1
Jeśli chcesz aktywować tą zmienna przy każdym starcie systemu,
usuń znak komentarza (#) z początku linii
#kern.emul.linux=1 # enable running Linux binaries
w pliku /etc/sysctl.conf, aby wyglądała w sposób następujący:
kern.emul.linux=1 # enable running Linux binaries
Większość aplikacji linuksowych dostępnych w formie binarnej linkowana
jest dynamicznie, a nie statycznie, aby je uruchomić potrzebne będzie
wykonanie kilku dodatkowych czynności opisanych na stronie man
compat_linux(8).
Najprostszą metodą na zdobycie większości z używanych w Linuksie
bibliotek jest zainstalowanie fedora/base z binarnego
pakietu znajdującego się na najbliższym lustrzanym FTP.
Aby dowiedzieć się więcej o systemie pakietów, przeczytaj
FAQ 15 - System Pakietów i Portów OpenBSD.
Aby zainstalować wyżej wspomniany pakiet, użyj komend:
Zauważ, że
pkg_add(1)
automatycznie wywoła sysctl, aby ustawić kern.emul.linux właściwą
wartość podczas dodawania pakietu. Niemniej, zmiana jest nietrwała
ponieważ nie dotyczy /etc/sysctl.conf, zatem jeśli będziesz
potrzebować emulacji linuksa, konieczna będzie zmiana wartości
kern.emul.linux w tym pliku.
9.5 - Odczytywanie partycji linuksowych z poziomu OpenBSD
OpenBSD potrafi obsługiwać system plików EXT2FS.
Po dodatkowe informacje, zobacz FAQ 14.