Twórca Ubuntu wzywa producentów sprzętu do porzucenia ACPI i własnościowego firmware
Powodów, dla których ktoś prowadzący firmę związaną zLinuksem może nie lubić ACPI (zaawansowanego interfejsu zarządzaniakonfiguracją i energią) jest wiele. Krytycy tego rozwiązaniaskarżą się, że jego implementacje to w praktyce najniższy poziomsterowników Windows, więc praca z tym na innych systemachoperacyjnych jest udręką. Mark Shuttleworth – to on jestczłowiekiem nie lubiącym ACPI – podkreśla,że to rozwiązanie jest reliktem czasów, w których systemyoperacyjne były własnościowe i nie mogły być zmieniane przezproducentów sprzętu. Dziś czasy są (według Shuttlewortha)zupełnie inne, więc należy posłać ACPI do lamusa. Ale jak bezACPI sterować konfiguracją sprzętu i zużyciem energii?
Szef Canonicala wydaje się posiadać maszynę czasu do podróżyw przyszłość, gdyż wyjaśnia nam, że dawno dawno temu producencipłyt głównych, nie mogąc zmieniać systemu operacyjnego (czyliWindows), a chcąc dokonać jakichś innowacji, musieli tworzyćfirmware udostępniające standardowy interfejs do np. zarządzaniaenergią, by Windows mogło z tego skorzystać.
Z tego co widać na rynku, Windows jest wciąż dominującąplatformą (choć już może nie monopolistą). Shuttleworth wierzyjednak, że producenci nie potrzebują dziś ACPI takiego jakieznamy, gdyż swoje innowacje mogą oprogramować bezpośrednio, wpostaci łatek dla jądra Linuksa – a to Linux jest *niemal napewno *tą platformą, która maznaczenie. Windows miałoby się zaadaptować do tego modelu,porzucając dotychczas stosowane powszechnie nieweryfikowalne,binarne bloby.
Uzasadniając koniecznośćpozbycia się ACPI, Shuttleworth sięga po argument z bezpieczeństwa,przywołując słowa Bruce'a Schneiera: bezpieczeństwo niejest produktem, jest procesem.Własnościowe firmware jest najlepszym przyjacielem NSA, ale nietylko NSA. Dobrze wiemy, że większość producentów sprzętu niepotrafi napisać zbyt dobrych sterowników, liczba błędów w nichjest niemała – a ile z tych błędów zagraża bezpieczeństwu?Tak więc ci, którzy opowiadają się po stronie tego rozwiązaniarównie dobrze mogliby opowiadać się po stronie zainstalowaniaw salonie czy nawet centrum danych ogromnego konia trojańskiego.
Z perspektywy producenta Ubuntuidealna sytuacja wygląda tak, że sprzęt zawiera jedyniedeklaratywny kod, firmware opisujący powiązania i zależnościsprzętu (na wzór drzewa urządzeń Linuksa), jednak nie ma w nimżadnego kodu wykonywalnego. Software'owe komponenty innowacjisprzętowych znaleźć by się miały w oficjalnym linuksowymkernelu. W efekcie uzyskalibyśmy wolną platformę, którejbezpieczeństwo można by było publicznie testować, i któradziałałaby dobrze pod kontrolą każdego, zgodnego z tym modelemsystemu operacyjnego.
Apel do producentów sprzętubrzmi dziś bardzo utopijnie, choć możliwe, że w przyszłości, wktórej żyje Shuttleworth, jest zupełnie inaczej. Dziś przecieżtrudno niezależnym deweloperom uzyskać od producentów informacje,co dany blob WMI (Windows Management Instrumentation) w sterownikachpłyty głównej robi, a co dopiero otrzymać kod źródłowy.Rozpowszechnianie sterowników jako binarnych blobów ma też dużeuzasadnienie z perspektywy ochrony własności intelektualnej: dlawielu producentów sprzętu (szczególnie związanych z grafiką iwideo) ujawnienie kodu źródłowego sterowników oznaczałobynaruszenie licencji pozyskanych od firm trzecich.
Zarzuty Shuttlewortha wobecsamego ACPI i jego propozycja są też wątpliwe pod względemtechnicznym. Czy sam deklaratywny firmware, opisujący położeniefunkcji, wystarczy bez kodu, który by wiedział, co można zrobić ztą funkcją? Posiadanie standardowego interfejsu, zajmującego siękontrolą systemu, nie jest złym pomysłem. ACPI przecież nieodpowiada tylko za uruchamianie sprzętu, zajmuje się obsługąkomponentów, których w praktyce kernel nie jest w stanie obsłużyć(chyba że chcemy np. w kernelu sterowników dla regulatorównapięcia, a w konfiguracji systemu ręcznego wpisywania parametrówsprzętu, jak w czasach starożytnych kart ISA). Z kolei obawy obezpieczeństwo własnościowych blobów są oczywiście uzasadnione,ale nie trzeba do tego pozbywać się ACPI: aktywnie rozwijana jestotwarta implementacja interfejsu, ACPICA.
To nawoływanie do zmian możemieć więc dziś nieco inny powód. Najnowsza specyfikacja ACPI5.0, z którą zgodne są już płyty główne wielu nowychlaptopów, wprowadza m.in. tryb ConnectedStandby. Wykorzystuje on zupełnie odmienne od znanych zwcześniejszych wersji ACPI rozwiązania w zakresie zarządzaniaenergią, by pozwolić komputerom osobistym na działanie w trybiebardzo niskiego zużycia energii, nie odłączając przy tym ich odsieci. Obecnie Connected Standby jest wspierane tylko przez Windows8/8.1. Jego wprowadzenie na Linuksie wymagałoby ogromnego nakładupracy, tymczasem wciąż, mimo prac ludzi Intela, wiele jest dozrobienia na Linuksie w bardziejpodstawowych kwestiach związanych z ACPI 5.0