Strona główna | Informacje | Społeczność | Rozwój | mójReactOS | Kontakt
|
Community > ReactOS Newsletter Archive > ReactOS Newsletter: Biuletyn 90Biuletyn 90by Z98 on 2012-01-23 WiFiPrzez ostatni miesiąc Cameron Gutman pracował nad wsparciem dla kart sieci bezprzewodowych (Wifi) w ReactOS. Znacząca część jego pracy zawarta została w ndisuio - sterowniku protokołu dla NDIS, obsługującym wysyłanie wiadomości identyfikatora obiektu (NDIS Object Identifier Message). Wiadomości te umożliwiają odpytywanie karty sieciowej o jej obecny stan jak i obsługiwane przez nią działania, a także pozwalają na ustawienie trybu odbierania, w którym urządzenie bezprzewodowe ma pracować. Oprócz sterownika, konieczne było stworzenie narzędzia - aplikacji, dzięki której użytkownik mógłby skorzystać z urządzenia i skonfigurować je. Program, nazwany wlanconf, ma także przyporządkować adapter sieciowy do ndisuio. Dodatkowo, konieczne były zmiany w usłudze klienta DHCP, by ten był w stanie poradzić sobie z następującymi szybko po sobie operacjami przypisania i zwolnienia adresu IP, a także sam sterownik TCP/IP - by ten mógł wykorzystać wiadomości OID do kontroli stanu karty WiFi. Cameron dodał swój kod wsparcia WiFi do głównego drzewa projektu tuż przed odgałęzieniem dla wydania 0.3.14, dzięki czemu obecne rewizje umożliwiają już podłączenie się do sieci otwartych, lub zabezpieczonych przez WEP. Sieci zabezpieczone przez WPA/WPA2 stawiają o wiele wyższe wymagania systemowi operacyjnemu, jak chociażby przeprowadzenie skomplikowanej sekwencji połączenia, która nie została nadal zaimplementowana. Mimo to, kod Camerona to znaczący postęp, kolejny krok ku nowoczesnemu i funkcjonalnemu systemowi operacyjnemu. topImplementacja USBJohannes Anderwald z kolei przyspieszył prace nad stosem USB, rozpoczęte jeszcze wespół z Michaelem Martinem, i może pochwalić się już ukończeniem dwóch z czterech sterowników dla standardowych interfejsów USB używanych obecnie. ReactOS posiada już sterowniki OHCI dla USB 1.1 oraz EHCI - dla USB 2.0. Dwa pozostałe, to UHCI dla USB 1.0 w standardzie Intela oraz XHCI - dla nowego interfejsu USB 3.0. Dodatkowo, Johannes ukończył już prace nad standardowym sterownikiem HID (Human Interface Device) dla myszy USB, w stopniu umożliwiającym korzystanie z niego w systemie Windows, lecz w ReactOS błędy systemu nadal wykluczają jego użycie. Sterownik HID dla klawiatur jest nadal w trakcie tworzenia. Wsparcie dla urządzeń pamięci masowej (pendrive, dyski lub czytniki kart) wymagać będzie sterowników w stosie pamięci masowych. Ostatnim brakującym elementem jest wsparcie urządzeń wieloczynnościowych (USB Composite devices). Pomoc Camerona okazała się dla Johannesa nieoceniona, umożliwiając im sprawne wykrycie i naprawę błędów związanych między innymi z rejestracją i instalacją urządzeń, które bezpośrednio blokowały możliwość użycia myszy USB w ReactOS. Poprawki Camerona pomogły pozbyć się także innych problemów w kodzie stosu USB, od kraks systemu po błędy kompilacji rozmaitych jego składników. Kiedy tylko odgałęzienie kodu z nowym stosem USB nabierze stabilności i zostanie solidnie przetestowane, z pewnością niezwłocznie zostanie połączone z głównym drzewem projektu, a ReactOS zyska tak wyczekiwane od lat i wprost niezbędne wsparcie, bez którego nie może dziś obyć się żaden system operacyjny. Nie nastąpi to jednak z pewnością przed kolejnym wydaniem. topShell32Rafał Harabień zaangażował się w rozwój biblioteki shell32, poprawiając dość szeroki wachlarz błędów, od ładowania ikon, poprzez okna dialogowe, aż do rozlicznych błędów z obsługą buforów i pamięci. Algorytm ładowania ikon w oknie "Właściwości" był niedokończoną implementacją kodu już istniejącego w shell32. Rafał pozbył się niedokończonych fragmentów i zmodyfikował okno "Właściwości" tak, by korzystało z poprawnie zaimplementowanego algorytmu. Obecnie, okno to jest w stanie wyświetlić wszystkie ikony a nie tylko te zdefiniowane w rejestrze. Kod okna "Otwórz za pomocą" został przepisany od nowa, by mógł wyświetlać wszystkie aplikacje zainstalowane i dostępne w rejestrze. Przy okazji Rafał naprawił błąd, przez który okno to duplikowało w rejestrze wpisy już istniejące. Shell32 nadal wymaga wiele pracy, zanim będzie w stanie wraz z nową wersją explorera zastąpić obecną powłokę ReactOS. Menu "Start" chociażby, kompletnie nieudokumentowane i niezaimplementowane, wywołuje u Rafała wiele wątpliwości, co do rozdziału zadań pomiędzy explorer, shell32 i bibliotekę odpowiedzialną za samo przeglądanie zawartości dysków. Do czasu rozwiązania tego i innych problemów, zmuszeni jesteśmy do korzystania z obecnej wersji explorera. topUszkodzenia systemu plikówPierre Schweitzer natrafił na kod w dir.c, który w pewnych okolicznościach powodować mógł zapisanie na dysku śmieci. Po zbadaniu sprawy Pierre natrafił na raport testera, opisujący podobny przypadek, wraz z logami debug. Logi, zaskakująco, wskazywały na winę zupełnie innej funkcji, niż ta na którą z początku trafił Pierre. Przy dokładniejszych badaniach okazało się, ze obie funkcje wywołują jeszcze inną, wewnętrzną, zawartą w bibliotece RTL i odpowiedzialną za obsługę ścieżek. Biblioteka RTL znajduje się wciąż w uwadze Aleksa Ionescu, który przepisał już wiele z nich, lecz nie dokończył swojej pracy we wszystkich funkcjach. W efekcie, niska jakość starego kodu, w połączeniu ze zmianami Pierre'a doprowadziły jakimś trafem do możliwości uszkodzenia systemu plików. Po dokończeniu pracy Aleksa, błąd zdawał się zniknąć, lecz Pierre nie jest w stanie udowodnić, w jaki sposób stary kod mógł doprowadzić do takiego problemu jak wyżej opisany.
top |