1 điểm bởi GN⁺ 2025-06-13 | 1 bình luận | Chia sẻ qua WhatsApp
  • 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

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

 
GN⁺ 2025-06-13
Ý 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

    • Xem issue tracker thì có thể thấy từ sau đó đến nay vẫn đã có thêm khá nhiều tiến triển
  • 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ế

    • Tuy vậy, theo tôi ARM không phải là một nền tảng mở như IBM PC. Lấy điện thoại Android làm ví dụ thì có rất nhiều nhân Linux tùy biến và các linh kiện không được tài liệu hóa, nên thực tế là vẫn thiếu tính mở và khả năng tiếp cận
  • Tò mò không biết có hỗ trợ cả trollstore và tính năng giải mã IPA hay không

    • Câu hỏi dành cho những ai chưa rõ: ý này nghĩa là gì, mong được giải thích
    • Tôi cũng vào đây để hỏi đúng điều đó. Nếu có hỗ trợ thì cảm giác đây sẽ là một tính năng cực kỳ bùng nổ
  • 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

    • Thực ra tôi nghĩ phần lớn những người thử nghiệm với qemu thường dùng hệ Unix. Trên Windows đã có nhiều lựa chọn ảo hóa thân thiện như virtualbox, vmware, hyper-v, WSL, nên trường hợp dùng qemu trên Windows thật sự chỉ rơi vào những tình huống rất đặc biệt
  • 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

    • Có lẽ là vì đó là binary dành cho iPhone 11
  • Hỏi Qemu m68k chạy hệ điều hành Mac cổ điển như thế nào

    • Chất lượng không tốt lắm. Khuyến nghị dùng Mini vMac
    • Nhưng dù sao vẫn chạy được. Có thể tham khảo thảo luận kỹ thuật về việc chạy Macintosh cổ điển bằng Qemu m68k và thông tin về chạy Mac OS 7-8 tại đây