Linux okiem użytkownika FreeBSD.
Witam wszystkich, jest to mój pierwszy wpis na Blogu i mam nadzieję, że nie ostatni ale przyznam szczerze, że ja leniwy jestem jeśli chodzi o takie rzeczy, jednak po części do tego wpisu zmotywował mnie iacobus i chciałbym się również podzielić swoimi wrażeniami i przemyśleniami na temat systemów opartych na jądrze Linux oraz FreeBSD :)
Linuksa używam od około 4 lat a ogólnie użytkownikiem komputera jestem od około 6 lat, więc ten system znam o wiele lepiej niż MS Windows. Użytkownikiem FreeBSD jestem od kilku tygodni. Ponieważ użytkowników Windowsa jest znacząca ilość każdy potrafi spojrzeć obiektywnie bądź subiektywnie na systemy oparte o jądro Linux i wyciągnąć wnioski, jednak już garstka ludzi może ocenić ze swojej perspektywy oba systemy operacyjne. Skupię się tutaj na kilku rzeczach, które przedstawię krótko w punktach.
1. Instalacja systemu.
O ile w dowolnej dystrybucji Linuksa proces instalacji może być prosty lub skomplikowany to instalacja FreeBSD może spędzić sen z powiek, choć z pomocą przychodzi PC‑BSD, które jest niejako zmodyfikowanym systemem FreeBSD a cała modyfikacja polega na udostępnieniu graficznego instalatora, instalacji środowiska graficznego KDE oraz własny menedżer pakietów i pakiety binarne PBI łatwe w instalacji, tak poza tym ten system niczym więcej się nie różni od systemu bazowego. Obecnie od wersji PC‑BSD 8.0, bazującej na FreeBSD 8.0‑Release można wybrać system, który chce się zainstalować, czyli PC‑BSD lub FreeBSD i użytkować graficzny instalator. Podsumowując, instalacja FreeBSD może być dla niektórych wyzwaniem choć jest możliwość skorzystania z graficznego instalatora PC‑BSD ale gdy się z tym człowiek już opora to cała reszta powinna pójść już z górki.
Tutaj zdecydowaną zaletą Linuksa jest dostępność wielu dystrybucji z graficznym instalatorem, ułatwiającym instalację tegoż systemu.
2. Konfiguracja systemu.
Zaraz po instalacji wypadałoby zainstalować środowisko graficzne, jeśli się tego nie zrobiło podczas instalacji systemu, np. z płyty DVD bądź bezpośrednio z serwera FTP. Gdy system został już wzbogacony o upragniony graficzny interfej użytkownika nie wymaga on specjalnej i szczegółowej konfiguracji no ale przecież po to się człowiek męczy z instalacją tego systemu aby go dopieścić, no nie?
Konfiguracja całego systemu odbywa się praktycznie w jednym pliku z małymi wyjątkami, mianowicie w /etc/rc.conf. Tu podaje się konfigurację dotyczącą kodowania znaków w terminalu czy konsoli, lokalizacje, włącza się daemony (usługi systemowe), które są potrzebne, np. HAL, DBus potrzebne do obsługi myszki i klawiatury w środowisku graficznym, czy uaktywnia zaporę sieciową i ustawia reguły. Każdy plik konfiguracyjny czy to rc.conf czy inny posiada swoje wersje przykładowe, które są szczegółowo opisane, co prawda po angielsku, więc człowiek przy okazji może nauczyć się tego języka.
Oprócz tego w plikach /boot/loader.conf decyduje się jakie moduły mają być ładowane podczas uruchamiania systemu lub w /etc/make.conf ustala się flagi kompilacji oraz rodzaj procesora pod jaki kompilowany ma być system, np. pod nasz własny lub dla kogoś, tzw. kompilacja skrośna (cross-compiler ).
Co prawda Linux może działać zaraz po instalacji ale niekiedy zdarza się, że trzeba konfigurować kilka plików w /etc, przykładem jest chociażby Grub2, którego pliki konfiguracyjne zostały rozbite na kilka mniejszych a bootloader FreeBSD konfiguruje się w jednym pliku /boot/loader.conf.
3. Użytkowanie systemu.
Użytkowanie systemu FreeBSD może również nie należy do najłatwiejszych, choć ja osobiście uważam, że to brak wiedzy sprawia trudność. Jak to kiedyś pewien mój nauczyciel powiedział (być może kogoś cytował), gdy kolega po sprawdzianie narzekał na trudne pytania: "nie ma trudnych pytań co najwyżej są pytania, na które nie zna się odpowiedzi" i tak samo jest z użytkowaniem systemu - brak wiedzy stwarza wrażenie trudności. Pomimo, że oba systemy mają cechy wspólne to jednak na początku w nowym systemie czułem się trochę zagubiony, tak samo jak kiedyś czułem się zagubiony w Linuksie po przesiadce z Windowsa ale to już minęło. Skąd w takim razie czerpać wiedzę? Źródeł jest wiele, zaczynając od szczegółowo opisanego podręcznika w oryginalnej wersji językowej, czyli angielskiej a dla osób nie posługujących się tym językiem przetłumaczono podręcznik na nasz język ojczysty, co prawda nie został on w całości przetłumaczony ale to co najważniejsze jest dostępne w języku polskim a nie przetłumaczona jest ta bardziej zaawansowana obsługa systemu, raczej mało komu specjalnie przydatna. Ponadto istenieje masa poradników.
FreeBSD stosuje kilka rozwiązań do wykonywanych czynności. Instalacja czy aktualizacja programów zarówno z pakietów jak i portów nie sprawia większej trudności. Wykonywanie pewnych czynności jest wygodniejsze, np. aktywacja karty dźwiękowej w Linuksie wymagała instalacji Alsy i jej konfiguracji co twórcy Alsy jeszcze bardziej skomplikowali czy korzystanie z karty do obsługi sieci bezprzewodowej. We FreeBSD wykonałem te czynności w niecałe 2 minuty a wystarczyło załadować moduł ręcznie do obsługi mojej karty lub dodać wpis do /boot/loader.conf oraz kompilacji i załadowania modułu do obsługi karty sieciowej, można tak samo również dodać wpis do wspomnianego pliku, całość zajęła jak pisałem ok. 2 minut, sama kompilacja trwała nie dłużej jak 30 - 40 sekund ;) W Linuksie tego typu rzeczy zajmowały mi po kilka minut i było to strasznie niewygodnie, szczególnie konfiguracja Alsy.
Rzadko się zdarza aby wymagana była własnoręczna kompilacja jądra, przeważnie podczas aktualizacji systemu do nowszej wersji albo gdy potrzeba wkompilować dodatkowe moduły (sterowniki), jednak jest to również łatwa i przyjemna czynność i moim zdaniem również łatwiejsza i wygodniejsza niż kompilacja jądra Linux ale to już zależy od tego jakie kto rozwiązanie preferuje ;)
Z zaporą sieciową specjalnie też nie trzeba się męczyć. O ile w Linuksie wypadałoby przygotować sobie jakiś skrypt z własnymi regułami filtra pakietów we FreeBSD wystarczy w pliku /etc/rc.conf określić już gotowy profil dla zapory, np. profil Client blokuje cały ruch sieciowy i przepuszcza jedynie pakiety z połączeń nawiązanych. Gdyby ktoś jednak chciał zdefiniować własne reguły to nie jest to również jakiś skomplikowany proces w porównaniu z na przykład IPTables, w przypadku Ipfw wystarczy znać praktycznie język angielski i podstawy na temat ruchu sieciowego. Dla przykłądu, chcąc blokować daną stronę internetową wyglądałoby to tak:
IPTables
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
Ipfw
ipfw add deny ip from xxx.xxx.xxx.xxx to any
gdzie: xxx.xxx.xxx.xxx to blokowany adres IP.
Gdy skonfiguruje się już system cała reszta sprowadza się już tylko jego codziennego użytkownia.
4. Wsparcie społeczności.
Dla każdego użytkownika jest to dość ważne. W przypadku systemów Microsoftu jest o tyle lepsza sytuacja, że prawie każdy ma go na swoim komputerze, więc gdy coś nie działa można poprosić kolegę, koleżankę, sąsiada lub ich syna, córkę albo po prostu kogoś kto się na tym zna aby pomógł rozwiązać problem z systemem. W przypadku Linuksa jest z tym już gorzej, ponieważ z racji mniejszej liczby użytkowników tego systemu ciężko spotkać wielu osobom kogoś kto przyszedłby do domu osobiście rozwiązać problem a informatyka nie opłaca sie wzywać, bo często każą płacić sobie więcej niż za naprawę Windowsa a po kilku takich wizytach mielibyśmy już odłożone pieniądze na Windowsa, więc tu trzeba szukać pomocy na forach dyskusyjnych. Linux wszem i wobec reklamuje się jako przyjazny użytkownikowi ze wsparciem społeczności, którzy z chęcią służą pomocą. Brzmi fajnie ale jak jest to każdy wie, bywa z tym różnie, większość pomaga ale zdarza się, że ktoś ma zły humor i odsyłą na Google albo jeszcze ochrzani i taki początkujący może czuć się oszukany tak samo jak człowiek czuję się zawiedziony, że proszek do prania nie jest tak idealny jak to pokazują w reklamach.
Ja jestem osobą, które grzebie głeboko w Googlach do upadłego a nawet jeśli nie mogę czegoś znaleźć to daję sobie z tym spokój, bardzo rzadko pytam o rozwiązanie na forum, ponieważ nie lubię prosić o pomoc i chcę każdy problem rozwiązać sam, jakoś taki już jestem i często zdarza się tak, że na rozwiązanie mojego problemu trafiam zupełnie przez przypadek. Jednak chcąc zdobyć wiedzę wertuję podręczniki, tutoriale, odwiedzam fora czytam FAQ's, HowTo's i rozwiązania problemów innych użytkowników tym samym rozwiązując problemy swoje i zdobywając wiedzę. Po co o tym piszę? Ano po to, ponieważ zauważyłem pewną istotną rzecz, na którą chciałbym zwrócić szególną uwagę. Jak już pisałem wcześniej, gdy użytkownik Linuksa ma zły dzień i nas ochrzani lub odeśle na Google to mówi się, że użytkownicy Windowsa są bardziej pomocni, bardziej uprzejmi itd. a guzik prawda ich jest więcej i sprawiają tylko takie wrażenie a potrafią mieć tak samo zły dzień i odesłać na Google. Natomiast w przypadku użytkowników BSD nie spotkałem się jeszcze z takim przypadkiem do dziś, każdy jest pomocny, mało kto odsyła do wyszukiwarki, jeśli problem pojawiał się wielokrotnie podawane są linki do poradników, rozwiązań itp. Nie spotkałem się jeszcze z nieuprzejmością i uważam, że ta grupa użytkowników jest na prawdę pomocna i opanowana. Czyżby mieli świadomość, że systemy BSD nie są takie łatwe i nie każdy potrafi od razu wszystko zrobić?
Na koniec dodam jeszcze, że niektórzy uważają iż system ten nie nadaje się zbytnio na desktop a jako argument co niektórzy podają nwet brak dedykowanej wtyczki do obsługi technologii Adobe Flash i winią za to FreeBSD, argumetując że jest za mało popularny, tylko kurza twarz, zastanawia mnie dlaczego Opera Software wydaje swoją przeglądarkę na ten system skoro nie nadaje się na komputer domowy? Wśród tych użytkowników większość to użytkownicy Linuksa, Ci z którymi miałem okazję o tym dyskutować miałem wrażenie, że są wręcz wrogo nastawieni nie tylko do Windowsa ale również do FreeBSD, tak jakby nic poza Linuksem się dla nich nie liczyło. Czyżby fanatycy?
Podsumowując ostatni punkt, z moich obserwacji wnioskuję, że użytkownicy Linuksa na prawdę powinni zmienić swoje podejście do innych i brać przykłąd z "bsdowców" :)