FreeBSD

system operacyjny

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

FreeBSD
Rodzina systemów operacyjnych BSD
Ilustracja
Interfejs użytkownika
Producent The FreeBSD Project
Architektura IA-32, AMD64, ARM, UltraSPARC, PowerPC, MIPS, RISC-V
Pierwsze wydanie 1.0 (wydana 1 listopada 1993)[1]
Aktualna wersja 11.4[2][3], 12.2[4][3], 13.0[5]
(13 kwietnia 2021; ponad 2 miesiące temu[5])
Jądro monolityczne
Środowisko pracy Domyślnie środowisko tekstowe, dostępne graficzne na bazie XWindow oraz Wayland
Licencja BSD
Typ pakietów txz
FreeBSD w serwisie distrowatch.com
Strona internetowa

Pierwsza wersja wydana została 30 listopada 1993[1]. Najnowszą jest wydana w kwietniu 2021 wersja 13.0[5].

HistoriaEdytuj

Podobnie jak NetBSD powstał jako kontynuacja 386BSD Billa i Lynne Jolitz, pierwszej próbą 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 wywodził się z systemu 4.3BSD, kolejne wersje opierały się na 4.4BSD Lite2[1], obu stworzonych przez CSRG. 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.

Data Wersja Opis
19 czerwca 1993 rozpoczęcie projektu
30 listopada 1993 1.0[1] oparte na bazie 386BSD i 4.3BSD Net/2
lipiec 1994 1.1.5.1 ostatnie wydanie z serii 1.x.x
22 listopada 1995 2.0 oparte na kodzie 4.4BSD Lite, bez kodu AT&T
16 października 1998 3.0 uaktualnienia z 4.4BSD Lite2, pierwsza wersja ELF
29 listopada 1998 2.2.8 ostatnie wydanie z serii 2.x; ostatnie wydanie w formacie binariów a.out
24 czerwca 2000 3.5 ostatnia wersja z serii 3.x
13 marca 2000 4.0
20 kwietnia 2001 4.3 pierwsza stabilna wersja z serii 4.x
19 stycznia 2003 5.0 znaczne zmiany w obsłudze wieloprocesowości, nowe architektury sprzętowe: amd64 (tj. x86-64), IA-64, UltraSPARC
6 listopada 2004 5.3 pierwsza stabilna wersja z serii 5.x
25 stycznia 2005 4.11 ostatnie wydanie z serii 4.x
4 listopada 2005 6.0
25 maja 2006 5.5 ostatnia wersja z serii 5.x
18 stycznia 2008 6.3
27 lutego 2008 7.0 Nowy 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 2008 6.4
5 stycznia 2009 7.1 wprowadzono 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 2009 7.2 ulepszenie 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 2009 8.0 moż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 2010 8.1
24 lutego 2011 8.2
12 stycznia 2012 9.0 nowy instalator, Highly Available Storage (HAST) framework, nowe funkcje w implementacji stosu TCP/IP, wsparcie dla Sony Playstation 3, dodanie kompilatora LLVM/Clang.
20 stycznia 2014 10.0 clang zastępuje GCC na wspieranych platformach jako domyślny kompilator, unbound zastępuje BIND
14 listopada 2014 10.1 dodanie vt i autofs, wsparcie dla wirtualizacji bhyve
14 sierpnia 2015 10.2 usprawnienia dla ZFS

(Więcej szczegółów na temat wydań poszczególnych wersji w kalendarium Informatyki)

Model dystrybucjiEdytuj

FreeBSD jest darmowym systemem operacyjnym dostępnym z pełnym kodem źródłowym. Źródła całego systemu wraz z historią (istnieje możliwość pobrania najstarszych wersji) – nie tylko jądra – 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]). 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 (tzw. committers).

Rozprowadzany na zmodyfikowanej licencji BSD pozwalającej na integrację kodu do projektów zamkniętych.

Informacje techniczneEdytuj

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 (ZFS wersja 6 we FreeBSD 7, ZFS wersja 13 we FreeBSD 8, ZFS wersja 14 we FreeBSD 8.1, ZFS wersja 28 została oddana do testów w 2010[14]), 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 architektury sprzętowej i386. Z czasem jednak zaczęły się ukazywać także wersje dla architektur NEC PC-9801 (nieobsługiwana od wersji 12), DEC Alpha (nieobsługiwana od wersji 7[15]), IA-64 Itanium (nieobsługiwana od wersji 11[15]), Sun UltraSPARC, AMD64, MIPS[10], 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ść ABIEdytuj

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ówEdytuj

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 blisko 44 tysięce[17] programów przystosowanych do działania na tym systemie. 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 systemach OpenBSD, NetBSD (pkgsrc) oraz jednej z dystrybucji GNU/Linuksa, Gentoo (portage).

ZastosowaniaEdytuj

 
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 używanych w dystrybucjach GNU/Linux – 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ń.

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 technologieEdytuj

Zobacz teżEdytuj

PrzypisyEdytuj

  1. a b c d e f g h 1.3. About the FreeBSD Project. [dostęp 2021-04-08].
  2. FreeBSD 11.4-RELEASE Notes (ang.). 2020-06-11. [dostęp 2020-06-11].
  3. a b Release Information, www.freebsd.org [dostęp 2020-05-15].
  4. The FreeBSD Project | FreeBSD 12.2 Release Process (ang.). [dostęp 2021-04-07].
  5. a b c The FreeBSD Project | FreeBSD 13.0 Release Process (ang.). [dostęp 2021-04-16].
  6. The FreeBSD Project | FreeBSD Archives: Re: "386BSD" trademark (fwd) (ang.). 1993-06-19. [dostęp 2021-04-08].
  7. New FreeBSD Logo Chosen – OSnews (ang.). [dostęp 2021-04-07].
  8. FreeBSD 7.0 Release Notes.
  9. FreeBSD 7.1 Release Notes.
  10. a b FreeBSD 8.0-RELEASE Announcement (ang.). [dostęp 2021-04-17].
  11. The FreeBSD Project | FreeBSD News Flash (ang.). [dostęp 2021-04-08]. Cytat: 19 December: FreeBSD src repo to be converted to git. Please see the git wiki for details.
  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 The FreeBSD Project | Platforms (ang.). [dostęp 2021-04-07].
  16. a b c Committer's Guide (ang.). [dostęp 2021-04-07].
  17. FreshPorts -- The Place For Ports - Most recent commits. [dostęp 2021-04-07].
  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 (ang.). [dostęp 2012-03-14].
  21. a b Jack Clark: Sony's new PlayStation 4 and open source FreeBSD: The TRUTH (ang.). [dostęp 2013-11-16].
  22. WhatsApp: 1 million is so 2011 (ang.). [dostęp 2014-08-27].

Linki zewnętrzneEdytuj