Główna » jak » Czym jest oprogramowanie Open Source i dlaczego to się liczy?

    Czym jest oprogramowanie Open Source i dlaczego to się liczy?

    Maniacy często opisują programy jako "open source" lub "darmowe oprogramowanie". Jeśli zastanawiasz się dokładnie, co oznaczają te terminy i dlaczego mają znaczenie, czytaj dalej. (Nie, "darmowe oprogramowanie" nie oznacza tylko, że możesz je pobrać za darmo.)

    To, czy program jest open-source, czy nie, ma znaczenie nie tylko dla programistów, ale ma również znaczenie dla użytkowników. Licencje na oprogramowanie typu open source zapewniają użytkownikom swobodę, której w przeciwnym razie nie mieliby.

    Image Credit: Quinn Dombrowski na Flickr

    Definicja Open Source

    Jeśli program jest open-source, jego kod źródłowy jest swobodnie dostępny dla jego użytkowników. Jego użytkownicy - i wszyscy inni - mogą korzystać z tego kodu źródłowego, modyfikować go i dystrybuować własne wersje programu. Użytkownicy mają również możliwość dystrybucji tak wielu kopii oryginalnego programu, jak chcą. Każdy może korzystać z programu w dowolnym celu; nie ma opłat licencyjnych ani innych ograniczeń oprogramowania. OSI ma bardziej szczegółową definicję "otwartego źródła" na swojej stronie internetowej.

    Na przykład system operacyjny Ubuntu Linux jest systemem operacyjnym typu open source. Możesz pobrać Ubuntu, stworzyć dowolną liczbę kopii i przekazać je znajomym. Możesz zainstalować Ubuntu na nieograniczonej ilości komputerów. Możesz tworzyć remisy płyty instalacyjnej Ubuntu i dystrybuować je. Jeśli byłeś szczególnie zmotywowany, możesz pobrać kod źródłowy programu w Ubuntu i zmodyfikować go, tworząc własną dostosowaną wersję tego programu - lub samego Ubuntu. Licencje open-source pozwalają na to, podczas gdy licencje z zamkniętym kodem nakładają na ciebie ograniczenia.

    Przeciwieństwem oprogramowania open source jest oprogramowanie o zamkniętym kodzie źródłowym, które ma licencję ograniczającą użytkowników i przechowuje od nich kod źródłowy.

    Firefox, Chrome, OpenOffice, Linux i Android to popularne przykłady oprogramowania open source, a Microsoft Windows to prawdopodobnie najpopularniejszy program z zamkniętym kodem źródłowym..

    Open Source vs. Free Software

    Aplikacje open source są ogólnie dostępne bezpłatnie - chociaż nic nie stoi na przeszkodzie, aby programista pobierał opłaty za kopie oprogramowania, jeśli pozwolą na redystrybucję aplikacji i jej kodu źródłowego.

    Jednak nie o to chodzi w "wolnym oprogramowaniu". "Wolne" w wolnym oprogramowaniu oznacza "wolny jak na wolności", a nie "wolny jak w piwie". Obóz wolnego oprogramowania, kierowany przez Richarda Stallmana i Free Software Foundation, koncentruje się na etyce i moralności używania oprogramowania, które może być kontrolowane i modyfikowane przez użytkownika. Innymi słowy obóz wolnego oprogramowania koncentruje się na swobodzie użytkownika.

    Richard Stallman. Zdjęcie wykonane przez Fripog na Flickr.

    Ruch oprogramowania typu open source został stworzony, aby skupić się na bardziej pragmatycznych powodach wyboru tego typu oprogramowania. Adwokaci korzystający z otwartego oprogramowania chcieli skupić się na praktycznych korzyściach płynących z używania oprogramowania open source, które byłoby bardziej atrakcyjne dla firm, niż etyki i moralności.

    Ostatecznie zarówno zwolennicy wolnego oprogramowania, jak i wolnego oprogramowania opracowują ten sam rodzaj oprogramowania, ale nie zgadzają się z komunikatem.

    Rodzaje licencji

    Istnieje wiele różnych licencji używanych w projektach open source, w zależności od tego, którzy deweloperzy preferują ich program.

    GPL, czyli Powszechna Licencja Publiczna GNU, jest szeroko wykorzystywana przez wiele projektów open-source, takich jak Linux. Poza wszystkimi powyższymi definicjami open-source, warunki GPL określają, że jeśli ktokolwiek modyfikuje program open source i dystrybuuje pracę pochodną, ​​musi także rozpowszechniać kod źródłowy dla swojej pracy pochodnej. Innymi słowy, nikt nie może wziąć kodu open-source i stworzyć z niego programu o zamkniętym kodzie źródłowym - musi on zwrócić swoje zmiany z powrotem do społeczności. Microsoft określił GPL jako "wirusową" z tego powodu, ponieważ wymusza na programach zawierających kod GPL udostępnienie własnego kodu źródłowego. Oczywiście programiści programu mogą zrezygnować z używania kodu GPL, jeśli jest to problem.

    Niektóre inne licencje, takie jak licencja BSD, nakładają mniej ograniczeń na programistów. Jeśli program jest licencjonowany na podstawie licencji BSD, każdy może włączyć kod źródłowy programu do innego programu. Nie muszą oni wprowadzać swoich zmian z powrotem do społeczności. Niektórzy ludzie widzą, że jest to jeszcze bardziej "darmowe" niż licencja GPL, ponieważ daje to programistom swobodę włączania kodu do ich własnych programów o zamkniętym kodzie źródłowym, podczas gdy niektórzy postrzegają go jako mniej "darmowy", ponieważ odbiera on prawa od użytkowników końcowych programu pochodnego.

    Korzyści dla użytkowników

    To nie wszystkie suche, nieważne rzeczy, które mają znaczenie tylko dla programistów. Najbardziej oczywistą zaletą oprogramowania open-source jest to, że można go uzyskać za darmo. Przykład Ubuntu Linux powyżej wyraźnie to pokazuje - w przeciwieństwie do Windows, możesz instalować lub dystrybuować dowolną liczbę kopii Ubuntu, bez żadnych ograniczeń. Może to być szczególnie przydatne serwery - jeśli konfigurujesz serwer, możesz po prostu zainstalować na nim Linuksa. jeśli konfigurujesz wirtualny klaster serwerów, możesz łatwo powielić pojedynczy serwer Ubuntu. Nie musisz się martwić o licencjonowanie i ile instancji Linuksa możesz uruchomić.

    Program open-source jest również bardziej elastyczny. Na przykład nowy interfejs systemu Windows 8 rozczarował wielu długoletnich użytkowników systemu Windows. Ponieważ system Windows to zamknięte źródło, żaden użytkownik systemu Windows nie może korzystać z interfejsu systemu Windows 7, modyfikować go i sprawić, by działał poprawnie w systemie Windows 8. (Niektórzy użytkownicy systemu Windows próbują, ale jest to żmudny proces inżynierii wstecznej i modyfikowania plików binarnych. )

    Gdy na pulpicie Linux, takim jak Ubuntu, wprowadzono nowy interfejs pulpitu, na którym niektórzy użytkownicy nie są fanami, użytkownicy mają więcej opcji. Na przykład, gdy GNOME 3 zostało wydane, wielu użytkowników Linuksa było równie wyłączonych. Niektórzy zabrali kod do starej wersji GNOME 2 i zmodyfikowali go, aby działał na najnowszych dystrybucjach Linuksa - to jest MATE. Niektórzy zabrali kod do GNOME 3 i zmodyfikowali go, aby działał w sposób preferowany - to jest Cynamon. Niektórzy użytkownicy właśnie przełączyli się na istniejące alternatywne komputery. Jeśli system Windows był open-source, użytkownicy Windows 8 mieliby większy wybór i większą elastyczność. Wystarczy spojrzeć na CyanogenMod, popularną, opartą na społeczności dystrybucję Androida, która dodaje funkcje i obsługę nowych urządzeń.

    Oprogramowanie open-source pozwala także programistom "stać na barkach gigantów" i tworzyć własne oprogramowanie. Obserwuj systemy Android i Chrome OS, które są systemami operacyjnymi opartymi na systemie Linux i innym oprogramowaniu o otwartym kodzie źródłowym. Rdzeń systemu operacyjnego Apple X - a także iOS - został zbudowany na kodzie open-source. Valve wściekle pracuje nad przeniesieniem swojej platformy gier Steam na system Linux, ponieważ umożliwiłoby to stworzenie własnego sprzętu i kontrolę nad własnym losem w sposób, który nie jest możliwy w systemie Microsoft Windows.


    To nie jest wyczerpujący opis - napisano na ten temat całe książki - ale teraz lepiej zorientuj się, czym właściwie jest oprogramowanie open source i dlaczego jest dla ciebie przydatne.