Co to jest oprogramowanie typu open source? Wyjaśnienie open source i FOSS

Podstawą każdego używanego oprogramowania jest kod źródłowy, który wydaje polecenia i obsługuje dane, które pozwalają oprogramowaniu robić to, co robi. Pytanie, kto powinien mieć prawo do przeglądania, zmiany lub redystrybucji tego kodu źródłowego od dawna jest jednym z fundamentalnych podziałów ideologicznych w świecie informatyki.

Zwolennicy oprogramowania open source, jak sama nazwa wskazuje, schodzą po stronie otwartości; uważają, że ludzie powinni mieć prawo dostępu do kodu źródłowego oprogramowania, którego używają. Jak jednak zobaczymy, w praktyce pod tą etykietą jest wiele różnorodności. Różne rodzaje oprogramowania typu open source istnieją w niemal każdej niszy, o której można pomyśleć - w rzeczywistości open source dominuje w wielu z nich.

Co to jest oprogramowanie typu open source, co to jest oprogramowanie wolne - i czy się różnią?

Zwięzła definicja oprogramowania open source mówi, że jest to oprogramowanie, którego kod źródłowy może być badany, modyfikowany i redystrybuowany. (Istnieje dłuższa i bardziej oficjalna definicja, do której dojdziemy za chwilę). „Zmienione i redystrybuowane” części są naprawdę kluczem do filozofii open source. Pomimo tego, co może sugerować nazwa, po prostu otwarcie kodu źródłowego, aby ludzie mogli go obejrzeć, nie czyni go otwartym.

W pewnym sensie termin „oprogramowanie open source” jest retronimem: we wczesnych dekadach informatyki kod źródłowy oprogramowania był dostępny i swobodnie wymieniany między badaczami i naukowcami z branży. Komputery były nieliczne i spodziewano się, że ich użytkownicy będą w znacznym stopniu modyfikować, więc ludzie potrzebowali dostępu do kodu. Pod wieloma względami oprogramowanie było postrzegane jako dodatek do sprzętu komputerowego; dopiero w 1974 r. ustalono prawnie, że oprogramowanie podlegało prawom autorskim. Jednak wraz z nadejściem ery mikrokomputerów pod koniec lat 70. XX wieku branża zaczęła przestawiać się na stanowisko, że oprogramowanie jest czymś, co samo w sobie ma wartość pieniężną i że dostęp do kodu źródłowego może i powinien być ograniczony w celu ochrony twórców oprogramowania. „prawa.Słynny list otwarty Billa Gatesa do hobbystów z 1976 r., Narzekających na powszechne piractwo pierwszego produktu Microsoftu, interpretera Altair BASIC, jest przełomowym dokumentem tej zmiany.

Podczas gdy te nowe pomysły szybko zostały przyjęte przez szybko rozwijający się przemysł oprogramowania, niektórzy odepchnęli je od nich. Jednym z najwcześniejszych przeciwników był Richard Stallman, który założył Free Software Foundation (FSF) w 1985 roku. „Wolność” w wolnym oprogramowaniu ma oznaczać swobodę użytkowników w zmienianiu i rozpowszechnianiu kodu według własnego uznania; w tym sensie nie ma reguły przeciwko pobieraniu pieniędzy za darmowe oprogramowanie. Często dokonuje się rozróżnienia między „wolnym jak w darmowym piwie” i „wolnym jak w wolności słowa”, przy czym wolne oprogramowanie znajduje się w drugim obozie.

Jednak idea wolnego oprogramowania denerwowała wielu ludzi z branży prywatnej, którzy przecież nie byli fanami rozdawania rzeczy. W 1998 roku Christine Peterson ukuła określenie „open source” po części jako próbę uczynienia tego pomysłu bardziej dostępnym dla nowicjuszy, szczególnie tych pracujących w firmach nastawionych na zysk. Chociaż Stallman oparł się określeniu open source, mówiąc, że odwraca się od pierwotnych politycznych i filozoficznych idei wolnego oprogramowania, stało się dominującym określeniem opisującym tę koncepcję. Diagram Venna wolnego i otwartego oprogramowania nakłada się na siebie na tyle, że czasami oba są połączone pod akronimem FOSS (oprogramowanie bezpłatne i otwarte) . Ogólnie rzecz biorąc, całe wolne oprogramowanie jest open source, chociaż niewielka część oprogramowania open source ma warunki licencyjne, co oznacza, że ​​nie jest bezpłatne (więcej o licencjonowaniu open source za chwilę).

Koncepcja wolnego i otwartego oprogramowania zapoczątkowała kolejną definicję retronimu: „oprogramowanie prawnie zastrzeżone ”, czyli każde oprogramowanie, które nie jest open source.

Licencje oprogramowania typu open source

Wszystkie prawa i obowiązki związane z oprogramowaniem open source są określone przez licencje, na podstawie których jest ono rozpowszechniane. Wraz z ugruntowaniem się doktryny prawnej, że oprogramowanie podlegało prawu autorskiemu, zaczęto sporządzać licencje na oprogramowanie w celu zawarcia umowy między właścicielem praw autorskich a użytkownikiem, dającej użytkownikowi pozwolenie na wykonanie oprogramowania na komputerze osobistym.

Licencje na oprogramowanie istniały pierwotnie w celu ograniczenia zachowań użytkowników i ochrony praw producenta oprogramowania. Jednak zwolennicy wolnego oprogramowania zdali sobie sprawę, że mogą odwrócić pierwotny cel licencji: licencja pakietu oprogramowania mogłaby zamiast tego wymagać, aby podstawowy kod był dostępny dla każdego, kto korzysta z oprogramowania, a użytkownicy mieli prawo do edycji i redystrybucji tego kodu. Pierwsza licencja na oprogramowanie typu open source (choć poprzedza termin) to prawdopodobnie zawiadomienie o zezwoleniu na kopiowanie GNU Emacsa, wydane w 1985 roku dla wersji edytora tekstu Emacsa napisanej przez Stallmana z FSF.

Od tamtej pory wzrosła liczba bezpłatnych i otwartych licencji, z których każda ustanawia nieco inne warunki korzystania z licencjonowanego kodu; Wikipedia utrzymuje całkiem niezły wykres ze szczegółami na temat najważniejszych licencji. Z definicji każda z tych licencji typu open source zapewnia użytkownikom trzy podstawowe wolności w zakresie czytania, edytowania i redystrybucji kodu źródłowego; główny obszar, w którym się różnią, to warunki, jakie nakładają na redystrybucję:

  • Licencje zezwalające pozwalają na redystrybucję dowolnego kodu źródłowego w dowolny sposób. Możesz na przykład pobrać kod źródłowy wydany na licencji zezwalającej, włączyć go do własnego oprogramowania, a następnie wydać to oprogramowanie na licencji własności. Licencja BSD jest jedną z najbardziej znanych licencji permisywnych.
  • Licencje Copyleft wymagają, aby każdy redystrybuowany kod zawierający licencjonowany kod był również udostępniany na podobnej licencji. Różne wersje Licencji Publicznej GNU (GPL) z FSF są licencjami typu copyleft, a ich celem jest wymaganie od programistów, aby płacili ją dalej, dzieląc się korzyściami, które otrzymali z włączenia kodu open source do ich projektu.

Warto zauważyć, że idee stojące za tymi licencjami rozprzestrzeniły się poza świat oprogramowania. Creative Commons to legalna infrastruktura do stosowania podobnych warunków do pisemnych lub wizualnych dzieł artystycznych.

Definicja Open Source i inicjatywa Open Source

Oprogramowanie typu open source ze swej natury nie jest kontrolowane przez żaden pojedynczy podmiot lub organizację. W 1998 roku grupa wybitnych programistów, w tym Bruce Perens i Eric S. Raymond, założyła Open Source Initiative (OSI), organizację non-profit zajmującą się popieraniem otwartego oprogramowania w większej branży oprogramowania. OSI próbował, ale nie powiodło się, znak towarowy terminu open source w 1999 roku; niemniej jednak ich formalna Definicja Open Source jest, na zasadzie konsensusu, ramą, za którą podążają wszystkie licencje, które nazywają się open source. Oprócz swobody badania, modyfikowania i redystrybucji kodu, o którym już mówiliśmy, Definicja Open Source zabrania licencji, które dyskryminują określone grupy lub osoby, które uniemożliwiają użycie kodu do określonego celu lub pola przedsięwzięcia, lub z działania na określonym urządzeniu lub typie urządzenia.

Rozwój oprogramowania open source i projekty open source

Programowanie przy użyciu otwartego kodu źródłowego odbywa się we wszystkich rodzajach środowisk, od uniwersytetów po duże korporacje, i często przebiega według tych samych wzorców, co każdy inny rodzaj tworzenia oprogramowania. Ale istnieje specyficzny rodzaj otwartego procesu rozwoju społeczności, który jest powiązany z otwartym oprogramowaniem. W swoim wpływowym eseju „Katedra i bazar” Eric S. Raymond nakreślił swoją wizję tego procesu, w którym każdy może uzyskać dostęp do kodu, a aktualizacje są dodawane do bazy kodu przez szeroko rozpowszechnioną grupę programistów, którzy wchodzą i wychodzą z dyktuje ich zainteresowanie.

Rozwój tego typu oprogramowania typu open source jest zorganizowany wokół projektów open source . Czasami działają one na pojedynczym oprogramowaniu, a czasami na całym zestawie powiązanych aplikacji. Oprogramowanie do kontroli wersji zapewnia zgodność wkładu wszystkich osób. GitHub jest prawdopodobnie najpopularniejszym.

Czasami rozpoczęte przez jedną osobę projekty open source są na ogół samoorganizującymi się małymi społecznościami internetowymi i chociaż każdy może wnieść swój wkład w każdy projekt, większość z nich jest zwykle wykonywana przez stosunkowo niewielką grupę programistów. Czasami projekt może być sponsorowany przez firmę nastawioną na zysk, która planuje korzystać z produkowanego przez siebie oprogramowania, posuwając się nawet do umieszczenia na liście płac najwybitniejszych deweloperów projektu.

Przykłady open source

Oprogramowanie open source jest w rzeczywistości wszechobecne i tworzy wiele fundamentów współczesnego Internetu. Być może najbardziej znanym projektem open source jest Linux, wariant open source Unix, który obsługuje miliony serwerów. Inne ważne i niezwykle ważne projekty obejmują serwer WWW Apache, bazę danych MySQL i WordPress. Liczne frameworki programistyczne są udostępniane jako open source, od Ruby on Rails po Microsoft .Net Core.

Open source odniósł mniejszy sukces w tworzeniu oprogramowania komputerowego do użytku domowego przeznaczonego dla zwykłych użytkowników. Pomimo wysokich kosztów zastrzeżonych pakietów oprogramowania, takich jak Microsoft Word i Adobe Photoshop, ich odpowiednikom z otwartym kodem źródłowym, takim jak OpenOffice i GIMP, nigdy nie udało się znaleźć niszy poza zagorzałymi entuzjastami, w dużej mierze dlatego, że społeczność open source tradycyjnie przedkładała funkcje i elastyczność nad łatwość obsługi posługiwać się. (Zablokowanie formatu plików od firmowych dostawców nie pomogło.) Nawet Linux, którego zwolennicy twierdzą od późnych lat 90., że system operacyjny open source jest tylko rok od zdominowania pulpitu, nigdy tak naprawdę nie zdołał przeskoczyć do przestrzeń konsumencka. Ogólnie rzecz biorąc, oprogramowanie typu open source jest wykorzystywane w infrastrukturze znacznie częściej niż w przypadku oprogramowania użytkownika końcowego.Jednak przejście od monolitycznego oprogramowania uruchamianego lokalnie do aplikacji SaaS było dobrodziejstwem dla oprogramowania typu open source, ponieważ infrastruktury w chmurze są w dużej mierze oparte na stosach zdominowanych przez oprogramowanie typu open source.

Pamiętasz, co powiedzieliśmy o firmach nastawionych na zysk, które wspierają oprogramowanie open source? Często te projekty są produkowane na licencji liberalnej, więc firmy te mogą umieścić kod open source w centrum swoich zastrzeżonych ofert, jednocześnie utrzymując oddzielną bazę kodu open source równolegle jako projekt społecznościowy. Na przykład mobilny system operacyjny Android ma rdzeń Linux; wszystkie mobilne i stacjonarne systemy operacyjne Apple są oparte na Darwin, systemie operacyjnym typu open source, który wywodzi się z BSD Unix. Nawet Google Chrome jest oparty na przeglądarce open source o nazwie Chromium.

Społeczność open source i ruch open source

Open source to coś więcej niż tylko proces rozwoju; jest to filozofia, którą pasjonują się ludzie, i jest to społeczność, do której może dołączyć każdy posiadający umiejętności programistyczne. W rzeczywistości jest to cała seria społeczności, jak to ujęła Linux Foundation. (Istnienie organizacji non-profit, takich jak Linux Foundation i OSI, jest ważnym aspektem tej społeczności.) Florian Effenberger ma świetny esej o tym, jak społeczność open source wzbogaciła jego życie.

Często można usłyszeć, jak ludzie mówią o ruchu open source lub ruchu wolnego oprogramowania, który ma konotacje z polityką i rzecznictwem. Wiele osób w społeczności open source naciskało na powszechne przyjęcie oprogramowania open source z różnych powodów: uważają, że open source tworzy z natury lepszy kod lub uważają, że dostęp do kodu źródłowego jest podstawowym prawem, z którego powinni korzystać użytkownicy komputerów, lub kombinacja tych dwóch. Ten aspekt społeczności wydaje się dziś nieco mniej widoczny, ale może to dlatego, że pod wieloma względami zwyciężył open source. W 2001 roku ówczesny dyrektor generalny Microsoftu Steve Ballmer powiedział, że dzięki licencji open source Linux jest „rakiem, który przyczepia się w sensie własności intelektualnej do wszystkiego, czego dotyka”. Obecnie Microsoft jest rozbudowanym użytkownikiem i producentem oprogramowania open source.To w skrócie ostatnie dwie dekady historii open source.

Pobieranie oprogramowania open source

Chcesz zacząć przeglądać i majstrować przy projektach open source? Sprawdź stronę projektów i aplikacji opensource.com, kartę Eksploruj na GitHub lub mapę oprogramowania Open Source Development Network. Jest mnóstwo dla ciekawskich na każdym poziomie umiejętności.