Co jest dobrego w BSD?

35

Używam Ubuntu z przerwami od Warty Warthog. Myślałem o instalacji Jaunty wkrótce; ale zauważyłem, że w weekend zostały wydane NetBSD 5.0 , Dragonfly BSD 2.2.1 , OpenBSD 4.5 i FreeBSD 7.2 , więc zainteresowałem się:

Co jest dobrego w BSD? Dlaczego powinienem lub nie powinienem instalować jednego z nich zamiast Ubuntu? Jakie są ich główne zalety? Wydajność? Stabilność? Kompatybilność sprzętu? Łatwość użycia? Bezpieczeństwo? Czy działają dobrze na starszym sprzęcie? Co to jest?

Edycja: Jest to z punktu widzenia programisty (głównie Java), ale chciałbym wiedzieć, jakie są wady i zalety innych użytkowników. Czy są bardziej ukierunkowane na serwery? Dla użytkowników korporacyjnych? Albo co?

mmyers
źródło
1
Czy zalety BSD są subiektywne? Jeśli tak, to wyjaśnia, dlaczego osobiście nie znam nikogo, kto próbował. : D
mmyers
17
Co jest dobrego w BSD? Zmiażdż swoich wrogów, zobacz, jak jeżdżą przed tobą, i usłysz lament swoich kobiet.
chaos
1
@mmyers - czy któryś z Twoich znajomych kiedykolwiek korzystał z usługi Hotmail lub Yahoo?
ConcernedOfTunbridgeWells
Um, kilka. Czemu?
mmyers
1
@mmeyers - ponieważ zarówno Hotmail, jak i Yahoo używają FreeBSD jako głównego serwera operacyjnego dla swoich aplikacji internetowych. (Lub przynajmniej Hotmail go używał i od lat nie mogli go przenieść z FreeBSD do Windows - nie jestem pewien, czy nadal tak robią).
ConcernedOfTunbridgeWells

Odpowiedzi:

65

Zalety BSD

Rodzina systemów * BSD ma (IMHO) kilka kluczowych zalet w stosunku do Linuksa, szczególnie dla O / S serwera.

  • Prostota i kontrola: Żadna z dystrybucji * BSD nie ma konieczności dodawania funkcji prezentowanych przez dystrybutorów Linuksa. Dlatego domyślna instalacja większości systemów pochodnych BSD jest stosunkowo prosta.

  • Stabilność: częściowo napędzane przez prostotę, BSD są zwykle jednymi z najbardziej stabilnych platform operacyjnych. FreeBSD (jeden ze starszych „nowoczesnych” BSD) obsługuje wiele dobrze znanych domen .com, takich jak Yahoo i (w pewnym momencie) hotmail. W rzeczywistości w pewnym momencie Microsoft doznał dość zawstydzenia z powodu niemożności migracji Hotmaila z FreeBSD do systemu Windows.

  • Bezpieczeństwo: W szczególności OpenBSD ma bardzo dobre osiągnięcia w zakresie bezpieczeństwa, a duża część ich pracy ociera się o społeczność * BSD w ogóle.

  • Przenośność: W szczególności NetBSD ma porty do kilkudziesięciu platform i wyróżnia się bardzo łatwym przenoszeniem.

Niektóre słabości

  • Mniejsze wsparcie dla dużych konfiguracji SMP niż Linux. Stanie się to większym problemem, ponieważ pudełka z dużą liczbą rdzeni stały się powszechne. Jednak większość aplikacji usług sieciowych, które są tak naprawdę domową domeną BSD, nie jest tak bardzo obciążona procesorem (1).

    Wydajność SMP w jądrach BSD znacznie się poprawiła w ciągu ostatniej dekady. Poprawa wydajności SMP była jednym z głównych celów Dragonfly BSD, a projekt FreeBSD SMPNg znacznie poprawił wydajność SMP na tej platformie, przewyższając Linuksa na platformach 8-rdzeniowych. Oznacza to, że można oczekiwać dobrej wydajności na głównych serwerach z gniazdami 2 i 4.

    Trochę debatyistnieją też wczesne prace nad zapewnieniem obsługi NUMA we FreeBSD, ponieważ system nie obsługuje obecnie interfejsów API do przydzielania pamięci, zarządzania koligacjami lub innych udogodnień dla jawnego wsparcia NUMA. Dobry podkład na wsparcie NUMA można znaleźć tutaj .

  • Mniejszy zakres wsparcia sprzętowego niż Linux: w praktyce oznacza to tylko, że musisz sprawdzić komponenty na liście kompatybilności sprzętu. W przypadku serwera nie jest to w większości przypadków problem, ale instalacja na losowym komputerze stacjonarnym jest nieco bardziej skomplikowana. Nadal musisz wykonać kontrolę poszczególnych komponentów, jeśli chcesz, aby maszyna zainstalowała BSD, co jest mniej prawdopodobne w przypadku Linuksa.

  • Mniej nacisku na pulpit: dystrybucje pulpitu Linuksa (takie jak Ubuntu) mają zwykle bogatszą obsługę pulpitu dla multimediów, emulacji i aplikacji w pakiecie. Podczas gdy wiele takich aplikacji ma porty na różnych platformach BSD, gotowa obsługa z dystrybucji Linuksa na komputery stacjonarne zazwyczaj będzie raczej lepsza.

  • Niektóre luki w oprogramowaniu: Dość dużo komercyjnego oprogramowania Linux nie ma portu BSD. Na przykład żaden z głównych dostawców JVM nie utrzymuje macierzystego portu środowiska wykonawczego java dla żadnej z platform BSD. W niektórych przypadkach strony trzecie utrzymują porty, ale nie ma oficjalnego wsparcia dla (na przykład) Oracle na żadnym BSD. Ten rodzaj luki pojawia się w niektórych miejscach BSD; BSD może nie być platformą dla Ciebie, jeśli pracujesz w przestrzeni, w której istnieje ten typ luki.

Niektóre istotne punkty

  • Jedną z wielkich wojen religijnych lat 90. była GPL vs. BSD. BSD są licencjonowane na podstawie licencji BSD, która ma inny zestaw praw niż GPL. Zasadniczo licencja BSD nie wymaga redystrybucji kodu źródłowego zmodyfikowanych wersji oprogramowania licencjonowanego BSD.

  • Dostawcy komercyjni, tacy jak Oracle, nie wspierają BSD w takim stopniu, w jakim wspierają Linux. Dlatego jeśli chcesz pracować z takim produktem, prawdopodobnie lepiej Ci będzie z Linuksem. Jednak większość oferuje kompatybilność binarną w systemach Linux, System V, Solaris itp., Więc często można uruchamiać pliki binarne dla innego systemu operacyjnego.

  • Społeczności BSD zwykle działają inaczej niż Linux i często są mniejsze (choć w wielu przypadkach nie ma już więcej gentelinu - Theo De Raadt ma reputację nocnika ).

  • Niektóre warianty BSD to produkty niszowe, zoptymalizowane pod kątem konkretnych celów. Na przykład OpenBSD jest specjalnie zoptymalizowany pod kątem zapewniania bezpiecznej infrastruktury sieciowej na komputerach podłączonych do Internetu, przy bardzo dużym wysiłku przy sprawdzaniu luk bezpieczeństwa, takich jak luki w zabezpieczeniach związane z przepełnieniem bufora. Wiele organizacji świadomych bezpieczeństwa używa go właśnie z tego powodu. NetBSD jest zaprojektowany do przenoszenia z portami na dziesiątki platform i jest dość szeroko stosowany w systemach wbudowanych. W przypadku aplikacji w najsłabszym miejscu jednego z tych systemów może to być najlepszy wybór platformy.

Domową domeną * BSD są usługi sieciowe - poczta e-mail i serwery sieciowe, infrastruktura itp. Możesz ustawić idealnie dobry pulpit dla geeków z dowolnym BSD i teoretycznie możesz wyprodukować coś tak ciepłego i puszystego jak Ubuntu. Jednak nie jest to głównym celem większości produktów BSD, chociaż niektóre, takie jak PC-BSD , mają na celu zapewnienie systemów stacjonarnych.

Jeśli chcesz stworzyć trad unixowego maniaka komputerowego, BSD zrobi to tak samo dobrze, jak każdy inny system unix-oid.

  1. Na przykład w erze VAX / 4.2BSD w latach 80. maszyna taka jak VAX-11/750 mogła zapewniać obsługę poczty e-mail dla całego wydziału lub kampusu uniwersyteckiego i prawdopodobnie wykonywałaby również inne prace (choć należy zauważyć, że większość wiadomości e-mail zawierała tylko tekst, a załączniki nie były tak rozpowszechnione jak dziś - napędy dysków używane w tym komputerze zwykle miały pojemność od 120 do 450 MB). Nowoczesny serwer ma 3-4 rzędy wielkości więcej mocy procesora i pamięci oraz podsystem dyskowy z być może o 2 rzędy wielkości większą przepustowością i 3-4 rzędami wielkości więcej miejsca.
ConcernedOfTunbridgeWells
źródło
9
Szczególnie dobre parowanie: OpenBSD i BIND. Gdybym uruchomił publiczny serwer DNS, byłby to BIND na OpenBSD. Serwery DNS są często atakowane, a OpenBSD jest prawdopodobnie najbezpieczniejszym unixem ogólnego przeznaczenia.
Richard Gadsden
2
Fantastyczna odpowiedź. Dodałbym dwa aspekty: BSD jest mniejszy niż Linux (więc może działać w mniejszych środowiskach) i jest lepiej udokumentowany (każde polecenie w FreeBSD ma stronę podręcznika - każdy !)
Mei
3
Słyszałem, że BSD jest tym, co dostaniesz, jeśli poprosisz programistę uniksowego o napisanie systemu operacyjnego na PC, podczas gdy Linux dostaniesz, jeśli poprosisz programistę Windows o napisanie systemu operacyjnego uniksowego.
gbjbaanb
1
Świetna odpowiedź! Kiedy próbowałem różnych systemów operacyjnych, było to linux jak mangrova marsh (nieaktualna niekompletna dokumentacja, wiele różnych niespójnych filozofii), a kiedy próbowałem FreeBSD, to było jak wejście do biblioteki - uporządkowana, jedna spójna filozofia, wszystko udokumentowane ( aktualny!). Może mniej ekscytujące, ale z pewnością łatwe do wejścia.
slovon
3
Nie sądzę, że słuszne jest mówienie o Theo jako o nocniczku. Ma silne opinie i nie jest wobec nich dyplomatyczny, ale nie przysięga. Najbardziej denerwującą rzeczą w Theo De Raadt jest to, że albo ma rację, albo ma rację :-P
DutchUncle
15

Nie uważam BSD za tak dojrzałe jak Linux na pulpicie, ale dla serwerów jest niesamowicie solidny.

To, czy chcesz zainstalować BSD, zależy wyłącznie od tego, do czego używasz urządzenia. Podczas gdy wiele rzeczy jest podobnych do Linuksa, wiele rzeczy jest również różnych.

Jednak tutaj jest przegląd różnych BSD

  • OpenBSD: Jednym z celów poczty jest bycie najbezpieczniejszym systemem operacyjnym (i prawdopodobnie tak jest)

  • NetBSD: Jego motto brzmi: „Oczywiście, że uruchomi NetBSD”. To musi być jeden z najbardziej przenośnych systemów operacyjnych. Wiele osób uruchamia go również na komputerach stacjonarnych.

  • FreeBSD: bardzo popularny na serwerach, chociaż znowu wiele osób uruchamia go na komputerze. Prawdopodobnie najpopularniejsza ze wszystkich BSD

  • DragonFly BSD: Względnie nowy przybysz (2003), był to rozwidlenie FreeBSD 4.8. Sam go nie użyłem, ale najwyraźniej jest stabilny.

Nathan
źródło
5
BSD są jednymi z najbardziej dojrzałych architektur - części bazy kodu 4.xBSD są starsze niż wiele plakatów o błędach serwera. Możesz łatwo stworzyć tradycyjny unixowy pulpit dla maniaków oparty na BSD. Jednak większość nie próbuje produkować stacjonarnych konsumenckich lub biznesowych w taki sposób, jak Canonical z Ubuntu. Bla bla młode bicze ...; -}
ConcernedOfTunbridgeWells
11

W świecie Linuksa brakuje dystrybucji w tym ... spójnym odczuciu. Często są budowane w sposób zdecentralizowany, co prowadzi do tego.

BSD są zwykle zarządzane przez jedną osobę, więc masz wrażenie, że każdy wariant jest produktem, który miał wiele planów. Wszystko działa bardzo dobrze, a wszystkie komponenty są bardzo dobrze udokumentowane. Rzadko znajdziesz kludges.

Stanowi to bardzo solidny fundament, dzięki czemu BSD są łatwą w utrzymaniu platformą, dzięki czemu mogą prowadzić do bezpieczniejszego i łatwiejszego do zarządzania środowiska.

Jestem użytkownikiem Linuksa od 13 lat i chociaż nadal uważam to za realną platformę, przeniosłem wszystkie moje serwery produkcyjne i osobiste na BSD z wyżej wymienionych powodów.

Jednak Linux nadal może być lepszym wyborem dla komputerów stacjonarnych ze względu na najnowocześniejszą obsługę sterowników.

Michael Gorsuch
źródło
1
Właściwie, jeśli chcesz najnowocześniejszej obsługi pulpitu, najlepszą opcją jest uruchomienie BSD lub Linux w VirtualBox na Windowsie ;-)
vartec
@OP, jest to najbardziej przekonujący powód do przejścia z [linux distro] na * bsd
theman_on_osx
1
Lub przejdź do jednej z najlepszych dystrybucji takich jak Slackware;)
voyager
9

BSD jest ogólnie uważane za bezpieczne domyślnie, ponieważ wyłącza wszystkie usługi oprócz podstawowych. Jest również bardzo stabilny, możesz to powiedzieć, patrząc na jedną z wielu usług monitorowania czasu pracy.

Ostrzegamy jednak, że Linux nie jest tym samym co BSD ... istnieje krzywa uczenia się, więc nie oczekuj, że w nią wskoczysz. Na przykład znajdziesz wszystkie podstawowe polecenia, takie jak lsróżne flagi, które na początku mogą być mylące i mogą zająć trochę czasu, aby przełamać stary nawyk używania flag Linux.

Adam Gibbins
źródło
8

* BSD jest kompletnym systemem operacyjnym , co oznacza, że ​​jądro i przestrzeń użytkownika zostały opracowane z tego samego drzewa źródeł, podczas gdy dystrybucje Linuksa są zestawiane razem z różnych źródeł. Właśnie dlatego systemy BSD są bardziej spójne i solidne. Również lepiej udokumentowane.

Ante Gotovina
źródło
8

Kilka kwestii:

Pro (bezpłatny) BSD:

  • Zarządzanie systemem plików / woluminami ZFS
  • Dtrace do śledzenia / analizy
  • Doskonała i łatwa do znalezienia dokumentacja (Podręcznik FreeBSD, FAQ OpenBSD, Strony podręcznika są naprawdę dobre i zawierają przydatne przykłady)
  • Czysty i solidny proces aktualizacji wersji systemu operacyjnego
  • Oddzielenie podstawowego systemu operacyjnego od innego oprogramowania („Kolekcja portów”)
  • Licencja BSD (tutaj nie ma licencjonowanych krzyżowców)
  • Świetny firewall / filtr pakietów: PF (Linux iptables sprawia, że ​​moja głowa eksploduje)

Contra BSD:

  • Produkty wirtualizacji (host VM) nie są obsługiwane (VMware, KVM, Xen, VirtualBox)
Paidhi
źródło
3
Aktualizacja wirtualizacji. Wygląda na to, że FreeBSD zdecydowało się na VirtualBox. Jest teraz w drzewie portów. Więcej informacji tutaj: miwi.bsdcrew.de/2009/06/virtualbox-is-now-available-in-ports wiki.freebsd.org/VirtualBox virtualbox.de/wiki/FreeBSD%20build%20instructions
Paidhi
8

Bardzo mi się podoba /usr/ports. Nie oznacza to, że też mi się nie podoba apt-get, ale miło jest wiedzieć, że twoje instalacje są budowane na konkretnej maszynie, z wszelkimi optymalizacjami, które masz ochotą wrzucić domyślne ustawienia makefile.

Jak wiele z postrzeganej korzyści z tego to przesąd, nie przeprowadziłem badań, aby się dowiedzieć, ale lubię to. :)

chaos
źródło
1
To coś w rodzaju Gentoo? Wygląda na to, że po pewnym czasie może być nudny (to jeden z powodów, dla których nigdy nie próbowałem Gentoo).
mmyers
6
„Portage” Gentoo pochodzi z BSD, podobnie jak inne rzeczy. Jednak większość BSD ma również dostępne pakiety binarne. Na przykład OpenBSD ma zarówno porty, jak i pakiety. W rzeczywistości są one tym samym.
dwc
7

Jako programista Java duża gotcha polega na tym, że nie ma głównego JVM dla * BSD. Przed tym, jak wszyscy mnie wypalą, mam na myśli, że nie ma obecnie wysyłanego JDK od Sun ani żadnego z innych głównych dostawców (IBM, BEA / Oracle), więc zawsze będziesz grał na drugim skrzypku dla użytkowników Linuksa i Windowsa.

Dave Cheney
źródło
Warto wiedzieć. Czy ktoś przenosi OpenJDK czy coś takiego?
mmyers
Tak, sprawdź openjdk.java.net/projects/bsd-port . Jednak ten port nie jest zrobiony i jest mało prawdopodobne, aby był obsługiwany komercyjnie. Pracując dla firmy produkującej oprogramowanie Java, wspieramy Sun JVM, a Bea i JRocket niechętnie. Nie ma możliwości, abyśmy mogli rozszerzyć zasoby pomocy technicznej, aby pomóc komuś, kto chciał uruchomić nasze oprogramowanie na IceTea, Blackdown, GCJ itp.
Dave Cheney
Tak, rozumiem o co ci chodzi. (Nawiasem mówiąc, w pierwszym zdaniu
pominąłeś
Właśnie zobaczyłem ten post „Postęp portu OpenJDK BSD”: robilad.livejournal.com/49303.html .
mmyers
5

Koncesjonowanie

Główną różnicą między BSD a Linuksem jest licencjonowanie.

Możesz wziąć bazę kodu BSD, dokonać dowolnych zmian i rozpowszechnić wynikowy plik binarny, sprzedać go itp., Bez otwierania dokonanych zmian kodu źródłowego.

Jest to bardzo atrakcyjne dla firm takich jak Apple, w których zobowiązania prawne wobec ich akcjonariuszy mogą wymagać od nich zachowania „własności intelektualnej” własności intelektualnej. Na przykład Apple oparło część swojego jądra na FreeBSD.

Tivo nie miałoby (drobnych) problemów z licencjonowaniem, które ucierpiały lata temu, gdyby były oparte na BSD, a nie na Linuksie.

Kilka praktycznych różnic

  • BSD nie są tak popularne jak Linux, więc nie mają sterowników do najnowocześniejszego sprzętu.
  • Istnieje mniej BSD niż dystrybucje Linuksa i są one bardzo dobrze zdefiniowane, więc ogólnie wiesz, kiedy powinieneś używać jednego nad drugim.
  • Wszystkie koncentrują się bardziej na stabilności niż na wielu innych czynnikach, dlatego często są stosowane w sytuacjach o wysokiej niezawodności.

-Adam

Adam Davis
źródło
1
+1. Benchmarkingowa prawda jest taka, że ​​bsds nie są tak dobre i wciąż brakuje wielu funkcji jądra, które mają już Linux i Solaris. Licencja bsd jest najlepszą (lub najgorszą) częścią bsd.
Tim Matthews
Zaletą testów porównawczych jest to, że jest ich tak wiele do wyboru. Do zadań sieciowych / filtrowania użyłem BSD z lepszymi wynikami niż Linux --- do modelowania numerycznego, użyłem Linuksa lub Solarisa z pakietem kompilatorów Sun Studio ... wszystko polega na ustaleniu, co jest najlepsze narzędzie do pracy.
Bill B,
4
Byłoby miło zobaczyć jakiś dowód na to stwierdzenie: „Prawdą benchmarkingu jest to, że bsds nie są tak dobrymi wykonawcami ...”
Josh Brower
1

Bezpieczeństwo, bezpieczeństwo i jeszcze raz bezpieczeństwo.

Kazimieras Aliulis
źródło
1

Oprócz wszystkiego, co już wspomniano, chciałbym dodać, że dokumentacja jest bardzo dobra. Strony man (1) są doskonałe!

pfo
źródło
0

BSD (Berkeley Software Distribution) znany ze swojej stabilności: FreeBSD,
bezpieczeństwo: OpenBSD
i obsługa wielu platform: NetBSD

Ali Mezgani
źródło