TeamQuest Blog

Alternatywne systemy operacyjne część 2 - ReactOS

Alternatywne systemy operacyjne część 2 - ReactOS

Przemysław Pintal , 26.02.2020 r.

Idea darmowego Windowsa zrodziła się nie tylko na bazarach Europy Wschodniej, ale także w umysłach osób o inżynieryjnym rodowodzie, nadto przyświecały im także techniczne dążenia, wynikłe z filozofii używania komputerów. Brak ceny lub jej wysokość stanowi jedynie model dystrybucji tak, jak dzieje się to w przypadku Linuksa. Koszt pisania i wdrażania oprogramowania open source, siłą rzeczy nie jest niższy od jego własnościowych odpowiedników - ktoś musi wykonać pracę i otrzymać za nią zapłatę. Przedsiębiorstwa generują zysk za sprawą owoców pracy wynikłych z posługiwania się oprogramowaniem, a współdzielą się publicznie kodem, aby obniżyć wydatek związany z jego utrzymaniem, skoro z biegiem czasu linii kodu przybywa, aniżeli ich ubywa bowiem zostaje dopisana obsługa kolejnych funkcji wymaganych przez rynek. Toteż łatanie błędów i ich weryfikowanie zostaje tutaj przerzucone na hobbystów danej społeczności, tym samym doświadczyć mnogości warunków brzegowych (corner case), z racji wielości konfiguracji sprzętowych i programowych. Niezauważona pozostaje na pierwszy rzut oka zaleta, iż bez kosztów licencyjnych można nabyć umiejętności związanych z danym programem, a te mogą przynieść wymierny efekt na polu zawodowym. Owe ujrzy się doskonale na przykładzie Linuksa i serwerów x86, gdzie zakup nawet wiekowego i prądożernego serwera z procesorem RISC i własnościowym Unixem na pokładzie, pozbawionym kluczy i dokumentacji, w warunkach domowych nie posiada jakiegokolwiek sensu poza kolekcjonerskim. Niemniej pozostają tutaj liczne nisze dla alternatywnych systemów operacyjnych. Kompletny i stabilny system operacyjny, jaki byłby kompatybilny binarnie z Windowsem i przypominający jego klasyczne GUI, byłby z pewnością dobrze przyjęty, choćby tam gdzie wciąż wymagany jest Windows XP, z racji specyficznych sterowników lub zamówionego własnościowego oprogramowania. Właśnie takim systemem w założeniu jest ReactOS.

reactos-apps

Początki ReactOS sięgają 1996 roku i nieudanego projektu FreeWin95. Niezadowoleni z obiegu spraw programiści społeczności zawiązali w lutym 1998 roku projekt ReactOS, gdzie OS oznacza system operacyjny, a samo “react” niezgodę na monopol Microsoftu, z tą jednak różnicą, iż nie miał być to już klon Windowsa 9x, ale reimplementacja Windowsa NT. Warto poddać rozwadze czy fakt, że jeden podmiot gospodarczy posiada, w wymiarze globalnym, tak dominującą pozycję jak na biurkach w domach i firmach, jest zasadny z punktu widzenia bezpieczeństwa cybernetycznego państwa i odpływu kapitału z kraju (ujemny bilans handlowy), jaki mógłby pozostać na miejscu, gdyby system operacyjny, dla szkół i urzędów, był tworzony przez rodzime konsorcjum, przy aktywnym audycie ze strony specjalistów zatrudnionych przez stosowne instytucje państwa. Następstwem powyższego nastąpiłoby dostosowanie się prywatnego biznesu, z powodu efektów skali i sieciowego, tym samym impas błędnego koła zostałby przełamany (brak użycia z powodu braku popularności). Konkurencję ze strony open source uznano za poważną w Microsofcie już w 1998 roku, kiedy światło dzienne ujrzały tzw. Dokumenty Halloween. Podobną logiką posłużyli się deweloperzy ReactOS, choćby Aleksiej Bragin który w 2007 roku zademonstrował ReactOS jednemu z polityków wybranych do Dumy Państwowej w Rosji, a ponownie apelując w 2015 roku podczas spotkania ekspertów rosyjskiego Ministerstwa Komunikacji, aby Rosja nie była zależna od importu własnościowego oprogramowania. Oprócz tego działanie ReactOS pokazano także Władimirowi Putinowi w 2012 roku, w ramach dorocznego Forum Młodych nad jeziorem Seliger. Zdaje się, iż podobne wątki mogą być częściej podnoszone w niepewnych ekonomicznie czasach, coraz bardziej cyfrowego świata.

ractos-mine

Jednym z głównych hamulców rozwoju ReactOS, obok stosowania inżynierii odwrotnej samego Windowsa i braków w jego publicznej dokumentacji, pozostają kwestie prawne. Legislacja wielu państw odmiennie ujmuje w ustawach inżynierię wsteczną, prócz tego deweloperzy ReactOS i Wine muszą się pilnować, aby nie użyć “skażonego kodu”, jaki na drodze sądowej zniszczyłby całe lata wysiłków poniesionych przez społeczność. Kodem tego typu mogłyby być wyciekłe z Microsoftu źródła, jakie któryś z deweloperów pobrałby i spojrzał do nich wiedziony ciekawością. Niegdyś argument o zbliżonym rodowodzie został podniesiony na jednej z list mailingowych ReactOSa, przez aktualnie byłego już dewelopera Hartmuta Birra, ale ówcześnie zaangażowanego w rozwój wolnego zamiennika Windowsa, że funkcja BadStack z wywołań systemowych (syscall) była kopiuj-wklej dezasemblowanego kodu z Windowsa XP. W odpowiedzi autor oryginalnego patcha, Alex Ionescu, zapewnił o faktycznym autorstwie własnej reimplementacji, iż podobieństwo wynika wyłącznie z jedynego w możliwości sposobu zaprogramowania owego. Finalnie oskarżenia okazały się bezpodstawne, lecz wymusiły długotrwały audyt kodu ReactOSa i spowodowały przestój, a także zasiano niepokój w społeczności open source, gdzie kwestie licencyjne są postrzegane politycznie niż biznesowo. Ostatnim razem zarzut dotyczący legalności i czystości implementacji, został podniesiony w listopadzie 2017 roku przez Axela Rietschina (w internecie przypomniano sobie o tym w lipcu 2019 roku), który jest inżynierem Microsoftu oddelegowanym do prac nad kernelem Windowsa. Uważa on, że kod źródłowy ReactOSa został “zerżnięty” (w oryginale użyto słowa “ripoff”) z wersji Windowsa udostępnianej uniwersytetom bowiem nazwy makr i parametrów wykazują zbieżność w obu systemach, a te mają się nie pojawiać w binariach, jakie mogą być zdezasemblowane. Niemniej poza indywidualnie wyrażonym stanowiskiem na forum Quora, świat nie ujrzał żadnych dowodów mogących potwierdzić tego typu domysł. Wspomniane “świadectwa” wywołują lęk za sprawą FUDu (Fear, Uncertainty, Doubt – strach, niepewność, wątpliwość), jaki może sprawić, iż biznes nigdy nie wejdzie w ReactOSa poważnie, bowiem wisi nad nim miecz damoklesowy rzekomych pozwów, jakie w przypadku przedsiębiorstw ściągną wysokie odszkodowania. Toteż potencjalny strumień pieniędzy, potrzebny dla utrzymania większej liczby deweloperów, się zwyczajnie nie pojawi.

Zobacz też: 10 najpopularniejszych dystrybucji Linuxa. Którą wybrać? (część I)

Jest to o tyle ważkie, podając za wpisem o ReactOSie na Wikipedii, że nad Windowsem 7 pracowało około 1000 deweloperów podzielonych na 25 zespołów średnio 40 w grupie, kiedy z wpisu na Ohloh (serwis agregujący dane statystyczne opisujące projekty open source, choćby na podstawie historii aktywności na GitHubie), że na przestrzeni roku, licząc wstecz od 2 września 2011 roku, nad ReactOSem pracowało 33 deweloperów. Ta rażąca dysproporcja zasobów ukazuje jednak zdolność do koncentracji pracy, a ta zdaje się, jakby, inherentna dla modelu open source. Szczególnie, że ReactOS jest w mocy dokonać rozruchu nie tylko na maszynie wirtualnej, ale i na “gołym metalu”, aby uruchomić np. Firefoksa czy Photoshopa CS2. Ponadto ReactOS korzystnie wpływa na ekosystem Linuksa, ponieważ ludzie stojący za nim współpracują z Wine.

Zobacz też: 10 najpopularniejszych dystrybucji Linuksa. Którą wybrać? (część II)

Od strony technicznej ReactOS pisany jest w C, przy czym poszczególne partie integralnego oprogramowania, takie jak odpowiednik Explorera, zaprogramowano w C++. Stos sieciowy został przeportowany z FreeBSD, analogicznie w Haiku. Obecnie API jest bardziej kompatybilne z jądrem NT w wersji 5.2 (Windows 2003 Server). ReactOS w porównaniu do oryginalnego Windowsa posiada menedżer pakietów (trudno za taki uznać usługę Windows Update i aplikację Windows Store) i jest w stanie dokonać rozruchu z systemu plików BTRFS. Przede wszystkim jest zdolny skompilować samego siebie, co dowodzi uzyskania przez system na tyle dużej stabilności, iż pod wpływem długotrwałego obciążenia nie następuje awaria kernela (crash). Stos USB wdrożono bazując na kodzie źródłowym Haiku, jako odniesieniu które było istotne z powodu klarownej implementacji, a strukturę danych przejęto wprost z Haiku. Co więcej oba projekty współpracowały ze sobą w przeszłości, choćby pomagając sobie w czasie imprez open source, takich jak FOSDEM i SCALE, a także osoby zaangażowane w rozwój Haiku udzieliły ludziom z ReactOSa pomocy w zakresie formalności, jakie należało spełnić, by ReactOS mógł z sukcesem przystąpić do programu Google Summer of Code.

rectos-temat

Najnowszym regularnym wydaniem ReactOSa jest wersja o numerze 0.4.12 i ogłoszoną ją 23 września 2019 roku. Poza zwyczajowymi poprawkami błędów, przy czym wiele z nich dotyczyły jądra systemu, znamienną poprawką jest przywrócenie zdolności do rozruchu za pomocą PXE, a także załatano ochronę obrazów ładowanych w przestrzeni jądra przed ich modyfikacją, aby uniemożliwić złośliwemu oprogramowaniu wrogie działanie. Kolejnym wartym wzmianki patchem są poprawki wprowadzone do comctl32.dll, skutkiem czego niektóre elementy GUI rysują się poprawnie w wielu aplikacjach. Zaimplementowano m.in. funkcję przypinania do siebie okien ich bokami, zapewniono obsługę karty sieciowej Intel e1000 i usprawniono renderowanie fontów.

Kończąc, pragnę nadmienić, że jedną z ciekawostek w temacie Windowsa jest fakt, iż systemy operacyjne RSX-11, VMS i Windows NT posiadały tego samego inżyniera, jaki je zaprojektował. Mianowicie Dave’a Cutlera. Ponadto jądro Windowsa NT było pierwotnie pomyślane o OS/2.

Zobacz też: Alternatywne systemy operacyjne. Część 1 - Haiku

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej