Strona główna | Informacje | Społeczność | Rozwój | mójReactOS | Kontakt
|
Community > ReactOS Newsletter Archive > ReactOS Newsletter: Biuletyn 87Biuletyn 87by Z98 on 2011-08-29 Rezultaty Google Summer of Code 2011Z sześciu projektów, zaakceptowanych w tegorocznym Google Summer of Code dla naszego projektu, cztery bliskie są ukończenia. Każdy z ukończonych wydatnie wpłynie na użyteczność systemu lub stanowić będzie solidny fundament dla przyszłych zmian. Nasze projekty związane były szczególnie ze stabilnością systemu oraz wyglądem jego interfejsu. Termin nadsyłania raportów końcowych już upłynął, a w chwili obecnej Google analizuje wyniki, osiągnięte przez studentów. Z pozycji Ekipy Projektu, chcielibyśmy podziękować Google za tą niezwykłą szansę, daną naszym studentom, za możliwość wzięcia udziału w tym fascynującym przedsięwzięciu, mając nadzieje, iż zdobyte w nim doświadczenie pozwoli nam w przyszłości uniknąć pewnych błędów, jak i sprawić by więcej projektów kończyło się powodzeniem w przyszłych latach. topZestaw testów trybu kernelaThomas Faber ukończył szkielet mechanizmu, pozwalającego na testy w trybie kernela, a obecnie dodaje jeszcze poszczególne testy do zestawu. Zestaw testów trybu kernela umożliwi testowanie funkcji, dostępnych wyłącznie w tym trybie, funkcji z których korzystają głównie sterowniki. Niniejszego obszaru zestaw testów Wine w ogóle nie obejmuje, co nie dziwi, jako, że celem Wine jest uruchamianie aplikacji Windows a nie sterowników. Celem naszego projektu jest natomiast pełna kompatybilność z systemem Windows, włącznie z uruchamianiem sterowników z tego systemu operacyjnego. Głównym celem testów trybu kernela jest dokładne odwzorowanie nieudokumentowanych przeważnie funkcji kernela i ich precyzyjne odwzorowanie w ReactOS. Dzięki nim będziemy w sposób nie ulegający wątpliwości mogli udowodnić celowość pewnych zmian w kodzie, poprzez analizę porównawczą testów w obu systemach, co do tej pory stanowiło kwestię dość kontrowersyjną lub nawet trudną do wyjaśnienia pytającym z zewnątrz. Wyniki testów pozwolą również na odpowiednio wczesne wyłapywanie nieprawidłowości czy regresji, które do tej pory mogły być wykryte jedynie przypadkowo. Testy same w sobie zawierają stosownie udokumentowane przykłady, pochodzące z naszych badań jak i stosowny wzorzec, wskazujący na to, co nasz projekt chce osiągnąć. Następnym krokiem Thomasa będzie integracja testów trybu kernela z używanym do tej pory mechanizmem automatycznego testowania rewizji, do czego zresztą od samego były zaprojektowane. topWdrożenie lwIPPrzetworzenie przez Claudiu Mihaila biblioteki lwIP (lightweight TCP stack), do postaci sterownika systemu Windows zakończyło się pełnym powodzeniem, a sam sterownik został dodany do głównego drzewa projektu. Testy dokonane przez Camerona wykazały, iż poprawiła się znacząco wydajność jak i stabilność stosu sieci, nawet pod dużym obciążeniem. Cameron Gutman próbował testów wydajnościowych na szerokiej gamie aplikacji. W ReactOS działał naraz Abyss (serwer WWW), chargen, Opera i telnetd, bez widocznych problemów ze strony samego stosu sieci. Test zakończył się wprawdzie kraksą, po pewnym czasie, jednak przyczyną był wyciek pamięci w puli win32k, który przy tej okazji został również załatany. Pokazuje to, jak trudne zadanie stało początkowo przed Claudiu i Cameronem, gdy pierwsze testy lwIP pokazały liczne problemy, takie jak gubienie pakietów, nieprawidłowe zakańczanie połączeń TCP czy też kiepską wydajność samej biblioteki w tak nietypowym dla niej środowisku (lwIP napisany został głównie dla systemów zintegrowanych o niewielkich zasobach sprzętowych, więc miał przede wszystkim maksymalnie oszczędzać zasoby systemu, kosztem ograniczenia wydajności oraz nie był przystosowany do pracy w trybie wielowątkowym). Claudiu i Cameron zdołali przekształcić lwIP w pełnowartościowy sterownik stosu sieci dla NT. topMotywy graficznePodczas implementacji motywów graficznych, Giannis Adamopulous przekonał się, że Microsoft pośrednio korzysta z klas "Side By Side" do dekorowania przycisków i kontrolek. Klasy SxS to wariacja znanego szerzej mechanizmu SxS assemblies, pozwalającego na wersjonowanie bibliotek i podawanie do aplikacji wymaganych przezeń wersji. Giannis uważa, iż poza samym MS nikt nie korzysta z klas SxS, z powodu niesamowitej ezoteryki tego mechanizmu. Umożliwia on użycie dwóch klas o identycznej nazwie w jednej aplikacji, wraz z określeniem w manifeście aplikacji, które klasy mają być użyte. ReactOS wprawdzie ma zaimplementowane SxS assemblies, klasy SxS jednak wymagają więcej pracy. Zmusiło to Giannisa do prowizorycznego obejścia, bezpośrednio poprzez umożliwienie użycia dwóch klas o tej samej nazwie. Jedna z klas użyta jest gdy aplikacja ma wygląd domyślny a druga - gdy rysowana jest z użyciem motywów graficznych. Mimo problemów, jakie powstały przy kodowaniu tej drogi na skróty, Giannisowi udało się uzyskać działający model i wyprodukować ISO, które jest obecnie testowane przez społeczność projektu. Przy odrobinie szczęścia, motywy graficzne znajdą się w najbliższym wydaniu systemu. topSterownik czcionek GDITimo Kreuzer miał niewiele kłopotów z uruchomieniem swojego sterownika czcionek w Windows XP, lecz od poprawnej pracy tegoż w ReactOS dzieli nas jeszcze wiele wysiłku. Za podstawę sterownika, Timo użył ogólnodostępnego silnika Freetype, ten z kolei używa innego mechanizmu adiustacji czcionek (hinting) niż Windows. Adiustacja lub hinting czcionek poprawia czytelność znaków, poprzez wyrównywanie znaków wzdłuż rzutowanej siatki, co jest konieczne w przypadku tekstu wyświetlanego na ekranie o niskiej rozdzielczości. Z powodu tych różnic, czcionki zaprojektowane dla systemu Windows będą zatem nieco rozmazane w porównaniu z czcionkami FreeType. Timo, jak wiadomo z poprzedniego paragrafu, projektował i testował swój sterownik na Windows XP, z prozaicznego powodu - na ReactOS obecnie nie da się z takiego sterownika skorzystać. Projekt GSoC, do którego Timo przystąpił, ograniczony był wyłącznie do stworzenia samego sterownika. Prace nad przygotowaniem systemu do jego obsługi toczyły się równolegle, już poza GSoC. Na dzień dzisiejszy sterownik poprawnie uruchamia się, jak i ładuje do pamięci informacje o czcionce, zapisując je do właściwych struktur. Ograniczeniem jest w dalszym ciągu brak poprawnej realizacji czcionki, renderowania glifów do postaci bitmap, czy też modyfikacji funkcji TextOut, tak by mogła używać wyrenderowanych glifów. Realizacja czcionki polega na załadowaniu przez sterownik szczegółowych informacji o mapowaniu czcionki, o powiązaniach czcionek logicznych z rzeczywistymi. Renderowanie wprawdzie jest zadaniem sterownika, lecz to system operacyjny musi zapewnić mu mechanizmy do zarządzania obszarem pamięci, gdzie załadowane zostaną bitmapy. O funkcji TextOut natomiast jak i o wymaganiach sterownika czcionek więcej informacji znajdziecie w Biuletynie nr.55. Ukończenie prac, do momentu ujrzenia pierwszych efektów w ReactOS jest nadal kwestią miesięcy, lecz sam sterownik jest jak najbardziej gotowy. topKonkurs Thomas Krenn Open SourcePodczas konwencji LinuxTag w Niemczech, Matthias Kupfer zgłosił nasz projekt do udziału w konkursie, organizowanym przez jednego ze sponsorów, firmę hostingową Thomas Krenn AG. Nagrodzone projekty otrzymały określone sumy pieniędzy, do wydania na zakup serwerów z oferty Thomas Krenn AG. Nasz projekt znalazł się wśród wyróżnionych, otrzymując 700 Euro za zajęcie piątej lokaty. Do tej pory Ekipa nie podjęła jeszcze decyzji co do konkretnego modelu serwera, wiadomo jednak, że maszyna przeznaczona zostanie na automat kompilujący (lub też serwer plików - przyp. tłum). Projekt ReactOS chciałby serdecznie podziękować firmie Thomas Krenn AG za aktywne wspieranie przez nią społeczności OpenSource.
top |