Triển khai mô phỏng iPhone 11 trên QEMU
(github.com/ChefKissInc)- QEMU mô phỏng bằng phần mềm nhiều kiến trúc máy và userspace khác nhau
- Gần đây, một dự án mô phỏng Apple Silicon và iPhone 11 dựa trên QEMU đã được công bố
- QEMU mang lại hiệu năng tốt nhờ dịch động và hỗ trợ tích hợp hypervisor như KVM, Xen
- Có thể sử dụng trên nhiều hệ thống như Linux, OS-X, Windows, đồng thời có quy trình đóng góp mã nguồn mở được thiết lập bài bản
- Tài liệu và cộng đồng hỗ trợ rất tích cực, với việc theo dõi lỗi và gửi bản vá được quản lý hiệu quả
Giới thiệu dự án mã nguồn mở QEMU và mô phỏng Apple Silicon
QEMU là một trình mô phỏng máy và userspace mã nguồn mở đa dụng, đồng thời là công cụ ảo hóa. Một dự án dành cho mô phỏng Apple Silicon và iPhone 11 đang được phát triển dựa trên QEMU, mang lại nhiều lợi thế như khả năng mở rộng, hỗ trợ cộng đồng và tính tương thích liên kiến trúc so với các giải pháp ảo hóa khác.
Tổng quan về QEMU
- QEMU vận hành nhiều loại máy khác nhau bằng phần mềm thông qua khả năng mô phỏng toàn hệ thống, không cần ảo hóa phần cứng
- Tận dụng công nghệ dịch động (dynamic translation) để nâng cao hiệu năng mô phỏng
- Có thể hỗ trợ phần cứng ở cấp hypervisor thông qua tích hợp với Xen và KVM
- Việc mô phỏng CPU trực tiếp cho phép chuyển hệ điều hành và kiểm thử giữa các thiết bị khác nhau (ví dụ: ARMv7 → x86_64)
- Nhờ ảo hóa API ở userspace, có thể chạy trực tiếp binary giữa các môi trường kiến trúc dị thể
Ứng dụng và đặc điểm chính
- Người dùng có thể trực tiếp điều khiển các tùy chọn dòng lệnh để thiết lập chi tiết và cách thức hoạt động
- Cũng được dùng để tích hợp với các lớp quản lý mã nguồn mở cấp cao như oVirt, OpenStack, virt-manager và libvirt
- Cung cấp giao diện dòng lệnh ổn định và monitor API
- Toàn bộ mã nguồn được phát hành theo giấy phép GNU GPL v2
Tài liệu
- Tài liệu chính thức được cung cấp trực tuyến trên website (https://www.qemu.org/documentation/)
- Tài liệu cho phiên bản phát triển mới nhất được đặt trong thư mục docs/ của mã nguồn và được tạo bằng công cụ Sphinx
Môi trường build
- QEMU hỗ trợ build đa nền tảng trên Linux mới, OS-X, Win32 (Mingw64 toolchain) và các môi trường UNIX khác
- Luồng build cốt lõi gồm các bước configure và make
- Có thể tham khảo cách build cho từng nền tảng trên wiki của QEMU (https://wiki.qemu.org/Hosts/Linux v.v.)
Hướng dẫn gửi bản vá
- Mã nguồn QEMU được quản lý bằng hệ thống quản lý phiên bản Git
- Khi gửi bản vá, nên dùng git format-patch và git send-email
- Mọi bản vá đều bắt buộc phải có dòng Signed-off-by và phải tuân theo hướng dẫn style dành cho lập trình viên (https://www.qemu.org/docs/master/devel/style.html)
- Có thể dùng tiện ích git-publish để đơn giản hóa quy trình gửi bản vá lặp lại và số lượng lớn
- Việc quản lý phiên bản bản vá (v1, v2) cũng giúp dễ dàng theo dõi từng series
Báo cáo lỗi
- Hệ thống báo lỗi chính thức được vận hành qua GitLab issue tracker (https://gitlab.com/qemu-project/qemu/-/issues)
- Nếu dùng bản phân phối đóng gói theo hệ điều hành, nên ưu tiên báo cáo trên tracker của nhà cung cấp OS đó
- Wiki của QEMU cũng cung cấp thêm tài liệu như cách viết bug report
Lịch sử thay đổi
- Có thể xem lịch sử và các thay đổi của QEMU qua Wiki chính thức (https://wiki.qemu.org/ChangeLog/) hoặc Git history
Liên hệ cộng đồng
- Cung cấp nhiều kênh cộng đồng như mailing list (qemu-devel@nongnu.org), IRC (#qemu, irc.oftc.net)
- Có thể xem thêm thông tin về tham gia cộng đồng và hướng dẫn cho người mới trên QEMU Wiki
Kết luận
QEMU có thể được ứng dụng rộng rãi cho mô phỏng nhiều kiến trúc và hệ điều hành, ảo hóa, tự động hóa phát triển/kiểm thử, và Apple Silicon (như iPhone 11) cũng nằm trong phạm vi của dự án QEMU. Các ưu điểm chính gồm tài liệu mạnh, quy trình đóng góp hoàn thiện, quản lý lỗi hiệu quả và hỗ trợ cộng đồng tích cực.
1 bình luận
Ý kiến trên Hacker News
Trong phần thảo luận liên quan, có chia sẻ thread Hacker News về kho upstream tại liên kết và bài “Emulating an iPhone in QEMU” có nhắc đến dự án này tại liên kết
Việc nó có thể khởi động đúng cách và ít nhất lên được tới Springboard thực sự là một thành quả ở mức rất đáng kinh ngạc
Đây đúng là màn hack mô phỏng xuất sắc nhất, có thể gọi là đỉnh cao thực sự. Muốn gửi lời chúc mừng đến tất cả các cộng tác viên. Thành tựu này cũng là một tín hiệu tích cực cho dự án Hackintosh. Dù hiện tại vẫn còn một chặng đường dài, nhưng nếu ARM PC trở nên phổ biến rộng rãi thì bầu không khí hiện nay khiến người ta có thể kỳ vọng vào mô phỏng hiệu quả trong thực tế
Tò mò không biết có hỗ trợ cả trollstore và tính năng giải mã IPA hay không
Tôi nghĩ ít nhất cũng cần có nỗ lực đưa một phần nào đó lên upstream. Nếu không thì cũng lo rằng cuối cùng nó sẽ biến mất như những nỗ lực trước đây
Thật sự rất xúc động trước việc đã boot được iPhone 11 bằng QEMU đến cùng. Gửi lời tán dương tới đội ChefKissInc và mọi cộng tác viên đã đưa dự án đi đến đây
Từ góc nhìn người mới, tôi muốn biết liệu bằng cách này có thể cài ứng dụng iOS hay không
Hiện vẫn khá bất tiện vì tài liệu chính thức về cách dùng qemu trên môi trường Windows, các tùy chọn và tham số còn sơ sài. Tôi phải tham khảo nhiều bài viết rải rác trên mạng hoặc mang các ví dụ dựa trên Linux về để cuối cùng mới giải quyết được
Tôi tò mò không biết đây có phải là mô phỏng toàn bộ iOS thật sự hay chỉ là chạy các binary iOS. Và cũng thắc mắc vì sao lại chỉ đích danh iPhone 11
Hỏi Qemu m68k chạy hệ điều hành Mac cổ điển như thế nào