Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Systemy z rodziny BSD i ich miejsce na rynku

Do napisania jakiegoś wpisu o systemach z rodziny BSD przymierzałem się już jakiś czas. Jest to wpis ogólny traktujący o aktualnej sytuacji systemów BSD na rynku oraz moich przemyśleń na ich temat. Nie obędzie się też bez ociupiny historii – bowiem pewnie mało kto wie skąd się w ogóle wzięły systemy z rodziny BSD i ogólnie sporo tzw. uniksów? Zatem zaczynajmy.

Historia

Unix powstał w 1969 roku w Bell Labs(należących wtedy do AT&T). Jego autorami byli Dennis Ritchie, będący także twórcą języka programowania zwanego C i Ken Thompson. Tworząc Uniksa autorzy wykorzystali wiele nowatorskich pomysłów. Unix został w późniejszym czasie przepisany na język C, wbrew panującemu przekonaniu, że coś takiego jak system operacyjny powinno być pisane w asemblerze, co ułatwiło jego przenoszenie na inne platformy. Twórcy Uniksa przy jego tworzeniu wykorzystali regułe KISS (ang. Keep It Simple Stupid), stworzoną przez amerykańskich inżynierów wojskowych w latach 60. XX wieku. W latach siedemdziesiątych i osiemdziesiątych zdobył dużą popularność, co przyczyniło się do powstania wielu odmian i implementacji. Jedną z nich jest właśnie BSD.

Odmiana Uniksa zwana BSD (ang. Berkeley Software Distribution), zwany też czasem Berkeley Unix) wywodzi się ze stworzonych na Uniwersytecie Kalifornijskim Berkeley rozszerzeń dla systemu rozwijanego przez firmę AT&T. Jest to też nazwa dla licencji systemów z rodziny BSD. Niedługo po powstaniu pierwszych wersji Uniksa dr Bob Fabry z Berkeley starał się pozyskać nowy system dla uniwersyteckiego laboratorium i dzięki jego staraniom Unix został zainstalowany na komputerach PDP-11, które w tym czasie były w Berkeley. Niedługo po tym, Ken Thompson zainstalował na uczelnianym komputerze PDP-11 i napisał kompilator języka Pascal. W latach 1975-76 Bill Joy i Chuck Haley doskonalili kompilator, a także jądro systemu operacyjnego, a swoje poprawki odsyłali do Bell Labs. Te i inne poprawki stały się podstawą do wypuszczenia 1st Berkeley Software Distribution. Prace były kontynuowane nadal i niedługo później powstałą ostateczna wersja 2.11BSD dla PDP-11. W tym czasie Uniwersytet otrzymał komputer VAX-11/780, na którym został zainstalowany system AT&T 32/V. System ten jednak miał na tyle mankamentów, że Bill Joy podjął decyzje o przeniesieniu na niego BSD.

r   e   k   l   a   m   a

W roku 1979 powstał VAX/BSD, który oprócz dodatków z systemu BSD zawierał także zarządzanie pamięcią wirtualną, czego brakowało w systemie AT&T, a także kilka narzędzi z tego systemu. Wkrótce po tym Unix stał się produktem komercyjnym. BSD rozwijał się dalej, a zainteresowanie nim rosło i rosło. W 1980 roku dostał grant na dodanie wymaganych przez DARPA rozszerzeń, gdyż agencja zaczęła się interesować BSD. Wersja 4.1 zawierała ulepszoną obsługę poczty, ulepszone jądro, Pascala, Lispa oraz nowych VAX-ów. Agencja była usatysfakcjonowana i sfinansowała dalsze prace, co zaowocowało dodanie Berkeley Fast File System, obsługi TCP/IP oraz IPC. BSD był jednym z pierwszych systemów obsługujących TCP/IP, a jego implementacja bywała przenoszona do wielu innych systemów(swego czasu korzystał z niej nawet Microsoft). Wersja 4.2 okazała się sporym sukcesem, gdyż na podstawie jej kodu AT&T włączyła obsługę sieci i pamięci wirtualnej do słynnego System V. BSD leciał dalej z każdą wersją wprowadzając nowe rzeczy – wersja 4.3 jako pierwsza zawierała daemona nazw świeżo zainicjowanego systemu DNS. Jak grzyby po deszczu wyrastały też komercyjne i wolne systemy bazujące na BSD. Jednym z najważniejszych jest 386BSD, który był pierwszą próbą przeniesienia Uniksa z Berkeley na coraz popularniejszą platformę IA-32. Niestety dynamiczny rozwój BSD został brutalnie przerwany po wydaniu wersji 4.4, która to padła ofiarą pozwów o wykorzystanie kodu zastrzeżonego przez AT&T, a potem(po sprzedaniu USL) – Novella.

Proces na długi czas zahamował rozwój uniksów BSD. Niektóre z nich(jak np. słynny 386BSD) upadły. Proces spowodował także wydanie wersji 4.4BSD Lite, która była uboższą wersją 4.4 pozbawioną większości spornego kodu, która ostatecznie została uznana za wolną od roszczeń. Później ukazała się ostatnia wersja 4.4BSD Lite2, której kod stał się podstawą nowszych wersji pokrewnych systemów(FreeBSD 3.0, NetBSD 1.3 czy OpenBSD 2.3) oraz nigdy nie ukończonego Rhapsody firmy Apple Computer. Oto niektórzy członkowie rodziny BSD, którzy istnieją do dzisiaj i są w ciągłym rozwoju:
FreeBSD, NetBSD, OpenBSD, Darwin(czyli OS X, który niedawno zmienił nazwę na macOS), FreeNAS itd. Systemy z rodziny BSD nie są jednak jedynymi uniksami jakie są dzisiaj dostępne. Popularność Uniksa przyczyniła się do powstania wielu odmian – jedną z nich jest Minix, na wzór którego Linus Torvalds stworzył Linuksa – najpowszechniej stosowany dzisiaj system uniksopodobny.

Sytuacja obecna

Obecnie najpopularniejsze systemy z rodziny BSD to: OS X(macOS), FreeBSD, OpenBSD, NetBSD, FreeNAS oraz DragonFlyBSD. Same systemy BSD bywają niepoprawnie nazywane Linuksami, bądź dystrybucjami Linuksa, pomimo że nie mają z nim wiele wspólnego. Na bazie FreeBSD powstały takie systemy jak DesktopBSD, PC-BSD czy ubuntuBSD, które celują w desktop, w nieobeznanych użytkowników. Systemy z rodziny BSD(nie licząc OS X) w wielu sprawach zostały wyparte głównie przez Linuksa. Najpopularniejszym wolnym przedstawicielem tej rodziny wydaje się FreeBSD. FreeBSD, który w latach 90 był znacznie górą nad sporo słabszym Linuksem, obecnie jest do tyłu. Jednakże FreeBSD i inne systemu z tej rodziny ciągle się rozwijają i są wierne tradycji Uniksowej, którą Linux w ostatnich latach coraz częściej ośmielał się łamać. Chodzi tu głównie o zasadę KISS, która w Linuksie coraz częściej odpada na rzecz bardziej monolitycznych rozwiązań(jak np. systemd). Linux i większość systemów BSD różnią się nie tylko pochodzeniem(można je uznać za dalekich kuzynów), ale także licencją – wspomniana na początku poprzedniego punktu licencja BSD daje sporo więcej swobody, niż licencja GPL Linuksa. Pozwala bowiem nie tylko na modyfikowanie kodu, ale także na rozprowadzanie go w formie binarnej, a także włączanie do zamkniętego kodu pod warunkiem zachowania informacji o autorach oryginalnego kodu. Wolność ta bywa niestety bardzo często nadużywana – np. firma Sony wykorzystała FreeBSD jako podstawę do stworzenia systemu na swoje konsole PlayStation, dając w zamian projektowi bardzo niewiele. Licencja GPL Linuksa pomimo że mniej wolna, to jednak chroni jądro przed takimi praktykami – bowiem GPL jest licencją wirusową i przechodzi na pokrewne projekty, które wykorzystują kod GPL. Linux posiada dość spore wsparcie komercyjne, którego tak brak wolnym systemom BSD.

Osoby chcące dzisiaj zainstalować wolnego uniksa BSD spotkają się z problemami ze sterownikami oraz z oprogramowaniem. Choćby karta graficzna – jedyny producent, który wydaje swoje sterowniki na ten system to nVidia, w przypadku AMD i Intela jesteśmy skazani na sterowniki przeportowane z Linuksa, które są sporo do tyłu względem tych w Linuksie, który ciągle przecież pędzi naprzód. Sytuacja jest trochę lepsza w systemie DragonFlyBSD, który zawiera nowsze wersje linuksowych sterowników. Nawet po bezproblemowym zainstalowaniu spotkamy się z brakami oprogramowania, bowiem masę jest oprogramowania dostępnego dla Linuksa, którego nie ma dla FreeBSD. Wprawdzie ten ma wbudowaną zgodność z ABI Linuksa i pozwala użyć jego aplikacji, to jednak wymaga to pewnej wiedzy oraz kombinacji. Oprogramowania natywnego dla FreeBSD jest niewiele. Nie bez powodu mówi się, że FreeBSD się nie nadaje na desktop, gdyż jest to system serwerowy, bądź do zastosowań specjalnych. I faktycznie, bowiem system ten jest świetnie skalowany, lekki oraz bezpieczny. W odpowiednich rękach jest to twierdza niemalże nie do przejścia. Składają się na ten fakt czynniki takie jak wysoka jakość kodu źródłowego i niska popularność. Bardzo popularny jest FreeNAS, który bazuje na FreeBSD. Warto wspomnieć, że systemy BSD nie posiadają problemu fragmentacji – FreeBSD(a także OpenBSD, NetBSD itd.) to jest pełny system operacyjny, a nie tylko jądro, jak Linux. Bardzo ważnym faktem jest to, że FreeBSD obsługuje system ZFS. Nie bez znaczenia też jest bardzo dobra dokumentacja systemów z rodziny BSD, na bieżąco uaktualniania(np. OpenBSD). Można więc się śmiało pokusić o stwierdzenie, że wolne systemy BSD to profesjonalne systemy operacyjne, nie przeznaczone dla Kowalskich. Sporym nadużyciem jest stwierdzenie, że BSD nic nie wniósł do rynku IT. Stos TCP/IP używany przez wiele projektów później, a także ogólna popularyzacja Uniksa.

Podsumowanie i spojrzenie na przyszłość

Systemom BSD bardzo często był przepowiadany upadek. Jednakże ich społeczność nadal je rozwija i małymi krokami idzie naprzód. Systemy BSD raczej nie zawojują desktopu – tutaj liczy się tylko Windows, w sporo mniejszym stopniu OS X, a jeszcze w mniejszym Linux. Te systemy ze względu na swoje cechy mają jednak szanse na serwerach, bądź w zastosowaniach specjalistycznych – nie są tak dużymi projektami jak Linux, są więc lżejsze, łatwiej skalowane i mają bardziej liberalną licencje. Obsługa dojrzałego systemu ZFS daje możliwość zastosowania FreeBSD w serwerach gdzie wymagana jest spora niezawodność i bezpieczeństwo danych. NetBSD posiada ogrom portów na różne architektury sprzętowe – ten system łatwo przenosić na nowe architektury. OpenBSD ma opinie bezpiecznego, gdyż jego deweloperzy bardzo duży nacisk kładą na bezpieczeństwo. Dzisiaj jednak sytuacja systemów BSD jest dość ciężka, podobna do sytuacji Linuksa na desktopie. Większy i silniejszy monopolista zagarnął większą część rynku i raczej szybko nie padnie. Można się śmiało pokusić o stwierdzenie, że Linux to taki Windows w open source – zagarnął większość tortu i nie daje się nikomu przebić. Historia Linuksa i BSD pokazuje jednak, że rynek zawsze może się drastycznie zmienić – wkońcu w latach dziewięćdziesiątych nikt nie uważał Linuksa za jakąkolwiek konkurencje dla innych uniksów. Ba, sam Torvalds stwierdził:

„If 386BSD had been available when I started on Linux, Linux would probably never had happened.” - Gdyby 386BSD był dostępny kiedy zaczynałem pracę nad Linuksem, prawdopodobnie Linux nigdy by nie powstał.

To, do czego przywyknęliśmy dzisiaj wcale nie musi być identyczne za 10, bądź 20 lat. Kto wie co się wydarzy za te 20 lat? Któż potrafi odgadnąć sytuacje na rynku IT w 2036 roku? Historia BSD świetnie też pokazuje jak wpływ na rozwój danych technologii mają korporacje i różne instytucje. To właśnie korporacje oraz instytucje pomogły BSD rozwinąć skrzydła, by ostatecznie zakończyć jego szybki postęp poprzez procesy. Kto wie jak dzisiaj prezentowałby się rynek, gdyby nie pozwy o kod 4.4BSD?

Źródła

Diagram historii Uniksów

Maskotka BSD

Zrzut ekranu PC-BSD

Źródło wiedzy

Jedna z zalet BSD, mianowicie bardzo dobra dokumentacja została przytoczona przez użytkownika parranoya, za co mu dziękuje. Sam zapomniałem o tym napomknąć. 

linux oprogramowanie

Komentarze