Otwarte źródła, zwykły user i popularność Linuksa
Powiem szczerze, że chciałem napisać artykuł o czymś innym. Dzięki komentarzowi @KyRola, natrafiłem jednak na artykuł wydrukowany na łamach Chip.pl, który wydał mi się na tyle związany z tematem, co poruszył kilka dodatkowych kwestii, które wypisałem w tytule.
Sam artykuł to stek bzdur. Zresztą komentujący wystarczającą zgnębili autora, żeby teraz po pół roku znowu warto było poruszać tę sprawę. Zaciekawił mnie jednak komentarz red. Gajewskiego, który brzmiał:
Kłamstwo? OK, więc co mi szkodzi pobrać kod źródłowy, na przykład, Firefoxa, dorzucić tam coś "od siebie", skompilować i wrzucić w Sieć jako FirefoxSetup.exe?
Pytanie do red. Gajewskiego: Od kiedy kompilacja jest jakimkolwiek zabezpieczeniem przed dostępem do źródeł? Kłam temu twierdzeniu zadają liczne kopie gier i komercyjnego oprogramowania krążące po sieci ze zmodyfikowanymi plikami .exe. Kluczem do opóźnienia pirackiej wersji nad oryginałem jest zabezpieczenie przed kopiowaniem, które do tej pory mogło skutecznie utrudnić uzyskanie idealnie sklonowanego pliku .exe. Sama kompilację można skutecznie poddać inżynierii odwrotnej. W takim przypadku dla Javy jest to bezproblemowa operacja, dla innych języków jest trudniej, choć nie jest to niemożliwe.
W każdym razie otwieranie źródeł to ochrona prawa autorskiego, a nie kwestia zabezpieczeń. Otwarte źródła mogą pomóc w skutecznym wyegzekwowaniu przez system kwestii bezpieczeństwa. System po prostu może łatwiej w ten sposób sprawdzić, czy program nie jest podróbką, a jego deweloperzy skontrolować, czy program nie wykorzystuje luk w systemie w niecnych celach. Dotyczy to także Windowsa. W przypadku zamkniętych źródeł Windows takich gwarancji nie ma, dopóki nie wyegzekwuje ich odgórnie od dewelopera, grożąc wykluczeniem z oficjalnych źródeł dostępności oprogramowania. Mniejsza jednak o to, w każdym razie ściągniecie przez użytkownika sugerowanego przez dewelopera Gajewskiego programu jest równoznaczne ze ściągnięciem programu zamkniętego, niezależnie od tego co stanowiło podstawę tego programu. Jest to więc program piracki, dopóki Pan Redaktor nie opublikuje źródeł swoich modyfikacji.
User, a źródła
Oczywiście, że takie źródła nie zainteresują zwykłego usera, który i tak potraktuje rzeczoną instalkę tak samo jak piracką grę (czyli mam gdzieś bezpieczeństwo). Nie sądzę aby jednak trudno było, nawet dla osób nie grzebiących w kodzie, porównanie źródeł i kompilacji jaką uzyskuje się z tego kodu z plikiem przedstawionym do pobrania przez redaktora. I potem sprawdzenie tej samej sumy kontrolnej z oficjalnym pakietem na stronie Mozilly. Powtórzę: może to zrobić każdy, bez znajomości programowania.
No chyba, że redaktor celowo zrobi forka zmodyfikowanego w stosunku do oryginału i udostępni go publicznie ze źródłami (bo to wymóg bez którego program nie może być nadal traktowany jako Open Source). I na co liczy wtedy redaktor - że nikt z Mozilly nie zainteresuje się dlaczego ktoś zmodyfikował ich wersję?! Oczywiste jest, że w takim przypadku Redaktor będzie musiał skutecznie ukrywać swoją wersję przed deweloperami oryginału jak i przed potencjalnymi użytkownikami. W takim przypadku cała robota to sztuka dla sztuki i radość z zarażenia szkodliwym kodem kilku naiwnych.
Dlatego twórcy szkodliwego oprogramowania wybierają zamknięte programy. Prawdziwy powód to fakt, że musieliby ponieść koszty promocji otwartego programu tworzonego niezależnie od źródeł oprogramowania oryginału, czyli w efekcie namówić użytkowników, dlaczego nasza darmowa wersja jest lepsza od darmowej wersji oryginału. W przypadku zamkniętej gry mamy więc na to większe szanse. Program jest wypromowany i wypromowane są kwestie olewania bezpieczeństwa. I tak samo są małe szanse na to, że nawet zaawansowani userzy będą grzebać w zmodyfikowanym kodzie, skoro nawet grzebanie w oryginale jest dla nich bezsensu (a także nielegalne i nieopłacalne).
Komu więc opłaca się grzebać w kodzie?
Powiem szczerze - według mnie rola zwykłych userów w kwestii promocji Open Source i Linuksa to jeden z wielu mitów tego środowiska. W ogóle bardzo trudno policzyć użytkowników Linuksa, a co dopiero na podstawie tych statystyk określić granicę pomiędzy kimś zaawansowanym. W większości przypadków definicja zwykłego użytkownika jest więc równoznaczna z pojęciem klienta, który nie ma wpływu na proces produkcyjny. Taki wpływ mają dopiero statystyki, ale one nie są w interesie klienta. Klientowi powinno zależeć na wspieraniu konkurencji, gdyż determinuje ona lepszą jakość następnych produktów. O zgubnym wpływie monopolu na jakość wiedzą zapewne zarówno klienci Microsoftu, jak i PKP.
Definicja "zwykłego usera" odnosi się więc do osób, które są dla deweloperów open source niewidoczne. Nie przesyłasz błędów, nie angażujesz się w promocję, nie wpłacasz dotacji - nikt cię nie widzi i nikt nie widzi twoich potrzeb. Parafrazując znany film: "W kosmosie nikt nie usłyszy twojego krzyku". Taka jest brutalna prawda. Jeśli chcesz mieć jakiś wpływ na rozwój Linuksa MUSISZ się zaangażować. Pieniądze w takim przypadku są wiec miej skuteczne niż osobisty udział. Chociaż Wolne Oprogramowanie umożliwia nam finansowanie konkretnych gałęzi rozwoju, dzięki czemu nasze wpłaty mogą być skutecznie dostarczane w te sektory, które są w naszym interesie.
W przypadku Otwartego Oprogramowania jest inaczej, tu klient ma nieograniczony wybór i na bazie tych wyborów dyktuje producentom kierunek rozwoju. Nawet, gdy jesteśmy ograniczeni w ramach dystrybucji do jakiegoś domyślnego zestawu, to zawsze pozostaje nam swobodny wybór w ramach otwartych źródeł, dzięki czemu użytkownik może mieć w zasobach Ubuntu to samo co użytkownik Fedory. Jedyną granicą pozostaje więc swobodny dostęp do źródeł, a nie sam fakt bycia programem "for Linux".
Przypomniała mi się ostatnia afera związana z Mirem, kiedy deweloper KWin, odmówił udostępnienia raportu o nieprawidłowym działaniu KWin pod kontrolą XMir. Powód: Bo to nie jest w jego interesie! Taka jest niestety brutalna prawda. Canonical ma rzeszę zwykłych userów za sobą, ale wśród nich nie ma deweloperów KWin, którzy zauważyliby nieprawidłowe działanie tego programu, tak jak Martin, gołym okiem na podstawie filmu podglądowego. W przypadku Martina jest to jednak błąd nie do odtworzenia. Nie pracuje on na Mir tylko X‑ach i Waylandzie, gdzie taki błąd nie występuje. Instalacja Mira, XMira poznanie ich dokumentacji i źródeł to jednocześnie czas stracony na pracę nad Waylandem, za którą deweloper otrzymuje wypłatę od Blue Systems. Krótko mówiąc: to nie jest w jego interesie i nie jest w interesie użytkowników jego programu. Dlatego wybór Waylanda przez Kubuntu był ważniejszy od spodziewanej popularności pod skrzydłami Canonical.
Po co nam ta popularność?
Pojawia się czasem kolejny mit: "Jeśli Linux stanie się popularny to i pojawią się na niego zagrożenia". Fajne założenie tylko nierealne. Powiedzmy sobie szczerze, Linux nigdy nie będzie popularny. To tylko slogan mający za zadanie odwrócić uwagę od innego problemu. Linux to tylko jeden z komponentów Otwartego Oprogramowania. Choćby znajdował się na milionach tabletów, telewizorów i lodówek to nigdy nie będzie popularny. Tak samo jak GIMP i Apache, które to projekty są także bardzo popularne, ale mimo to Linux ma cały czas te 1,5% w statystykach. Nawet milion sprzedanych komputerów z Ubuntu nadal da Linuksowi te półtora procenta. Dlaczego?
Jakiś czas temu, ktoś nagle powiedział, że Open Source jest złe, Wolne Oprogramowanie jest złe. Linux jest dobry - Linuksa można promować, ale o Open Source będziemy mówili źle, a o Stallmanie, że to demon, który chce zagłady Linuksa. W ten sposób wszystkie dobre rzeczy, które powstały pod banderą GPL dziś określamy jako linuksowe, a wszystko co wymaga czegoś więcej od użytkownika to są "złe otwarte źródła". Demonizuję, wiem, ale taka jest mentalność nowych użytkowników Linuksa. Ktoś wymyślił teorię, że programy linuksowe rozwijają się przez ich używanie. Z matematycznego wykresu wyszło mu, że milion używających rozwija ten program. Bzdura! Żaden z deweloperów tego programu nie zauważy nawet ilu ma on użytkowników, dopóki oni sami mu tego nie oznajmią choćby zwykłym raportem o błędach, albo propozycją zmian.
Z takimi poglądami ani Linux, ani żaden inny wartościowy projekt nie będzie popularny. Podstawą jest promocja otwartych źródeł i Wolnego Oprogramowania. Bez tych rzeczy nie ma szans na udział użytkowników w jakichkolwiek statystykach. Użytkownicy powinni być świadomi tego czego używają i dlaczego akurat tego używają, a nie oprogramowania zamkniętego. I stać się jednocześnie świadomi warunków bezpiecznego użytkowania otwartych programów.
Zwykły user
Tzw. zwykły użytkownik to mit. Zwolennicy zamkniętego oprogramowanie cały czas chcą przemycić pod tym płaszczykiem pojęcie klienta, tyle że jako klient taka osoba byłaby w Open Source na straconej pozycji. Na potrzeby takich zwykłych użytkowników tworzy się więc wirtualny rynek komercyjny w ramach Open Source, razem z takimi rzeczami jak marketing, czy konkurencja.
Powstają więc także teorie jak ta powyżej, że tacy ludzie nie są zainteresowani bezpieczeństwem, więc po co tworzyć dla nich narzędzia bezpieczeństwa. Nie wiem tylko dlaczego ci użytkownicy są aż tak bardzo obciążani i dlaczego sugeruje się, że oprogramowanie ma do nich trafiać bezpośrednie. Tym bardziej, że już nawet w Windows powstają powoli podstawy do dostarczania programów pośrednio.