Dlaczego 64-bitowe systemy operacyjne nie mogą uruchamiać 16-bitowych aplikacji?

Dlaczego 64-bitowe systemy operacyjne nie mogą uruchamiać 16-bitowych aplikacji?

Gdy komputery zaczęły używać nowoczesnej architektury 64-bitowej, użytkownicy szybko zdali sobie sprawę, że uruchamianie tych starych 16-bitowych aplikacji nie będzie działać. Dlaczego na komputerach 64-bitowych nie można uruchamiać aplikacji 16-bitowych?





Odpowiedź na to pytanie może być myląca, w zależności od tego, kogo zapytasz. Po pierwsze, uruchamianie 16-bitowych aplikacji nie jest w rzeczywistości niemożliwe. To po prostu trudne. Po drugie, przyczyna tej trudności leży zarówno w architekturze procesora oraz system operacyjny.





Zdezorientowany? Nie martw się, nie jesteś sam. Ale zanim dotrzesz do końca tego artykułu, nie będziesz już zdezorientowany.





Historia architektury CPU

Wiem, ostatnią rzeczą, którą chcesz przeczytać, jest lekcja historii, prawda? Nie martw się, to jest krótkie. Bardzo ważne jest również zrozumienie, dlaczego systemy 64-bitowe nie mogą natywnie uruchamiać 16-bitowych aplikacji.

Jeśli przeżyłeś lata 80. i 90., prawdopodobnie pamiętasz te stare 16-bitowe dinozaury, które wszyscy w tamtych czasach uważali za najnowocześniejszą technologię.



Wtedy tak było. Te stare maszyny działały Intel 8086 procesora w 1978 roku. Procesor był w stanie uzyskać dostęp do przestrzeni adresowej 1 MB przy użyciu 16-bitowego adresowania. Ponieważ wcześniejsze komputery wykorzystywały 64 KB pamięci, był to ogromny postęp i zapoczątkował nową erę komputerów osobistych.

W tym trybie (zwanym Tryb rzeczywisty ), część była zarezerwowana dla pamięci RAM, a reszta była wykorzystywana przez BIOS i sprzęt komputerowy, taki jak karta graficzna.





Nieco później nastąpił dalszy postęp w architekturze CPU z procesorem 80286, zdolnym do adresowania 16 Mb przy użyciu adresowania 16-bitowego. Wraz z architekturą 286 pojawił się „tryb chroniony” z funkcjami, które nie tylko pozwalały na adresowanie większej ilości pamięci, ale także na wielozadaniowość. Uruchamianie starszych 16-bitowych aplikacji w „trybie rzeczywistym” nie zawsze było łatwe, ale było możliwe.

Koniec 16-bitowego, rodzaj...

W 1985 roku Intel zaprezentował swój procesor nowej generacji: Intel 386. Był to pierwszy procesor Intela, który mógł adresować pamięć za pomocą 32-bitów na raz i mógł uzyskać dostęp do 4 GB pamięci adresowalnej. W tamtym czasie wydawało się to użytkownikom komputerów przełomem. Gry komputerowe miały wkrótce wejść w swój rozkwit.





Wraz z pojawieniem się architektury 32-bitowej pojawiła się rozszerzona wersja Tryb obronny to nie tylko umożliwiło dostęp do większej ilości pamięci, ale zawierało zestaw funkcji, dzięki którym oprogramowanie może oznaczać system, niezależnie od tego, czy jest to kod 16-bitowy, czy 32-bitowy. Było to możliwe dzięki temu, co jest znane jako Tryb wirtualny 86 , który był zasadniczo wbudowanym zwirtualizowanym systemem 8086.

Jak widać, od jednej ewolucji architektury procesora do następnej, zarówno sprzęt (programowanie procesora), jak i oprogramowanie (systemy operacyjne i aplikacje), utrzymywały kompatybilność wsteczną dla wszystkich użytkowników, którzy nadal mieli bardzo stare oprogramowanie, które chcieli biegać. Dla indywidualnych użytkowników komputerów było to przydatne, ale dla wielu korporacji i małych firm miało to krytyczne znaczenie dla starszych systemów.

64-bitowa architektura zniszczyła wszystko

Limit 4 GB adresowalnej pamięci przez wiele lat był podporą dla systemów 32-bitowych. Jednak wraz z wynalezieniem procesorów 64-bitowych nastąpił kolejny przełom. Systemy te zawierały nowy tryb (znany jako Tryb długi ) zdolne do adresowania do 16 milionów terabajtów pamięci. Prawdopodobnie minie dużo czasu, zanim stanie się to czynnikiem ograniczającym aplikacje komputerowe.

Jednak wraz z tym ogromnym postępem nastąpił znaczący kompromis. Gdy użytkownicy próbowali uruchomić 16-bitowe aplikacje, które wymagały od dawna obsługiwanego „trybu rzeczywistego” lub „trybu wirtualnego 8086”, odkryli komunikat o błędzie: „Program.exe nie jest prawidłową aplikacją Win32”.

To było frustrujące, ale to nie był koniec świata. Użytkownicy może używać emulatorów lub zainstaluj maszyny wirtualne uruchamianie architektury 32-bitowej i systemów operacyjnych obsługujących starsze aplikacje 16-bitowe.

Tak więc, chociaż dla systemów 64-bitowych „niemożliwe” jest uruchamianie 16-bitowych aplikacji MS-DOS, nie jest niemożliwe, aby użytkownicy zrobili to za pomocą obejścia. Ale dlaczego tak się stało?

Architektura 64-bitowa usuwa NTVDM

W każdej generacji 32-bitowych procesorów przez lata wiele wysiłku włożono w system operacyjny, aby system obsługiwał starsze 16-bitowe aplikacje DOS. Udało się to osiągnąć za pomocą tego, co jest znane jako NTVDM lub NT Virtual DOS Machine.

Ta 32-bitowa aplikacja działała w systemie operacyjnym Windows i symulowała architekturę 486 zdolną do obsługi 16-bitowego adresowania przy użyciu wirtualnego 8086. Niestety, adresowanie w trybie „długim” nie było w stanie zapewnić tego bezpiecznie. Zamiast tego wymagałoby emulowania pełnego procesora 8086, aby obsługiwać aplikacje DOS.

Microsoft wyraźnie podjął decyzję o porzuceniu tych wysiłków, aby wesprzeć szybkie wydanie swojego pierwszego 64-bitowego systemu operacyjnego. Na swojej stronie pomocy technicznej Microsoft wyraźnie stwierdza, że ​​„16-bitowe narzędzia MS-DOS i Microsoft Windows 3.x nie uruchomią się”.

Żadnych przeprosin. To po prostu nie jest obsługiwane.

Mając na rynku mnóstwo produktów do wirtualizacji, które i tak są w stanie to osiągnąć, Microsoft najwyraźniej nie uważał, że wymyślanie koła na nowo jest w jego najlepszym interesie.

Jak uruchamiać aplikacje 16-bitowe w systemach 64-bitowych

Tylko dlatego, że uruchamianie 16-bitowych aplikacji DOS nie jest obsługiwane natywnie w 64-bitowych systemach Windows, nie oznacza to, że jest to niemożliwe. Wystarczy zainstalować dodatkowe narzędzia, aby wszystko skonfigurować.

Jeśli lubisz klasyczne gry DOS lub użyj innych aplikacji retro z dawnych dobrych czasów komputerowych, są opcje. Oto cztery sposoby uruchamiania ich na nowym komputerze z systemem Windows.

1. Graj w gry retro z DOSBox

Jednym z najłatwiejszych sposobów uruchamiania starych aplikacji DOS na komputerze jest użycie emulatora. Jednym z najpopularniejszych z nich jest DOSBox .

netflix mamy teraz problemy z odtwarzaniem tego tytułu

Christian szczegółowo opisał, jak zainstalować i skonfigurować DOSBox, aby uruchamiaj stare gry retro na komputerze z systemem Windows.

Wspaniałą rzeczą jest to, że większość tych gier jest tak stara, że są uważane za porzucone , dzięki czemu możesz legalnie pobierać i odtwarzać je za darmo.

2. Uruchom aplikacje wewnątrz VirtualBox

Ponieważ systemy operacyjne, takie jak Windows XP i Windows 7, mogą natywnie uruchamiać aplikacje 16-bitowe, możesz uruchamiać te same aplikacje w systemie 64-bitowym, budując maszynę wirtualną z jednym z tych systemów operacyjnych.

Jedną z najbardziej znanych i łatwych do skonfigurowania aplikacji do tego celu jest VirtualBox . Mamy kompletny przewodnik na temat jak skonfigurować i używać VirtualBox , więc możesz zacząć korzystać z tej metody już teraz.

Tylko upewnij się, że wybrałeś odpowiedni system operacyjny do zainstalowania. Pozostań przy systemie Windows 7 lub starszym, a będziesz mógł błyskawicznie pobierać i instalować stare aplikacje DOS w swoim systemie wirtualnym.

3. Użyj Linuksa

Mów, co chcesz o Linuksie, jedną z rzeczy, do której ma rację większość dystrybucji Linuksa, jest obsługa 16-bitowych aplikacji. Dystrybucje z jądrem PAE nie są ograniczone do 4 GB systemów 32-bitowych, więc uruchomienie odpowiedniej dystrybucji Linuksa jako podwójnego rozruchu w systemie jest inną opcją.

Można to zrobić na dwa sposoby: rozwiązanie z podwójnym rozruchem lub maszyna wirtualna . Lub możesz po prostu całkowicie zrzucić system Windows i idź z Linuksem . Cokolwiek działa dla ciebie.

4. Użyj emulatorów

DOSBox nie jest jedynym emulatorem dostępnym do uruchamiania starych aplikacji DOS. Istnieje wiele świetnych emulatorów, które działają równie dobrze. Jest to szczególnie ważne, jeśli jesteś graczem.

Christian omówił, jak naśladować Przyjaciel komandora , do Malina Pi , jakiś Android , i nawet klasyczny SNES na dowolnym komputerze.

To tylko wierzchołek iceburga. Jeśli szukasz w Internecie, znajdziesz całą bibliotekę różnych emulatorów, które pozwolą Ci uruchomić niemal każdą aplikację retro, jaką możesz sobie wyobrazić. Microsoft mógł zrezygnować ze starych 16-bitowych aplikacji z dawnych czasów, ale nadal masz opcje.

Nie poddawaj się na 16-bitowym

Nie ma żadnego powodu, dla którego powinieneś tak myśleć niemożliwy do uruchamiania 16-bitowych aplikacji na 64-bitowej maszynie. Natywnie może to być niemożliwe, ale jak widać istnieje wiele rozwiązań pozwalających na wykonanie tego zadania.

Udział Udział Ćwierkać E-mail 12 witryn wideo, które są lepsze niż YouTube

Oto kilka alternatywnych witryn wideo dla YouTube. Każdy z nich zajmuje inną niszę, ale warto dodać je do swoich zakładek.

Czytaj dalej
Powiązane tematy
  • Hazard
  • Wyjaśnienie technologii
  • Współzawodnictwo
  • Okna 10
  • 64-bitowy
O autorze Ryan Dube(942 opublikowanych artykułów)

Ryan posiada tytuł licencjata z elektrotechniki. Pracował 13 lat w inżynierii automatyzacji, 5 lat w IT, a teraz jest inżynierem aplikacji. Były redaktor zarządzający MakeUseOf, przemawiał na krajowych konferencjach poświęconych wizualizacji danych i występował w krajowej telewizji i radiu.

Więcej od Ryana Dube

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować