FreeBSD

FreeBSD
Rodzina systemów operacyjnych BSD
Ilustracja
Interfejs użytkownika
Producent

The FreeBSD Project

Architektura

IA-32, AMD64, ARM, PowerPC, RISC-V

Pierwsze wydanie

1.0 (wydana 1 listopada 1993)[1]

Aktualna wersja

12.3[2][3], 12.4[3][4], 13.1[5]
(16 maja 2022; ponad 8 miesięcy temu[5])

Aktualna wersja testowa

12.4-RC2
(11 listopada 2022) [±]

Jądro

monolityczne

Środowisko pracy

Domyślnie środowisko tekstowe, dostępne graficzne na bazie XWindow oraz Wayland

Licencja

BSD

Typ pakietów

pkg

FreeBSD w serwisie distrowatch.com
Strona internetowa

FreeBSDsystem operacyjny z rodziny Unix. Oparty na BSD, gałęzi Uniksa stworzonej przez Computer Systems Research Group (CSRG) na Uniwersytecie Kalifornijskim w Berkeley.

Pierwsza wersja wydana została 30 listopada 1993[1]. Najnowszą jest wydana w maju 2022 wersja 13.1[5].

Historia

Projekt podobnie jak NetBSD narodził się jako kontynuacja systemu 386BSD, pierwszej próby przeniesienia Uniksa BSD na architekturę Intel[1]. Inicjatorami projektu początkowo znanego jako Unofficial 386BSD Patchkit byli Nate Williams, Rod Grimes i Jordan Hubbard[1].

Nazwę FreeBSD wymyślił David Greenman[6] z firmy Walnut Creek CDROM, która od początku wspierała przedsięwzięcie[1]. Maskotką FreeBSD jest daemon, jednak od 2005 roku oficjalnie projekt posługuje się nowym logo[7]. Oficjalnym hasłem jest The power to serve.

Pierwsza wersja systemu ukazała się 30 listopada 1993[1]. Do wersji 2.0 bazowała na systemie 4.3BSD, kolejne wersje opierały się na 4.4BSD Lite2[1], obu stworzonych przezCSRG. W 2005 podjęto decyzję o przejściu na bardziej regularne wydania. Od tej pory nowe wersje ukazują się co 6–8 miesięcy, aby rozwój systemu stał się bardziej przewidywalny dla podmiotów z niego korzystających. Decyzja ta podyktowana była przeciągającymi się pracami nad rewolucyjną w wielu dziedzinach serią 5.x.

DataWersjaOpis
19 czerwca 1993rozpoczęcie projektu
30 listopada 19931.0[1]oparte na bazie 386BSD i 4.3BSD Net/2
lipiec 19941.1.5.1ostatnie wydanie z serii 1.x.x
22 listopada 19952.0oparte na kodzie 4.4BSD Lite, bez kodu AT&T
16 października 19983.0uaktualnienia z 4.4BSD Lite2, pierwsza wersja ELF
29 listopada 19982.2.8ostatnie wydanie z serii 2.x; ostatnie wydanie w formacie binariów a.out
24 czerwca 20003.5ostatnia wersja z serii 3.x
13 marca 20004.0
20 kwietnia 20014.3pierwsza stabilna wersja z serii 4.x
19 stycznia 20035.0znaczne zmiany w obsłudze wieloprocesowości, nowe architektury sprzętowe: amd64 (tj. x86-64), IA-64, UltraSPARC
6 listopada 20045.3pierwsza stabilna wersja z serii 5.x
25 stycznia 20054.11ostatnie wydanie z serii 4.x
4 listopada 20056.0
25 maja 20065.5ostatnia wersja z serii 5.x
18 stycznia 20086.3
27 lutego 20087.0Nowy system plików ZFS, gjournal, inicjator iSCSI, obsługa protokołu SCTP, wsparcie dla TCP Segmentation Offload i Large Receive Offload w sterownikach części kart sieciowych, nowy alokator pamięci (jemalloc), nowa architektura sprzętowa: ARM[8]
28 listopada 20086.4
5 stycznia 20097.1wprowadzono m.in. obsługę dla DTrace w jądrze systemu, możliwość przypisywania procesów do poszczególnych procesorów oraz nową implementacje Network Lock Managera. Domyślnym dyspozytorem na platformach tier1 stał się ULE[9]
4 maja 20097.2ulepszenie obsługi platformy UltraSPARC, pełna obsługa superpages dla aplikacji, obsługa IPv4 i IPv6 dla Jail, zwiększenie wirtualnej przestrzeni adresowej jądra do 6GB na platformie x64
25 listopada 20098.0możliwość zagnieżdżania Jail, praca jako gość i host w VirtualBox, praca jako 32-bitowy gość w Xen DomU, klient i serwer NFSv4 (w fazie eksperymentalnej), wsparcie dla wirtualnych punktów dostępowych i 802.11s, stabilizacja ZFS, przebudowanie sterowników USB, poprawki w skalowaniu na systemach SMP, eksperymentalne wsparcie dla architektury MIPS[10]
24 lipca 20108.1
24 lutego 20118.2
12 stycznia 20129.0nowy instalator, Highly Available Storage (HAST) framework, nowe funkcje w implementacji stosu TCP/IP, wsparcie dla Sony Playstation 3, dodanie kompilatora LLVM/Clang.
20 stycznia 201410.0clang zastępuje GCC na wspieranych platformach jako domyślny kompilator, unbound zastępuje BIND
14 listopada 201410.1dodanie vt i autofs, wsparcie dla wirtualizacji bhyve
14 sierpnia 201510.2usprawnienia dla ZFS

Model dystrybucji

FreeBSD jest darmowym systemem operacyjnym dostępnym z pełnym kodem źródłowym. Źródła całego systemu – nie tylko jądra – wraz z historią (istnieje możliwość pobrania najstarszych wersji) dostępne są w repozytorium git[11][12] (do 2021 roku projekt korzystał ze zcentralizowanych repozytoriów Subversion a wcześniej do 2008 z CVS[13]). System rozprowadzany na permisywnej, zmodyfikowanej, 2-klauzulowej licencji BSD pozwalającej na integrację kodu do projektów zamkniętych.

Nad rozwojem projektu czuwa demokratycznie wybierana grupa programistów – tzw. Core Team, który nadzoruje rozwój projektu, a także rozsądza sporne kwestie wśród oficjalnych programistów posiadających prawo do bezpośredniej modyfikacji źródeł (tzw. committers).

Informacje techniczne

System zgodny z normą POSIX. Powłoka – każda zgodna z normą POSIX, domyślnie dostarczany z csh (de facto tcsh) i sh (oparte na ash). System plikówFFS, UFS, UFS z rozszerzeniem softupdates, UFS2 (w wersjach nowszych od FreeBSD 5.0). Obsługiwane są również nienatywne systemy plików, np. ZFS[a], XFS (w wersji 7), linuksowy ext2 oraz FAT oraz podsystem FUSE. Format binariów – obecnie ELF, do wersji 2.2.8 a.out. Jądro monolityczne, aczkolwiek z możliwością dołączania i odłączania modułów podczas pracy systemu.

FreeBSD charakteryzuje się dużą ilością nowinek w porównaniu z innymi systemami wywodzącymi się 4.4BSD: NetBSD i OpenBSD. Początkowo inicjatorzy projektu FreeBSD postanowili skupić się na stworzeniu systemu dla najpopularniejszej ówcześnie architektury sprzętowej i386. Z czasem jednak zaczęły się ukazywać także wersje dla architektur NEC PC-9801[b], DEC Alpha[c], IA-64 Itanium[d], Sun UltraSPARC[e], AMD64, MIPS[e], ARM, PowerPC i RISC-V[15].

Wsparcie projektu podzielone jest na poziomy. Architektury tzw. tier1 otrzymują wsparcie zespołu bezpieczeństwa, pełne wydania i binarne aktualizacje (bez potrzeby kompilacji), prekompilowane pakiety. Poziom wsparcia zapewnia gotowość wystarczającą dla środowisk produkcyjnych[16]. W wersji 12.2 w tier1 znajdują się następujące architektury: amd64 i i386[15]. Architektury tier2 uznawane są za rozwojowe lub niszowe i nie mają bieżącego wsparcia, jednak ich użytkownicy są w stanie zbudować sobie środowisko ze źródeł zarówno systemu jak i portów. Eksperymentalny poziom tier3 oznacza, że projekt nie daje gwarancji, że źródła będą dla nich kompilowalne[16].

Kompatybilność ABI

W trybie zgodności ABI można uruchamiać programy skompilowane dla Linuksa, SCO oraz SVR4 (Solaris). Binaria dla systemów BSDI, NetBSD i OpenBSD są uruchamiane w niezmienionym trybie (natywne ABI).

System portów i pakietów

FreeBSD korzysta z opartego na źródłach systemu pakietowania znanego jako porty. Szkielet tego rozwiązania opiera się na plikach automatyzujących Makefile dla BSD make. Repozytorium portów zawiera ok. 33 tysiące[17][f] programów przystosowanych do działania we FreeBSD. Na bazie portów udostępniane są prekompilowane pakiety binarne z domyślnymi opcjami dla aktualnie obsługiwanych wersji i architektur sprzętowych FreeBSD, którym projekt zapewnia wsparcie na poziomie tier1[16]. Zalety portów przyczyniły się do tego, że stały się bazą lub zainspirowały rozwój zbliżonych rozwiązań wykorzystywanych w pokrewnych systemach OpenBSD, NetBSD (pkgsrc) oraz kilku dystrybucji GNU/Linuksa (więcej w Kolekcja portów).

Zastosowania

FreeBSD z zainstalowanym KDE

Ze względu na swą wydajność i niezawodność często stosowany jako serwer internetowy lub zapora sieciowa. FreeBSD używany jest m.in. przez Apache.org, Netflix[18], FlightAware[19], Yahoo!, Yandex, Netcraft[20], Sony Playstation 4[21], WhatsApp[22].

Na FreeBSD działa wiele aplikacji znanych z dystrybucji linuksowych – m.in. Open Office, KDE. System jest użyteczny w zadaniach biurowych i multimedialnych. Ułatwia to życie administratorom, którzy mogą połączyć system codziennego użytku z „poligonem” do testowania nowych rozwiązań.

Renderowanie części efektów specjalnych w filmie Matrix zostało wykonane na klastrze 32 maszyn pracujących pod kontrolą FreeBSD[23][24].

Ze względu na liberalną licencję fragmenty jego kodu znalazły się w takich projektach jak Microsoft Windows, OS X oraz OS X Server, który powstał w oparciu o mikrojądro Mach i rozwiązania zaczerpnięte z FreeBSD oraz NetBSD. Ponadto wiele zamkniętych urządzeń (np. routery Junipera czy sprzętowe zapory firmy Nokia) działa w oparciu o FreeBSD. PlayStation 4 działa na bazie systemu OrbisOS opartego na FreeBSD[21].

Ważniejsze narzędzia i technologie

  • IPFW – zapora sieciowa pełniąca rolę filtra pakietów. Często wykorzystywana w routerach.
  • natd – daemon zajmujący się translacją adresów sieciowych
  • dummynet – system kontroli przepływu sieciowego – stosowany w sieciach do ograniczania pasma.
  • if_bridge, bridge – implementacja obsługi połączeń mostkowych między interfejsami.
  • IPsec – zbiór protokołów umożliwiających tworzenie szyfrowanych Wirtualnych Sieci Prywatnych
  • SMPng
  • ULE

Zobacz też

Uwagi

  1. ZFS w wersji 6 został udostępniony od wersji FreeBSD 7, wersja 13 ZFS od FreeBSD 8, wersja 14 od FreeBSD 8.1, wersja 28 została oddana do testów w 2010[14].
  2. Architektura NEC PC-9801 została zarzucona w wersji 12.
  3. Nierozwijana przez producenta architektura DEC Alpha jest nieobsługiwana od wersji 7[15].
  4. Architektura Itanium firmy Intel został uznana za przestarzałą w wersji 11[15].
  5. a b Zarzucona począwszy od wersji 14[15].
  6. Liczba portów jest zmienna w czasie, bowiem zmienia się wraz z dodawaniem nowych oraz usuwaniem przestarzałych. Projekt nie publikuje obecnie (wrzesień 2021) aktualnych danych, można jednak pozyskać samodzielnie w zainstalowanym systemie poleceniem: $ wc -l /usr/ports/INDEX

Przypisy

  1. a b c d e f g h 1.3. About the FreeBSD Project. [dostęp 2021-04-08].
  2. The FreeBSD Project | FreeBSD 12.3 Release Process. [dostęp 2022-02-10]. (ang.).
  3. a b Release Information, www.freebsd.org [dostęp 2020-05-15].
  4. The FreeBSD Project | FreeBSD 12.4 Release Process. [dostęp 2022-12-12]. (ang.).
  5. a b c The FreeBSD Project | FreeBSD 13.1 Release Process. [dostęp 2022-05-18]. (ang.).
  6. The FreeBSD Project | FreeBSD Archives: Re: "386BSD" trademark (fwd). 1993-06-19. [dostęp 2021-04-08]. (ang.).
  7. New FreeBSD Logo Chosen – OSnews. [dostęp 2021-04-07]. (ang.).
  8. FreeBSD 7.0 Release Notes.
  9. FreeBSD 7.1 Release Notes.
  10. FreeBSD 8.0-RELEASE Announcement. [dostęp 2021-04-17]. (ang.).
  11. The FreeBSD Project | FreeBSD News Flash. [dostęp 2021-04-08]. Cytat: 19 December: FreeBSD src repo to be converted to git. Please see the git wiki for details. (ang.).
  12. git - FreeBSD Wiki. [dostęp 2021-04-08].
  13. [FreeBSD-Announce] FreeBSD.org begins switch to Subversion. [dostęp 2021-04-08].
  14. ZFS v28 is ready for wider testing, lists.freebsd.org [dostęp 2017-11-23].
  15. a b c d e The FreeBSD Project | Platforms. [dostęp 2021-04-07]. (ang.).
  16. a b c Committer's Guide. [dostęp 2021-04-07]. (ang.).
  17. About FreeBSD Ports. [dostęp 2021-09-28]. [zarchiwizowane z tego adresu (2020-12-26)].
  18. Netflix: Open Connect Appliance Deployment Guide. [dostęp 2012-05-29].
  19. FlightAware: FreeBSD High Capacity Server Performance Tuning ✈ FlightAware. (ang.).
  20. FreeBSD: FreeBSD Handbook. [dostęp 2012-03-14]. (ang.).
  21. a b Jack Clark: Sony's new PlayStation 4 and open source FreeBSD: The TRUTH. [dostęp 2013-11-16]. (ang.).
  22. WhatsApp: 1 million is so 2011. [dostęp 2014-08-27]. (ang.).
  23. FreeBSD Clusters. YouTube, 2008-01-23. [dostęp 2022-08-09]. [zarchiwizowane z tego adresu (2021-12-11)].
  24. FreeBSD Used to Generate Spectacular Special Effects. FreeBSD Project, 1999-04-22. [dostęp 2022-08-09].

Linki zewnętrzne

Media użyte na tej stronie

FreeBSD.png
Autor: Victor, Licencja: BSD
FreeBSD 6.2 welcome screen
Freebsd.png
Autor: Avstin; pictured components include artwork by The FreeBSD Project, KDE Project, and Mozilla Foundation, Licencja: CC BY-SA 3.0
Screenshot of FreeBSD 9.1-RC3, with KDE SC 4.8.4, the Dolphin file manager, the Konsole terminal emulator, and the Mozilla Firefox (16.0.1) World-Wide Web browser also pictured.