Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Windows 10

Tại sao hệ điều hành 64-bit không chạy được ứng dụng 16-bit?

Khi máy tính chuyển sang kiến trúc 64-bit hiện đại, người dùng sớm nhận ra chạy ứng dụng 16-bit cũ không thể. Tại sao máy 64-bit không chạy app 16-bit?

Câu trả lời có thể gây nhầm lẫn, tùy người bạn hỏi. Thứ nhất, không thực sự "không thể" chạy app 16-bit. Chỉ khó khăn. Thứ hai, lý do khó khăn nằm ở cả kiến trúc CPU và hệ điều hành.

Đau đầu chưa? Đừng lo, bạn không đơn độc. Nhưng khi đọc hết bài, bạn sẽ không còn bối rối.

Lịch sử kiến trúc CPU

Biết rồi, điều cuối cùng bạn muốn đọc là bài học lịch sử, phải không? Đừng lo, bài này ngắn. Cũng cực kỳ quan trọng để hiểu tại sao hệ thống 64-bit không chạy app 16-bit bản địa.

Nếu bạn sống qua thập niên 80 và 90, chắc nhớ những "khủng long" 16-bit mà lúc đó ai cũng tin là công nghệ đỉnh cao.

Tại sao hệ điều hành 64-bit không chạy được ứng dụng 16-bit?

Lúc đó, đúng vậy. Những máy cũ chạy bộ vi xử lý Intel 8086 năm 1978. Bộ vi xử lý truy cập không gian địa chỉ 1Mb dùng định địa chỉ 16-bit. Với máy trước chạy 64 Kb bộ nhớ, đây là tiến bộ khổng lồ mở đầu kỷ nguyên mới tính toán cá nhân.

Ở chế độ này (gọi là Real mode - Chế độ thực), một phần dành cho RAM, phần còn lại dùng cho BIOS và phần cứng như card đồ họa.

Sau đó đến tiến bộ CPU với bộ vi xử lý 80286, định địa chỉ 16Mb dùng 16-bit. Cùng kiến trúc 286 đến "Protected mode (Chế độ bảo vệ)", không chỉ cho định địa chỉ nhiều bộ nhớ hơn, mà còn đa nhiệm. Chạy app 16-bit cũ trong "real mode" không dễ, nhưng có thể.

Cuối của 16-bit, kiểu gì...

Năm 1985, Intel giới thiệu thế hệ tiếp theo: Intel 386. Đây là CPU đầu tiên Intel định địa chỉ bộ nhớ dùng 32-bit, truy cập 4 Gb bộ nhớ định địa chỉ. Lúc đó, người dùng máy tính thấy như đột phá lớn. Game PC sắp bước vào thời hoàng kim.

Tại sao hệ điều hành 64-bit không chạy được ứng dụng 16-bit?

Cùng kiến trúc 32-bit đến phiên bản mở rộng Protected mode không chỉ truy cập nhiều bộ nhớ hơn, mà bao gồm tập tính năng cho phép phần mềm báo cho hệ thống biết nó là mã 16-bit hay 32-bit. Điều này nhờ Virtual 86 mode, về bản chất là hệ thống 8086 ảo tích hợp sẵn.

Như thấy, từ sự tiến hóa CPU này sang CPU khác, cả phần cứng (lập trình CPU) và phần mềm (hệ điều hành và ứng dụng), duy trì tương thích ngược cho những người vẫn có phần mềm cũ muốn chạy. Đối với người dùng cá nhân, hữu ích, nhưng đối với doanh nghiệp và tiểu thương, quan trọng cho hệ thống kế thừa (legacy).

Kiến trúc 64-bit phá vỡ mọi thứ

Giới hạn 4GB bộ nhớ định địa chỉ vẫn là gánh nặng cho hệ thống 32-bit nhiều năm. Tuy nhiên, với sự ra đời bộ vi xử lý 64-bit đến đột phá khác. Hệ thống này bao gồm chế độ mới (gọi là Long mode) định địa chỉ lên tới 16 triệu terabyte bộ nhớ. Sẽ lâu mới thành yếu tố giới hạn ứng dụng máy tính.

Tuy nhiên, tiến bộ khổng lồ này đi kèm đánh đổi lớn. Khi người dùng cố chạy app 16-bit yêu cầu "real mode" hoặc "virtual 8086 mode" được hỗ trợ lâu nay, họ gặp thông báo lỗi: "Program.exe is not a valid Win32 application."

Tại sao hệ điều hành 64-bit không chạy được ứng dụng 16-bit?

Thật bực bội, nhưng không phải tận thế. Người dùng dùng emulator hoặc cài máy ảo chạy kiến trúc 32-bit và hệ điều hành hỗ trợ app 16-bit kế thừa.

Vì vậy, dù "không thể" hệ thống 64-bit chạy app MS-DOS 16-bit, không phải không thể người dùng làm bằng cách vòng (workaround). Nhưng tại sao lại vậy?

Kiến trúc 64-bit loại bỏ NTVDM

Trong mọi thế hệ bộ vi xử lý 32-bit qua các năm, nhiều nỗ lực dành cho hệ điều hành xử lý app DOS 16-bit cũ. Thực hiện bằng NTVDM, hay NT Virtual DOS Machine.

Ứng dụng 32-bit này chạy trong Windows và mô phỏng kiến trúc 486 xử lý định địa chỉ 16-bit dùng virtual 8086. Rất tiếc, định địa chỉ "long-mode" không chứa đựng được điều này an toàn. Thay vào đó, cần mô phỏng toàn bộ bộ vi xử lý 8086 chỉ để hỗ trợ chạy app DOS.

Tại sao hệ điều hành 64-bit không chạy được ứng dụng 16-bit?

Microsoft rõ ràng quyết định bỏ qua nỗ lực này để hỗ trợ phát hành nhanh hệ điều hành 64-bit đầu tiên. Trên trang hỗ trợ, Microsoft rõ ràng nói: "16-bit MS-DOS and Microsoft Windows 3.x utilities will not start." (Tiện ích MS-DOS 16-bit và Windows 3.x sẽ không khởi động.)

Không xin lỗi. Đơn giản là không hỗ trợ.

Với hàng loạt sản phẩm ảo hóa trên thị trường làm được việc này, Microsoft rõ ràng không thấy lợi ích phát minh lại bánh xe.

Cách chạy ứng dụng 16-bit trên hệ thống 64-bit

Chỉ vì chạy app DOS 16-bit không được hỗ trợ bản địa trên Windows 64-bit, không nghĩa là không thể. Bạn chỉ cần cài thêm công cụ thiết lập.

Nếu thích game DOS kinh điển hoặc dùng app retro nào đó từ những ngày xưa đẹp, có lựa chọn. Đây là 4 cách chạy trên máy Windows mới.

1. Chơi game retro với DOSBox

Một cách dễ nhất chạy app DOS cũ trên PC là dùng emulator. Phổ biến nhất là DOSBox.

Christian đã chi tiết cách cài và cấu hình DOSBox chạy game retro cũ trên Windows.

Tại sao hệ điều hành 64-bit không chạy được ứng dụng 16-bit?

Điều tuyệt vời: hầu hết game cũ đến mức coi là abandonware (phần mềm bỏ hoang), nên tải và chơi miễn phí hợp pháp.

2. Chạy app trong VirtualBox

Vì hệ điều hành như Windows XP và Windows 7 chạy app 16-bit bản địa, bạn chạy cùng app trên hệ thống 64-bit bằng cách xây máy ảo với hệ điều hành đó.

Một ứng dụng nổi tiếng và dễ thiết lập là VirtualBox. Chúng tôi có hướng dẫn hoàn chỉnh cài và dùng VirtualBox, bắt đầu ngay cách tiếp cận này.

Tại sao hệ điều hành 64-bit không chạy được ứng dụng 16-bit?

Chỉ cần chọn đúng hệ điều hành cài. Giữ Windows 7 hoặc cũ hơn, tải cài app DOS cũ trên hệ thống ảo ngay lập tức.

3. Dùng Linux

Nói gì về Linux, một điều hầu hết distro Linux làm đúng là hỗ trợ app 16-bit. Distro với kernel PAE, bạn không giới hạn 4GB hệ thống 32-bit, nên chạy distro Linux đúng như dual-boot trên hệ thống là lựa chọn khác.

Tại sao hệ điều hành 64-bit không chạy được ứng dụng 16-bit?

Hai cách: dual-boot hoặc máy ảo. Hoặc bạn bỏ Windows hoàn toàn, chuyển sang Linux. Tùy bạn.

4. Dùng Emulator

DOSBox không phải emulator duy nhất chạy app DOS cũ. Có nhiều emulator tuyệt vời hoạt động tốt như vậy. Đặc biệt nếu bạn game thủ.

Christian đã bao quát cách mô phỏng Commodore Amiga, Raspberry Pi, Android, thậm chí SNES kinh điển trên bất kỳ PC nào.

Tại sao hệ điều hành 64-bit không chạy được ứng dụng 16-bit?

Đây chỉ là ngọn núi băng. Tìm online thấy thư viện emulator khổng lồ chạy gần như mọi app retro bạn tưởng tượng. Microsoft có thể bỏ cuộc với app 16-bit xưa, nhưng bạn vẫn có lựa chọn.

Đừng bỏ cuộc với 16-bit

Không có lý do gì bạn nghĩ không thể chạy ứng dụng 16-bit trên máy 64-bit. Có thể không thể bản địa, nhưng như bạn thấy, có nhiều giải pháp hoàn thành nhiệm vụ.