Windows 10: dziesiątka także w środku, ale co z tego? Dla aplikacji to już nieważne

Strona główna Aktualności

O autorze

Pierwsze kompilacje Windows 10 sugerowały, że większych zmian w samym jądrze systemu operacyjnego nie należy się spodziewać. System przedstawiał się jako wersja 6.4, a więc niewielka zmiana po Windows 8.1, którego jądro i inne komponenty systemowe nosiły numerek 6.3. Chińskie media donoszą jednak, że najświeższe, nieoficjalne jeszcze kompilacje nowego systemu przynoszą w tej kwestii poważną zmianę, przynajmniej w numeracji. Jądro przedstawia się jako 10.0.

Niektórzy próbują tłumaczyć kwestię numeracji jądra i innych ukrytych przed użytkownikiem komponentów potrzebą zachowania kompatybilności między aplikacjami sprawdzającymi numer systemu a Windows. Znacznej części oprogramowania dla systemów Microsoftu nie ma bowiem w bazie, z której korzysta framework AppCompat, pozwalający na dynamiczne uruchamianie łatek, dzięki którym konfiguracja środowiska uruchomieniowego staje się zgodna z oczekiwaniami konkretnej aplikacji.

Jeśli programu w bazie nie ma, to wówczas system raportuje mu zgodne z rzeczywistością wersje API, co mogłoby by się skończyć awarią aplikacji. Z tego też powodu istotne zmiany w numerze systemu towarzyszą tylko istotnym zmianom w interfejsach. Dlatego właśnie dopiero Windows Vista przyniosła wewnętrzne oznaczenie systemu jako 6.0, a Windows 7, nie przynoszące względem Visty żadnych fundamentalnych zmian, było po prostu NT 6.1.

Dla użytkowników przyzwyczajonych do marketingowej komunikacji komercyjnych producentów oprogramowania taki stan rzeczy mógł wydawać się czymś dziwnym. Microsoft przecież nigdy publicznie nie mówił, poznajcie nowy Windows 8… a raczej 6.2. Taka sytuacja jest znacznie bardziej oczywista dla użytkowników Linuksa, gdzie nikogo nie dziwi, że numery wersji komponentów systemowych niewiele ze sobą mają wspólnego.

Czy zatem ujednolicenie numeracji i podbicie numeru wersji systemu do 10.0 może zaszkodzić kompatybilności nowego Windows ze starszymi aplikacjami, zdezorientowanymi tym, że uruchamiają się w nieznanym sobie środowisku? Nic z tych rzeczy. Microsoft bardzo pomysłowo rozwiązał ten problem już w Windows 7. Tam loader odczytuje zawartość manifestu aplikacji, czyli metadanych ukrytych w pliku uruchomieniowym, które informują o wsparciu dla poszczególnych wersji systemów. Jeśli metadanych tych nie ma, aplikacja otrzymuje zachowania API na poziomie Visty.

W Windows 8.1 zrezygnowano z możliwości odpytywania wersji systemu przez systemowe API GetVersion. Funkcja oczywiście pozostała, ale zwraca fałszywą wartość: 6.2.0.0, czyli Windows 8. Nowe aplikacje, korzystające z nowszych wersji interfejsów programowania Windows, muszą to po prostu zadeklarować w swoim manifeście – w przeciwnym razie zostaną na zawsze z API „ósemki”. Dlatego nowe Windows może pozwolić sobie na ujednolicenie numeracji, bez obaw, że oprogramowanie pisane np. dla Windows 8 już się na nim nie uruchomi.

Czy za numerkiem 10.0.8885.0 (tak oznaczono pierwszą kompilację po numeracyjnym skoku) stoi cokolwiek więcej? Nie liczylibyśmy na to. To tylko numer. W erze przeglądarek oznaczanych coraz wyższym numerami bez większych zmian w kodzie, i webowych aplikacji, które zmieniają się bez jakiejkolwiek widocznej numeracji, numery wersji jądra normalnych użytkowników niezbyt interesują. Łatwo to sprawdzić po użytkownikach Maka – ilu z nich wie, że korzysta z jądra XNU 2782.1.97? Apple jednak rozwija system operacyjny, który w dużym stopniu jest opensource'owy, więc klasyczny model numeracji utrzymuje choćby dla zachowania porządku i łatwiejszej współpracy z niezależnymi deweloperami. Microsoft, który swoje Windows robi w sekrecie przed światem, takich potrzeb nie ma – i jak widać po wynikach z Buildfeed.net, numeracja 10.0 pozostanie z nami na dłużej.

© dobreprogramy

Komentarze