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

Việc phát hành dự án QEMU 6.0 đã được trình bày. 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 giống với hiệu suất của hệ thống phần cứng 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 6.0, hơn 3300 thay đổi đã được thực hiện từ 268 nhà phát triển.

Những cải tiến chính được thêm vào trong QEMU 6.0:

  • Trình mô phỏng bộ điều khiển NVMe được cải tiến để tuân thủ thông số kỹ thuật NVMe 1.4 và được trang bị hỗ trợ thử nghiệm cho các không gian tên được khoanh vùng, I/O đa đường dẫn và mã hóa dữ liệu hai đầu trên ổ đĩa.
  • Đã thêm các tùy chọn thử nghiệm “-machine x-remote” và “-device x-pci-proxy-dev” để chuyển mô phỏng thiết bị sang các quy trình bên ngoài. Ở chế độ này, hiện chỉ hỗ trợ mô phỏng bộ điều hợp SCSI lsi53c895.
  • Đã thêm hỗ trợ thử nghiệm để tạo ảnh chụp nhanh nội dung RAM.
  • Đã thêm mô-đun FUSE để xuất các thiết bị khối, cho phép bạn gắn một phần trạng thái của bất kỳ thiết bị khối nào được sử dụng trong hệ thống khách. Quá trình xuất được thực hiện thông qua lệnh QMP block-export-add hoặc thông qua tùy chọn “--export” trong tiện ích qemu-storage-daemon.
  • Trình mô phỏng ARM bổ sung hỗ trợ cho kiến ​​trúc ARMv8.1-M 'Helium' và bộ xử lý Cortex-M55, cũng như các lệnh ARMv8.4 TTST, SEL2 và DIT mở rộng. Đã thêm hỗ trợ cho bo mạch ARM mps3-an524 và mps3-an547. Mô phỏng thiết bị bổ sung đã được triển khai cho các bảng xlnx-zynqmp, xlnx-versal, sbsa-ref, npcm7xx và sabrelite.
  • Đối với ARM, trong các chế độ mô phỏng ở cấp độ hệ thống và môi trường người dùng, hỗ trợ cho tiện ích mở rộng ARMv8.5 MTE (MemTag, Memory Tagging Extension) đã được triển khai, cho phép bạn liên kết các thẻ với từng hoạt động phân bổ bộ nhớ và tổ chức kiểm tra con trỏ khi truy cập bộ nhớ, phải được liên kết với thẻ chính xác. Tiện ích mở rộng có thể được sử dụng để chặn việc khai thác các lỗ hổng do truy cập vào các khối bộ nhớ đã được giải phóng, tràn bộ đệm, truy cập trước khi khởi tạo và sử dụng bên ngoài bối cảnh hiện tại.
  • Trình mô phỏng kiến ​​trúc 68k đã bổ sung hỗ trợ cho một loại máy mô phỏng mới “virt”, sử dụng các thiết bị virtio để tối ưu hóa hiệu suất.
  • Trình giả lập x86 bổ sung khả năng sử dụng công nghệ AMD SEV-ES (Ảo hóa mã hóa an toàn) để mã hóa các thanh ghi bộ xử lý được sử dụng trong hệ thống khách, khiến nội dung của các thanh ghi không thể truy cập được vào môi trường máy chủ trừ khi hệ thống khách cấp quyền truy cập rõ ràng cho chúng.
  • Trình tạo mã TCG (Trình tạo mã nhỏ) cổ điển, khi mô phỏng các hệ thống x86, triển khai hỗ trợ cho cơ chế PKS (Trình giám sát khóa bảo vệ), có thể được sử dụng để bảo vệ quyền truy cập vào các trang bộ nhớ đặc quyền.
  • Một loại máy mô phỏng mới “virt” đã được thêm vào trình mô phỏng kiến ​​trúc MIPS với sự hỗ trợ cho bộ xử lý Loongson-3 của Trung Quốc.
  • Trong trình mô phỏng kiến ​​trúc PowerPC dành cho các máy mô phỏng “powernv”, hỗ trợ cho bộ điều khiển BMC bên ngoài đã được thêm vào. Đối với các máy pseries mô phỏng, thông báo lỗi khi cố gắng tháo nóng bộ nhớ và CPU sẽ được cung cấp.
  • Đã thêm hỗ trợ mô phỏng bộ xử lý Qualcomm Hexagon với DSP.
  • Trình tạo mã TCG (Tiny Code Generator) cổ điển hỗ trợ môi trường máy chủ macOS trên các hệ thống có chip Apple M1 ARM mới.
  • Trình mô phỏng kiến ​​trúc RISC-V cho bo mạch Microchip PolarFire hỗ trợ flash QSPI NOR.
  • Trình mô phỏng Tricore hiện hỗ trợ mô hình bo mạch TriBoard mới, mô phỏng Infineon TC27x SoC.
  • Trình giả lập ACPI cung cấp khả năng gán tên cho các bộ điều hợp mạng trong hệ thống khách độc lập với thứ tự chúng được kết nối với bus PCI.
  • virtiofs đã thêm hỗ trợ cho tùy chọn FUSE_KILLPRIV_V2 để cải thiện hiệu suất của khách.
  • VNC đã thêm hỗ trợ về độ trong suốt của con trỏ và hỗ trợ chia tỷ lệ độ phân giải màn hình trong virtio-vga, dựa trên kích thước cửa sổ.
  • QMP (QEMU Machine Protocol) đã thêm hỗ trợ truy cập song song không đồng bộ khi thực hiện các tác vụ sao lưu.
  • Trình giả lập USB đã thêm khả năng lưu lưu lượng được tạo khi làm việc với thiết bị USB vào một tệp pcap riêng để kiểm tra tiếp theo trong Wireshark.
  • Đã thêm các lệnh QMP mới tải-snapshot, save-snapshot và xóa-snapshot để quản lý ảnh chụp nhanh qcow2.
  • Các lỗ hổng CVE-2020-35517 và CVE-2021-20263 đã được sửa trong các bản vá lỗi. Vấn đề đầu tiên cho phép truy cập vào môi trường máy chủ từ hệ thống khách bằng cách tạo một tệp thiết bị đặc biệt trong hệ thống khách bởi một người dùng có đặc quyền trong thư mục được chia sẻ với môi trường máy chủ. Vấn đề thứ hai là do lỗi trong việc xử lý các thuộc tính mở rộng trong tùy chọn 'xattrmap' và có thể khiến quyền ghi bị bỏ qua cũng như leo thang đặc quyền trong hệ thống khách.

Nguồn: opennet.ru

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