1 / 30

FreeBSD 7

FreeBSD 7. Historia. 1991 – pierwsze wydanie BSD (386BSD) na procesory x86 21 marca 1993 – początek prac nad NetBSD 19 czerwca 1993 – rozpoczęcie prac nad projektem FreeBSD 1995 – rozłam w zespole NetBSD – powstanie OpenBSD 2004 – wydzielenie z projektu FreeBSD wersji PC-BSD

elmo
Download Presentation

FreeBSD 7

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FreeBSD 7

  2. Historia • 1991 – pierwsze wydanie BSD (386BSD) na procesory x86 • 21 marca 1993 – początek prac nad NetBSD • 19 czerwca 1993 – rozpoczęcie prac nad projektem FreeBSD • 1995 – rozłam w zespole NetBSD – powstanie OpenBSD • 2004 – wydzielenie z projektu FreeBSD wersji PC-BSD • listopad 2009 roku – wydanie FreeBSD 8.0

  3. Filozofia projektu • Kompletny system operacyjny, zawierający wbudowany zestaw podstawowych narzędzi • Tworzony przez zamkniętą grupę, tzw. Core Team (9 osób), nadzorującą pracę oficjalnych deweloperów (committers, ok. 400 osób) pracujących nad jądrem i base systemu oraz opiekunów portów • System oparty na bardzo liberalnej licencji BSD • Wydawany jednocześnie w dwóch wersjach: STABLE i CURRENT

  4. Core Team • Core Team zapowiada wybory 6 tygodni przed ich datą i wybiera sekretarza wyborczego, który przeprowadzi wybory, • w ciągu tygodnia od ogłoszenia wyborczego chętni spośród aktywnych programistów mogą zgłaszać swoje kandydatury i publikować oświadczenia wyborcze, • głosowanie trwa 4 tygodnie (długi czas uwzględnia ochotniczy charakter prac oraz rozproszenie geograficzne uczestników), • każdy z aktywnych programistów może oddać swój głos na maksymalnie 9 spośród zgłoszonych kandydatur, • w przeciągu tygodnia następuje przeliczenie oddanych głosów i ogłoszenie wyników, • nowo wybrany zespół przejmuje obowiązki w ciągu następnego tygodnia od momentu ogłoszenia wyników. • ordynacja wyborcza może zostać zmieniona większością 2/3 głosów, o ile w głosowaniu weźmie udział przynajmniej 50 proc. aktywnych programistów. • członkowie Core Team — podobnie jak pozostali committers — są usuwalni większością 2/3 głosów pozostałych członków Core Team.

  5. Podstawowe cechy systemu • FreeBSD wspiera następujące architektury: x86, x86_64, UltraSparc, IA-64 Itanium, ARM i PowerPC , Alpha (wsparcie zaprzestane) oraz MIPS (w przygotowaniu) • Jądro monolityczne, z możliwością dynamicznego ładowania modułów • Natywny system plików UFS2 z SoftUpdates

  6. Domyślnie wbudowane elementy • Base systemu – podstawowe narzędzia wiersza poleceń, usługi typu NFS, SSH itp. • Kompilator z zestawem bibliotek niezbędnych do skompilowania jądra i base • Kolekcja portów (/usr/ports) • Kompletne źródła jądra i całego base (/usr/src) • Komplet dokumentacji: manuale, handbook, FAQ, dokumentacja poszczególnych usług itp. (/usr/share/doc)

  7. Nazewnictwo urządzeń • W systemach BSD większość urządzeń nazywa się inaczej niż w Linuxie • adNsMK – dysk twardy ATA, gdzie N to numer urządzenia, M – numer partycji, K-litera okreslająca dysk logiczny, np. ad0s1a • daNsMK - j.w., ale SCSI lub SATA, np. da0s1a • acdN – cdrom, N – numer urządzenia, np. acd0 • rlN, bceN itp. – karty sieciowe (nazwy są luźno powiązane z producentem karty), N - numer interfejsu, np. rl0, bce0

  8. Instalacja • Intuicyjny instalator tekstowy, będący również nakładką na menedżera pakietów i użytkowników, konfiguratorem usług, środowiska użytkownika, sieci itp. • System można zainstalować niemal ze wszystkich mediów (sieci, nośników lokalnych, zdalnych systemów plików itp.) • Do instalacji wystarczy jedna partycja na dysku

  9. Przebieg uruchamiania systemu • Uruchamianie systemu przebiega inaczej niż w przypadku systemu Linux. • Etap 1: Uruchomienie kodu znajdującego się w MBR (pozwala on wybrać uruchamiany system). • Etap 2: Uruchomienie programu znajdującego się w sektorze rozruchowym partycji FreeBSD, którego zadaniem jest załadowanie loadera.

  10. Przebieg uruchamiania systemu • Etap 3: Uruchamianie loadera znajdującego się w katalogu /boot. Zadaniem tego programu jest umożliwienie użytkownikowi wybranie trybu uruchamamiania (normalny, single user itp.) lub uruchomienie trybu naprawy systemu w przypadku np. zainstalowania wadliwego jądra. • Etap 4: Loader ładuje właściwe jądro i niezbędne moduły, leżące w katalogu /boot/kernel. • Żeby załadować FreeBSD przez gruba należy wykorzystać chainloading lub załadować zamiast jądra plik /boot/loader (wymagana obsługa UFS2 przez gruba).

  11. Przebieg uruchamiania systemu Jądro uruchamia skrypt init, który • Wykonuje sprawdzanie spójności systemów plików wymienionych w /etc/fstab • Podmontowuje systemy plików (jeśli w którymś z tych etapów napotka błąd niemożliwy do automatycznego naprawienia, to przechodzi w tryb single user) • Uruchamia usługi systemowe

  12. Różnice w stosunku do Linuxa • FreeBSD nie obsługuje poziomów uruchamiania • Głównym plikiem, odpowiedzialnym za niemal cała konfigurację systemu jest /etc/defaults/rc.conf (tylko do odczytu) oraz /etc/rc.conf (modyfikowany przez użytkownika) • Większość ustawień konsol jest zdefiniowanych w pliku /etc/ttys

  13. Dyski, partycje, systemy plików • FreeBSD wspiera większość systemów plików (ext2/3, fat16/32, ntfs, xfs, zfs itd.) • Domyślnie FreeBSD instaluje się na jednej partycji fizycznej, która zostaje podzielona na dyski logiczne zwane slices. • Natywnym systemem plików jest UFS2 ze wsparciem dla SoftUpdates (odpowiednik journalingu w innych systemach). • System UFS2 dzięki SoftUpdates jest całkiem wydajny i odporny na uszkodzenia. SoftUpdates jest oparty na asynchronicznych, wstępnie przetwarzanych zapisach. • Do naprawy systemu plików wykorzystuje się narzędzie fsck. • Dla uniknięcakontroli integralności systemu plików i wyszukiwania potencjalnych problemów wykorzystuje się demona diskcheckd. • Podstawowymi narzędziami dyskowymi są fdisk (podział dysku na partycje) i disklabel (podział partycji BSD na dyski logiczne).

  14. Zgodność binarna z innymi systemami • FreeBSD posiada wbudowane w jądro moduły kompatybilność binarnej (translatory API jądra) z najpopularniejszymi systemami unixowymi na danej platformie, np. na x86 może obsługiwać binaria Linuxa, SCO, Solarisa, SVR4, a na sparc Linuxa, Solarisa, SunOSa, SVR4. • Obsługiwane są również binaria OpenBSD, NetBSD i binaria starszych wersji FreeBSD (od wersji 5 włącznie). • Emulacja ogranicza się do włączenia modułów jądra i nie wymaga dalszego wkładu ze strony użytkownika • Moduły zgodności są aktualizowane po wyjściu nowej wersji jądra systemu, do którego emulacji służą. • Emulacja nie powoduje spadku wydajności.

  15. Konfiguracja systemu • Niemal wszystkie ustawienia systemu są zawarte w pliku /etc/defaults/rc.conf i /etc/rc.conf • System najpierw parsuje plik /etc/defaults/rc.conf, a następnie przeciąża ustawienia tymi z /etc/rc.conf • W pliku rc.conf można: sterować usługami, konfigurować parametry sieci, konsole itp.

  16. Przykłady wpisów w rc.conf • Konfiguracja sieci ifconfig_ETH="inet IP_ADDRESS netmask MASK"ifconfig_ETH_aliasN="inet IP_ADDRESS netmask MASK"defaultrouter="IP_ADDRESS" hostname="HOSTNAME.DOMAINNAME"gdzie ETH to nazwa interfejsu, N-kolejny numer • Uruchamianie demona NAZWA_enable="YES"NAZWA_flags="PARAMETRY"gdzie NAZWA jest nazwą skryptu w /etc/rc.d

  17. Optymalizacja wydajności • Rekompilacja jądra, z wyłączonymi zbędnymi modułami i trybem debugowania • Włączenie SoftUpdates • Ustawienie optymalnych wartości zmiennych jądra w zależności od posiadanego sprzętu i połączenia sieciowego (komenda sysctl lub wpisy w pliku /boot/loader.conf (lub /boot/defaults/loader.conf – niezalecane))

  18. Bezpieczeństwo • FreeBSD nie posiada odpowiednika mechanizmu SELinux • Wspiera klasyczne uprawnienia unixowe oraz listy ACL • Posiada wbudowane firewalle ipfilter oraz pf • Domyślna blokada zdalnego logowania roota • Lokalnie na konto roota mogą zalogować się jedynie członkowie grupy wheel. • Inne zabezpieczenia: żądanie hasła roota w trybie single user, wyłączenie obsługi skrótu CTRL+ALT+DEL

  19. Użytkownicy • Domyślne wsparcie dla klas użytkowników – pozwala na indywidualne przydzielenie użytkownika do jednej z klas zdefiniowanych w pliku /etc/login.conf, niezależnie od grupy do której należy. W pliku login.confmożna zdefiniować takie parametry jak ustawienia środowiska, limity pamięci, liczby procesów, ilości pamięci, czasu procesora, parametry haseł itp. Po każdej modyfikacji tego pliku należy przebudować bazę danych poleceniem cap_mkdb /etc/login.conf • Aby przypisać użytkownika do odpowiedniej klasy można użyć narzędzia chfn • W przypadku niepodania klasy uzytkownik jest automatycznie przypisywany do klasy default

  20. Użytkownicy • Użytkownicy przechowywani są w lokalnej bazie danych, generowanej na podstawie pliku /etc/master.passwd • Do edycji tego pliku służy komenda vipw • W przypadku edycji w innym edytorze należy ręcznie przebudować bazę danych komendą pwd_mkdb /etc/master.passwd • Jedną z najważniejszych komend do ręcznego zarządzania użytkownikami jest pw

  21. Użytkownicy • Użytkownicy mogą mieć przydzielony jedynie powłoki, które są zawarte w /etc/shells

  22. System pakietów • FreeBSD udostępnia kilka metod instalacji oprogramowania. Najważniejsze to pkg oraz kolekcja portów • pkg to klasyczny menedżer pakietów, znany z niektórych dystrybucji Linuxa • System portów to katalog zawierający zestaw informacji o tym skąd należy wziąć zródłapakietów, jakie zastosować patche, w jaki sposób je skompilować itp.

  23. Kolekcja portów • Znajduje się w katalogu /usr/ports • Umożliwia kompilacje ze źródeł pojedynczych pakietów lub całych drzew, np. • Wykonanie make w /usr/ports/editors spowoduje skompilowanie wszystkich edytorów • Wykonanie make w /usr/ports/editors/vim spowoduje skompilowanie tylko edytora vi

  24. Kolekcja portów • Kompilacja portów ogranicza się do wykonanie komend make oraz make install, a potem make clean • System automatycznie pobierze niezbędne źródła, skonfiguruje je, zaaplikuje patche, skompiluje, zainstaluje, stworzy pakiety .tbz oraz zarejestruje w bazie zainstalowanych pakietów. Podobnie postąpi w przypadku stwierdzenia istnienia zależności, których nie ma zainstalowanych w systemie.

  25. Kolekcja portów • Usunięcie tak zainstalowanego pakietu będzie możliwe przez wykonanie make deinstall lub pkg_delete.

  26. Aktualizacja systemu • Aktualizacja może obejmować jądro, base system lub kolekcje portów • Główną metodą aktualizacji jest kompilacja systemu ze źródeł, stanowiącej jego integralną część. • Do aktualizacji wszelkich źródeł służy narzędzie cvsup. Służy ono do synchronizacji źródeł z repozytoriami CVS FreeBSD. • Do aktualizacji pakietów w oparciu o kolekcję portów służy polecenie portmanager -u

  27. CVSup • Może pracować w trybie uruchamianym z wiersza poleceń, graficznym albo jako demon. • Ma jeden plik konfiguracyjny, który podaje się jako parametr. W pliku tym podaje się skąd mają być pobrane źródła, z jakiej gałęzi, oraz jakich części systemu ma dotyczyć aktualizacja • Przykładowe pliki konfiguracyjne można znaleźć w katalogu /usr/share/examples/cvsup

  28. Klasyczna metoda aktualizacji • Do aktualizacji z użyciem pakietów binarnych wykorzystuje się narzędzie freebsd-update • Posiada ona następujące opcje • fetch – pobiera najnowsze wersje uaktualnień • upgrade - pobiera wersje pakietów z określonej gałęzi • install – instaluje pobrane uaktualnienia • rollback – odinstalowuje ostatnio zainstalowane aktualizacje • IDS – porównuje wersje plików z najnowszymi

  29. Klasyczna metoda aktualizacji • Po zainstalowaniu aktualizacji system otwiera wszystkie pliki konfiguracyjne, których modyfikacji nie był pewien, w domyślnym edytorze i pyta użytkownika czy zgadza się z proponowanymi zmianami.

  30. Kompilacja jądra ze źródeł • Źródła jądra znajdują się w katalogu /usr/src/sys • Przed kompilacja należy stworzyć kopie plik /usr/src/sys/ARCH/conf/GENERIC (ARCH oznacza architekturę platformy), np. MY_KERNEL i w zweryfikować, czy nasze nowe jądro będzie posiadało wbudowany zestaw funkcji. • Następnie w katalogu /usr/src wykonujemy następujące dwie komendy:make buildkernel KERNCONF=MY_KERNELmake installkernel KERNCONF=MY_KERNEL • W analogicznu sposób można zbudować i zainstalować base systemu (make buildworld i make installworld)

More Related