JIT là gì? Các quy tắc của Apple đang cản trở trình giả lập trò chơi iPhone

Tác giả AI+, T.Năm 31, 2024, 05:51:20 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Đáng buồn thay, Apple đã không kịp thực hiện điều này.

  • Quá trình biên dịch JIT rất quan trọng đối với hiệu suất của trình mô phỏng nhưng Apple hạn chế việc này vì lý do bảo mật.
  • Trình mô phỏng sử dụng JIT để tối ưu hóa hiệu suất bằng cách biên dịch lại mã một cách nhanh chóng.
  • Những hạn chế của Apple có thể thay đổi, nhưng hiện tại, người dùng trình giả lập phải chờ đợi hoặc cân nhắc việc bẻ khóa.


Mặc dù Apple dường như đã mở cửa xả lũ khi nói đến các ứng dụng giả lập trên iPhone, iPad và Apple TV, nhưng bạn có thể nhận thấy rằng một số hệ thống nhất định bị thiếu rõ ràng trong menu. Rất có thể đó là do một tính năng cụ thể được gọi là biên dịch "JIT" bị hạn chế bởi các quy tắc của App Store.

1. JIT là gì?

Biên dịch JIT là viết tắt của biên dịch "Just In Time". Biên dịch là quá trình biến mã lập trình thành mã máy. Bạn có thể viết một cái gì đó, chẳng hạn như mã C, rồi biên dịch nó cho bất kỳ hệ thống nào, cho dù đó là CPU x86 như trên hầu hết các máy tính Windows hay CPU ARM như trên điện thoại di động và máy tính bảng.

Quá trình biên dịch JIT, trái ngược với quá trình biên dịch trước thời hạn, có nhiều ưu điểm, trong đó ít nhất là khả năng thích ứng với những gì đang diễn ra trên máy tính và những gì người dùng yêu cầu chương trình thực hiện.

2. Tại sao trình giả lập cần JIT?

Các nhà phát triển trình mô phỏng đã phát hiện ra rằng phương pháp JIT cho phép họ đạt được mức hiệu suất và hiệu quả mà lẽ ra không thể đạt được. Bằng cách sử dụng kỹ thuật JIT, mã CPU mô phỏng từ hệ thống gốc có thể được biên dịch lại thành mã gốc cho hệ thống máy chủ đích một cách nhanh chóng. Khi mã đó đã được biên dịch lại, nó có thể được lưu vào bộ đệm và sử dụng vào lần tiếp theo khi thực hiện lệnh gọi tương tự mà không cần biên dịch lại.

Sử dụng phương pháp JIT, có thể tạo mã tự sửa đổi, đây đã trở thành một phương pháp phổ biến trong mô phỏng trò chơi điện tử. Điều này là cần thiết trong một số hệ thống vì nhiều hệ thống cũ hơn, đặc biệt là các hệ thống dựa trên hộp mực, sẽ tải mã từ hộp mực một cách linh hoạt và dường như tùy ý dựa trên trạng thái trò chơi chính xác. JIT cho phép xử lý phương pháp này theo thời gian thực. JIT cũng cho phép trình mô phỏng tối ưu hóa mã được biên dịch lại để tận dụng tối đa hệ thống máy chủ.

Tôi không phải là lập trình viên, nhưng ngay từ quan điểm của tôi, JIT có vẻ giống như một công cụ cực kỳ mạnh mẽ khi áp dụng vào bài toán khó về mô phỏng, dựa trên những gì tôi đã đọc.

3. Tại sao Apple không cho phép JIT?

Thật không may, một loại phần mềm khác có thể tận dụng tốt JIT và mã tự sửa đổi là phần mềm độc hại. Nếu một ứng dụng có thể tạo và thực thi mã trong thời gian chạy, điều đó sẽ mở ra cơ hội cho đủ loại trò tai quái. Vì vậy, việc biên dịch tất cả mã trước thời hạn sẽ giúp đảm bảo mã an toàn dễ dàng hơn nhiều. Apple cũng có thể không muốn xảy ra tình huống ứng dụng thay đổi hành vi sau khi được phê duyệt. Điều gì đó không thể xảy ra nếu mã được biên dịch trước ở trạng thái tĩnh.

Hiệu ứng dây chuyền là phần mềm dựa trên trình biên dịch lại JIT để hoạt động ở tốc độ có thể sử dụng sẽ không được chấp thuận cho App Store. Đây là lý do được đưa ra cho sự vắng mặt của trình giả lập Dolphin phổ biến.

Tất nhiên, có một giải pháp thay thế cho trình biên dịch lại JIT, được gọi là "trình thông dịch", nhưng cách này chậm hơn nhiều lần so với phương pháp JIT. Vì vậy, mặc dù nó hoạt động nhưng nó sẽ không thể chơi được. Hoặc chúng ta sẽ phải đợi đến iPhone 30 để trình thông dịch chạy đủ nhanh, hoặc chúng ta phải hy vọng rằng Apple sẽ nới lỏng các hạn chế của mình một chút.

4. Mọi thứ vẫn có thể thay đổi

Vẫn còn những ngày đầu cho bối cảnh thi đua trên App Store chính thống. Apple vẫn có thể quyết định nới lỏng yêu cầu này đối với trình giả lập hoặc điều chỉnh các chính sách của mình để đảm bảo mức độ bảo mật đầy đủ cho các ứng dụng này. Đây có thể sẽ là điều được giải quyết giữa những ứng dụng phê duyệt và những người phát triển chúng.

Tất nhiên, vấn đề này không tồn tại đối với những người bẻ khóa thiết bị của họ, điều này cho phép họ tải bất kỳ mã nào họ thích. Tuy nhiên, tôi sẽ không khuyên bất kỳ ai làm điều đó mà không có lý do chính đáng và đối với hầu hết mọi người, nhược điểm của việc bẻ khóa đơn giản là không đáng để chơi các trò chơi cổ điển trên thiết bị i của họ.