Phát hành trình giả lập QEMU 4.0

hình thành phát hành dự án QEMU 4.0. Là một trình giả lập, QEMU cho phép bạn chạy một chương trình được biên dịch cho một nền tảng phần cứng trên một hệ thống có kiến ​​​​trúc hoàn toàn khác, chẳng hạn như chạy ứng dụng ARM trên PC tương thích x86. Trong chế độ ảo hóa trong QEMU, hiệu suất thực thi mã trong môi trường biệt lập gần với hệ thống gốc do thực thi trực tiếp các lệnh trên CPU và sử dụng mô-đun ảo hóa Xen hoặc mô-đun KVM.

Dự án ban đầu được tạo bởi Fabrice Bellard để cho phép các tệp thực thi Linux được xây dựng cho nền tảng x86 chạy trên các kiến ​​trúc không phải x86. Qua nhiều năm phát triển, hỗ trợ giả lập đầy đủ đã được bổ sung cho 14 kiến ​​trúc phần cứng, số lượng thiết bị phần cứng giả lập đã vượt quá 400. Để chuẩn bị cho phiên bản 4.0, hơn 3100 thay đổi đã được thực hiện từ 220 nhà phát triển.

Chìa khóa cải tiếnđã thêm vào QEMU 4.0:

  • Hỗ trợ cho các phần mở rộng lệnh ARMv8+ đã được thêm vào trình mô phỏng kiến ​​trúc ARM: SB, PredInv, HPD, LOR, FHM, AA32HPD,
    PAuth,JSonv, CondM, FRINT và BTI. Đã thêm hỗ trợ mô phỏng bảng Musca và MPS2. Cải thiện mô phỏng ARM PMU (Đơn vị quản lý nguồn). Đến nền tảng đức hạnh đã thêm khả năng sử dụng hơn 255 GB RAM và hỗ trợ hình ảnh u-boot với loại “noload”;

  • Trong trình mô phỏng kiến ​​trúc x86 trong công cụ tăng tốc ảo hóa HAX (Thực thi tăng tốc phần cứng Intel) đã thêm hỗ trợ cho các máy chủ tương thích POSIX như Linux và NetBSD (trước đây chỉ hỗ trợ nền tảng Darwin). Trong trình mô phỏng chipset Q35 (ICH9) cho các cổng PCIe chính, tốc độ tối đa (16GT/s) và số lượng đường kết nối (x32) được xác định trong thông số kỹ thuật PCIe 4.0 giờ đây có thể được khai báo tùy chọn (để đảm bảo khả năng tương thích, 2.5GT là được cài đặt theo mặc định cho các loại máy QEMU cũ hơn /s và x1). Có thể tải hình ảnh Xen PVH bằng tùy chọn “-kernel”;
  • Trình mô phỏng kiến ​​trúc MIPS đã bổ sung hỗ trợ cho mô phỏng đa luồng bằng cách sử dụng trình tạo mã TCG (Trình tạo mã nhỏ) cổ điển. Đồng thời bổ sung hỗ trợ mô phỏng CPU I7200 (nanoMIPS32 ISA) và I6500 (MIPS64R6 ISA), khả năng xử lý các yêu cầu loại CPU bằng cách sử dụng QMP (Giao thức quản lý QEMU), hỗ trợ thêm cho các thanh ghi cấu hình SAARI và SAAR. Cải thiện hiệu suất của máy ảo với loại Fulong 2E. Cập nhật triển khai Đơn vị Truyền thông Interthread;
  • Trong trình mô phỏng kiến ​​trúc PowerPC, hỗ trợ mô phỏng bộ điều khiển ngắt XIVE đã được thêm vào, hỗ trợ cho POWER9 đã được mở rộng và đối với dòng P, khả năng cắm nóng các cầu nối máy chủ PCI (PHB, cầu nối máy chủ PCI) đã được thêm vào. Bảo vệ chống lại các cuộc tấn công Spectre và Meltdown được bật theo mặc định;
  • Hỗ trợ mô phỏng PCI và USB đã được thêm vào trình mô phỏng kiến ​​trúc RISC-V. Máy chủ gỡ lỗi tích hợp (gdbserver) hiện hỗ trợ chỉ định danh sách đăng ký trong tệp XML. Đã thêm hỗ trợ cho các trường mstatus TSR, TW và TVM;
  • Trình mô phỏng kiến ​​trúc s390 đã bổ sung hỗ trợ cho mẫu CPU z14 GA 2, cũng như hỗ trợ mô phỏng các phần mở rộng lệnh cho các phép toán dấu phẩy động và vectơ. Khả năng cắm nóng các thiết bị đã được thêm vào vfio-ap;
  • Trình mô phỏng bộ xử lý dòng Tensilica Xtensa đã cải thiện khả năng hỗ trợ SMP cho Linux và hỗ trợ thêm cho FLIX (Phần mở rộng hướng dẫn có độ dài linh hoạt);
  • Tùy chọn '-display Spice-app' đã được thêm vào giao diện đồ họa để định cấu hình và khởi chạy phiên bản ứng dụng khách truy cập từ xa Spice có thiết kế tương tự giao diện QEMU GTK;
  • Đã thêm hỗ trợ kiểm soát truy cập bằng cách sử dụng tùy chọn tls-authz/sasl-authz khi triển khai máy chủ VNC;
  • QMP (Giao thức quản lý QEMU) đã thêm hỗ trợ cho việc thực thi lệnh tập trung/bên ngoài (Ngoài băng tần) và triển khai các lệnh bổ sung để làm việc với các thiết bị khối;
  • Việc triển khai giao diện EDID đã được thêm vào VFIO cho các mdev được hỗ trợ (Intel vGPU), cho phép bạn thay đổi độ phân giải màn hình bằng các tùy chọn xres và yres;
  • Một thiết bị 'xen-disk' mới đã được thêm cho Xen, thiết bị này có thể tạo phần phụ trợ đĩa một cách độc lập cho Xen PV (không cần truy cập xenstore). Hiệu suất của phần phụ trợ đĩa Xen PV đã được tăng lên và khả năng thay đổi kích thước đĩa đã được thêm vào;
  • Khả năng chẩn đoán và truy tìm đã được mở rộng trong các thiết bị khối mạng và khả năng tương thích của máy khách với việc triển khai máy chủ NBD có vấn đề đã được cải thiện. Đã thêm các tùy chọn “--bitmap”, “--list” và “--tls-authz” vào qemu-nbd;
  • Đã thêm hỗ trợ cho chế độ PCI IDE cho IDE/thông qua thiết bị được mô phỏng;
  • Đã thêm hỗ trợ sử dụng thuật toán lzfse để nén hình ảnh dmg. Đối với định dạng qcow2, hỗ trợ kết nối các tệp dữ liệu ngoài đã được thêm vào. Các thao tác giải nén qcow2 được chuyển sang một luồng riêng. Đã thêm hỗ trợ cho thao tác “blockdev-create” trong hình ảnh vmdk;
  • Thiết bị khối virtio-blk đã bổ sung hỗ trợ cho các hoạt động DISCARD (thông báo về việc giải phóng các khối) và WRITE_ZEROES (về XNUMX một phạm vi các khối logic);
  • Thiết bị pvrdma hỗ trợ các dịch vụ Datagram quản lý RDMA (MAD);
  • đóng góp thay đổi, vi phạm khả năng tương thích ngược. Ví dụ: thay vì tùy chọn "xử lý" trong "-fsdev" và "-virtfs", bạn nên sử dụng tùy chọn "cục bộ" hoặc "proxy". Các tùy chọn “-virtioconsole” (được thay thế bằng “-device virtconsole”), “-no-frame”, “-clock”, “-enable-hax” (được thay thế bằng “-accel hax”) đã bị xóa. Đã xóa thiết bị "ivshmem" (nên sử dụng "ivshmem-doorbell" và "ivshmem-plain"). Hỗ trợ xây dựng bằng SDL1.2 đã bị ngừng (bạn cần sử dụng SDL2).

Nguồn: opennet.ru

Thêm một lời nhận xét