Jeśli jesteś właścicielem tej strony, możesz wyłączyć reklamę poniżej zmieniając pakiet na PRO lub VIP w panelu naszego hostingu już od 4zł!



Ostatnia aktualizacja strony: 07.11.2015

Oprogramowanie open-source

Czy zastanawialiście się kiedykolwiek nad tym, jak działają używane przez Was programy? Niektóre z efektów ich pracy są łatwo dostrzegalne (np. po naciśnięciu klawisza w edytorze tekstu na ekranie pojawia się litera). Jednak znacznie trudniej jest sprawdzić np. jakie dane program wysyła do Internetu albo kiedy komórka uruchamia wbudowany aparat. To oczywiście stwarza okazję do poważnych nadużyć.

Inaczej jest, kiedy autor programu udostępnia użytkownikom nie tylko pliki wykonywalne, ale również ich kod źródłowy. Wówczas każdy, kto wystarczająco dobrze zna się na programowaniu, może przeanalizować funkcjonowanie aplikacji. Natomiast w przypadku oprogramowania zamkniętego (ang. closed-source) kod źródłowy pozostaje tajemnicą pojedynczej firmy.

Kod źródłowy a plik wykonywalny

Stosowane zazwyczaj tzw. wysokopoziomowe języki programowania (np. C, C++, Python, Java, PHP itd.) są czymś pośrednim pomiędzy językiem ludzi a kodem maszynowym sterującym pracą komputerów. Korzystając z nich, można zaimplementować algorytm (dokładnie określony sposób wykonania jakiejś czynności) stosując polecenia odczytu i zapisu, instrukcje i pętle warunkowe, funkcje itp. Poszczególne komendy to zazwyczaj angielskie słowa (np. if, while, include, object itd.), a zdefiniowanym samodzielnie zmiennym i funkcjom można przypisać dowolne tekstowe nazwy. Ponadto istnieje możliwość dodawania komentarzy - oznaczonych w odpowiedni sposób fragmentów kodu, które nie wpływają na przebieg wykonywania programu, ale zawierają notatki przydatne dla programistów.

W procesie zwanym kompilacją odpowiedni program, zwany kompilatorem, tłumaczy kod źródłowy do postaci, w której komputer może go łatwo uruchomić. W pliku wykonywalnym nie znajdziemy już komentarzy, słownych nazw zmiennych i funkcji, czy przejrzystego układu poleceń, uzyskanego poprzez odpowiednie stosowanie tabulatora i entera. Procesory będące częścią różnych urządzeń, począwszy od kalkulatorów i cyfrowych budzików, poprzez komputery PC, skończywszy na potężnych serwerach posiadają odpowiednią konstrukcję fizyczną, dzięki której mogą od razu po dostarczeniu zasilania wczytywać z pamięci skompilowane kody, a następnie uruchamiać je. Niekiedy program nie jest wykonywany bezpośrednio przez procesor, a przez inny program (np. maszynę wirtualną Java). Co więcej, w niektórych językach (np. JavaScript, stosowanym często na stronach internetowych) program przechowywany jest w formie kodu źródłowego, a zamiast jednorazowej kompilacji mamy do czynienia z zachodzącą na bieżąco interpretacją. Wówczas nie ma możliwości, aby programista nie udostępnił kodu źródłowego użytkownikom, ale za to znacząco spada prędkość wykonywania programu.

Pliki wykonywalne można poddać procesowi dekompilacji - ponownemu tłumaczeniu na język programowania, w którym zostały napisane. Jednak otrzymany w ten sposób kod źródłowy jest zwykle nieprzejrzysty, a w dodatku takie działania mogą być niezgodne z licencją programu closed-source i nielegalne.

Zalety korzystania z wolnego oprogramowania

  • Ochrona prywatności - mamy pewność, że z naszymi osobistymi informacjami (plikami znajdującymi się na dysku, obrazem widocznym na ekranie, danymi wprowadzanymi za pomocą myszki i klawiatury, sygnałami z kamery i mikrofonu itd.) nie dzieje się nic, czego byśmy sobie nie życzyli.
  • Mniej błędów - kiedy większa liczba programistów ma dostęp do kodu źródłowego, zawarte w nim błędy mogą zostać szybciej poprawione.
  • Większa liczba dystrybucji do wyboru.
  • Możliwość dostosowania programu do swoich potrzeb.
  • Optymalizacja działania - zaawansowani użytkownicy mogą samodzielnie skompilować kod źródłowy tak, aby był jak najlepiej dostosowany do fizycznej architektury ich sprzętu i działał na nim możliwie szybko, stabilnie i energooszczędnie.
  • Mniejsze ryzyko utraty dostępu do danych - używanie zamkniętego oprogramowania wiąże się często z ryzykiem utraty możliwości odczytu lub edycji własnych plików. Może to nastąpić w przypadku wygaśnięcia licencji (którą nie zawsze można odnowić - użytkownik może nie mieć wystarczająco dużo pieniędzy, producent może zakończyć swoją działalność itp.) lub zaprzestania rozwoju danego programu lub systemu operacyjnego przez producenta (niekompatybilność z nowszym sprzętem, podatność na ataki hakerów itp.). Zauważmy, że chociaż w środowisku OpenOffice można edytować dokumenty typowe dla MS Office, to często występują problemy z ich układem graficznym, gdyż Microsoft nie udostępnia pełnej specyfikacji swoich formatów.
  • Walory edukacyjne - osoby zainteresowane informatyką mogą uczyć się programowania, analizując kod źródłowy i testując wpływ wprowadzonych przez siebie zmian na pracę aplikacji.
  • Brak opłat - otwarte oprogramowanie jest zazwyczaj darmowe, dzięki czemu korzystając z niego można uniknąć zarówno znacznych wydatków (nie łamiąc przy tym prawa), jak również problemów związanych z rejestracją. Po co płacić Microsoftowi i innym zagranicznym korporacjom, skoro możemy używać wolnego oprogramowania, a zaoszczędzone pieniądze wykorzystać do rozwoju polskiej gospodarki.

W 2007 roku Microsoft opublikował exploit na swój serwer (program), czyli narzędzie służące do jego hakowania (link). Być może zrobił to, aby zmusić klientów do zakupu nowszej wersji wyprodukowanego przez siebie oprogramowania?

Przykłady wolnego oprogramowania

Linux

Linux, w przeciwieństwie do np. Windowsa i OS X, jest otwartym systemem operacyjnym, w dodatku dostępnym za darmo. Występuje w wielu różnych dystrybucjach, które można np. ściągnąć z Internetu lub kupić na płycie CD-ROM dołączonej do czasopism o tematyce informatycznej. Aby przetestować lub zainstalować Linuxa, trzeba odpowiednio ustawić kolejność bootowania w Biosie - tak, żeby na początku miała miejsce próba wczytania systemu z naszego nośnika (pendrive, CD itp.), a dopiero potem z dysku twardego. W tym celu od razu po włączeniu lub restarcie komputera naciska się odpowiedni klawisz (zależny od modelu urządzenia), a następnie zmienia i zapisuje ustawienia, również korzystając z klawiatury. Po zapisaniu zmian i automatycznym restarcie trzeba włożyć odpowiedni nośnik i postępować zgodnie ze wskazówkami na ekranie. W przypadku instalacji warto wcześniej zrobić kopię zapasową danych z dysku twardego (mimo, że zwykle instalacja przebiega bez ich utraty). Na jednym dysku można mieć zainstalowanych wiele systemów operacyjnych i wybierać je z listy widocznej po włączeniu komputera.

LibreOffice

LibreOffice, podobnie jak starszy OpenOffice, jest otwartym i darmowym zamiennikiem pakietu Microsoft Office. Na razie brakuje mu niektórych funkcji zawartych w tym płatnym zestawie, jednak do codziennych zastosowań powinien być wystarczający. Osobom zainteresowanym naukami matematyczno-przyrodniczymi na pewno spodoba się edytor równań z możliwością wprowadzania znaków niewidocznych na klawiaturze (np. greckich liter) poprzez wpisywanie ich nazw. LibreOffice działa zarówno na Windowsie, jak i na Linuxie.

Android

Android jest jednym z najpopularniejszych systemów operacyjnych stosowanych w smartfonach. Teoretycznie jest on systemem otwartym, jednak jego fabrycznie instalowane wersje zawierają mnóstwo zamkniętych dodatkowych aplikacji od Google, których użytkownik nie może odinstalować. Chcąc się ich pozbyć, trzeba przeprowadzić tzw. rootowanie. Często można to zrobić jedynie poprzez odinstalowanie oryginalnego Androida i zastąpienie go tzw. custom ROM-em (np. CyanogenMod). Czynność tę przeprowadza się na różne sposoby, w zależności od posiadanego modelu telefonu (np. poprzez podłączenie komórki do komputera z odpowiednim programem przez USB lub zapisując plik z nowym systemem na karcie pamięci i instalując go jako ręczną aktualizację). Jeśli podczas włączania smartfona naciśnie się odpowiednią kombinację klawiszy, można uzyskać dostęp do trybu Recovery lub uruchomić Androida w trybie bezpiecznym (przydatny, kiedy np. przestanie on działać normalnie po zainstalowaniu nowej aplikacji). Należy jednak pamiętać, że gwarancja może nie obowiązywać w przypadku awarii spowodowanej przez instalację nieoryginalnego systemu operacyjnego.

Android posiada przydatne narzędzie zwiększające prywatność i bezpieczeństwo finansowe użytkowników: uprawnienia. Programista implementujący w swojej aplikacji odczyt danych z pamięci masowej, nagrywanie dźwięku i obrazu, przeglądanie książki telefonicznej i kalendarza, odbiór sygnału GPS, wysyłanie SMS-ów itp. musi wymienić wszystkie wymagane uprawnienia w przeznaczonym do tego fragmencie kodu (plik AndroidManifest.xml). Jeśli tego nie zrobi, aplikacja będzie się zawieszać przy każdej próbie skorzystania z nich. Użytkownik przed instalacją zostaje powiadomiony o wymaganiach aplikacji, może sprawdzić je również później - nawet w przypadku zamkniętego oprogramowania.

To oczywiście tylko kilka przykładów spośród mnóstwa programów open-source. Wśród nich znajdziemy również narzędzia służące do szyfrowania komunikacji, o czym będzie na następnej stronie.

Początek strony