[Spis treści]
[Sekcja 8 - Ogólne pytania]
[Sekcja 10 - Zarządzanie systemem]
9 - Migracja do OpenBSD
Spis treści
Aby uzyskać więcej informacji odwiedź następującą stronę
http://sites.inka.de/mips/unix/bsdlinux.html.
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.
-
Nazwa hosta przechowywana jest w
/etc/myname.
- Brama domyślna zapisana jest w
/etc/mygate.
- 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
Tak! Jest to możliwe! (na dodatek proste).
Przeczytaj INSTALL.linux.
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.
# cat linux_passwd | awk -F : '{printf("%s:%s:%s:%s::0:0:%s:%s:%s\n", \
> $1,$2,$3,$4,$5,$6,$7); }' > new_passwd
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.
# cat new_passwd >> /etc/master.passwd
# pwd_mkdb -p /etc/master.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:
# export PKG_PATH=ftp://twoj.mirror.ftp/pub/OpenBSD/4.2/packages/i386/
# pkg_add -i fedora_base
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.
[Spis treści]
[Sekcja 8 - Ogólne pytania]
[Sekcja 10 - Zarządzanie systemem]
www@openbsd.org
$OpenBSD$