FreeBSD
Rodzina systemów operacyjnych BSD | |
Interfejs użytkownika | |
Producent | The FreeBSD Project |
---|---|
Architektura | |
Pierwsze wydanie | 1.0 (wydana 1 listopada 1993)[1] |
Aktualna wersja | 12.3[2][3], 12.4[3][4], 13.1[5] |
Aktualna wersja testowa | 12.4-RC2 |
Jądro | |
Ś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 |
FreeBSD – system 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.
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 |
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ów – FFS, 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
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ż
- NetBSD
- OpenBSD
- DragonFly BSD
- TrueOS
- DesktopBSD
- Darwin (OS X)
- FreeSBIE
- Frenzy
- Kylin
- m0n0wall
- Jak można spatchować KDE2 pod FreeBSD?
Uwagi
- ↑ 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].
- ↑ Architektura NEC PC-9801 została zarzucona w wersji 12.
- ↑ Nierozwijana przez producenta architektura DEC Alpha jest nieobsługiwana od wersji 7[15].
- ↑ Architektura Itanium firmy Intel został uznana za przestarzałą w wersji 11[15].
- ↑ a b Zarzucona począwszy od wersji 14[15].
- ↑ 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
- ↑ a b c d e f g h 1.3. About the FreeBSD Project. [dostęp 2021-04-08].
- ↑ The FreeBSD Project | FreeBSD 12.3 Release Process. [dostęp 2022-02-10]. (ang.).
- ↑ a b Release Information, www.freebsd.org [dostęp 2020-05-15] .
- ↑ The FreeBSD Project | FreeBSD 12.4 Release Process. [dostęp 2022-12-12]. (ang.).
- ↑ a b c The FreeBSD Project | FreeBSD 13.1 Release Process. [dostęp 2022-05-18]. (ang.).
- ↑ The FreeBSD Project | FreeBSD Archives: Re: "386BSD" trademark (fwd). 1993-06-19. [dostęp 2021-04-08]. (ang.).
- ↑ New FreeBSD Logo Chosen – OSnews. [dostęp 2021-04-07]. (ang.).
- ↑ FreeBSD 7.0 Release Notes.
- ↑ FreeBSD 7.1 Release Notes.
- ↑ FreeBSD 8.0-RELEASE Announcement. [dostęp 2021-04-17]. (ang.).
- ↑ 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.).
- ↑ git - FreeBSD Wiki. [dostęp 2021-04-08].
- ↑ [FreeBSD-Announce] FreeBSD.org begins switch to Subversion. [dostęp 2021-04-08].
- ↑ ZFS v28 is ready for wider testing, lists.freebsd.org [dostęp 2017-11-23] .
- ↑ a b c d e The FreeBSD Project | Platforms. [dostęp 2021-04-07]. (ang.).
- ↑ a b c Committer's Guide. [dostęp 2021-04-07]. (ang.).
- ↑ About FreeBSD Ports. [dostęp 2021-09-28]. [zarchiwizowane z tego adresu (2020-12-26)].
- ↑ Netflix: Open Connect Appliance Deployment Guide. [dostęp 2012-05-29].
- ↑ FlightAware: FreeBSD High Capacity Server Performance Tuning ✈ FlightAware. (ang.).
- ↑ FreeBSD: FreeBSD Handbook. [dostęp 2012-03-14]. (ang.).
- ↑ a b Jack Clark: Sony's new PlayStation 4 and open source FreeBSD: The TRUTH. [dostęp 2013-11-16]. (ang.).
- ↑ WhatsApp: 1 million is so 2011. [dostęp 2014-08-27]. (ang.).
- ↑ FreeBSD Clusters. YouTube, 2008-01-23. [dostęp 2022-08-09]. [zarchiwizowane z tego adresu (2021-12-11)].
- ↑ FreeBSD Used to Generate Spectacular Special Effects. FreeBSD Project, 1999-04-22. [dostęp 2022-08-09].
Linki zewnętrzne
- Oficjalna strona FreeBSD (ang.)
Media użyte na tej stronie
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.