FreeBSD jest uniksopodobnym systemem operacyjnym i iteracją starszych dystrybucji Uniksa lepiej znanych jako Research Unix. Jest open-source i publicznie dostępny za darmo, i właściwie jest tylko jedną z wielu dystrybucji Berkeley Software Distributions (w skrócie BSD, stąd system operacyjny nazywa się FreeBSD), inne godne uwagi iteracje to OpenBSD, NetBSD i DragonFly BSD.
Linux, jako pochodna Uniksa, naturalnie ma wiele wspólnego z BSD. Podobnie jak BSD, dystrybucje Linuksa są wolne i mają otwarty kod źródłowy. Pomimo fundamentalnych podobieństw, Linux w dużej mierze przyćmił BSD pod względem popularności, z ponad 74% nowoczesnych smartfonów opartych jest na Linuksie.
Więc nasuwa się pytanie: Jeśli BSD i Linux są tylko iteracjami badawczego Uniksa, co dokładnie je różni?
Cóż, różnice między nimi leżą w podstawach, a tych różnic jest bardzo wiele. Ale przeczytanie ich wszystkich w jednym poście byłoby dość nużące dla czytelników. Stąd, ten post skupi się wyłącznie na podstawach i pozostawi zawiłe szczegóły dla zwięzłości i aby nie onieśmielać nowych czytelników.
Ale czym jest Linux, naprawdę?
Pierwszą rzeczą, którą wiele osób myli jest to, że Linux jest jądrem, a nie systemem operacyjnym. Więc to czyni go tylko częścią systemu operacyjnego, a nie samym systemem operacyjnym.
Przedyskutujmy jądra przez sekundę. Jądra służą jako pivot w każdym systemie operacyjnym, ponieważ zachowuje cały bazowy kod, na którym stoi ten system operacyjny. Umożliwia i przyspiesza interakcję między sprzętem i oprogramowaniem komponentów systemu, zarządza jego wejścia / wyjścia żądań do i od aplikacji programowych, i jest odpowiedzialny za obsługę urządzeń sprzętowych, jak również.
W skrócie, jądro jest najbardziej integralną cechą każdego systemu operacyjnego, na którym jest oparte, i dlatego jest wycofane do wysoce ochronnej części w pamięci systemu, gdzie każde i wszystkie żądania dostępu od aplikacji są odrzucane, z wyjątkiem kilku, które są integralne dla działania systemu.
Teraz gdy rozumiemy czym jest jądro, możemy przejść dalej i zobaczyć co Linux, jako jądro, robi w systemie operacyjnym.
Jądro Linuksa w systemie operacyjnym
Wśród najbardziej popularnych systemów operacyjnych opartych na Linuksie są Debian, Ubuntu, Fedora, i Deepin. Więc za każdym razem, gdy słyszysz, że ktoś mówi, że używa Linuksa, wiedz, że tak naprawdę jest to jedna z tych dystrybucji. Te dystrybucje są „oparte na Linuksie”, ponieważ są zbudowane na jądrze Linuksa. Poprawki do jądra wraz z nowymi aplikacjami załadowanymi do niego sprawiają, że każda dystrybucja różni się od innej.
Co to jest BSD i jak różni się od Linuksa?
Jak wspomniano wcześniej, różne dystrybucje BSD są systemami operacyjnymi. I to sprawia, że BSD, tak jak Linux, jest jądrem.
Ale aby skomplikować sprawy, BSD jest również samodzielnym systemem operacyjnym, którym Linux nie jest. Wyjaśnijmy jak dokładnie.
W przypadku dystrybucji BSD, kilka programów jest dodawanych do jądra BSD. Ta kombinacja jest następnie wydana jako samodzielny, kompletny pakiet, który musi być zainstalowany, i rzecz jest gotowa do pracy. Tak więc, podstawowa różnica pomiędzy dystrybucjami BSD, takimi jak FreeBSD, OpenBSD, itd. wynika z programów dodanych do jądra systemu operacyjnego. Aby pobrać dodatkowe pakiety oprogramowania, użytkownicy BSD korzystają z systemu portów, który przechowuje te pakiety w formie źródłowej. Kod źródłowy jest kompilowany przez system za każdym razem, gdy oprogramowanie jest uruchamiane. Chociaż może się to okazać uciążliwe, zwłaszcza przy uruchamianiu dłuższych, bardziej skomplikowanych kodów, systemy BSD mogą całkowicie pominąć etap kompilacji przy każdym uruchomieniu, jeśli program jest zainstalowany w postaci binarnej, co w znacznym stopniu łagodzi ten proces.
Linux różni się od BSD pod tym względem, że każda z jego dystrybucji używa zupełnie innych programów, a dystrybucje nie mają scentralizowanego repozytorium pakietów oprogramowania, ponieważ każda dystrybucja ma swoje własne repozytorium.
Różnice w licencjonowaniu
Jedną z fundamentalnych różnic między BSD i Linuksem jest system licencjonowania, pod którym ich dystrybucje są wydawane.
Kiedy pobierasz oprogramowanie z repozytorium Ports w BSD lub instalujesz dystrybucję jako całość, oprogramowanie lub dystrybucja jest przydzielana ci na podstawie licencji BSD, która jest niestandardowym systemem licencjonowania stosowanym przez deweloperów BSD. Podczas gdy BSD jest całkowicie open-source i wolne od zaraz, system licencjonowania BSD pozwala deweloperom na ogłoszenie BSD jako zamkniętego źródła w dowolnym momencie. Jako użytkownik FreeBSD, nie jesteś prawnie upoważniony do dalszych wydań od deweloperów BSD. Jednakże deweloperzy BSD podali do publicznej wiadomości, że mają zamiar utrzymać to open-source w przyszłości.
Dystrybucje Linuksa są wydawane na podstawie Powszechnej Licencji Publicznej GNU (GPL). W ramach tego systemu licencjonowania, deweloperzy Linuksa są prawnie zmuszeni do ujawnienia każdego przypadku zmian dokonanych w jądrze Linuksa. System licencjonowania, w istocie, upewnia się, że Linux pozostaje open-source, bez względu na to, jakie zmiany są dokonywane w samym jądrze.
Dlaczego Linux jest bardziej popularny? (Spoilery: Dostępność oprogramowania)
Jeśli zastanawiałeś się przez cały ten czas dlaczego nie słyszałeś o BSD tak często jak o dystrybucjach Linuksa, oto dlaczego: jeśli chodzi o kompatybilność oprogramowania, Linux wybija to prosto z parku. Dla każdego oprogramowania istnieje wydanie kompatybilne z Linuksem. Nie jest tak w przypadku FreeBSD, które z tego powodu pozostaje w dużej mierze zaniedbane.
Jądro Linuksa sprawia, że pisanie i dystrybucja programów jest prostsza w porównaniu do innych jąder, więc programiści są naturalnie skłonni do pracy nad wydaniami Linuksa. Dystrybucja, szczególnie, jest jeszcze łatwiejsza dzięki preinstalowanemu systemowi pakietów binarnych, który ułatwia. Linux pozwala na pobieranie i instalowanie pakietów oprogramowania poprzez menedżery pakietów takie jak apt, yum, Pacman, etc.
W porównaniu do dystrybucji oprogramowania w Linuksie, użytkownicy BSD mają o wiele trudniej. Pakiety oprogramowania są najpierw pobierane jako kody źródłowe w BSD poprzez system portów. Te kody źródłowe są następnie kompilowane za każdym razem, gdy są uruchamiane, proces ten jest zarówno czasochłonny jak i frustrujący w dzisiejszych czasach, gdzie oprogramowanie jest instalowane za pomocą jednego przycisku. Jest to równie frustrujące dla programistów, ponieważ muszą oni włożyć wiele wysiłku, aby kompilacja była jak najszybsza.
Ale chociaż wprowadzenie prekompilowanych pakietów binarnych w dużym stopniu złagodziło proces uzyskiwania oprogramowania w FreeBSD, dostępność oprogramowania nadal pozostaje ogromnym problemem dla BSD.
Wybór pomiędzy Linuksem a BSD
Oprócz bardziej mainstreamowych Windows i IOS, dystrybucje Linuksa wyprzedzają o wiele kroków każdy inny system operacyjny. Jest wolny, open-source, i ma wszystko do zaoferowania, co FreeBSD, bez zastrzeżeń.
BSD i Linux są o wiele bardziej wspólne niż różne, z licencjonowaniem i dystrybucją oprogramowania będącą jedynymi podstawowymi różnicami. Mimo to, pomimo podobieństw, używanie jednego z nich jest kompromisem drugiego.
Z jednej strony, FreeBSD utrzymuje bibliotekę narzędzi i zależności we wszystkich dystrybucjach, ułatwiając programistom iterację zawartości i wymyślanie własnych aplikacji. To właśnie tutaj FreeBSD ma znaczną przewagę nad Linuksem, ponieważ pakiet GNU dołączony do Linuksa na to nie pozwala.
Z drugiej jednak strony, brak kompatybilności i dostępności oprogramowania poważnie utrudnia korzystanie z FreeBSD. Problem ten może być rozwiązany poprzez użycie pakietu kompatybilnościowego Linux, który pozwala na uruchamianie oprogramowania linuksowego na dystrybucjach BSD, ale jest to jeden dodatkowy krok, który mimo wszystko utrudnia korzystanie z FreeBSD.
Jeśli chodzi o licencje, licencja Linux GPL jest znacznie bardziej restrykcyjna niż licencje BSD. Deweloperzy lub użytkownicy nie mogą wprowadzać zmian do jądra Linuksa lub kodu źródłowego bez upublicznienia go. Użytkownicy BSD nie mają takich zobowiązań, dlatego programiści powinni przynajmniej wypróbować BSD. Możliwość zachowania kodu źródłowego w tajemnicy jest znaczącą zaletą, której Linux nie zapewnia.
Licencjonowanie dystrybucji Linuksa jest na korzyść użytkowników, ponieważ potwierdza, że każdy rozwój dokonany w celu ulepszenia aplikacji dla systemu zostanie udostępniony użytkownikom. Licencjonowanie BSD, z drugiej strony, jest bardziej zbliżone do standardowego licencjonowania, pozwalając użytkownikom na instalowanie BSD za darmo, ale nie zmuszając deweloperów do upubliczniania ich zawartości.
Nasza rekomendacja
Zalecamy dystrybucję Linuksa jeśli zamierzasz używać go do ogólnych celów. Jej kompatybilność z oprogramowaniem jest wystarczającym powodem, abyśmy ją polecili. Jednakże, jeśli jesteś producentem, BSD jest właściwą opcją dla Ciebie. Posiada scentralizowane repozytorium oprogramowania i jest dobrze znany ze swojej niezawodności. A jeśli chodzi o licencjonowanie BSD, nie będziesz musiał się martwić o to, czy twoja praca będzie open-source.
Jeśli zdecydowałeś się na jądro Linux, zalecamy użycie Ubuntu. Jest on regularnie aktualizowany co sześć miesięcy, co moim zdaniem stanowi doskonałą równowagę między nadążaniem za problemami bezpieczeństwa i nie frustruje użytkowników.
A jeśli zdecydujesz się na jądro BSD, polecamy FreeBSD, które jest najczęściej używaną dystrybucją BSD.