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

giới thiệu phát hành dự án QEMU 4.1. 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.1, hơn 2000 thay đổi đã được thực hiện từ 276 nhà phát triển.

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

  • Hỗ trợ cho các mẫu CPU Hygon Dhyana và Intel SnowRidge đã được thêm vào trình mô phỏng kiến ​​trúc x86. Đã thêm mô phỏng tiện ích mở rộng RDRAND (trình tạo số giả ngẫu nhiên phần cứng). Đã thêm cờ
    md-clear và mds-no để kiểm soát khả năng chống tấn công MDS (Mẫu dữ liệu vi kiến ​​trúc) trên bộ xử lý Intel. Đã thêm khả năng xác định cấu trúc liên kết mạch tích hợp bằng cách sử dụng cờ “-smp ...,dies=”. Việc lập phiên bản đã được triển khai cho tất cả các mẫu CPU x86;

  • Trình điều khiển khối SSH đã được chuyển từ sử dụng libssh2 trên libsh;
  • Trình điều khiển virtio-gpu (GPU ảo được phát triển như một phần của dự án Virgil) đã thêm hỗ trợ để di chuyển các hoạt động kết xuất 2D/3D sang quy trình người dùng vhost bên ngoài (ví dụ: vhost-user-gpu);
  • Trình mô phỏng kiến ​​trúc ARM đã bổ sung hỗ trợ cho tiện ích mở rộng ARMv8.5-RNG để tạo số giả ngẫu nhiên. Hỗ trợ mô phỏng FPU đã được triển khai cho dòng chip Cortex-M và các vấn đề về mô phỏng FPU cho Cortex-R5F đã được giải quyết. Một hệ thống mới để thiết lập các tùy chọn xây dựng, được thiết kế theo kiểu Kconfig, đã được đề xuất. Đối với SoC Exynos4210, hỗ trợ cho bộ điều khiển DMA PL330 đã được thêm vào;
  • Trình mô phỏng kiến ​​trúc MIPS đã cải thiện khả năng hỗ trợ cho các lệnh MSA ASE khi sử dụng thứ tự byte lớn và căn chỉnh việc xử lý phép chia cho các trường hợp bằng 0 với phần cứng tham chiếu. Hiệu suất mô phỏng các hướng dẫn MSA cho các phép tính số nguyên và hoán vị đã được tăng lên;
  • Trình mô phỏng kiến ​​trúc PowerPC hiện hỗ trợ chuyển tiếp tới GPU NVIDIA V100/NVLink2 bằng VFIO. Đối với pseries, việc tăng tốc mô phỏng bộ điều khiển ngắt XIVE đã được triển khai và hỗ trợ cắm nóng các cầu PCI đã được thêm vào. Việc tối ưu hóa đã được thực hiện để mô phỏng các lệnh vectơ (Altivec/VSX);
  • Một mô hình phần cứng mới đã được thêm vào trình mô phỏng kiến ​​trúc RISC-V - “spike”. Đã thêm hỗ trợ cho ISA 1.11.0. Cuộc gọi hệ thống 32 bit ABI đã được cải thiện, việc xử lý lệnh không hợp lệ đã được cải thiện và trình gỡ lỗi tích hợp đã được cải thiện. Đã thêm hỗ trợ cho cấu trúc liên kết CPU trong cây thiết bị;
  • Trình mô phỏng kiến ​​trúc s390 đã bổ sung hỗ trợ mô phỏng tất cả các hướng dẫn vectơ của nhóm “Cơ sở vectơ” và thêm các thành phần bổ sung để hỗ trợ các hệ thống gen15 (bao gồm hỗ trợ bổ sung cho Cơ sở ngắt hàng đợi AP cho vfio-ap). Đã triển khai hỗ trợ BIOS để khởi động từ ECKD DASD được liên kết với hệ thống khách thông qua vfio-ccw;
  • Trong trình mô phỏng kiến ​​trúc SPARC cho hệ thống sun4m, các vấn đề khi sử dụng cờ “-vga none” cho OpenBIOS đã được giải quyết;
  • Trình mô phỏng bộ xử lý dòng Tensilica Xtensa bao gồm các tùy chọn cho MPU (đơn vị bảo vệ bộ nhớ) và quyền truy cập độc quyền;
  • Tùy chọn “-salvage” đã được thêm vào lệnh “qemu-img Convert” để vô hiệu hóa sự cố của quá trình chuyển đổi hình ảnh trong trường hợp có lỗi I/O (ví dụ: có thể được sử dụng để khôi phục các tệp qcow2 bị hỏng một phần). Trong một nhóm
    “qemu-img rebase” hoạt động khi tệp sao lưu chưa được tạo cho tệp đầu vào;

  • Đã thêm khả năng chuyển hướng đầu ra được tổ chức bằng công nghệ "semihosting" (cho phép thiết bị mô phỏng sử dụng stdout, stderr và stdin để tạo tệp ở phía máy chủ) vào phần phụ trợ chardev ("-semihosting-config Enable=on,target=native ,chardev=[ ID]");
  • Đã thêm hỗ trợ cho định dạng con seSparse ở chế độ chỉ đọc trong trình điều khiển khối VMDK;
  • Đã thêm hỗ trợ cho bộ điều khiển SiFive GPIO trong trình điều khiển mô phỏng GPIO.

Nguồn: opennet.ru

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