Podejście pierwsze: rok 1995
O Linuksie słyszało się już od
jakiegoś czasu, ale jako o systemie eksperymentalnym, bardzo trudnym
w obsłudze, raczej dla hakera1
niż dla „zwykłego” użytkownika. Postanowiłem jednak
sprawdzić, na ile system ten może stanowić alternatywę dla
Windows na komputerze wprawdzie nie hakera (którym nigdy nie byłem
i nie jestem), ale jednak zaawansowanego użytkownika. Nie ukrywam,
że dodatkowym bodźcem stała się wprowadzona w lutym 1994 roku
ustawa o prawie autorskim, zapowiadająca kres pirackim instalacjom
Windows. Wprawdzie w pierwszej wersji przewidziano abolicję dla
oprogramowania pozyskanego i zainstalowanego przed wejściem w życie
ustawy, ale było oczywiste, że zapis ten nie oprze się naciskom ze
strony lobby koncernów software-owych i rzeczywiście po jakimś
czasie został zniesiony poprawką do ustawy.
Pobrałem instalację dystrybucji
Slackware 2.2 w postaci obrazów dyskietek 3,5". Dyskietek było
kilkadziesiąt. Cóż to była za operacja: do dyspozycji miałem
modem o „zawrotnej” prędkości 2400 bit/s (tak, tak... bitów,
nie megabitów). W dodatku przy ówczesnej jakości łączy
telekomunikacyjnych zrywanie transmisji było na porządku dziennym,
a i prędkość rzadko kiedy osiągała teoretyczne maksimum.
Męczyłem się z tym jakieś dwa tygodnie (oczywiście nie
siedziałem przy komputerze non stop, tylko wykorzystywałem wolne
chwile), aż wreszcie miałem przygotowany zestaw nośników
instalacyjnych.
Dysponowałem wówczas komputerem z
procesorem AMD 486 100 MHz, 64 MB pamięci RAM i wolną
powierzchnią dyskową około 2 GB, którą mogłem przeznaczyć na
instalację Linuksa. Do codziennej pracy zainstalowany był Microsoft
Windows 3.11 i działał całkiem sprawnie.
Podstawowa instalacja przebiegła bez
większych problemów, jeśli nie liczyć czasu jej trwania. „Schody”
zaczęły się dopiero wtedy, gdy spróbowałem uruchomić środowisko
graficzne. Pomijam już problemy tego typu, że obraz na moim
monitorze był przesunięty (a pod Windows było wszystko dobrze) i
straciłem parę dni na szukanie w Internecie, analizę i poprawianie
plików konfiguracyjnych, aż wreszcie uzyskałem właściwe
położenie i rozdzielczość. Prawdziwy problem stanowiło
koszmarnie długie uruchamianie się środowiska graficznego i bardzo
wolna praca, w praktyce uniemożliwiająca uruchamianie jakichkolwiek
aplikacji użytkowych poza x-terminalem, zegarem i gadżetem z
ruchomymi oczami.
Okazało się, że wydajność mojej
maszyny wystarczy od biedy do pracy z Linuksem w środowisku
znakowym, o interfejsie graficznym właściwie nie ma mowy. Jako
użytkownik systemu Windows nie chciałem rezygnować z pracy w stylu
„dostajesz to, co widzisz” i wracać do konsoli znakowej.
Stwierdziłem, że czas Linuksa jeszcze nie nadszedł.
Podejście drugie: rok 1999
Cztery lata trwało, zanim zdecydowałem
się dać Linuksowi drugą szansę. Impulsem była dołączona do
czasopisma PC World Komputer z grudnia 1998 r. płyta instalacyjna z
dystrybucją S.u.S.E. Linux 5.3. Według opisu dystrybucja ta miała
być bardziej „dla ludzi”, łatwiejszą instalację i
konfigurację miało zapewniać zintegrowane narzędzie YaST (Yet
Another Setup Tool).
Miałem wtedy maszynę z procesorem AMD
K5 PR100 (mniej więcej odpowiednik Pentium 100 MHz), pamięcią RAM
128 MB i 5 GB wolnej powierzchni dyskowej.
Nie starałem się tym razem tworzyć
konfiguracji mającej zastąpić system Windows. Chciałem raczej
zobaczyć w jakim kierunku rozwinął się Linux od czasu moich
pierwszych prób ze Slackwarem i czy stał się choć trochę
bardziej przyjazny dla komputerów biurkowych.
Niewiele pamiętam z tego okresu.
Przede wszystkim, jako niehakerowi, bardzo spodobał się YaST,
dzięki któremu większość zadań związanych z instalacją i
konfiguracją systemu mogłem wykonać bez edytowania skryptów. No,
nie wszystkie, bo ciągle jeszcze miałem monitor i grafikę, które
nie chciały poprawnie wyświetlać obrazu w pożądanej przeze mnie
rozdzielczości bez poważnej ingerencji w ustawienia X-serwera. Poza
tym stwierdziłem, i to już nie było pozytywne doświadczenie, że
zestaw programów użytkowych dostarczonych na płycie dystrybucyjnej
jest dla mnie zdecydowanie niewystarczający, zaś doinstalowanie
nowych pociąga za sobą bardzo duże koszty: wymaga pobierania
ogromnej ilości megabajtów z Internetu, a ja wciąż jeszcze miałem
wtedy łącze modemowe i płaciłem za każdy bajt. Doszedłem zatem
do wniosku, że czas używania Linuksa na moim osobistym komputerze
jeszcze nie nadszedł, chociaż dystrybucja S.u.S.E. pozostała w
mojej pamięci jako ta, do której być może warto będzie powrócić
w przyszłości.
Podejście trzecie: rok 2001
Tym razem się zawziąłem. W oparciu o
SUSE 7.0 postanowiłem zbudować instalację systemu operacyjnego w
pełni obsługującą język polski (to znaczy polskie znaki i
słowniki, interfejs pozostawiłem w języku angielskim) a także
cały posiadany wówczas sprzęt, a było tego trochę: oprócz
wspomnianej wcześniej jednostki centralnej opartej na procesorze AMD
K5 PR100 z pamięcią 128 MB był jeszcze sprzętowy akcelerator DVD
Creative dxr2, drukarka Lexmark 1000, skaner Plustek OpticPro 4800P,
napęd dysków wymiennych Iomega ZIP 100 na port równoległy.
Wszystko razem działające bezproblemowo pod kontrolą Windows 98.
Z tą konfiguracją męczyłem się
całe dwa tygodnie (oczywiście nie siedząc stale przy komputerze,
ale poświęcając prawie cały czas wolny), zaś uwagami do
instalacji zapisałem cały szkolny zeszyt 16-kartkowy. Mimo to nie
udało mi się osiągnąć całkowicie satysfakcjonującego
rezultatu. A oto szczegóły:
- Akceleratora DVD w ogóle nie udało mi się uruchomić. Znalazłem wprawdzie jakiś stary projekt mający na celu obsługę tego urządzenia pod Linuksem, ale były dostępne tylko pliki źródłowe, w dodatku dostosowane do starszej wersji środowiska X Window. Musiałbym samodzielnie dokonać adaptacji, co by wymagało edycji źródeł i dogłębnej znajomości środowiska. Nie czułem się na siłach.
- Drukarka Lexmark 1000 jest typową drukarką „windowsową” i w owym czasie nie była jeszcze obsługiwana przez Linux. Znalazłem wprawdzie jakiś eksperymentalny hakerski sterownik, ale wykorzystywał on emulację PostScriptu. Efekt – strona, która z poziomu Windows drukowała się trzy minuty, pod Linuksem potrzebowała kilkunastu minut, przy czym system był tak obciążony, że podczas drukowania nie dawało się nic robić. Jakby tego było mało obsługiwany był wyłącznie nabój kolorowy, podczas gdy ja chciałem używać wymiennie koloru i czarnego. Tak więc obsługę drukarki zmuszony byłem uznać za niezadowalającą.
- Skaner Plustek OpticPro 4800P na listach kompatybilności sprzętu był (i jest nadal) wymieniany jako w pełni obsługiwany przez interfejs SANE. Sterownik (wówczas była to wersja, o ile dobrze pamiętam, jakieś 0.8.x) udało mi się pobrać i zainstalować. Pierwsze wrażenia były pozytywne, bo skaner ruszył. „Schody” zaczęły się, gdy spróbowałem zwiększyć rozdzielczość skanowania powyżej 100 dpi: z urządzenia dały się słyszeć przeraźliwe zgrzyty, listwa skanująca zaczęła się poruszać z jakąś dziwną, znacznie wolniejszą niż normalnie prędkością, po czym uderzyła w ograniczniki. Musiałem wyłączyć skaner z uwagi na groźbę jego fizycznego uszkodzenia. Dodam, że sprzętowa rozdzielczość skanera wynosi 300 dpi, zaś jego obsługa w systemie Windows (od 3.10 do 98, NT i 2000, do XP nie ma sterownika) nie napotyka na żadne trudności, niezależnie od rodzaju i prędkości portu równoległego. Z uwagi na powyższe, algorytm obsługi skanera w systemie Linux uznałem uznać za błędny.
- Instalacja sterownika do napędu Iomega ZIP wymagała kompilacji jądra systemu, a zatem pobrania całego środowiska programistycznego, z kompilatorem gcc, bibliotekami, źródłami jądra itp., w sumie około 200 MB danych. Sama kompilacja na moim sprzęcie trwała kilkanaście godzin. O dziwo, wszystko zakończyło się sukcesem i napęd zaczął działać. Zapomnieć musiałem jedynie o współdzieleniu portu równoległego (pod Windows 98 ZIP i skaner pracowały na tym samym porcie), czego Linux nigdy nie umożliwiał i nie umożliwia do dzisiaj. Sukces uznałem za okupiony zbyt dużym nakładem pracy i kosztów: pod Windows instalacja sterownika do ZIP-a trwa kilka minut, a rozmiar pliku instalacyjnego do ściągnięcia to kilkadziesiąt kB.
Mając gotową instalację Linuksa i
działający na tej samej maszynie Windows 98 (na oddzielnych
partycjach dyskowych) postanowiłem zrobić test szybkości działania
programów użytkowych pod kontrolą obydwu systemów. Tak się
złożyło, że miałem do dyspozycji pakiet aplikacji biurowych
StarOffice 5.2 w wersji dla Windows i w wersji 5.1 dla Linuksa.
Wprawdzie to nie dokładnie to samo, ale uznałem, że wersje są na
tyle bliskie sobie, iż nie powinno to zbytnio wpływać na wynik,
orientacyjnego w końcu, testu.
Po zainstalowaniu oprogramowania pod
Linuksem (pod Windows używałem go na co dzień) i przeprowadzeniu
testów z kilkoma przykładowymi plikami stwierdziłem, że praca z
oprogramowaniem biurowym pod Linuksem jest orientacyjnie dwa razy
wolniejsza, niż na tej samej maszynie pod Windows 98. Dotyczyło to
zarówno czasu uruchamiania się programów, operacji na plikach, jak
też czasu odpowiedzi programu na polecenia wydawane przy pomocy
klawiatury lub myszy.
Tak więc w roku 2001 czas Linuksa na
komputerze biurkowym w dalszym ciągu dla mnie nie nadszedł. Zbyt
dużo pracy koniecznej do skonfigurowania systemu, problemy ze
sprzętem, wolna praca, brak istotnych korzyści.
Lata 2010 – 2011
To nie było jedno podejście, tylko
cała seria. Bezpośrednim bodźcem było zestarzenie się systemu
Windows 98, który nie tylko stracił wsparcie ze strony Microsoftu,
ale również ze strony nawet najbardziej konserwatywnych
programistów aplikacji użytkowych. Chciałem zatem zbadać
możliwość postawienia Linuksa zamiast (kosztownej) aktualizacji
systemu Windows.
Dysponowałem już wówczas komputerem
Siemens Scenic 800, którego konfigurację przedstawiłem w jednym z
pierwszych artykułów. Komputer był początkowo wyposażony w 256
MB pamięci RAM, rozszerzonej później do 640 MB.
Testowanymi dystrybucjami były:
OpenSuse 10 i 11, Ubuntu 10 i 11, Fedora 11, Mandriva 209 Spring,
2010 Spring, 2011.0, Mageia 1, Debian 5.0 Lenny i jeszcze kilka
innych, mniej znanych.
Skąd tyle testowanych dystrybucji?
Głównie z powodu jednego problemu: prawie żadna dystrybucja nie
była w stanie wykryć i zainstalować sterownika do interfejsu
PCMCIA z kontrolerem na magistrali ISA, zainstalowanego w moim
komputerze. Nie byłby to wielki problem, gdyby nie fakt, że do
połączenia z Internetem używałem (i używam do dzisiaj) modemu
GSM Sierra Aircard 850 (wcześniej 860) w postaci karty PCMCIA
właśnie, czym zaś jest (albo może raczej czym nie jest) Linux bez
Internetu, to każdy, kto miał kiedykolwiek kontakt z tym systemem,
wie doskonale.
Można by powiedzieć: sam jesteś
sobie winien. Dlaczego Linux miałby obsługiwać jakiś egzotyczny
kontroler, w dodatku na zabytkową magistralę ISA? Z dwóch powodów:
po pierwsze, jest on wykrywany przez każdą wersję systemu Windows
wprost „z pudełka”. Rozszerzenie jest rozpoznawane jako
"Kontroler PCMCIA Plug and Play SCM SwapBox Family", a
sterownik jest uniwersalny, wspólny dla całej grupy urządzeń.
Czyżby Linux nie umożliwiał implementacji takiego uniwersalnego
sterownika? Drugi powód jest poważniejszy: otóż napisałem, że
prawie żadna dystrybucja nie była w stanie obsługiwać mojego
kontrolera. „Prawie” to znaczy, że jedynym wyjątkiem okazała
się Mandriva, wykrywająca urządzenie automatycznie i instalująca
sterownik wprost z nośnika, bez konieczności szukania czegokolwiek
w Internecie. To jednak oznacza, że linuksowy sterownik istnieje.
Dlaczego nie mają go inne dystrybucje? Co ciekawe, nawet Mageia
powstała jako odgałęzienie projektu Mandriva, już tego kontrolera
nie obsługuje.
Interesująca okazała się sprawa z
Debianem. Otóż podczas instalacji systemu zauważyłem, że karta
modemowa zainstalowana w gnieździe PCMCIA dostała zasilanie i
uzyskała połączenie z siecią komórkową, co jest sygnalizowane
miganiem na zielono lampki kontrolnej. Jednak po zakończeniu
instalacji i uruchomieniu systemu z dysku twardego modem był
nieaktywny. To by świadczyło, że Debian ma właściwy sterownik,
tylko z jakichś powodów nie jest on instalowany. Próbowałem pytać
na forach dyskusyjnych Debiana: nikt nic nie wie.
Pozostałem zatem przy Mandrivie.
Zainstalowałem wersję Mandriva One z płyty CD, żeby szybko
stwierdzić, że wersja ta zawiera stosunkowo ubogi zestaw
oprogramowania. Wszystko właściwie trzeba pobierać z Internetu, co
przy połączeniu przez sieć GSM nie bardzo mi odpowiadało.
Spróbowałem zatem zainstalować
Mandrivę Free, która z racji dystrybucji na płytach DVD oferuje
więcej aplikacji w pakiecie i tu niespodzianka: po uruchomieniu
instalatora okazało się, że „nie widzi” on ani dysku twardego,
ani napędu DVD. To znaczy: nie widzi napędu, z którego sam
wystartował! Tu aż chciałoby się zawołać, parafrazując znane
powiedzenie: takie rzeczy, to tylko w Linuksie! Poradziłem sobie w
ten sposób że zainstalowałem Mandrivę One, a płyty z Mandivą
Free zdefiniowałem jako dodatkowe repozytoria.
Przyszła kolej na uruchamianie
urządzeń peryferyjnych. Z góry założyłem, że nie będę
uruchamiał napędu dyskietek Iomega ZIP (pamięci flash są znacznie
wygodniejsze, szybsze i pojemniejsze) ani karty Creative dxr2 (jak
się kiedyś nie udało, to po upłynięciu dłuższego czasu od
zakończenia produkcji tym bardziej się nie uda). Chciałem jednak,
aby pozostały sprzęt był w pełni obsługiwany. A tymczasem:
- Skaner Plustek Optic Pro 4800P działał, ale tylko do rozdzielczości 100 dpi. Błędy, które występowały w sterownikach sane 0.8.x po latach powtórzyły się w wersji 1.x. Być może nikt spośród społeczności zajmującej się Linuksem nie był zainteresowany wspieraniem tak starego urządzenia, ale mnie jako użytkownikowi nie uśmiecha się wyrzucanie sprawnego sprzętu tylko dlatego, że Linux go poprawnie nie obsługuje.
- Karta graficzna Ati All-In-Wonder zadziałała, ale tylko jako grafika. Zintegrowany na karcie tuner TV nie dał się uruchomić: Linux nie wspiera tego układu. Spróbowałem uzyskać obraz na odbiorniku telewizyjnym podłączonym przez wyjście TV-out, ale przy X-serwerze obsługującym układ Ati Rage Pro nie było to możliwe. Po długich poszukiwaniach w sieci znalazłem rozwiązanie: należy zainstalować X-serwer obsługujący standard VESA. Rzeczywiście: po instalacji tego X-serwera i ustawieniu „telewizyjnych” parametrów odświeżania, na podłączonym odbiorniku TV pojawił się obraz. Próba odtworzenia pliku video zakończyła się jednak kompletną porażką. Filmy odtwarzane płynnie na tym samym komputerze pod kontrolą Windows, pod Linuksem zacinały się niemiłosiernie. Wydajność serwera VESA okazała się nad wyraz marna.
- Pod Windows miałem skonfigurowane udostępnianie połączenia internetowego za pośrednictwem bezprzewodowej karty Planet. Niestety Mandriva nie wykryła tej karty i nie zainstalowała sterowników. Szukanie w Internecie na niewiele się zdało. Wpadłem na pomysł, jak się okazało niefortunny, aktualizacji jądra systemu do najnowszej wersji. Po zakończeniu tej operacji okazało się, że przestał działać modem GSM i straciłem połączenie z Internetem. Przeglądając log systemowy stwierdziłem, że przy inicjalizacji modemu generowany jest komunikat, iż nie można przypisać portu COM z powodu braku zasobów. Czyli: ze starym jądrem zasoby były, z nowym – zniknęły. Znowu: takie rzeczy, to tylko w Linuksie! Odechciało mi się dalszej zabawy.
Przy okazji instalacji Mandrivy 11 postanowiłem wypróbować nową
wersję 4.x środowiska graficznego KDE. Koszmar! Na słabszym
sprzęcie w ogóle nie daje się pracować, w dodatku nie ma
bezpiecznej drogi powrotu do KDE 3. Jeśli Linux ma się rozwijać w
kierunku efekciarstwa pożerającego ogromne zasoby mocy
obliczeniowej komputera, jak to ma miejsce w przypadku Windows, to
dla mnie nie stanowi żadnej alternatywy.
Mandriva 2011 okazała się ostatnią oficjalną dystrybucją tego
systemu. Pod koniec 2011 roku projekt upadł. Wprawdzie ukazała się
jeszcze beta wersji 2012 przygotowana przez społeczność już bez
wsparcia firmy Mandriva, ale był to już naprawdę „łabędzi
śpiew”. Tak więc „padła” ostatnia znana mi dystrybucja
Linuksa obsługująca (choć nie do końca) posiadany przeze mnie
sprzęt.
A więc co: mam zmieniać komputer? Kupować nowy modem, skaner,
kartę graficzną? Zmieniać sieć bezprzewodową? Wydać pieniądze
na sprzęt, żeby uruchomić „darmowego” Linuksa? Nie, dziękuję.
Przynajmniej dopóki nie muszę.
Ostatnie podejście: zima 2012
Nie, nie próbowałem po raz kolejny instalować Linuksa na moim
komputerze stacjonarnym. Poprzednie doświadczenia wystarczą mi
zapewne na długo. Stawszy się jednak właścicielem notebooka
Toshiba 3440CT chciałem spróbować, czy jakaś dystrybucja nie
będzie w stanie zastąpić zainstalowanego na nim, bardzo już
wiekowego Windows 98.
Ze względu na stosunkowo słabe parametry sprzętu, a przede
wszystkim małą pojemność dysku twardego, zajętego w dodatku
przez system Windows z którym na razie nie chciałem się rozstawać,
wybór padł na Puppy Linux, minidystrybucję mającą możliwość
uruchamiania z pamięci flash.
Pierwszy problem polegał na tym, że BIOS mojego komputera nie ma
możliwości uruchamiania systemu operacyjnego z pendrive'a. To
jednak niewielka przeszkoda. Wystarczyło zainstalować Plop Boot
Manager (dostępny tutaj) i sprawa rozwiązana.
Następnie przygotowałem startowy pendrive z systemem i rozpocząłem
testowanie.
Pierwsze wrażenie było całkiem pozytywne. System wystartował i
pracował dosyć żwawo, zważywszy korzystanie z pendrive'a a nie z
dysku twardego, co stanowi dość istotny czynnik spowalniający,
zwłaszcza że mój komputer posiada interfejs USB 1.1, a nie 2.0.
Dalej już tak dobrze nie było. System nie wykrył karty sieciowej
SpeedTouch na PCMCIA. O ile o takiej marce zapewne mało kto słyszał,
to o ORiNOCO wie już chyba każdy, kto choć trochę poważniej
interesuje się sieciami bezprzewodowymi. Właśnie układ ORiNOCO,
albo jakiś jego klon stanowi „serce” mojej karty sieciowej.
Zaglądam do opisu sterownika dla Windows: ten sam sterownik
obsługuje 64 modele kart sieciowych. A więc to nie jest żadna
„egzotyka”, tylko de facto standard przemysłowy. Nie po raz
pierwszy okazuje się jednak, że uniwersalne sterowniki są
prawdziwą piętą achillesową Linuksa.
No to może na USB? Podłączam adapter inventel model UR05g.
Tajwański, ale pod Windows bardzo dobrze działa. Nic z tego. Puppy
Linux nie wykrywa takiego sprzętu.
Może zatem zrezygnować z domowej sieci bezprzewodowej (ale w imię
czego!) i połączyć się z Internetem przez modem komórkowy? Wszak
mam do dyspozycji modemy Sierra Aircard 850 i 860 na PCMCIA. Dalej
nic z tego. System nie rozpoznaje sprzętu.
Tak więc znowu mam działającego Linuksa, ale bez możliwości
połączenia z Internetem. Próbowałem „szczeniaczki” Slacko i
Wary z tym samym skutkiem. Mam dosyć, zostaję przy Windows 98.
Co mi najbardziej przeszkadza w linuksie?
Przede wszystkim, jak łatwo wywnioskować z tego co napisałem
powyżej, problemy ze sterownikami do sprzętu. Użytkownik Windows
może się nie przejmować: może kupować to, co mu najbardziej
pasuje ze względów użytkowych, finansowych, emocjonalnych czy
jakichkolwiek innych, a sterownik, jeśli go nie ma w systemie,
dostanie od producenta urządzenia.
W przypadku Linuksa trzeba mieć albo system zainstalowany przez
producenta komputera (np. laptopa czy netbooka), co jest najlepsze bo
wtedy wszystko pasuje, albo mieć sprzęt w miarę „na czasie”,
niezbyt stary, bo stare sterowniki są usuwane z dystrybucji systemu
i nie najnowszy, bo może się okazać, że nie zostały jeszcze
opracowane, albo mieć po prostu szczęście, co się zresztą zawsze
przydaje. Mało tego: nawet jeśli sterownik istnieje, to jeszcze nie
znaczy, że da się łatwo zainstalować. Czasem trzeba kompilować
moduły jądra, a to z kolei oznacza konieczność zainstalowania w
systemie całego środowiska programistycznego: kompilatora,
bibliotek, plików nagłówkowych, w dodatku wszystko musi być
zgodne co do wersji z dokładnością do ostaniej cyferki po
ostatniej kropce i zajmuje kilkaset MB na dysku. Jeśli celem jest
zainstalowanie tylko jednego sterownika, na przykład do karty
sieciowej, całość przypomina strzelanie do komara z armaty.
A co ze sterownikami od producentów? Dlaczego ich nie ma, a nawet
jeśli są to obsługują tylko kilka komercyjnych dystrybucji,
stanowiąc raczej wyjątek potwierdzający regułę?
Przede wszystkim nie jest możliwe opracowanie sterowników w postaci
binarnej. Nawet dystrybucje Linuksa korzystające z tego samego
modelu pakietów binarnych, jak rpm czy deb, różnią się
szczegółami w takim stopniu, że pakiet z jednej dystrybucji nie
pasuje bez przeróbek do drugiej. A najpopularniejszych dystrybucji
jest co najmniej kilkanaście, wszystkich nie da się chyba zliczyć.
W dodatku tam się wszystko ciągle zmienia. Nowe wersje jądra
systemu pojawiają się co kilka miesięcy, czasem nawet tygodni, zaś
sterowniki urządzeń, bardzo silnie związane z jądrem, z reguły
nie dają się przenosić pomiędzy wersjami. Tak więc producent,
który by się wpakował w coś takiego, miałby niekończącą się
pracę z aktualizacją oprogramowania, na opracowywanie nowych modeli
urządzeń pewnie by mu już czasu i środków nie starczyło.
Dlaczego zatem, zgodnie z postulatami środowiska programistów i
hakerów związanych z ruchem wolnego oprogramowania, producenci (a
przynajmniej większość) nie dostarczają sterowników w wersji
źródłowej, co by pozwoliło społeczności na łatwe ich
dostosowanie do dowolnej dystrybucji, albo nie udostępnią
szczegółowej dokumentacji technicznej urządzeń, co by pozwoliło
hakerom samodzielnie opracować dobre sterowniki? Myślę, że
odpowiedź jest prosta. Takie działanie znacznie ułatwiałoby
produkcję „klonów” urządzeń, albo ich funkcjonalnych
odpowiedników, ujawniałoby myśl techniczną, która mogłaby komuś
dopomóc, po dołożeniu własnych badań i usprawnień, do
produkowania urządzeń lepszych lub tańszych, stanowiących trudną
konkurencję na rynku. Dla postępu technicznego mogłoby to być
nawet bardzo dobre, ale nie każdy producent chce się na coś
takiego godzić. Moim zdaniem ma prawo.
Tak więc programiści linuksowi w wielu wypadkach skazani są na
„inżynierię wsteczną” polegającą na analizie sterowników
dla innych systemów operacyjnych (najczęściej Windows),
„rozszyfrowywaniu” schematów urządzeń (w dobie układów
scalonych o wysokiej skali integracji rzadko się to udaje, chyba że
ma się do dyspozycji wyspecjalizowane laboratoria), analizie
działania układów, a na koniec – na metodę prób i błędów.
Prowadzi to nie tylko do ogromnego zaangażowania sił i środków,
ograniczenia liczby obsługiwanych urządzeń, ale i do powstawania
kodów obarczonych poważnymi usterkami, choćby takimi jak
opisywałem na przykładzie mojego skanera.
Drugi problem, który mnie osobiście daje się we znaki, to
zmienność i różnorodność systemów linuksowych oraz wpływ tych
cech na oprogramowanie użytkowe.
W przypadku systemów Windows przez długie lata panowała zasada
wstecznej kompatybilności. Nawet zmieniając system operacyjny na
nowszy, nawet w przypadku takiego „skoku” jak od Windows 3.11 do
XP nie byłem zmuszony do wymiany całego oprogramowania. Miałem i
mam nadal dowolność w wyborze wersji aplikacji. Mogę aktualizować
lub nie, jeśli na przykład starsza wersja z jakiegoś powodu
(choćby ze względu na mniejsze wymagania systemowe) bardziej mi
odpowiada. Jakiekolwiek aktualizacje i poprawki instalowane w
systemie operacyjnym nie mają prawa wpływać na działanie
zainstalowanego oprogramowania użytkowego, a „wypadek” jaki się
przydarzył przy okazji service pack-a 2 dla Windows XP wywołał
ogromne niezadowolenie użytkowników, chociaż dotyczył stosunkowo
niewielkiej liczby aplikacji (za to „znaczących”, jak na
przykład AutoCAD). Mogę używać nie zmienionej konfiguracji
systemu przez wiele lat, a jeśli po jakimś czasie przyjdzie mi do
głowy jakieś nowe zastosowanie, bez trudu znajdę i zainstaluję
odpowiednie oprogramowanie, jeśli tylko jest przeznaczone dla
aktualnie używanej wersji Windows. Nikogo (ani mnie, ani producenta
oprogramowania) nie musi obchodzić, jakie poprawki mam (lub nie
mam) w systemie. W szczególnych przypadkach koniecznych rozszerzeń,
jak na przykład .NET Framework czy Visual C++ Runtime jest to jasno
powiedziane, instalator tego „pilnuje”, a same rozszerzenia są
łatwe do zdobycia i zainstalowania.
A jak jest w Linuksie? Najbezpieczniej jest, jeśli oprogramowanie
użytkowe pochodzi z repozytoriów danej dystrybucji. Pakiety
instalacyjne na ogół nie są wymienne nie tylko pomiędzy różnymi
dystrybucjami (choć niby to Linux i to Linux), ale nawet pomiędzy
wersjami tej samej dystrybucji. Pociąga to za sobą konieczność
wymiany całego oprogramowania użytkowego przy każdej poważniejszej
aktualizacji systemu, a pamiętać należy, że zmiany zachodzą tu
znacznie częściej niż w przypadku Windows. No to może nie
aktualizować? Zainstalować jakąś dystrybucję która działa na
danym sprzęcie, zainstalować potrzebne oprogramowanie zgodne z tą
dystrybucją i eksploatować do końca życia systemu? Zachęcające,
tylko żeby po latach nie przyszło nam do głowy, że przydałby się
jeszcze jakiś malutki programik do zastosowań, których kiedyś nie
przewidzieliśmy. Wtedy się okaże, że nie możemy pobrać go z
repozytorium, bo repozytoria zniknęły, paczka instalacyjna od
nowszej wersji nie pasuje, ze źródeł skompilować się nie da, bo
nie ta wersja kompilatora, bibliotek itp. Tak więc nie aktualizować,
to stworzyć środowisko, które szybko się „zamknie”
uniemożliwiając rozbudowę, zaś aktualizować, to ciągle
grzebanie w systemie i zmienianie aplikacji. Ja na takie zabawy nie
mam czasu. No a jeśli stara wersja jakiegoś jednego programu
bardziej pasuje niż nowa, a dla innego nowsza wydaje się lepsza?
Takie rzeczy, to niestety nie w Linuksie.
Trzecia sprawa, to uzależnienie systemu do Internetu. Może w
krajach o bardziej rozwiniętej infrastrukturze teleinformatycznej
nie stanowi problemu, że system musi być stale przyłączony do
sieci i to przez łącze o dużej przepustowości i bez limitów
transferu. Inaczej nic się nie da zrobić: każda aktualizacja
systemu to ściąganie setek megabajtów, zainstalowanie
najprostszego programu może wymagać tego samego ze względu na
konieczność spełnienia różnych „zależności”, kompilacja
programów dystrybuowanych w postaci plików źródłowych (choćby
niewielkich) wymaga zainstalowania, potężnego objętościowo,
środowiska programistycznego. Może jestem staroświecki (jako
„dinozaur” mam chyba do tego prawo), ale w pełni doceniając
zalety Internetu wolałbym być w sieci wtedy, kiedy chcę. Systemy
„przywiązane” do Internetu jakoś mi nie leżą, a ściąganie
ogromnych ilości danych w polskich warunkach może poważnie uderzyć
po kieszeni.
Pomarzyć któż nam zabroni
Czasem się zastanawiam, jaki powinien być Linux, żeby na
komputerach domowo – biurowych stanowić realną konkurencję dla
Windows. Taka konkurencja byłaby z punktu widzenia użytkownika
bardzo wskazana. Może wtedy włodarze Microsoftu zastanowiliby się
głębiej nad swoją polityką wymuszania zakupów, śrubowania cen i
kontrolowania komputerów swoich klientów. Wydaje mi się, że dla
zaistnienia takiej konkurencji konieczne byłoby spełnienie
następujących postulatów.
- Opracowanie uniwersalnego, wspólnego dla wszystkich dystrybucji binarnego pakietu instalacyjnego dla aplikacji. Taki pakiet winien zawierać instalator pozwalający automatycznie umieścić potrzebne pliki w systemie i skonfigurować aplikację do uruchomienia. Powinien być w miarę możliwości samowystarczalny, a jeśli miałyby występować jakieś „zależności”, to instalator powinien o tym informować, zaś do ich spełnienia powinno wystarczać zainstalowanie co najwyżej kilku dodatkowych pakietów.
- Opracowanie uniwersalnego, wspólnego dla wszystkich dystrybucji, niezależnego od wersji jądra systemu, binarnego formatu sterownika dla urządzeń peryferyjnych. Takie rozwiązanie mogłoby wymagać wprowadzenia pośredniej warstwy wirtualizacyjnej pomiędzy sterownikiem a jądrem.
Czy taki system byłby jeszcze
Linuksem? Tego nie wiem. Nie słyszałem, żeby ktokolwiek planował
rozwój systemu w takim właśnie kierunku, a nie będąc hakerem ani
programistą systemowym sam nie mogę się do tego przyczynić. Tak
więc marzenie pozostaje marzeniem.
1 Polska
Wikipedia podaje dwa znaczenia słowa „haker”: osoba o wysokich praktycznych umiejętnościach informatycznych, albo osoba która wyszukuje i wykorzystuje luki bezpieczeństwa w oprogramowaniu komputerowym.
Ja konsekwentnie będę używał określenia „haker” w tym
pierwszym znaczeniu.
Brak komentarzy:
Prześlij komentarz