MenuetOS: zobacz, co może system operacyjny mieszczący się na jednej dyskietce
W erze Javy i .NET-u, gdy wiele osób postrzega C++ jakoniskopoziomowy język, a Mozilla zachęca, by pisać aplikacje nasłabiutkie telefony w JavaScripcie i HTML5, programowanie wassemblerze może wydawać się specyficzną formą masochizmu, wnajlepszym razie zastrzeżoną do fragmentów kodu wymagającychnajwyższego poziomu wydajności, czy produkcji demosceny. Jest jednakna naszej planecie człowiek, który wraz z kilkoma towarzyszami odponad trzynastu lat pisze w assemblerze MenuetOS-a – kompletnysystem operacyjny, zawierający nie tylko monolityczne jądro z kilkomanarzędziami, ale też kompletną warstwę sterowników sprzętowych, stossieciowy, a nawet graficzny interfejs użytkownika. Po tych trzynastulatach pracy MenuetOS bliski jest wydania 1.0, a zainteresowanie nimznacząco wzrosło, szczególnie w kręgach akademickich i wśród firmzajmujących się bezpieczeństwem IT.Twórca MenuetOS-a Ville Turjanmaa, ma się czym pochwalić. Jegohobbystycznie przecież rozwijany system operacyjny przestał być tylkozabawką. Zawiera niesamowicie szybkie jądro obsługującewielozadaniowość z wywłaszczaniem i bogatąbibliotekę sterowników sprzętowych (obsługując nie tylkostandardowe karty sieciowe czy pendrive'y, ale też takie urządzeniajak liczne karty graficzne, karty telewizji cyfrowej, kamerkiinternetowe czy drukarki). Wszystko to opakowane jest w oldschoolowy,autorski graficzny interfejs użytkownika, w którym można uruchomićprzeglądarkę internetową, mieszcząc się przy tym na jednej dyskietce1,44 MB. [img=0983][join][img=098u]Autorom systemu nie zależy na jak najszybszym wydawaniu kolejnychwersji – wolą stabilny rozwój swojego projektu. Dwa lata temuMenuetOS doczekał się np. obsługi przezroczystości okienek w GUI,wideo w formacie MPEG oraz podsystemu drukowania, w zeszłym rokuotrzymał wsparcie dla biblioteki mathlib, która dzięki wykorzystaniuinstrukcji SIMD procesora pozwala na wykonywanie operacjimatematycznych szybciej niż jednostka zmiennoprzecinkowa x87. Przedwydaniem wersji 1.0, do której dojść może w przyszłym roku,deweloperzy chcą dodać m.in. obsługę dekodera AAC do wykorzystywanegow Menuecie odtwarzacza mplayer – pisząc go oczywiście odpodstaw w assemblerze.[img=0995][join][img=098q]Już dzisiaj jednak Turjanmaa i jego koledzy uważają API systemu iśrodowiska graficznego za stabilne i dojrzałe. W przyszłych wersjachMenueta ulepszane mają być przede wszystkim aplikacje dlaużytkowników – do wykorzystywania Internetu, oglądania filmów,obsługi rozmaitych urządzeń USB. Programista Madis Kalme liczy nawetna to, że uda się też stworzyć sterowniki wykorzystujące wszystkiemożliwości procesorów Haswell – Intel jest dziś bowiem jedynymproducentem GPU, który w pełni dokumentuje swój sprzęt na potrzebytwórców opensource'owych systemów (32-bitowa wersja MenuetOS-adostępna jest na licencji GPL, zaś wersja 64-bitowa na licencjiwłasnościowej).Twórcy MenuetOS-a zapewniają też, że programowanie w assemblerzenie jest wcale takie trudne, jak mogłoby się wydawać. Teraz gdydostępne są już wszystkie wywołania systemowe, można prosto pisaćnawet graficzne aplikacje dla systemu – nie martwiąc się oobsługę okienek, bitmap czy urządzeń można systemowi kazać narysowaćpiksel w dowolnym miejscu ekranu. Szczególnie dobrze Menuet sprawdzaćsię ma w zastosowaniach wymagających reakcji w czasie rzeczywistym.Jeśli masz zewnętrzne urządzenie, Menuet dobrze sobie radzi z jegokontrolą.Drugim istotnym obszaremzastosowań ma być bezpieczeństwo – jako że kod źródłowy Menuetajest przekształcany praktycznie bezpośrednio na kod maszynowy,znikają wszelkie zagrożenia związane z wykorzystaniem kompilatorówjęzyków wyższego rzędu, które w procesie kompilacji mogłybywprowadzać do aplikacji swoje furtki.Obraz Menuet OS-a pobrać możecietutaj;pobawić się nim najlepiej w maszynie wirtualnej (w VirtualBoksienależy wybrać system jako Other/Unknown), dodać kontroler dyskietek,podłączyć do niego obraz systemu, usunąć inne kontrolery dyskowe).Trzy sekundy później powinniście mieć już w pełni działający systemoperacyjny, tak mały, że w całości mógłby się zmieścić w pamięci L1procesora.
18.11.2013 14:28