Chương trình giả lập là gì và vì sao chúng hoạt động không ổn định
Thế giới game không phải chỉ có mỗi mình nền tảng PC anh em ạ. Và nếu anh em sử dụng PC nhưng muốn chơi game độc quyền của các nền tảng khác như console hay di động thì sẽ cần các chương trình giả lập. Vậy các chương trình giả lập là gì và chúng hoạt động như thế nào, mời anh em cùng mình tìm hiểu qua bài viết này nhé.
Giả lập là gì?
Các chương trình giả lập được sinh ra với mục đích chạy một chương trình được thiết kế cho loại phần cứng này chạy được trên loại phần cứng khác. Hay nói đơn giản hơn là chúng cố gắng giúp phần mềm chạy trên nhiều loại phần cứng khác nhau. Chẳng hạn, một tựa game dành riêng cho các máy PlayStation thì sẽ không thể chơi trên PC chạy hệ điều hành Windows và bất kỳ hệ điều hành nào khác (trừ khi game đã được nhà phát triển chuyển sang PC). Khi đó, anh em sẽ dùng đến các chương trình giả lập PlayStation mới có thể chơi các tựa game đó trên PC.
Thật ra, giả lập sinh ra phải chỉ để chúng ta chơi game của nền tảng khác mà còn có thể chạy thêm một hệ điều hành khác trong máy của mình. Ví dụ anh em có thể giả lập chạy Windows 7 trên Windows 10 trong khi vẫn sử dụng các ứng dụng trên Windows 10 bình thường. Nếu muốn thì anh em còn có thể giả lập Windows XP, Mac OS, iOS và cả Android luôn nhé.
Tóm lại thì các chương trình giả lập được tạo ra là để giúp phần mềm chạy được trên nhiều phần cứng khác nhau bằng cách đóng giả làm một loại phần cứng nào đó.
Chương trình giả lập hoạt động như thế nào?
Như mình vừa để cập, chương trình giả lập phải đóng giả làm phần cứng của một hệ máy khác, bao gồm tất cả loại linh kiện có bên trong máy. Lấy lại ví dụ chơi game PlayStation trên PC ở phần trên, chương trình giả lập sẽ phải bắt chước chip xử lý âm thanh đặc biệt, card đồ họa, CPU, các linh kiện nội, ngoại vi như đầu đĩa CD và nhiều thứ khác nữa.
Trong quá trình giả dạng làm phần cứng khác, chương trình giả lập phải hoạt động trơn tru và không dính bất kỳ lỗi nào trong quá trình giả lập. Việc mô phỏng lại các loại phần cứng mới, hiện đại là vô cùng khó khăn. Các loại console mới như PS4, Xbox One có cấu tạo cực kỳ phức tạp, cần rất nhiều thời gian và công sức để mô phỏng nên cần rất nhiều thời gian để phát triển chương trình giả lập cho các hệ máy này. Trong đó, phần khó mô phỏng nhất chính là CPU anh em ạ.
Tất cả các loại máy tính, từ smartphone cho đến console đều cần CPU để hoạt động, mọi linh kiện bên trong máy đều kết nối CPU. Tuy nhiên, CPU trên từng loại máy lại khác nhau, và điểm khác nhau lớn nhất chính là chúng sử dụng loại kiến trúc lệnh (instruction set) nào. Về cơ bản thì kiến trúc lệnh cũng là thứ giúp phần cứng trong máy hiểu và thực hiện những yêu cầu, những… lệnh mà phần mềm đưa ra. Nếu anh em không quen thuộc với từ “kiến trúc lệnh” thì nó là kiến trúc x86 của CPU PC đấy, còn CPU của PlayStation thì sử dụng kiến trúc lệnh MIPS.
Chính vì sự khác biệt giữa các loại kiến trúc lệnh nên hiệu năng các chương trình giả lập thường không được tốt cho lắm. Mọi lệnh từ con CPU cần được giả lập phải được dịch sang kiểu lệnh của CPU đang có trên PC và còn phải dịch thật nhanh nữa. Ví dụ, nếu giả lập PlayStation thì phải dịch các lệnh kiệu MIPS sang x86 thì PC mới hiểu và của chúng ta mới được chơi game. Vấn đề là ở chỗ các chương trình giả lập phải dịch nhanh anh em ạ. Nếu càng dịch nhanh thì sẽ càng dễ xuất hiện lỗi và nếu kiểu lệnh càng phức tạp thì sẽ càng dịch chậm anh em ạ.
Có đến hai loại “giả lập”
Bên cạnh thuật ngữ giả lập (emulation) thì anh em sẽ còn gặp thêm một loại thuật ngữ khác là ảo hóa (virtualization) có công dụng khá là giống nhau. Dù cả hai đều được thiết kế để dịch kiến trúc lệnh này sang kiến trúc khác nhưng hai loại “giả lập” cũng có một số điểm khá là khác nhau.
Về cơ bản thì cả hai đều được thiết kế để giúp phần mềm hoạt động trong một môi trường biệt lập nhưng ảo hóa thì tập trung giả lập khía cạnh “môi trường” còn ảo hóa tập trung vào khía cạnh “biệt lập”. Tuy nhiên, ảo hóa thường sẽ có tốc độ nhanh hơn giả lập, vì không mô phỏng lại toàn bộ hệ thống mà chia ra xử lý. Giải thích rõ ràng thì sẽ rất là dài dòng nhưng anh em có thể phân biệt là trình giả lập sẽ dùng để mô phỏng các dàn console hoặc cả một hệ thống máy tính hoàn toàn khác biệt so với PC thông thường. Còn ảo hóa thì sẽ được dùng trong môi trường doanh nghiệp, nơi cần tốc độ và độ ổn định.
Khi nào cần sử dụng giả lập
Nếu anh em dùng Windows 32bit thì sẽ không thể dùng Windows 64bit. Vậy khi cần dùng một ứng dụng chỉ có phiên bản 64bit thì anh em có thể giả lập Windows 64bit để dùng ứng dụng chứ không cần phải xóa Windows cũ đi và cài lại từ đầu. Ngoài ra, nếu anh em muốn vọc vạch, thử trải nghiệm một hệ điều hành mới mẻ hơn thì cũng có thể cài giả lập của hệ điều hành đó mà không cần phải mua máy mới hay nghiên cứu chạy song song hai hệ điều hành.
Và giống như các ví dụ ở phần trên, giả lập là để anh em chơi các tựa game không có trên PC. Hiện nay, có khá nhiều chương trình giả lập PlayStation và các loại console cổ khác. Tuy nhiên, tùy vào độ đầu tư mà trình giả lập đó có ổn định hay không nữa nhé. Chẳng hạn như PlayStation 2 ra mắt từ năm 2000 nhưng đến thời gian gần đây thì chương trình giả lập PCSX2 mới có bản ổn định.
Mời các bạn tham khảo thêm một số thông tin liên quan tại GVN 360 như:
- Những điều bạn cần biết về cáp quang – công nghệ giúp kết nối internet xuyên lục địa
- Tìm hiểu cách DDR hoạt động – “Ma thuật” của một thanh RAM
Nguồn: Make Use Of
Mời các bạn theo dõi fanpage của chúng mình theo đường link dưới đây để cập nhật những tin tức về game, công nghệ và nhiều thông tin thú vị khác nữa nhé!