Poniższy materiał powstał w oparciu o The Practical Manager's Guide to Linux. Can you profitably use Linux in your organization? napisany przez Genesha C. Prasada (http://www.osopinion.com/Opinions/GaneshCPrasad/GaneshCPrasad2.html)
Patrz także inny artykuł tego autora: Open Source-onomics: Examining some pseudo-economic arguments about Open Source (http://www.freeos.com/articles/4087).
Plusy Linuksa
Minusy Linuksa
Wg danych dostępnych w prasie fachowej w ciągu ostatnich kilku lat Linux (system operacyjny znikąd?) opanował około 20% rynku serwerów i jego udział wzrasta bardzo szybko (w 1999 r. notowano wzrost na poziomie 210%).
Znaczenie Projektu GNU i Free Software Fundation (stworzonej przez Richarda Stallmana w 1984 r.) dla sukcesu Linuksa.
Linux jest darmowym oprogramowaniem, ale dla poważnych instytucji i przedsiębiorstw liczą się nie tylko koszty samego oprogramowania, ale także koszty wsparcia. To wsparcie nie jest darmowe. Coraz więcej firm, w tym tacy potentaci jak IBM i HP oferują swoim klientom wsparcie linuksowe w systemie 24/7 (np. roczna cena wsparcia telefonicznego i e-mailowego oferowanego przez HP wynosi około 1500$).
Darmowość (niską cenę) Linuksa jako ogromną zaletę dostrzega się wyraźnie wówczas, gdy trzeba instalować to oprogramowanie na dziesiątkach i setkach komputerów. Można go powielać w dowolnej liczbie kopii. Przeciwnie, w pełni skonfigurowany serwer NT (www, ftp, e-mail, narzędzia programistyczne, baza danych) kosztuje około 4000-5000$. Do tego trzeba doliczyć koszty licencji na stacjach klienckich.
Dodatkową zaletą Linuksa jest to, że można go stosować na starszym sprzęcie, co zmniejsza koszty upgrade'ów (kolejne wersje SO Windows wymagają silniejszych maszyn).
Jako wadę Linuksa podnosi się koszty związane z jego administrowaniem (Linux is free only if your time is worthless). Dostępność takich narzędzi konfiguracyjnych jak control-panel, linuxconf zdecydowanie ułatwia konfigurowanie i administrowanie systemem Linux, co pociąga za sobą zmniejszenie tych kosztów.
Rząd Meksyku postanowił wyposażyć około 140 tys. szkół w komputery. Zrezygnowano z zakupu systemu Windows, co doprowadziło do oszczędności rzędu 120mln $.
Oczywiście niewielu użytkowników gotowych jest modyfikować oprogramowanie. Tym niemniej ważne jest, że taka możliwość istnieje i w razie potrzeby można to zlecić wyspecjalizowanej firmie sofware'owej.
Linux można łatwo dostosować do wymagań i potrzeb mniejszościowej grupy użytkowników. Np. grupa islandczyków chciała opracować na potrzeby tej społeczności islandzką wersję językową Windowsów. Niestety, z uwagi na mały rynek firma MicroSoft nie była zainteresowana dokonaniem odpowiednich przeróbek, a także odmówiła udostępnienia kodów źródłowych, żeby mogli zrobić to ochotnicy. Natomiast istnieje islandzka wersja środowiska KDE!
Zatem w przypadku Linuksa użytkownicy mniejszościowi nie są skazani na laskę dużego (monopolistycznego) producenta oprogramowania.
Korzystanie z Linuksa i wolnego (free) oprogramowania zwalnia ich użytkowników z troski o zachowanie warunków licencji (kontrolowania, czy np. nie zostały niechcący złamane warunki licencji przez przyłączenie dodatkowych użytkowników).
Zaleta takiego rozwiązania stanie się tym bardziej oczywista, jeśli Microsoft zastąpi jednorazowe opłaty licencyjne opłatami rocznymi za użytkowanie ich produktów.
Stabilność Linuksa jest pochodną zasad jego konstrukcji jako systemu operacyjnego Unix, który jest systemem używanym od 30 lat i w związku z tym nieźle przetestowanym. Przeciwnie, obecnie używane systemy Windows 95/98 a nawet (w mniejszym stopniu NT) są pochodną systemu MS-DOS budowanego dla komputerów o innej architekturze i kompromisy poczynione wówczas są w dalszym ciągu obecne w systemach operacyjnych używanych dzisiaj, z uwagi na konieczność zachowania wstecznej zgodności. Np. aplikacje 16-o bitowe można wykonywać pod Windows 95/98, ale nie jest to już możliwe pod Windows NT, dzięki czemu system ten wykazuje zdecydowanie lepszą stabilność niż jego poprzednicy.
Dodatkowo, dostęp do źródeł Linuksa sprawia, że kod może być analizowany przez wielu, wielu programistów i ew. zauważone/wykryte usterki są szybko usuwane.
Nawet IBM na swoich stronach www oznajmia, że Linux jest stabilny, funkcjonalny i wartościowy (stable, functional and offers value).
Wykonano wiele testów porównując wydajność systemu operacyjnego Linux oraz Windows NT. Wynika z nich, że Linux nie tylko jest lepszy na maszynach jednoprocesorowych, ale także na systemach wieloprocesorowych. Jest to o tyle ciekawe, że system Windows NT powinien się lepiej skalować z uwagi na swoją architekturę wielowątkową. Wydaje się, że rozwidlanie procesów w Linuksie jest na tyle efektywne, że może on konkurować z wielowątkowością. W tej chwili system operacyjny Linux jest już także systemem wielowątkowym.
Powód większej wydajności Linuksa zdaje się mieć swoją przyczynę w całkowicie różnej od Windowsów obsłudze grafiki. Graficzny interfejs użytkownika jest w Uniksie traktowany jako jeszcze jedna aplikacja użytkownika i, jeśli nie jest potrzeby, może nie być używany. Ten system w żaden zasadniczy sposób nie jest związany z jądrem systemu, może być całkowicie wyłączony, jako aplikacja zużywająca sporo zasobów systemu.
Projekt systemu Windows zakłada ścisłe powiązanie systemu okienkowego z systemem operacyjnym, co jest zrozumiałe z uwagi na genezę tego systemu jako systemu dla komputerów biurkowych (desktopów).
Z definicji Linuksa jako systemu opartego o otwarty kod, nie może on posiadać żadnych cech właściwych dla oprogramowania objętego prawami własności (propriatory features). To z kolei oznacza, że w naturalny sposób Linux stara się bazować na standardach przemysłowych. Linux jest systemem operacyjnym zgodnym z POSIX, jego podsystemy wspierają standardy ANSI, ISO, IETF, W3C. Ale trzeba przyznać, że Linux nie jest systemem certyfikowanym.
Niestety, występuje pewien brak standaryzacji pomiędzy różnymi dystrybucjami Linuksa. Różnią się one dołączanymi aplikacjami, wersjami pakietów oprogramowania, programami instalacyjnymi i użytkami (utilities), narzędziami wspomagającymi administrowanie systemem oraz położeniem niektórych plików systemowych.
Linux zrealizował marzenie twórców Uniksa, aby stworzyć system operacyjny niezależny od sprzętu. Linux może pracować na maszynach z procesorami nie tylko Intela x86, ale także Motorola 68k, IBM/Apple/Motorola PowerPC, Compaq/Digital Alpha, procesorach MIPSa, SPARC/UltraSPARC Suna, PA-RISC (HP), RISC, CISC (32 oraz 64 bitowych). Linux został także wykorzystany jako system operacyjny dla przystawek do telewizorów oraz samochodowych odtwarzaczy plików mp3.
W chwili obecnej Linux nie wspiera tak dużej liczby kart rozszerzeń co Windows, ale dostarcza już mechanizmu Plug and Play. Pojawiło się także wsparcie dla USB.
Linux w połączeniu z serwerem stron WWW Apache stanowi wyposażenie wielu serwerów internetowych. Moduł mod_perl pozwala na to, żeby skrypty CGI napisane w Perlu mogły być interpretowane i wykonywane w przestrzeni adresowej Apache'a bez konieczności uruchamiania osobnych procesów. mod_jserv pozwala używać servletów Javy. Oprócz tego istnieje moduł mod_ssl, który użyty w połączeniu z pakietem SSLeay wyposaża Apache'a w SSL oparte o 128-o bitowy klucz. To pozwala wykorzystywać te serwery do e-biznesu bez ponoszenia dodatkowych kosztów.
Linux z jądrem w wersji 2.4.x (2.2.x) wspiera tworzenie zapór ogniowych w oparciu o pakiet iptables (ipchains), którego konfiguracja jest możliwa poprzez interfejs graficzny.
Linux jest standardową platformą w oparciu o którą można zbudować w zupełności bezpieczny Internet site włączając w to router, zaporę ogniową, serwer buforujący strony www, serwer www, serwer poczty elektronicznej, serwer grup dyskusyjnych oraz serwer katalogów.
Linux może zostać wykorzystany jako emulator Windowsów dzięki sambie działając jako serwer plików i serwer drukarkowy. Pozwala to stworzyć całkowicie sieć windowsową bez konieczności instalowania serwera NT i płacenia za licencje dla klientów windowsowych.
Dostępne są także dobre emulatory systemu Windows takie jak Lin4Win, a także program vmware, który pozwala na uruchamianie pod Linuksem innych systemów operacyjnych, w tym Windows 95/98 NT oraz 2000.
Z uwagi na swoją konstrukcję (wydzielenie trybów użytkownika i nadzorcy) system Linux (Unix w ogólności) jest odporny na ataki wirusów. Podobnie jak do pewnego stopnia Windows NT.
Silną kryptografię na potrzeby serwera www można zrealizować w oparciu o wspomniany już moduł mod_ssl oraz SSLeay (SSL Package rozwinięty poza granicami USA). Dostępne są także pakiety pgp (Pretty Good Privacy) oraz GNU pg (GNU Privacy Guard), aby umożliwić szyfrowanie i elektroniczne podpisywanie wiadomości.
Ta nieprzyjazność przejawiająca się w konieczności używania terminala tekstowego i dziwnych komend ustąpiła z chwilą pojawienia się takich graficznych środowisk pracy jak KDE czy Gnome. Są jednak zastosowania, gdzie użycie terminala i komend jest wysoce wskazane, gdyż pozwala zestawiać komendy w potoki, wykonywać całe programy zapisane w postaci skryptów powłoki (sh, csh, tcsh, bash, Perl, Tcl, Phyton). Te możliwości mają ogromne znaczenie przy administrowaniu serwerem, a w połączeniu z usługą cron i możliwością zdalnego zarządzania niezmiernie ułatwiają wykonywanie i automatyzację tych zadań.
W ciągu ostatnich dwóch lat nastąpił ogromny postęp, gdy chodzi o uproszczenie procesu instalacyjnego Linuksa. Programy instalacyjne takich dystrybucji jak Red Hat czy SuSE umiejętnie wykrywają sprzęt (w tym rodzaj karty graficznej i monitora) i przy niewielkiej pomocy użytkownika przeprowadzają instalacje w ciągu kilkunastu do kilkudziesięciu minut (w zależności od liczby instalowanych pakietów). Dla niedoświadczonego użytkownika problemem pozostają kwestie partycjonowania dysku i montowania systemu plików, ale z chwilą, kiedy producenci komputerów zaczną oferować swój sprzęt z preinstalowanym systemem operacyjnym Linux (jak np. Dell) ten problem też zniknie.
Nawet pobieżna lektura czasopism komputerowych i przegląd oferowanego oprogramowania na dołączonych płytach CD-ROM skłania do wniosku, że liczba programów dla Linuksa jest o wiele mniejsza niż to co jest dostępne dla systemów Windows. W szczególności uwaga ta dotyczy gier komputerowych oraz wielu programów użytkowych. Sytuacja ulega jednak stopniowej zmianie. Już obecnie dystrybucja Linux SuSE mieści się na 6 płytach CD-ROM zawierających system operacyjnych oraz tysiące programów w wersjach binarnych i źródłowych. Są w śród nich wspomniane wyżej programy internetowe (serwery www, ftp, poczty elektronicznej, grup dyskusyjnych, oraz ich klienci, itp.), edytory tekstu (vi, emacs, Wordperfect), narzędzia programistyczne (kompilatory C, C++, Fortranu, Pascala, debugery, języki skryptowe), program do obróbki grafiki GIMP (GNU Image Manipulation Program), pakiet biurowy StarOffice, programy do robienia rysunków, diagramów, wykresów, składu tekstu, obróbki plików postscriptowych, narzędzia do archiwizacji, program do obsługi wysyłania i przyjmowania faksów, programy bazodanowe, emulatory Windows, itp.
Sytuacja i w tym względzie ulega gwałtownej poprawie. Z jednej mamy The Linux Documentation Project (metalab.unc.edu/LDP), czyli ambitne przedsięwzięcie, aby dostępna w Internecie dokumentacja była aktualna, by dotrzymywała kroku szybko rozwijanym i wzbogacanym dystrybucjom. Wiele informacji można znaleźć w The Linux HOWTOs (metalab.unc.edu/LDP/HOWTO/HOWTO-INDEX.html) oraz na stronach podręcznika The Linux ``man'' pages (ftp.win.tue.nl/pub/linux/docs/manpages). Ukazuje się także wiele publikacji książkowych poświęconych Linuksowi. Niestety, większość materiałów jest dostępna w języku angielskim, chociaż czynione są próby stworzenia jej innych wersji językowych (w Polsce dzieje się to w ramach projektu Jak to zrobić (www.jtz.org.pl). Problem jest nieco łagodzony łatwą dostępnością czasopism, które poświęcone są omawianiu zagadnień i problemów towarzyszących korzystaniu z Linuksa.
Sposób powstawania Linuksa nie sprzyjał wyposażania go w elementy i cechy właściwe dla systemów operacyjnych obsługujących największe, wieloprocesorowe serwery. W raz z pojawieniem się jądra w wersji 2.2 stało się możliwe korzystanie z Linuksa na maszynach wieloprocesorowych, posiadających 4 i więcej procesorów. Pokonano także ograniczenie na wielkość wirtualnej pamięci operacyjnej, którą system może zaadresować (4GB). Linux obsługuje także macierze dyskowe (RAID) tworzone zarówno programowo jak i sprzętowo. Nie jest możliwe jednak tworzenie na jednej wieloprocesorowej maszynie domen działających w ramach różnych systemów operacyjnych, brak wsparcia dla ccNUMA (Cache-Coherent Non-Uniform Memory Access). Z uwagi na rosnące zaangażowanie wiodących producentów sprzętu komputerowego i oprogramowania (IBM, SGI, HP) oraz firm takich jak Red Hat, czy SuSE, w rozwój Linuksa można mieć nadzieję, że już ma on szansę stać się konkurencją dla takich wersji Uniksa jak AIX, Solaris, IRIX.
W stosunku do Linuksa podnosi się często takie zastrzeżenie: ,,Jeśli źródło systemu jest powszechnie dostępne, to włamywacze będą mogli łatwiej się do systemu dostać''.
Można łatwo wykazać, że powyższe stwierdzenie jest błędne, bo opiera się na (błędnej) zasadzie, że bezpieczeństwo daje się osiągnąć przez zachowanie tajności (security through secrecy). Rzecz ma się zupełnie przeciwnie, jak łatwo zobaczyć na przykładzie oprogramowania do szyfrowania DES (i jego pochodnych), którego działanie jest znane. Dzięki temu, że ten schemat był przez ostatnich około 20 lat intensywnie badany i łamany wiadomo, że nie zawiera żadnych poważnych usterek, które mogłyby narazić na problemy jego użytkowników. Otwartość oprogramowania powinna być uważana za istotną jego zaletę, gdyż dzięki można je poprawić w drodze dokładnej analizy, czy ataku. System zamknięty nie może być w ten sposób badany i wszelkie jego słabości mogą pozostawać ukryte przez długi czas, aż wykorzysta je jakiś włamywacz.
Zaletą oprogramowania otwartego jest również to, że ujawnione słabości jego fragmentów bywają usuwane dosłownie w kilka godzin od ich ujawnienia na listach dyskusyjnych.
Jeśli brać pod uwagę standardy przemysłowe, to w dalszym ciągu to stwierdzenie jest w dużej mierze słuszne. Z chwilą jednak jak firmy komputerowe, takie jak IBM, HP, Compaq, Dell, itp. zorientowały się, że klienci chcą korzystać z Linuksa nie tylko zaczęły dostarczać swój sprzęt z preinstalowanym Linuksem, ale także oferować odpowiednie wsparcie techniczne dla jego użytkowników. Także firmy zajmujące się przygotowywaniem dystrybucji oferują wsparcie techniczne, gorące linie itp. usługi. Pojawiają się na rynku także inne firmy oferujące tego typu pomoc. Jako konsekwencja takiego stanu rzeczy został w umysłach użytkowników rozerwany związek między opłatami licencyjnymi za system operacyjny oraz opłatami za jego serwisowanie.
Jeśli za rozwojem otwartego oprogramowania nie stoi żadna firma, to kogo skarżyć w sytuacji, gdy oprogramowanie źle działa i w wyniku jego użycia powstają wymierne straty?
Oczywiście Linux, tak jak i inne oprogramowanie typu otwarte źródło jest udostępniane bez żadnych gwarancji poprawnego funkcjonowania. Czy takie gwarancje są zawarte w licencjonowanym oprogramowaniu. Trzeba tutaj przypomnieć o błędzie wykrytym jakiś czas temu w oprogramowaniu Access firmy Microsoft, który polegał na tym, że w bardzo rzadkich przypadkach dane wprowadzane przez użytkownika mogły być dopisywane do złego rekordu. Czy MS mógł być oskarżony o dostarczenie wadliwego oprogramowania? Nie, gdyż w umowie licencyjnej była zawarta klauzula, że producent nie odpowiada za uszkodzenie danych spowodowane wadliwym funkcjonowaniem oprogramowania. Faktycznie, żaden producent sprzętu i oprogramowania nie bierze odpowiedzialności za integralność danych użytkownika.
Zatem, jeśli komercyjni producenci oprogramowania nie gwarantują lepszej prawnej ochrony niż producenci wolnego oprogramowania, to stosowanie Linuksa nie przyczynia się do zwiększenia ryzyka.
Podobno jest nieco ponad 230 wariantów Uniksa. Czy nie należy się obawiać, że Linux podzieli ten sam los? Na przeszkodzie temu stoi licencja GPL, która uniemożliwia zmodyfikowanie Linuksa i przywłaszczenie sobie tych modyfikacji. Linux rozwija się poprzez ciągły proces podziału (forking) i ponownego łączenia. W ten sposób wprowadza i sprawdza się nowe możliwości i elementy. Najlepsze rozwiązania są następnie dodawane do stale rozwijanego systemu, który powstaje wspólnym wysiłkiem całej rzeszy programistów i użytkowników (którzy zmiany testują na sobie).
To oczywiście nie oznacza, że nie będzie różnych dystrybucji Linuksa. Wszystkie one jednak opierają się na tych samych źródłach systemu operacyjnego i programów użytkowych. Różnią się tylko ich organizacją, układem katalogów, narzędziami konfiguracyjnymi, zestawem dołączanych pakietów oprogramowania.
Kiepska reputacja oprogramowania typu freeware może pochodzić stąd, że często tworzone jest przez pojedynczych programistów-zapaleńców, którzy udostępniają innym niedokończony, zawierający błędy, program. Internet zasadniczo zmienił sposób pracy programistów, umożliwił powstanie zespołów programistów (zapaleńców), którzy mimo geograficznego oddalenia mogą pracować razem nad wspólnym projektem. Wśród nich są często ludzie, którzy zawodowo trudnią się programowaniem i pracują w renomowanych firmach produkujących oprogramowanie. W wolnym jednak czasie próbują realizować swoje marzenia, pomagają innym, wspierając takie przedsięwzięcia jak Linux, KDE, czy wiele, wiele innych. Kontrola jakości jest z jednej strony wymuszana przez takich właśnie ludzi, którzy piszą oprogramowanie spełniające podstawowe wymogi jakości. Z drugiej strony oprogramowanie tak tworzone jest czytane, komentowane, używane i poprawiane przez im podobnych, więc zyskuje stopniowo na jakości (podobnie dzieje się w nauce, gdzie jakość jest wymuszana przez procedurę peer review).
O jakości otwartego oprogramowania może się przekonać każdy korzystając z takich m.in. produktów jak edytor emacs, kompilator GNU C i C++, serwer stron www Apache, Perl, itd. I nie ma nic przypadkowego w tym, że jakość tego oprogramowania dorównuje lub nawet przewyższa jakość oprogramowania komercyjnego.