Saturday, July 23, 2011

FreeBSD vs. Linux?

Ostatnio na urlopie miałem więcej czasu niż zwykle i temat FreeBSD ponownie powrócił. FreeBSD jest lepszy od GNU/Linux czy nie? Warto poświęcać czas na uczenie się nowego systemu, czas który mógłbym poświęcić na zgłębianie tajników już dobrze znanego mi systemu z pod znaku pingwina? W tym tekście postaram się odpowiedzieć na te i wiele innych pytań z mojego punktu widzenia, co należy podkreślić.

System FreeBSD nurtował mnie od dawna, nawet można powiedzieć, że od kiedy o nim przeczytałem. Jednak poważniejsze próby podbicia tego systemu miały miejsce jakieś dwa lata temu. Jak zwykle podchodząc poważnie do tematu kupiłem książkę, która pomogłaby mi lepiej zrozumieć ten system, a co za tym idzie usprawni migrację. Szczerze mówiąc to byłem bardzo napalony na ten system, ach ten demon. Niestety lektura książki "FreeBSD 6. Księga eksperta" nie podtrzymała mojego zapału, wręcz przeciwnie, trochę nawet mnie rozczarowała. Oczywiście nie była to wina jakości samej książki, raczej argumentów jakie autor używał do udowodnienia, że FreeBSD jest lepszy od GNU/Linux.

Po wstępnym zapoznaniu się z nowym systemem i kilku podejściach przejścia z GNU/Linux na FreeBSD szybko zdałem sobie sprawę, że ten system na desktop się nie nadaje. Chyba że czyimś celem jest ciągłe bawienie się samym system. FreeBSD pozostawał nadal opcją jako system serwerowy, tylko ciężko uczyć się nowego systemu i nabierać w jego obsłudze wprawy, gdy nie używasz go na co dzień.

Tak to wyglądało te dwa lata temu. W międzyczasie próbowałem jeszcze kilka razy ale to takie trochę jakby dla zabicie nudy. Wpadła mi też w ręce książka "FreeBSD 7. Instalacja i konfiguracja" ale nie wniosła żadnych nowych rewelacji.

Teraz na nowo podszedłem do tematu. Konfigurowałem we FreeBSD te same usługi i mechanizmy co w GNU/Linux, przejrzałem chyba wszystkie dyskusje w internecie na temat wyższości BSD nad GNU/Linux i stwierdzam co następuje :)

Na celownik pozwolę sobie wziąć pewien artykuł, do którego często odsyłają zwolennicy FreeBSD na polskich forach. Ale bez obaw, w języku angielskim również pełno takich argumentów - przykład.
Oczywiście nie będę tu komentował wszystkich fragmentów, które wydały mi się nie do końca prawdą lub bliższych emocji niż logice. Wybrałem tylko te najbardziej sprzeczne z własna ideologią.

Niesłuszne zarzuty
Najpierw czytamy, że system GNU/Linux jest rozwijany przez niezorganizowaną rzeszę:
"...ludzi żyjących w różnych państwach, mówiących różnymi językami i posiadających odmienne ideologie."
Potem o tym:
"Ze względu na podział panujący w Gnu i Linux trudno wyszczególnić jednoznacznie jakąś grupę osób odpowiedzialnych za rozwój całego projektu."
Nie ma gwarancji :) ale zaraz, przecież takie są założenia licencji GPL:
"For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software."
Poza tym przeanalizujmy to dokładnie. Jeżeli instalujesz FreeBSD na serwerze i coś nie działa, to gdzie wtedy kieruje się swoje żale? Otóż pozostaje Ci tyle sam co w przypadku Linuksa, zgłosić błąd, a najprędzej zainstalować starsza wersję lub coś podobnego.
Poza tym w przypadku Linuksa można sobie wykupić taką 'odpowiedzialność'. Są nią dystrybucje komercyjne. Prawdopodobnie dlatego wiele dużych firm wybiera Linuksa.
Natomiast za rozwój całego projektu odpowiedzialni są deweloperzy danej dystrybucji.
Podobne zarzuty przeczytałem we wspomnianej książce, dlatego mnie tak rozczarowała.

Linuksowi zarzuca się również, że ma 100 różnych dystrybucji, natomiast następny fragment jest o współpracy, ale czego?
"Współpraca 
Każdy z system z rodziny BSD ma swoje własne cele i założenia, które są realizowane przez developerów. Daje to możliwość równoległego testowania różnych technologi i rozwiązań. Sprzyja to również ogólnemu rozwojowi wszystkich systemów. Ze względu na niedrastyczne różnice kodów poszczególnych BSD istnieje możliwość wymiany technologicznej. Czyli w momencie w którym jakaś technologia zostanie wprowadzona i przetestowana przez jeden z systemów może nastąpić przeportowanie jej do innego BSD przy stosunkowo niewielkim nakładzie pracy. Taka wymiana nie jest możliwa z systemem Linux a przynajmniej nie z taką łatwością."
Oto jedna z największych bzdur. Okazuje się że nie tylko Linux ma wiele dystrybucji, jest FreeBSD, OpenBSD, NetBSD, PC-BSD i DragonFly BSD, a nawet więcej. Nie ma tylko jednego FreeBSD rozwijanego przez zespół niecałych 20 programistów. Najlepsze, to to że różne odmiany *BSD potrafią się dzielić nowymi rozwiązaniami a GNU/Linux nie hehee. Dobrym ostatnim przykładem jest Upstart. Jak widać nie trafny przykład.

Teraz kolejna perła :)
Jak wiemy licencja BSD jest bardziej liberalna niż GPL. Jak to w tym artykule ładnie ujęto:
"Ideologia GPL i BSD. Niewolników wolności i prawdziwie wolnych."
Z tego też powodu FreeBSD ma taką otóż przewagę:
"Komercja

Równie ważne jak sam system jest fakt jego wykorzystania przez rynkowych liderów. Dlatego ważny jest proces komercjalizacji, nie systemu, ale produktów na nim opartych. Istnieje wiele rozwiązań komercyjnych wykorzystujących Gnu/Linux jak i BSD. To znaczy, że zarówno pierwszy jak i drugi system dają się łatwo sprzedać. Niestety dość restrykcyjna licencja GPL często odstrasza dużych graczy."
Okazuje się, że życie w tej kwestii pokazuje zupełnie co innego. Owszem, Mac OS X korzysta z tej wolności oraz wielu producentów urządzeń UTM. Jednak ostatnio największe koncerny skupiają swoje rozwiązania na platformie Linux, a nie FreeBSD. Gorący przykład do Oracle, o członkach The Linux Foundation nie wspomnę. Obecnie największą firmą wykorzystującą GNU/Linux jest Google. Ostatnio również pisałem o tym, że Yahoo! pomału migruje na GNU/Linux. Także argument bardzo nie trafny, a już na pewno nie mający wiele wspólnego z prawdą. Na ironię, to GNU/Linux posiada komercyjne wersje, a nie FreeBSD hehe

Kolejna perła :)
Tym razem o tym w czym się specjalizuję, czyli zapora ogniowa. Dlatego też nie skończę tylko na cytowaniu i komentowaniu ale także napisze trochę o moich doświadczeniach, bo testowałem zaporę we FreeBSD. Ale najpierw ironia:
"Systemy plików

Niewątpliwie Linux obsługuje największą ilość różnorakich systemów plików. Między innymi ext2, ext3, ext4, FAT, HFS, JJFS, JFS, UDF, XFS, ReiserFS, Reiser4, Tux3. Zapewne większość z nich jest bardzo dobrze przetestowana. Jednak warto zauważyć że przy tak dużej ilości systemów plików bardzo trudnym staje się dokładne przetestowanie nowej wersji jądra wraz ze wszystkimi możliwymi systemami plików. Co niekiedy zmniejsza stabilność naszej maszyny.
Z kolei systemy BSD nie obsługują tak imponującej ilości systemów plików. Są w stanie wykorzystać między innymi UFS, FAT, ext2 oraz ZFS. Dzięki małej różnorodności każdy aspekt poszczególnego systemu plików jest zbadany i należycie przetestowany co minimalizuje straty danych. 
Firewall

Ważnym zabezpieczeniem systemu operacyjnego jest firewall. Dlatego też standardem stało się dołączanie zapory ogniowej do systemu. Linux standardowo dystrybuowany jest z netfilter/iptables, który zapewnia pełną dowolność w zarządzaniu naszymi portami i pakietami sieciowymi.
Natomiast systemy z rodziny BSD wykorzystują inne filtry pakietów. Są nimi PF lub IPFW w zależności od upodobań developerów. Istotną przewagę nad szeroko wykorzystywanym netfilter’em filtry BSD mają w prostocie konfiguracji. Bardzo dużą uwagę poświęcili developerzy kwestiom tworzenia reguł. Zapewniło to znaczącą poprawę czytelności wszystkich plików konfiguracyjnych, oczywiście są one human-readable. Filtry BSD w żadnej mierze nie ustępują wydajnością ani funkcjonalnością netfilter’owi, niejednokrotnie go przewyższając."
No tak, Linux obsługuje masę systemu plików, to źle, to bardzo źle ale tak się składa, że firewall to ona ma jeden a nie trzy: IPF, IPFW i PF! Ok, to który wybrać hehe? [FreeBSD Handbook: Chapter 30 Firewalls]
Jak widać minimalizm względnie pojęty.
Ale przyjrzyjmy się ostatniemu zdaniu, które twierdzi, że możliwości powyższych zapór są większe niż zapory Netfilter. G**** prawda, bo inaczej nie powiem. Gdzie w tym PF znajdę taki mechanizm jak moduł recent? A może moduł string ma któraś z tych trzech zapór ogniowych?
Znalazłem książkę o PF, jest tego dużo. Pamietam ile trzeba było czasu poświęcić na to, aby sprawnie posługiwać się zaporą Netfiltera. Skoro tyle czasu poświęciłem na naukę jednej, to teraz mam kupić książkę do drugiej i poświęcić wiele czasu na to, aby nauczyć się robić to samo tylko tyle, że na innym systemie? Czy to ma sens? Czy się opłaca? Zwłaszcza, że moduły iptables oferują coraz to więcej możliwości.
Znalazłem blog, którego autor po wieloletnim używaniu FreeBSD zachwycił się Ubuntu! Sam nie lubię Ubuntu. Jak widać upodobania dotyczące używanego systemu w przypadku FreeBSD vs. Linux nie wiele się różnią od powszechnych wojen w świecie GNU/Linux zwanych 'Która dystrybucja jest lepsza'.
Dla zaprawionego linuksiarza przesiadka na FreeBSD z praktycznego punktu widzenia nie wiele oferuje korzyści. Moim zdaniem nie opłaca mi się uczyć nowych mechanizmów jeżeli nie oferują one więcej. Wcześniej może tak było, ale obecnie GNU/Linux jest na takim etapie rozwoju, że nie wiele jest mechanizmów we FreeBSD, których nie oferowałby GNU/Linux.

Pozytywne cechy FreeBSD
Mimo iż piszę o tym, że FreeBSD wcale nie jest lepszy od GNU/Linux to nie znaczy, że nie cenię sobie pewnych rozwiązań zaimplementowanych we FreeBSD. Mało tego, wiele tych rozwiązań zostało przeniesionych do świata GNU/Linux. System portów FreeBSD został zaimplementowany w Gentoo! Jądro FreeBSD jest obecnie jedną z opcji w dystrybucji Debian!

Kiedyś FreeBSD szczyciło się mechanizmem Jali, ale teraz GNU/Linux ma LXC. National Security Agency (NSA) wybierając platformę do implementacji mechanizmu MAC (SELinux) wybrało GNU/Linux, a nie FreeBSD.

Oczywiście FreeBSD jest niemal wzorcowym systemem pod względem implementacji. Jeżeli weźmiemy pierwszą lepszą książkę poświęconą systemom operacyjnym, to rozwiązania zaimplementowane we FreeBSD są często bliższe ideałowi, niż te w GNU/Linux. Lista właściwości jądra FreeBSD naprawdę robi wrażenie. To główny powód, dla którego interesuje się tym systemem.
Należy jednak zaznaczyć, że mimo, iż implementacji np. wątków i procesów w jądrze Linux jest dosyć dziwna to nie znaczy, że są wolniejsze, czy mniej funkcjonalne w stosunku do tych wzorcowych z FreeBSD. Pisałem o tym w poprzednim roku.

Kolejną przyciągającą rzeczą do FreeBSD jest jej społeczność. Jest bardziej dojrzała i mniej w niej fanatyków, aczkolwiek jak pokazywałem wcześniej też ich tam nie brakuje. Muszę przyznać, że poruszane tematy w magazynach poświęconych *BSD są bardziej zaawansowane niż te znajdujące się w prasie poświęconej GNU/Linux. Wynika to pewnie z tego, że użytkowników *BSD jest mniej, a odsetek fanatyków w tej populacji zdecydowanie mniejszy niż w GNU/Linux. Nie przeszkadza to jednak w niczym, aby czytać z pożytkiem teksty przeznaczone dla *BSD ponieważ zdecydowana większość zawarta tam informacji ma odwzorowanie w systemach GNU/Linux. Oprogramowanie jest wspólną cechą obu tych systemów, a system to tylko ok. 20% różnicy, na którym to oprogramowanie jest uruchomione.
Nie wątpliwie FreeBSD ma znacznie lepsza dokumentację.

Tak naprawdę, to cała różnica pomiędzy FreeBSD, a GNU/Linux sprowadza się do innego jądra i innej filozofii połączenia innych komponentów systemowych. Tym drugim różnią się również poszczególne dystrybucje systemu GNU/Linux. Ważną kwestią są również mechanizmy bezpieczeństwa. Mimo, iż FreeBSD wstępnie jest lepiej skonfigurowany pod tym względem to nie znaczy, że konfiguracji tej nie da się zastosować w GNU/Linux. Oba systemy mają równoważne mechanizmy np. do ochrony przed atakiem typu buffer overflow. System przeznaczony do testów penetracyjnych dla profesjonalistów od bezpieczeństwa BackTrack bazuje na systemie Linux, a nie FreeBSD.

Wnioski
GNU/Linux jest dominującym systemem dla rozwiązań serwerowych. To sprawia, że wszelkie prace nad rozwojem tego typu systemów i rozwiązania są, i będą implementowane na tej platformie. Jak wiadomo duży może więcej.

Natomiast całą filozofie wyższości FreeBSD nad GNU/Linux można groteskowo sprowadzić do poniższej ilustracji.
Więcej argumentów za nie znalazłem :)

Na koniec wspomnę jeszcze tylko o jednej z prawd jaką odkryłem w przeszłości, gdy bardzo interesowałem się programowaniem. Jak wiadomo tam również obecna jest wieczna dyskusja na temat 'Który język programowania jest lepszy'. Otóż okazuje się, że najlepszym językiem dla danej osoby jest ten, który zna najlepiej.

Kolejną mądra zasadę, która padła podczas dyskusji FreeBSD vs. Linux na forum linuxquestions.org jest:
"Use the right tool for the job."

33 comments:

  1. Bradzo interesujący wpis! Pozdrawiam!

    ReplyDelete
  2. Ciekawy wpis, jestem uzytkownikiem Windowsa aktualnie ale czesto przesiadam sie tez na Linuksa. Lubie oba te systemy na swój sposób, każdy ma mi coś ciekawego do zaoferowania. Ostatnio zainteresowalem sie systemami *BSD i jestem skłonny do instalacji jakiegos z nich oraz Archlinux :) ten art troche pomogl w decyzji pozdrawiam

    ReplyDelete
  3. Dystrybucje *BSD... Autorze, zanim napiszesz coś takiego to zagłęb się w temat.

    Ubuntu, Debian, Archlinux etc - to są dystrybucje, bo bazują na wspólnym kernelu...

    FreeBSD, OpenBSD, NetBSD, DragonFlyBSD - to są całkowicie osobne systemy operacyjne, różniące się zarówno kernelem i userlandem... Mają ze sobą tyle wspólnego co solaris z linuksem.

    A co do cyt:"gdzie znajdę...moduł recent..." mogę zapytać gdzie w linuksie znajdę coś ala dummynet? Argumenty, że jakiś system coś ma a inny nie nie są zbyt trafione.

    Stwierdzenie "FreeBSD wstępnie jest lepiej skonfigurowany" również mija się z prawdą. Co niby jest tam skonfigurowane? Lokalnie działający sendmail? Tam nic nie ma...

    Nie widzę tu argumentów za i przeciw systemom *BSD. Generalnie linux ma kilka dużych plusów dla mnie np:

    - obsługuje więcej sprzętu
    - lepsze wsparcie dla wirtualizacji

    ReplyDelete
  4. Nigdzie nie użyłem stwierdzenia "dystrybucje *BSD" :)

    Co do Dummynet to Linux ma NetEm, NIST Net. Owszem Dummynet ma tą przewagę, że potrafi kontrolować pakiety przychodzące i wychodzące ale to nie znaczy, że w Linuksie się nie da.

    Pisząc o wstępnym skonfigurowaniu miałem na myśli np. prawa dostępu do plików i kilka innych ustawień podnoszących poziom bezpieczeństwa.

    Natomiast co do wirtualizacji to np. FreeBSD z tego co wiem nie posiada żadnego rozwiązania dla sprzętowej wirtualizacji?

    Zawsze znajdzie się jakaś funkcjonalność we FreeBSD, które jest lepsza niż ta zaimplementowana w Linuksie. Wynika to z budowy jądra przeważnie. Po prostu pewne zadania lepiej realizuje się w określonej architekturze jądra jaką ma FreeBSD.

    ReplyDelete
  5. "Okazuje się że nie tylko Linux ma wiele dystrybucji, jest FreeBSD, OpenBSD, NetBSD, PC-BSD i DragonFly BSD, a nawet więcej."

    ReplyDelete
  6. Rzeczywiście to zdanie jest źle zbudowane i można to tak odebrać. Z drugiej strony nie do końca prawdą jest że wszystkie te systemy są niezależne. PC-BSD bazuje na FreeBSD tak jak Ubuntu na Debianie :)

    ReplyDelete
  7. Bardzo dobry wpis. Dobrze sie czyta

    ReplyDelete
  8. OK, pracę z systemami *NIX na pecetach zaczynałem w czasach, gdy systemy takie dostępne były przede wszystkim na platformy RISC (które to wówczas były średnio kilkadziesiąt razy wydajniejsze od dowolnego PC i kosztowały masę $$$$). W czasach tych raczkował Linux (jądro 0.95) oraz pojawił się port *BSD na Intela x86 o wszystko mówiącej nazwie 386BSD (ledwie to łaziło, nawet ps potrafił się wysypać...). Oczywiście nikogo z nas, wówczas młodych adeptów sztuki, nie było stać na własną stację RISC, więc staraliśmy się używa zarówno Linuksa, jak i 386BSD. Linux był lepiej dopracowany i stabilniejszy, ale bardzo jeszcze "pachniał" Minixem. Dopiero pojawienie się FreeBSD było czymś nowym, wartościowym.. oto pojawił się "prawdziwy UNIX" na PC i to nie znienawidzony SysV, tylko BSD! I owszem, porzuciłem Linuksa 1.09 dla FreeBSD, wiele lat używałem go sam, "ewangelizowałem" innych, ba.. nawet byłem autorem pierwszej "polonizacji" do FreeBSD... i... nadszedł koniec lat '90 XX w. Okazało się, że muszę zarządzać coraz to większą liczbą różnych maszyn, ciągła konieczność "rekompilowania" systemu lub sporych jego części przy byle upgrade stała się koszmarem, w 2001 roku wyciąłem ostatnie, produkcyjne maszyny z FreeBSD u siebie i u klientów. Cóż.. wygrał Debian. Dziś, po tylu latach, gdy zainstaluję do testu FreeBSD na maszynie wirtualnej, zaloguję się i pobawię, cóż.. dochodzę do wniosku, że w świecie FreeBSD nie wiele się zmieniło (z punktu widzenia admina ;-)). Zasadniczo, czynności, które pod Debianem wykonuje się z palca i w moment, we FreeBSD dalej wymagają działań "na piechotę". Nadal zarządzanie większą ilością takich serwerów byłoby ciężką robotą, a zainstalowanie głupiego htop'a wymaga użycia kawałka podsystemu kompatybilności z.. Linuksem. Słowem, nie ujmując FreeBSD ciekawych funkcji, czy naprawdę ciekawego jądra... z punktu widzenia kogoś, kto implementuje masę rozwiązań na bazie Linuksa, FreeBSD to strata czasu. Niestety.

    ReplyDelete
    Replies
    1. A htop robi coś, ponad to co robi top, co powoduje, że warto emulować Linux'a? Czy tylko kolorki?

      Delete
  9. Spotkałem się na forum FreeBSD z pewnym podpisem (kto jest wtajemniczony to będzie wiedział o kogo chodzi):

    "If 386BSD had been available when I started on Linux, Linux would probably never had happened." Linus Torvalds

    A ja się pytam, "tak, ale z drugiej strony czy 386BSD byłby otwarty gdyby pierwszy tego nie zrobił Linux?"

    ReplyDelete
  10. "Linuksowi zarzuca się również, że ma 100 różnych dystrybucji"

    Ja tego "zarzutu" (bez cudzysłowu się nie da...) nigdy nie rozumiałem. Przecież każdy może sobie wybrać jedną - i trzymać się jej. W czym problem? Jeśli ktoś nie wie, jak dokonać takiego wyboru - niech po prostu rzuci monetą, albo wybierze to, "co ma kolega".

    "Kolejną przyciągającą rzeczą do FreeBSD jest jej społeczność. Jest bardziej dojrzała i mniej w niej fanatyków, aczkolwiek jak pokazywałem wcześniej też ich tam nie brakuje."

    Ja mam nieco inne doświadczenia: o ile linuksiarze raczej są obojętni wobec xBSD - o tyle w światku xBSD częściej można spotkać "Linux-hatera". A już środowisko OpenBSD to wręcz sektę przypomina (istna "Theo-kracja" ;), nie mówiąc o tym, że tam najwięcej jest pyskatych chamów, bo "przykład idzie z góry". Skoro de Raadt słynie z niewyparzonej gęby, to jego "wyznawcom" wydaje się, że "tak właśnie trzeba".

    Tu można dodać jeszcze trzecią, często przytaczaną "przewagę" xBSD nad Linuksem: że mianowicie "Linux to tylko kernel - a xBSD to jądro razem z pakietem programów". Otóż konia z rzędem temu, kto mi pokaże dsytrybucję Linuksa zawierającą jedynie "samo jądro", i tak rozprowadzaną - bez żadnych programów towarzyszących. No i co to za zaleta, że xBSD wymaga jakiegoś "sztywnego zbioru minimum" programów, skoro dowolnie wzięta dystrybucja Linuksa I TAK JE ZAWIERA, bez jakiegokolwiek "formalnego przymusu"?

    To tak parę uwag na gorąco.

    P.S. Sam jestem z tych "obojętnych" - bawię się czasami Net-/Free-/OpenBSD, ale nie widzę sensu "przechodzenia". No chyba, że ktoś bardzo chce być oryginalny, bo mu Linux już spowszedniał. Nudny się zrobił, bo tylko "działa i działa...", to wtedy owszem: pod BSD znajdzie "przygody"; pamiętam, jak zainstalowałem FreeBSD 7.0, a oni akurat wywalili spore partie kodu pochodzącego z poprzednich 6.x, dobrze przetestowanego kodu obsługującego ACPI - owszem, były przygody i rozrywka. Albo jak pod NetBSD 2.0 próba wydruku na drukarce podłączonej przez USB obowiązkowo powodowała "wysypkę" systemu. Pod wieloma względami, gdy chodzi o wygodę korzystania, xBSD są jakieś 10 lat za Linuksem.

    Weźmy terminal "linux": jedyny terminal w światku OSS, który potrafi - nie w grafice, a w trybie czysto znakowym - wykorzystać 512 znaków (2 osobne zestawy udostępnianie przez VGA), a nie jedynie 256. BSD nie ma tego po dziś dzień, i już nie będzie mieć - bo teraz mało-kto pracuje w "czystym tekście", więc to nie jest priorytet. Ale miło to w Linuksie mieć.

    ReplyDelete
  11. A z ciekawości jeszcze zapytam:

    "Pisząc o wstępnym skonfigurowaniu miałem na myśli np. prawa dostępu do plików i kilka innych ustawień podnoszących poziom bezpieczeństwa."

    O które pliki chodzi - i o które z ustawień, rzekomo "podnoszących poziom bezpieczeństwa"? Tak konkretnie tym razem poproszę.

    "Po prostu pewne zadania lepiej realizuje się w określonej architekturze jądra jaką ma FreeBSD."

    Tzn. które - i w jaki sposób powiązane to jest z "architekturą jądra FreeBSD"? Tak konkretnie tym razem poproszę.

    Bo ja osobiście bynajmniej nie "zwalczam" xBSD - tylko... nie widzę w nich rewelacji w porównaniu z Linuksem. To działa, i tamto działa - ale summa summarum Linux jednak oferuje więcej i (jeśli nie zawsze, to przeważnie jednak) lepiej.

    ReplyDelete
  12. Np. prawa do plików w katalogu /etc/ są bardziej restrykcyjne niż te w systemie Linux. Nie mam teraz zainstalowanego FreeBSD więc nie zalistuje ;)

    Pozostałe zabezpieczenia to np. domyślnie włączona grupa wheel, którą w Debianie trzeba sobie włączyć.

    Jądro FreeBSD jest tworzone na wzór podręcznikowych rozwiązań, zaś Linuksa jest przystosowywane do potrzeb i dlatego jest popularniejszy. Np. FreeBSD oferuje wątki w modelu M:N, Linuksa ma to wszystko jakby poza standardowymi rozwiązaniami z literatury. Solaris też oferował podręcznikowe rozwiązania i tak Oracle pomału zaczyna przenosić jego najlepsze rozwiązania do Linuksa, którego praktyczność przeważa.

    Celem tego tekstu nie było wywyższanie Linuksa, tylko zdementowanie rzekomej wyższości FreeBSD.

    Jeszcze nawiąże do jednej z wypowiedzi nt. wielu dystrybucji. Jeżeli ktoś uważa że to problem to niech zapyta czy np. użytkownik Mandrivy korzystałby z systemu Linux, gdyby istniał tylko Slackware? Tak więc jak widać ilość dystrybucji Linuksowi wychodzi na dobre :)

    ReplyDelete
  13. "Jądro FreeBSD jest tworzone na wzór podręcznikowych rozwiązań, zaś Linuksa jest przystosowywane do potrzeb i dlatego jest popularniejszy."

    Dawka zdrowo pojętego pragmatyzmu, jak widać, raczej pomaga, niż przeszkadza. Przecież system operacyjny "sam w sobie" nie ma jakiejś specjalnej wartości użytkowej - a dopiero możliwość korzystania dzięki niemu z komputerów i oprogramowania.

    "Celem tego tekstu nie było wywyższanie Linuksa, tylko zdementowanie rzekomej wyższości FreeBSD."

    Moje wypowiedzi też nie miały na celu wywyższania ani poniżania czego-/kogokolwiek - a po prostu, jak to mawiają Angliczanie, "been there, done that". Po dłuższym i bliższym przyjrzeniu się paru wariantom BSD stwierdzam, że - od strony użytkowej - nie widzę tak (przez środowiska BSD) reklamowanych ich domniemanych przewag nad Linuksem. Jako systemy operacyjne są z grubsza równorzędne (nie miejsce w tej krótkiej odpowiedzi na roztrząsanie detali), aczkolwiek w przypadku "systemu na desktop" są one daleko w tyle za Linuksem. Jak pisałem: jakieś 10 lat za nim.

    Ale odrobina konkurencji światu wolnych/otwartych systemów operacyjnych nie zaszkodzi.

    ReplyDelete
    Replies
    1. Anonymous napisał:
      "Tu można dodać jeszcze trzecią, często przytaczaną "przewagę" xBSD nad Linuksem: że mianowicie "Linux to tylko kernel - a xBSD to jądro razem z pakietem programów". Otóż konia z rzędem temu, kto mi pokaże dsytrybucję Linuksa zawierającą jedynie "samo jądro", i tak rozprowadzaną - bez żadnych programów towarzyszących."

      Otóż wynika to z nieuctwa Szanowny przedmówco.
      Zdanie - "Linux to tylko kernel - a xBSD to jądro razem z pakietem programów" - szkoda rozbierać stosując dostępny zasób wiedzy metodologicznej.

      Diagram Bacha [The Design Of the Unix Operating System -fundamentalna rozprawa], obowiązuje wszystkie systemy oparte na jądrze monolitycznym. W tym Linuxa, FreeBSD i resztę. Nad jądrem "wiszą" bowiem powłoki, edytory tekstu typu vi, a dopiero nad tym reszta programów.

      Polecam również bardzo interesujący przyczynek Dennisa Ritchiego, pt. `The Evolution of the Unix Time-sharing System,' an account of developments during 1968-1973: http://cm.bell-labs.com/cm/cs/who/dmr/hist.pdf

      Pozdrawiam.
      b.


      Delete
  14. Wcześniej poruszałem kwestie braku wirtualizacji w FreeBSD, wczoraj dowiedziałem się że FreeBSD 10 będzie wyposażony we własny hypervisor zwany BHyVe (czyli BSD Hypervisor). Więcej można przeczytać na http://bhyve.org/ oraz http://wiki.freebsd.org/WhatsNew/FreeBSD10.

    Oczywiście bhyve nie dorówna od razu dla kvm, ponieważ na razie będzie wspierał tylko hosty ze FreeBSD i prawie tą samą wersję.

    ReplyDelete
  15. National Security Agency (NSA) wybierając platformę do implementacji mechanizmu MAC (SELinux) wybrało GNU/Linux, a nie FreeBSD

    http://en.wikipedia.org/wiki/Security-focused_operating_system#TrustedBSD
    http://en.wikipedia.org/wiki/TrustedBSD#Security

    ReplyDelete
  16. http://www.nsa.gov/research/selinux/

    "The results of several previous research projects in this area have yielded a strong, flexible mandatory access control architecture called Flask. A reference implementation of this architecture was first integrated into a security-enhanced Linux® prototype system in order to demonstrate the value of flexible mandatory access controls and how such controls could be added to an operating system. The architecture has been subsequently mainstreamed into Linux and ported to several other systems, including the Solaris™ operating system, the FreeBSD® operating system, and the Darwin kernel, spawning a wide range of related work."

    ReplyDelete
  17. Poza tym przeanalizujmy to dokładnie. Jeżeli instalujesz FreeBSD na serwerze i coś nie działa, to gdzie wtedy kieruje się swoje żale? Otóż pozostaje Ci tyle sam co w przypadku Linuksa, zgłosić błąd, a najprędzej zainstalować starsza wersję lub coś podobnego.
    Poza tym w przypadku Linuksa można sobie wykupić taką 'odpowiedzialność'. Są nią dystrybucje komercyjne. Prawdopodobnie dlatego wiele dużych firm wybiera Linuksa.

    https://www.freebsdmall.com/cgi-bin/fm/support.html

    ReplyDelete
  18. Faktem jest, że używanie FreeBSD na desktopie, to przygoda na miarę wybrania się ferrari na off-road. Nie mniej nie zgodzę się, żeby FreeBSD nie miało swoich zalet w środowisku serwerowym. Na przykład profilowanie nginx'a (i zresztą kilku innych usług), którego nie ma w Linuxie, jaile (łatwość zarządzania nimi i możliwości konfiguracyjne). Zarządzanie stosem TCP/IP w FreeBSD jest o niebo przyjemniejsze niż w Linuxie. Poleceniem ifconfig ogarnia się wszystko w temacie, razem z carpem (który w linuxie powinien się jednak nazywać crap), link aggregation, bridge, etc. Ja IPTables nie rozumiem, za to PFa przyswoiłem w kilka godzin. Nie trzeba wszystkiego kompilować (chociaż można i to łatwo), można skorzystać z pkgng, które od FreeBSD 10 jest out of the box. Środowisko do budowania repozytoriów - poudriere. ZFS to kolejny wielki plus FreeBSD. Policy based routing konfiguruje się w FreeBSD banalnie. NanoBSD, czyli narzędzie do budowania systemów embeded FreeBSD, to kolejna zaleta FreeBSD. I pewnie jeszcze dałbym radę długo wymieniać... Oczywiście nie piszę tego, żeby udowadniać obalaną tu tezę. Bo na przykład we FreeBSD poważnie brakuje mi klastrowego filesystemu, przez co też nie ma potrzeby rozwijania HAST, żeby mógł pracować jako master-master. FreeBSD goni w wielu tematach Linuxa, który siłą wspomnianych argumentów rozwija się nieco szybciej, ale takie funkcjonalności jak BHyVe, VPS, iscsitarget są dowodem na to, że FreeBSD nadrabia.
    Dla mnie osobiście jedynym argumentem mojego szefa za Linuxem w środowisku produkcyjnym jest: "A jak Ty odejrziesz, to gdzie ja, Konrad, znajdę dobrego admina od FreeBSD?" A że ktoś wybrał do zrobienia czegoś Linuxa... no zdarza się :) Force10 zbudował i rozwija swój firmware na NetBSD, Fortinet robi firmware do swoich urządzeń na FreeBSD, Poul rozwija Varnisha na FreeBSD przede wszystkim, podobnie Igor NGINX'a. I w ten sposób dołożyłem swoje trzy grosze do epickiego pojedynku, który będzie się toczył do samego końca jednego z tych systemów.

    ReplyDelete
  19. Kiedy masz 14 lat zaczyna się pierwsza fascynacja czymś innym niż window$, jak masz lat 17, to jesteś w stanie "zabić" za coś w co wierzysz i jesteś temu święcie oddany, nie ważne czy BSD, czy linux. Jak masz lat 20-21, przychodzi pierwszy czas jak dostajesz kubeł zimnej wody na głowę i na uczelni wymagają od ciebie znajomości linuksa, przychodzą pierwsze egzaminy itp. Kolejny dostajesz po skończeniu studiów jak zaczynasz pracę i się okazuje, że firma ma swoje serwery w oparciu o linuksa właśnie i wymagają od ciebie jego znajomości i zarządzania właśnie tymi serwerami.

    Potem zauważasz, że nie masz już czasu na swoje hobby i faktycznie to ten linuks nie jest taki zły jak myślałeś, bo i dzięki niemu masz prace, a i większość rzeczy można zrobić w nim szybciej, prościej u bardziej bezproblemowo. Na koniec stwierdzasz, że jak go już dokładnie poznasz, to Twoje argumenty działające na jego niekorzyść, których używałeś dawno się już zdezaktualizowały i przestały mieć rację bytu.

    Moim ulubionym systemem jest od bodajże 15 lat Debian, którego używam na serwery wraz z Jailem i wieloma innymi mechanizmami jakie opiewano w Free BSD, do tego jądro na maszynach 64bitowych linuksa jest około 20% szybsze niż FreeBSD, a w ekstremalnych sytuacjach nawet lepiej.

    Dla mnie jako administratora największe znaczenie ma wydajność systemu oraz konkretne, narzędzia dzięki, którym mogę szybko skonfigurować maszynę do pracy, potem ewentualnie szybko namierzyć ewentualny problem. Także, że nie muszę się martwić, że mi system nie pójdzie bo w jądrze brakuje jakichś sterowników, a na wybór sprzęty nie mam wpływu.

    To wszystko z nawiązką daje mi Debian, więc po co mi BSD, który da mi co najwyżej to samo? Dla samej idei? Nie neguję Free BSD, prawdziwa wolność, to taka gdzie masz wybór i gdzie używasz tego co Tobie najbardziej pasuje, a nie co Ci na siłę narzuca ktoś inny. W tym drugim przypadku, to żadna wolność, a zwykły totalitaryzm :)

    ReplyDelete
  20. artykuł tendencyjny, Autor drwi z faktu iż książka poświęcona konkretnemu systemowi jest ukierunkowana no jego pośrednią promocję co jest po prostu szyderstwem wobec Autora książki i podważaniem wiarygodności, tytuły poświęcone innym systemom również są pisane w ten sposób gdyż nikt nie naraził by się na pozew o dziaļania na szkodę i nikt by tego z tego względu nie opublikował, no może poza wpisem na blogu... proszę mi pokazać książkę o danym systemie nie opiewającym jego wyższości nad pozostałymi gdy tak naprawdę lepsze jest tylko to czego akurat w danym momęcie potrzebujesz kierując się subiektywną oceną...

    ReplyDelete
  21. Pamiętam wiele książek poświęconych systemowi Linux, a nawet Windows, w których autor nie wywyższał opisywanego systemu w stosunku do innych. Po prostu opisywał ten, który był przedmiotem tematu i tyle.
    Autor bierze odpowiedzialność za to co pisze, to raz, a dwa to o książce tylko co wspomniałem na początku. Cytaty z tego tekstu nie są z książki.

    ReplyDelete
  22. cz. I
    Powyższy wpis jest często czytany przez osoby interesujące się porównaniem tych dwóch systemów, natomiast sam wpis nie jest idealny i nie zawiera wielu przydatnych aspektów porównania. Dlatego pozwolę sobie w tym komentarzu dopisać co nieco.

    Faktem jest, że niemal wszystkie nowinki techniczne wdrażane są w systemie Linux. Jest to Docker, namespaces, wszelkiego rodzaju *Cloud*, SDN, systemd itp. Jednym zdaniem producenci branży sieciowej 'jadą' na tym systemie, nawet Cisco.
    Czy to dobrze? Cóż trzeba w życiu jakoś pogodzić zarabianie pieniędzy z wolontariatem, ale o tym to już wam więcej Bill Gates powie ;) Z przykrością muszę stwierdzić, iż zaczynam dostrzegać pewne negatywne aspekty tej komercjalizacji Linuksa. I tu dochodzę do aspektu ideowego systemu operacyjnego.
    Biznes wymusza charakter rozwoju chociażby jądra. Microsoft stworzył najpopularniejszy system, od początku był on pisany pod sprzedaż. Pozwolę tu sobie zaznaczyć, że to system najpopularniejszy i najmniej zrozumiały zarazem. Dlaczego? Bo wszystko jest tam chowane przed użytkownikiem. W jądro wstawili GUI żeby szybciej działał, z założenia ma sterowniki do wszystkiego i to wszystko aby był miły i łatwy w użyciu. Podobnie zaczyna się podchodzić do sprawy w jądrze Linuksa, rozwija się go aby wszystko szybciej działał, co nie powinno dziwić, ale wszystko ma swoją cenę. Ale po co o tym pisze, a no dlatego, że jest to ze sobą powiązane. Z jednej strony jeżeli chcemy aby Linux był coraz 'lepszy' (no dobra: bardziej zaawansowany) to potrzebuje paliwa (biznesu) ale ten przerabia go pod swoje potrzeby. I teraz piękne pytanie: no dobrze, ale nie da się tego pogodzić? Ah, chyba da hyy... (Borys wytłumacz: myy jakieś 50% ;) ) Trochę trafny i nietrafny przykład zarazem to Solaris, my no tak upadł. Ale tam udało się pogodzić sztukę systemu UNIX z potrzebami, w Linuksie również niby to się udaje ale już nie tak pięknie a dlaczego? Bo Linux jest niczyj, a Solaris miał jednego pana. Co lepsze? To już inne pytanie, mi chodzi o to aby sobie powiedzieć również o wadach sposobu rozwoju Linuksa. Ciekawostka, to co daje teraz systemd w Linuks w Solarisie również był taki super proces nr 1.

    ReplyDelete
  23. cz. II
    Teraz parę słów o FreeBSD. Po pierwsze to jest on starszy od Linuksa, co za tym idzie jego rozwój nie jest taki super dynamiczny ale za to jest stabilniejszy. Z drugiej strony przez to oferuje mniej funkcjonalności. Nie oszukujmy się ale dodawanie i usuwanie tysięcy linii kodu w i tak już skomplikowanym jądrze nie jest oznaką stabilności. Dlatego do poważnych dystrybucji Linuksa wybierane są starsze, sprawdzane wersje jądra TLS. Do jądra Linux dodaje się kod aby imponował kosztem prostoty dokonywania zmian. Odwrotnie jest we FreeBSD. Tu nowe rozwiązania dodaje się później ale w mniej chaotyczny sposób. Dba się bardziej o to aby kod był czytelny, łatwiejszy w przyszłych zmianach. Dlaczego? Przedewszystkim, dlatego, że FreeBSD to system, który powstał w środowisku akademickim i z niego nie wyszedł, a Linuks miał RedHat'a. Dlatego we FreeBSD jądro ma implementacją bliższą podręcznikowej niż business need.
    FreeBSD oferuje świetne jądro i system. Ma własną bibliotekę libc. Jest to świetny system ale w bardziej surowej postaci niż gotowy produkt. Inaczej mówiąc świetnie nadaje się jako baza pod swoje rozwiązania. I to właśnie robi biznes, bierze FreeBSD i buduje urządzenia sieciowe ale system MacOS. Tak Apple świetnie to rozumiało, że użytkownik nie widzi systemu tylko GUI.
    Tak więc FreeBSD to świetny system dla osób, które chcą nauczyć się jak działa system (środowisko akademickie) a zarazem bardzo zaawansowany. Są też firmy wykorzystujące FreeBSD np. Netflix, więc nie to że się nie da, tylko to, że pod Linuksem jest szybciej. Ale nie zawsze szybciej znaczy lepiej ;)
    Dlatego dobrze, że FreeBSD istnieje, bo coś czuje że w przyszłości alternatywa dla Linuksa będzie potrzebna.
    Tak więc FreeBSD to troszkę inny target niż Linux i nie oznacza, to że jeden od drugiego jest lepszy. Gdyby FreeBSD podłapała jakaś firma jak RedHat to również z niego by zrobiła lepszy produkt, właśnie 'produkt' a FreeBSD jest bardziej 'systemem operacyjnym' tym z podręczników.
    Użytkownik inaczej patrzy na system niż twórca systemu. Może zabrzmi to dziwnie, ale czasami lepiej aby system robił co kilka ms wolnej ale za to elegancko niż szybko ale byle jak. Po prostu użytkownik nie rozumie co robi jądro, a handlowiec mu nie powie, że ważniejsze jest to czego nie widzi.
    Aby nie doszukiwać się w mojej wypowiedzi krucjaty przeciw komercjalizmowi polecam poczytac sobie jakąkolwiek książkę o tym jak buduje się systemy operacyjne i będzie wiadome o co mi chodzi. Tak więc FreeBSD jest bliżej tego czym system powinien być, Linux zmierza już w stronę tego czego oczekuje od niego biznes.

    ReplyDelete
  24. Zdaje się, że Wernyhora już kiedyś wróżył, że Linux stanie się windowsem, a FreeBSD pozostanie sobą. :P

    ReplyDelete
    Replies
    1. ta a Nostradamus wywróżył że wszsystkich zmiecie AmigaOS... .


      Delete
  25. Nie wiem czy środowisko BSD powinno piąć się kosztem Linuxa, samo dążąc do kompatybilności z tym drugim. Morał taki że systemy ok, a ludzie do ... .

    ReplyDelete
  26. Wydaje mi się że sprawa jest prostsza, i sprowadza się do licencjonowania. Licencja na jakiej jest FreeBSD pozwala każdemu wykorzystać kod zmienić w nim co che udoskonalić go i nie dzielić się swoimi rozwiązaniami, i czerpać z tego korzyści. To powoduje, że systemy *BSD często stawały się od dawna bazą/platformą programową dla urządzeń wielu firm. Niestety to także powoduje ze wielu programistów nie ma zamiaru marnować swojego czasu i talentu, żeby jakiś cwaniak wykorzystał ich prace dlatego wybierają Linuxa. Licencje typu GPL zmuszają niejako do dzielenia się wprowadzanymi zmianami dlatego Linux rozwija się błyskawicznie.

    ReplyDelete
    Replies
    1. Z przykrością tu się nie zgodze, a czemu z przykrością? A no dlatego że kasa potrafi naginać różne prawa. Dla przykładu takie Cisco, w swoich nowych systemach używają kodu z open source (Linuxa) - a weź ich poproś aby Ci wysłali, gdzie jest kod źródłowy po zmianach. Informują tylko, że używają tego kodu, i gdzieś tam się dobrzebałem e-maila, na który możesz wysłać swoje pytania.
      Kto ma bronić praw do kodu open source? The Linux Foundation!
      Tymczesem Cisco jest ich PLATINUM MEMBERS i płaci im dużo kasy za to.

      Jeszcze odniose się do marnowania talentów, otóż dla utalentowanych wkład w open source jest swego rodzaju certyfikatem. Takich ludzi rynek potrzebuje i docenia. Więc to raczej nie jest strata.

      Natomiast co do niedzielenia się kodem z BSD to też nie prawda do końca. Jeżeli jest to rozwiązanie uniwersalne to zazwyczaj wraca do kodu otwartego. Apple rozwija wiele projektów, np. Clang, Netflix też wiele zmian wprowadza do kodu jądra z dziedziny sieci.

      Delete
  27. Systemy plików są policzalne. Liczba systemów plików, nie ilość.

    ReplyDelete
  28. Dopiero po jakimś czasie skapowałem się że artykuł został napisany w.... 2011r i obecnie pewnie ma tyle wspólnego z rzeczywistością co baśnie braci Grimm.

    ReplyDelete
    Replies
    1. Fakt, wiele rzeczy się zmieniło przez te 11 lat, ale ogólna proporcja za bardzo się nie zmieniła. Nie mniej jeżeli lubisz minimalizm to warto uczyć sie FreeBSD. Natomiast nie warto wszystkiego stawiać na jeden system, tzn. wybrać jeden i używać go do wszystkiego.

      Delete