Ruch Wolnego Oprogramowania a UDI
Richard StallmanProjekt zwany UDI (Uniform Driver Interface, Uniwersalny Interfejs Sterowników) stawia sobie za cel opracowanie jednolitego standardu interfejsu pomiędzy jądrami systemów operacyjnych a sterownikami urządzeń. Jak powinien się odnieść do tego pomysłu ruch wolnego oprogramowania?
Jeśli wyobrazimy sobie rzeszę programistów systemów operacyjnych i projektantów sprzętu, współpracujących ze sobą na równych prawach, UDI (jeśli jest technicznie wykonalne) byłoby bardzo dobrym pomysłem. Dzięki niemu moglibyśmy napisać tylko jeden sterownik dla danego urządzenia, a wszyscy mogliby z niego korzystać. Umożliwiłoby to zwiększenie poziomu współpracy.
Kiedy ten pomysł zastosujemy w realnym świecie, w którym istnieją zarówno wytwórcy wolnego oprogramowania, dążący do współpracy, jak i wytwórcy programów zastrzeżonych dążący do dominacji, konsekwencje są zupełnie inne. Żadna metoda wykorzystania UDI nie może przynieść pożytku światu wolnego oprogramowania. Jeśli w ogóle jakoś na nas wpłynie, to podzieli nas i osłabi.
Gdyby Linux obsługiwał UDI i gdybyśmy zaczęli projektować nowe sterowniki do komunikowania się z Linuksem poprzez UDI, jakie byłyby tego skutki?
- Ludzie mogliby wykorzystywać w systemach Windows wolne, objęte GPL
linuksowe sterowniki urządzeń.
To zmieniłoby na lepsze tylko sytuację użytkowników Windows – nam, użytkownikom wolnych systemów operacyjnych, nie dałoby nic. Owszem, bezpośredniej szkody też by nam nie przyniosło, ale programiści objętych licencją GPL wolnych sterowników mogliby poczuć się zniechęceni, widząc w jaki sposób wykorzystywana jest ich praca, a to byłoby bardzo źle. Włączanie tych sterowników do zastrzeżonego jądra mogłoby również naruszać warunki GNU GPL. Zwiększanie pokusy takiego postępowania, to igranie z ogniem.
- Ludzie mogliby wykorzystywać w systemach GNU/Linux niewolne sterowniki
z Windows.
Bezpośrednio nie wpływałoby to na liczbę sprzętu obsługiwanego przez wolne oprogramowanie. Lecz sprzyjałoby jej zmniejszaniu się pośrednio, przez podsuwanie pokusy milionom użytkowników GNU/Linuksa, którzy nie nauczyli się jeszcze dla własnego dobra obstawać przy wolności. Im bardziej społeczność zaczęłaby ulegać pokusie, tym bardziej przesuwalibyśmy się w kierunku korzystania z niewolnych sterowników zamiast pisania wolnych.
Samo w sobie UDI nie przeszkadza w rozwoju wolnych sterowników. Tak więc, jeśli wystarczająco wielu z nas odrzuci pokusę, nadal będziemy mogli rozwijać wolne sterowniki mimo istnienia UDI, dokładnie tak samo jak robimy to bez UDI.
Ale dlaczego mielibyśmy zachęcać społeczność, żeby stała się słabsza niż być powinna? Czemu mielibyśmy stwarzać niepotrzebne trudności przyszłemu rozwojowi wolnego oprogramowania? Skoro UDI niczego dobrego nam nie przynosi, lepiej je odrzucić.
Biorąc pod uwagę konsekwencje, nie jest żadną niespodzianką, że popierający UDI Intel zaczął ogłaszać, iż „ma nadzieję, że społeczność Linuksa pomoże przy pracy nad UDI”. W jaki sposób bogata i egoistyczna spółka może podchodzić do wspólnoty opartej na współpracy? Prosząc o jałmużnę, oczywiście. Prosząc nas nie mają nic do stracenia, a gdybyśmy nie mieli się na baczności, moglibyśmy się zgodzić.
Współpraca z UDI nie jest wykluczona. Nie powinniśmy UDI, Intelowi czy komukolwiek innemu przylepiać etykietki Zła Wcielonego. Lecz za każdym razem zanim weźmiemy udział w proponowanym nam interesie, musimy starannie go ocenić, żeby upewnić się, że jest korzystny dla społeczności wolnego oprogramowania, a nie tylko dla rozwijających programy zastrzeżone. W tej konkretnej sprawie oznacza to wymaganie, aby ta współpraca zaprowadziła nas o krok dalej na drodze prowadzącej do ostatecznego celu wolnych jąder systemowych i sterowników: obsługi wszelkiego ważnego sprzętu przez wolne sterowniki.
Jednym ze sposobów na to, żeby interes był udany może być zmodyfikowanie samego projektu UDI. Eric Raymond zaproponował, żeby zgodność z UDI obejmowała wymóg, że sterownik musi być wolnym oprogramowaniem. Tak byłoby idealnie, ale wchodzą w grę także inne możliwości. Wystarczyłoby wymaganie, żeby opublikowano kod źródłowy sterownika, by nie był tajemnicą handlową – gdyż nawet jeśli taki sterownik nie jest wolny, to przynajmniej dzięki temu dowiemy się tego, czego potrzebujemy do napisania wolnego sterownika.
Intel mógłby także poza UDI zrobić coś, co pomogłoby społeczności wolnego oprogramowania rozwiązać ten program. Dajmy na to, istnieją pewnego rodzaju certyfikaty, którymi są zainteresowani konstruktorzy sprzętu, a Intel bierze udział w ich przyznawaniu. Jeśli tak, to mógłby przystać na wprowadzenie utrudnień w certyfikacji, w przypadku jeżeli specyfikacja sprzętu jest tajna. Nie rozwiązałoby to zapewne problemu całkowicie, ale sporo mogłoby pomóc.
Jedną z trudności przy porozumieniu z Intelem na temat UDI jest fakt, że mielibyśmy wykonać naszą część na rzecz Intela na samym początku, podczas gdy oni spłacaliby ją przez długi okres. W praktyce, udzielalibyśmy Intelowi kredytu. Lecz czy kontynuowałby spłatę pożyczki? Prawdopodobnie tak, jeśli mielibyśmy to na piśmie, bez luk prawnych, w przeciwnym razie nie możemy na to liczyć. Powszechnie wiadomo, że korporacje są niegodne zaufania: ludzie, z którymi się umawiamy, mogą być porządni, ale stojący ponad nimi mogą uchylić ich decyzje, a nawet w dowolnej chwili wymienić ich na innych ludzi. Nawet dyrektor naczelny firmy posiadający większość udziałów może zostać wymieniony w wyniku wykupienia spółki przez inną. Przy transakcjach z korporacją zawsze bierzcie wiążące zobowiązanie na piśmie.
Nie wydaje się, żeby Intel zechciał zaoferować nam interes, który dawałby nam to, czego potrzebujemy. Faktycznie, UDI wydaje się być zaplanowane w celu ułatwienia utajniania specyfikacji.
Niemniej jednak, niezamykanie drzwi nie szkodzi, dopóki uważamy na to, komu pozwalamy wejść.