Logo pl.androidermagazine.com
Logo pl.androidermagazine.com

Co to jest open source?

Anonim

Co to jest open source? Oprogramowanie typu open source to oprogramowanie, które udostępnia kod źródłowy za darmo, aby każdy mógł go zobaczyć i używać. Firmy, osoby prywatne, uniwersytety i wiele innych podmiotów buduje całe projekty i korzysta z licencji typu open source, a następnie rozdaje kod każdemu, kto chce go użyć. Użyta licencja określa, w jaki sposób osoby korzystające z tego kodu udostępniają swoje modyfikacje.

Istnieją różne licencje typu open source, które mają różne warunki użytkowania, od GPL (GNU General Public License) - która umożliwia „bezpłatną dystrybucję pod warunkiem, że dalszy rozwój i aplikacje są objęte tą samą licencją” - do bardziej liberalnych licencji, takich jak Licencja Apache, która nie wymaga modyfikacji, aby być otwartym i mieć dostępny kod źródłowy. Android korzysta z obu tych licencji, a my po kolei przyjrzymy się im.

Jądro Linux używane w Androidzie jest objęte GPL. Oznacza to, że wszelkie zmiany dokonane w kodzie źródłowym muszą zostać udostępnione, gdy plik binarny (geek-speak dla skompilowanego, wykonywalnego oprogramowania) zostanie udostępniony publicznie. Oznacza to, że producenci tacy jak HTC, Samsung, Motorola i cała reszta muszą wydać kod źródłowy jądra dla wszystkich sprzedawanych urządzeń w tym samym czasie, gdy zaczynają je sprzedawać. Oczywiście zdarza się to rzadko i ostatecznie czekamy, aż zespół usunie notatki, komentarze źródłowe i inne przydatne rzeczy, zanim dotrze do nas. Są to wersje kodu, które zobaczysz wspomniane w Internecie, i składają się ze źródła jądra i innych „bitów” typu open source, które są objęte GPL.

Kod źródłowy dla Androida jest wydawany głównie na licencji Apache. Każdy może pobrać kod źródłowy i zmienić go w dowolny sposób, ale nie ma obowiązku publicznego udostępniania swoich zmian w formie kodu źródłowego. Dlatego nie możemy łatwo modyfikować Touchwiz Samsunga (na przykład) - zmiany, które wprowadzili do podstawowego kodu źródłowego Androida, nie są dla nas dostępne. Chociaż wielu ludzi (w tym ja) nie bardzo podoba się ta sytuacja, ma to sens z biznesowego punktu widzenia. Gdyby producenci musieli dzielić się wszystkimi swoimi sekretami, nie byłoby takiej zachęty pieniężnej do innowacji, więc źródło oferowano z bardziej liberalną licencją. Z pewnością zadziałało, ponieważ widzimy urządzenia wielu głównych graczy w świecie elektroniki.

Inny duży produkt konsumencki Google - Chrome OS - jest napisany ze źródła Chromium. Części Chromium napisane przez Google są oprogramowaniem typu open source, na licencji BSD. Inni współpracownicy używają różnych licencji typu open source, takich jak licencja MIT lub GPL.

Ważną rzeczą do zapamiętania jest to, że Android i Chromium są oprogramowaniem typu open source, ale systemy operacyjne używane na urządzeniach Nexus i Chromebookach nie są. Są one zbudowane na podstawie projektów typu open source, ale mogą zawierać zastrzeżone części w celu ulepszenia oprogramowania dla każdego konkretnego urządzenia. W przypadku telefonów Nexus te zastrzeżone bity są wydawane na stronie programistów Androida i są gotowe, aby wpaść na wszystko, co możesz zbudować z AOSP, aby uzyskać takie same wrażenia. Chromebooki będą działały na całkowicie otwartej wersji Chromium, ale nie będą miały zamkniętych interfejsów API Google ani pełnych zestawów kodeków audio i wideo.

Google wydaje również aplikacje, które nie są objęte licencjami typu open source. Gmail, Mapy i wiele innych aplikacji Google, które są dostępne na naszych telefonach, nie są częścią AOSP i są opracowywane niezależnie dla Androida, Chrome, iOS i Internetu. Kiedy słyszysz sprzeczki internetowe o to, że Android nie jest „otwarty”, właśnie o tym mówią. Android i wszystko, co jest wymagane do zainstalowania i uruchomienia aplikacji na Androida, jest całkowicie otwarte, ale popularne aplikacje, które je ulepszają, nie są. To raczej się nie zmieni.