Solid - konfiguracja sprzętu
Jedną z wielu nowych technik dla KDE 4 jest Solid - warstwa pośrednicząca w obsłudze sprzętu. Obsługa sprzętu zawsze była jedną z wad Linuksa i innych systemów UNIXowych, ale Solid ma poprawić tą obsługę w KDE 4. Solid jest podobny do Phonona - jest to także API dla Qt/KDE oparte na instniejących niskopoziomowych komponentach, takich jak pochodzący z projektu freedesktop.org HAL. Solid jest już dość funkcjonalny i a jego wykorzystanie jest widoczne w składnikach KDE.
Solid to API umożliwiające dostęp do informacji takich jak dostępne dyski lub sieci. Solid nie zawiera żadnych sterowników do sprzętu - obsługa sprzętu pozostawiona jest systemowi. Nie pobiera on także informacji bezpośrednio od sprzętu - za to odpowiedzialne są narzędzia takie jak HAL.
Solid został zaprezentowany światu na aKademy i wtedy też pojawiły się pierwsze informacje na jego stronie internetowej. Od tamtej konferencji informacje o Solidzie co jakiś czas pojawiają się w Commit-Digest Dannyego Allena lub też na blogach w planecie KDE. Jeśli zajrzysz na kanał #solid na irc.kde.org (freenode), zobaczysz że nie jest tam zbyt tłoczno i zazwyczaj jest cicho. Ale pozory mylą...
Prace nad Solidem trwały przez ostatnie półtora roku i stawał się on coraz stabilniejszy i coraz bardziej użyteczny. Aktualnie Dolphin i File Dialog wykorzystują Solida do obsługi przenośnych urządzeń do przechowywania danych.
Wewnętrzenie Solid jest podzielony na wiele dziedzin i każda z tych dziedzin powstaje niezeleżnie. Dla przykładu:
Jedym z problemów jest dostęp do urządzeń przenośnych. W przeszłości powstawało już wiele rozwiązań, włączając w to automountery działające na poziomie kernela (kilka lat temu stosowane w Mandrake). HAL jest najnowszym rozwiązaniem tego problemu i radzi sobie całkiem nieźle, ale niektóre dystrybucje jeszcze go nie stosują. KDE tworzy API służące do obsługi tych urządzeń, dzięki czemu twórcy aplikacji nie będą musieli się przejmować tym co dzieje się w tle. Poprzez termin urządzenie przenośne rozumiem nie tylko urządzenia do przechowywania danych, ale także urządzenia audio, baterie w laptopach i inne...
Aktualnie jedynym wspieranym backendem jest HAL, więc urządzenia przenośne w KDE 4 będą go wymagały. Inne backendy dla innych systemów operacyjnych powstaną później. Mimo, że HAL nie istnieje na każdej platformie, to i tak powinien pokryć większość platform UNIXowych. Jeśli ktoś chce możne nawet napisać backend oparty bezpośrednio o mechanizmy znajdujące się w kernelu.
Nie chodzi tu tylko o obsługę urządzeń przenośnych, ale także o inne urządzenia. Phonon wykorzystuje Solida do wykrywania dostępnych urządzeń dźwiękowych i może przełączać się pomiędzy nimi niezauważalnie dla użytkownika. Możesz pamiętać to z demonstracji w artykule o Phononie. To co tam widziałeś to nie tylko Phonon ale także Solid, który dostarcza listę dostępnych urządzeń.
Istenieją także inne dziedziny Solida jak na przykład przenoszenie funkcjonalności z programu NetworkManager, dzięki czemu więcej aplikacji z KDE będzie mogło korzystać z tej funkcjonalności. Większość pracy będzie wykonywał proces działający w tle, który już teraz obsłujuje połączenia ethernetowe oraz WiFi. Pod koniec tygodnia będzie on posiadał już wsparcie dla VPN oraz połączeń wdzwanianych. Zobaczymy co się w przyszłości stanie z KPPP, ale takie programy prawdopodobnie będą miały jeszcze swoją rolę do spełnienia. Celem prac nad wsparciem dla obsługi sieci jest dodanie do programów z KDE prawdziwego trybu offline, dzięki czemu będzie możliwe na przykład czytanie maili bez ciągłych komunikatów programu na temat braku połączenia z internetem. Will Stephenson sugeruje, że połączenia poprzez telefony komórkowe mogłyby być automatycznie zrywane, jeśli żaden program nie korzystałby z sieci.
Kolejną dziedziną jest zarządzanie energią. W tej dziedzinie praktycznie każda dystrybucja stosuje swoje własne rozwiązania. Na szczęście dystrybucje zawierające KDE 4 będą miały bardziej zunifikowany interfejs zarządzania energią. Ta dziedzina dostarcza API, które pozwoli Ci skonfigurować pobór energii poszczególnych urządzeń. Wykorzystuje ona HAL.
Ostatnio dodano także obsługę Bluetooth. Mimo, że jest ona dość świerza to już pozwala na odnalezienie urządzenia Bluetooth i połączenie. Tej usługi nie mogłem przetestować, gdyż nie posiadam żadnego urządzenia z Bluetooth. :)
Istnieje już narzędzie działające w konsoli, pozwalające wykorzystać funkcjonalność Solida. Program ten nazywa się 'solidshell' i jest rozprowadzany wraz z bibliotekami Solida jako część pakietu kdelibs. Przykładowe komendy to:solidshell network set wireless disabledlub
solidshell hardware list detailsktóra odpyta HAL i zwróci listę wszyskich urządzeń oraz ich podstawowe własności. Ci, którzy mają zainstalowane KDE 4 i chcieliby zapoznać się z możliwościami tego narzędzia powinni uruchomić
solidshell --commands
Późniejsze dodanie w Solidzie wspracia dla innych rodzajów urządzeń jest bardzo możliwe. Mogę wyobrazić sobie wparcie dla dodawania urządzeń wskazujących w locie lub wykorzystanie Solida do wykrywania zmian co do urządzeń wyświetlających (np podłączenie nowego monitora), dzięki czemu łatwiejsze byłoby konfigurowanie serwera X. Dziedziny te nie są jeszcze częścią Solida, ale być może zostaną dodane.
Jak pomóc:
Kevin Ottens (aka "ervin"), główny programista Solida ma kilka sugestii dla tych, którzy chcą pomóc. Pierwszą rzeczą jest wykorzystywania API w aplikacjach - im więcej aplikacji będzie z niego korzystało, tym bardziej kompletne API uda się stworzyć. Mile widziana jest też pomoc przy dodawaniu nowych dziedzin w których Solid mógłby być wykorzystany oraz dodawaniu obsługi backendów innych niż HAL.
Innym sposobem pomocy jest także testowanie sprzętu i zgłaszanie błędów. Szczególnie przydatne są zgłoszenia na temat sprzętu, który działa w KDE 3.x, ale nie działa z Solidem/HALem w KDE 4. Jeśli znalazłeś taki sprzęt programiści Solida chcieliby o tym wiedzieć.
Od autora:
Wiele dystrybucji korzystało z HALa, lecz każda dystrybucja miała także własne implementacje obsługi sprzętu. KDE pozostawiało obsługę sprzętu dystrybucjom. Wraz z nadejściem HAL i Solida powstanie bardziej ujednolicony system konfiguracji sprzętu. Jeśli twórcy dystrybucji wykorzystają Solida przyniesie to korzyść wszystkim użytkownikom KDE i uczyni obsługę sprzętu łatwiejszą.

