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

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


Kontakt: sebastian@stronasebastiana.cba.pl
Adres Bitcoin: 17Xmwek5HqW4zvrsgggUf1eYcYZdcVJGb1
Adres BitMessage: BM-2cXpM2XGrEn2GFegYg7aLKNSLQnqdCPCrS