QEMU

Phần mềm chụp màn hình:
QEMU
Các chi tiết về phần mềm:
Phiên bản: 2.12.0 Cập nhật
Ngày tải lên: 22 Jun 18
Nhà phát triển: Fabrice Bellard
Giấy phép: Miễn phí
Phổ biến: 51

Rating: nan/5 (Total Votes: 0)

QEMU là một phần mềm ảo hóa nguồn mở và rất nhanh tập trung vào bản dịch động để đạt được hiệu suất hợp lý, trong khi dễ dàng chuyển sang các CPU máy chủ mới (bộ xử lý).


Trình mô phỏng và trình giả lập máy mạnh mẽ

Nó còn được gọi là trình mô phỏng máy, được thiết kế để mô phỏng một hệ thống đầy đủ, bao gồm một bộ xử lý và các thiết bị ngoại vi của nó. Phần mô phỏng hỗ trợ các hệ điều hành và chương trình được tạo cho một nền tảng phần cứng duy nhất, nhưng chạy trên một máy tính khác với kiến ​​trúc khác.

Mặt khác, khi ứng dụng được sử dụng như một trình ảo hóa, nó có thể đạt được hầu hết các buổi biểu diễn bản địa bằng cách chạy mã khách trực tiếp trên bộ xử lý máy chủ. Nó hỗ trợ hypervisor Xen và mô-đun hạt nhân KVM (Kernel Virtual Machine).


Hỗ trợ ảo hóa nhiều nền tảng phần cứng

Nếu KVM được ưu tiên, ứng dụng sẽ có thể ảo hóa các máy x86 (32 bit), s390, PowerPC, ARM, m68k, MIPS, CRIS, Microblaze, MIPSEL, or32 và SPARC. Nó có thể mô phỏng các hệ thống Windows XP, FreeDOS và SunOS, cũng như Virtio, USB Root Hubs, mạng, thiết bị đầu vào, video và lưu trữ.

Sau VirtualBox và VMware, QEMU là phần mềm ảo hóa lớn thứ ba cho nền tảng Linux, nhưng là phần mềm đầu tiên và mạnh mẽ nhất cho hệ sinh thái nguồn mở. Tính năng chính của nó là khả năng chạy như một máy ảo bản địa trên kiến ​​trúc 64 bit hoặc 32 bit, hoặc như một trình mô phỏng thuần túy.


Hệ điều hành được hỗ trợ

Nó là một phần mềm dòng lệnh và chạy trên các hệ điều hành dựa trên Linux, cũng như Microsoft Windows và các hương vị UNIX khác nhau. Lưu trữ nguồn được cung cấp trên phần tải xuống chuyên dụng, cho phép người dùng định cấu hình, biên dịch và cài đặt chương trình trong bất kỳ bản phân phối Linux nào, cũng như trên các hệ thống OpenBSD, Solaris, AIX, MinGW và Cygwin.


Tóm lại

Cho dù bạn muốn thử nghiệm phần mềm, hãy thử các hệ điều hành khác nhau hoặc chỉ chạy các ứng dụng không được hỗ trợ trên nền tảng của bạn, QEMU cung cấp cho người dùng một trong các máy mô phỏng và ảo hóa nhanh nhất.

Có gì mới trong bản phát hành này:

  • Mô phỏng hệ thống:
  • Các thay đổi không tương thích:
  • Số lượng cầu nối PCI cho phép cho máy pSeries đã giảm từ 256 xuống 31 (nhiều hơn có thể được cấu hình bằng cách thiết lập các cửa sổ MMIO theo cách thủ công).
  • Đã xóa hỗ trợ cho tftp: // trong lớp chặn, vì điều này đã bị hỏng vĩnh viễn đối với các tệp lớn hơn 256KB.
  • Các thay đổi không tương thích trong tương lai:
  • Ba tùy chọn đang sử dụng các tên khác nhau trên dòng lệnh và trong tệp cấu hình. Cụ thể:
  • & quot; acpi & quot; phần tệp cấu hình khớp với tùy chọn dòng lệnh & quot; acpitable & quot ;;
  • Dấu & quot; khởi động & quot; phần tệp cấu hình khớp với tùy chọn dòng lệnh & quot; khởi động & quot ;;
  • & quot; smp-opts & quot; phần tệp cấu hình khớp với tùy chọn dòng lệnh & quot; smp & quot;.
  • -readconfig sẽ chuẩn hóa tên cho tùy chọn dòng lệnh.
  • Hành vi tự động tính toán cấu trúc liên kết SMP khi một số tùy chọn tô pô SMP cho -smp được bỏ qua (ổ cắm, lõi, luồng) sẽ thay đổi trong tương lai. Nếu ABI khách cần được giữ nguyên khi nâng cấp trong khi sử dụng tùy chọn cấu trúc liên kết SMP, người dùng nên đặt tất cả các tùy chọn một cách rõ ràng (ổ cắm, lõi, chủ đề) hoặc bỏ qua tất cả chúng.
  • Thiết bị & quot; allwinner-a10 & quot ;, & quot; pc87312 & quot ;, & quot; ssi-sd & quot; sẽ được cấu hình với các thuộc tính rõ ràng thay vì ngầm. Điều này dường như không ảnh hưởng đến người dùng.
  • Lệnh Qd blockdev-add vẫn đang được tiến hành. Nó không hỗ trợ tất cả các trình điều khiển khối, nó thiếu một blockdev-del phù hợp, và nhiều hơn nữa. Nó có thể thay đổi không tương thích.
  • Đối với x86, chỉ định tính năng CPUID có cả tính năng & quot; + / -feature & quot; và & quot; tính năng = bật / tắt & quot; sẽ gây ra cảnh báo. Hành vi hiện tại cho kết hợp này (& quot; + tính năng / -feature & quot; thắng & quot; tính năng = bật / tắt & quot;) sẽ được thay đổi để & quot; + đối tượng địa lý & quot; và & quot; -feature & quot; sẽ là từ đồng nghĩa cho & quot; feature = on & quot; và & quot; tính năng = tắt & quot; tương ứng).
  • ARM:
  • Cải tiến cho bảng Aspeed.
  • Hỗ trợ cho các bẫy semihosting HLT ở chế độ AArch32 (cả ARM và Thumb).
  • Các bảng ACPI cho & quot; đức hạnh & quot; loại máy hỗ trợ ITS.
  • Thiết bị Cadence GEM hiện hỗ trợ nhiều hàng đợi ưu tiên thông qua thuộc tính xếp hàng ưu tiên num.
  • Bảng STM32F2xx (Netduino 2) hiện bao gồm các thiết bị ADC và SPI.
  • MIPS:
  • Hỗ trợ cho CPU 24KEc.
  • PowerPC:
  • Hỗ trợ cho CPU POWER9.
  • Các cải tiến cho & quot; powernv & quot; nền tảng.
  • pSeries:
  • Cầu nối PCI có thể được liên kết với NUMA nút.
  • Hỗ trợ cho hơn 1 TiB bộ nhớ khách.
  • Hỗ trợ hơn 64 GiB của cửa sổ MMIO trong cầu nối PCI.
  • Hỗ trợ cho & quot; -prom-env & quot; tham số
  • s390:
  • Hỗ trợ cho các mô hình CPU.
  • Hỗ trợ cho bản sửa đổi virtio-ccw 2.
  • x86:
  • Hỗ trợ một số tính năng CPUID mới liên quan đến tiện ích mở rộng tập lệnh AVX-512.
  • IOAPIC mô phỏng (được sử dụng bởi TCG và, với KVM, nếu tùy chọn & quot; -machine kernel_irqchip & quot; có giá trị & quot; off & quot; hoặc & quot; split & quot;) hiện mặc định thành phiên bản 0x20, hỗ trợ kết thúc trực tiếp thông báo gián đoạn.
  • Hỗ trợ Chế độ Ngắt Mở rộng (EIM) trong thiết bị intel_iommu. EIM yêu cầu KVM (Linux v4.7 trở lên, hỗ trợ x2APIC) và & quot; -machine kernel-irqchip = split & quot ;; nó được kích hoạt tự động nếu bật tính năng sao lưu gián đoạn (& quot; -machine kernel-irqchip = split -device intel_iommu, intremap = on & quot;).
  • Hỗ trợ lên đến 288 CPU với các loại máy Q35. 256 hoặc nhiều CPU chỉ được hỗ trợ nếu IOMMU và EIM được bật.
  • Xen:
  • Hỗ trợ rút đĩa SCSI.
  • Hỗ trợ cho thiết bị tương thích với thiết bị tương thích SUSE xenlinux.
  • Mô phỏng và gán thiết bị:
  • QEMU hiện bao gồm một bộ nạp giả chung cho phép bạn tải nhiều hình ảnh hoặc giá trị vào bộ nhớ lúc khởi động. Thiết bị này được ghi lại trong tài liệu / generic-loader.txt.
  • ACPI:
  • Hỗ trợ cho việc cắm nóng các thiết bị NVDIMM (_FIT)
  • Thiết bị mạng:
  • Hỗ trợ khả năng chịu lỗi dựa trên bước khóa hạt thô (COLO).
  • PCI / PCIe:
  • Thiết bị EDU mẫu giờ đây hỗ trợ MSI.
  • Tài liệu hướng dẫn PCI Express đã được thêm vào để được tư vấn về cấu trúc liên kết và PCI so với PCIe.
  • virtio:
  • Thiết bị mới vhost-vsock.
  • Hỗ trợ ban đầu để xử lý các lỗi khách một cách duyên dáng (nghĩa là QEMU không được thoát khỏi lỗi khách).
  • Hỗ trợ thiết bị mã hóa virtio mới.
  • Xen:
  • Hỗ trợ cho bản sao tài trợ.
  • Hệ thống con Crypto:
  • Hỗ trợ thêm các thuật toán băm cho PBKDF.
  • Hỗ trợ cho chế độ CTR.
  • GUI:
  • SPICE có thể sử dụng hiển thị OpenGL thuần túy nếu & quot; gl = on & quot; được chỉ định.
  • Màn hình:
  • Di chuyển:
  • Hỗ trợ khả năng chịu lỗi dựa trên bước khóa hạt thô (COLO).
  • Mạng:
  • Chặn thiết bị và công cụ:
  • Các lệnh QMP khác hỗ trợ tên nút (chặn luồng, chặn-cam kết, chặn blockdev-backup, blockdev-mirror, blockdev-snapshot-delete-internal-sync, blockdev-snapshot-internal-sync, thay đổi sao lưu tệp , drive-backup, drive-mirror, nbd-server-add).
  • Sự kiện BLOCK_IO_ERROR hiện bao gồm tên nút.
  • Các lệnh QMP khác chấp nhận tên mẫu thiết bị (block_set_io_throttle, blockdev-change-medium, eject, x-blockdev-remove-medium, x-blockdev-insert-medium, blockdev-open-tray, blockdev-close-tray)
  • Sự kiện DEVICE_TRAY_MOVED hiện bao gồm id thiết bị.
  • Điều chỉnh giờ chỉ áp dụng cho thiết bị khách và không chặn công việc hoặc máy chủ NBD.
  • hỗ trợ drive-backup và blockdev-backup ghi các bản sao lưu ở định dạng nén.
  • Định dạng LUKS hiện có thể định cấu hình số lần lặp PBKDF.
  • hỗ trợ chặn luồng phát trực tuyến từ tệp sao lưu sang tệp sao lưu khác.
  • Hỗ trợ sao chép, cho khả năng chịu lỗi chặn thô (COLO).
  • Mới & quot; đ & quot; subcomamand của qemu-img.
  • Trình điều khiển DMG có thể được biên dịch thành một trình điều khiển riêng biệt, để làm cho sự phụ thuộc của QEMU trên tùy chọn libbz2.
  • Hỗ trợ iSER trong trình khởi tạo iSCSI của QEMU thông qua một iser: // URI.
  • Máy khách và máy chủ NBD hỗ trợ phần mở rộng NBD_CMD_WRITE_ZEROES.
  • Hỗ trợ hình ảnh thô & quot; bù đắp & quot; và & quot; kích thước & quot; tùy chọn chỉ truy cập một phần của tệp hoặc thiết bị.
  • Truy tìm:
  • Truy vấn mới & quot; syslog & quot;.
  • Hỗ trợ cho nhiều dấu vết & quot; -d: PATTERN & quot; đối số dòng lệnh.
  • Tùy chọn CLI:
  • Mô phỏng chế độ người dùng
  • Hỗ trợ đích đã loại bỏ
  • Mục tiêu unicore32-linux-người dùng đã triển khai một hệ thống khác gọi ABI từ dòng chính Linux cho kiến ​​trúc này. Hỗ trợ cho nó đã bị xóa.
  • Chức năng mới:
  • Đã thêm hỗ trợ cho nhiều syscalls bao gồm preadv, pwritev, syslog.
  • Cải tiến khả năng mở rộng lớn cho các chương trình đa luồng (ARM, SPARC, x86).
  • QEMU hiện có thể hiểu và tạo ra các hoạt động hàng rào và cmpxchg.
  • TCG:
  • Các nguyên thủy TCG mới đã được thêm vào để mô hình hóa hướng dẫn đồng bộ hóa kiến ​​trúc một cách an toàn (ví dụ: tiền tố nguyên tử, LL / SC, tiền tố LOCK). Các mục tiêu arm, aarch64, alpha và x86 giờ đây sử dụng các nguyên thủy này cho các chương trình người dùng Linux đa luồng. Các nhà bảo trì mục tiêu TCG được khuyến khích chuyển tiếp giao diện người dùng của họ để sử dụng các cơ sở mới.
  • Các phụ trợ TCG hiện phát ra các hướng dẫn rào cản thích hợp cho các rào cản lối vào khi chạy các chương trình đa luồng. Tuy nhiên, mô phỏng kiến ​​trúc được sắp xếp mạnh (ví dụ: x86) trên cấu trúc được sắp xếp yếu (ví dụ: ARM hoặc POWER) sẽ không hoạt động.
  • tb_flush () cuối cùng là luồng an toàn có nghĩa là các chương trình đa luồng có ít khả năng bị lỗi khi bộ đệm dịch được đặt lại
  • tranh chấp khóa trong vòng chạy cpu chính đã được giảm hiệu suất cải thiện cho mã đa luồng
  • một số chủng tộc đã được xác định và cố định
  • Rất nhiều công việc TCG được hợp nhất trong chu kỳ này, nơi các điều kiện tiên quyết để hỗ trợ mô phỏng hệ thống đa luồng (MTTCG). Trong khi hỗ trợ MTTCG đầy đủ được dự kiến ​​sẽ được hợp nhất trong chu kỳ phát triển tiếp theo, các chương trình người dùng Linux đa luồng sẽ được hưởng lợi từ công việc này.

Tính năng mới trong phiên bản:

  • Mô phỏng hệ thống:
  • Các thay đổi không tương thích:
  • Số lượng cầu nối PCI cho phép cho máy pSeries đã giảm từ 256 xuống 31 (nhiều hơn có thể được cấu hình bằng cách thiết lập các cửa sổ MMIO theo cách thủ công).
  • Đã xóa hỗ trợ cho tftp: // trong lớp chặn, vì điều này đã bị hỏng vĩnh viễn đối với các tệp lớn hơn 256KB.
  • Các thay đổi không tương thích trong tương lai:
  • Ba tùy chọn đang sử dụng các tên khác nhau trên dòng lệnh và trong tệp cấu hình. Cụ thể:
  • Phần tệp cấu hình "acpi" khớp với tùy chọn dòng lệnh "có thể truy cập được";
  • Phần tệp cấu hình "boot-opts" khớp với tùy chọn dòng lệnh "boot";
  • Phần tệp cấu hình "smp-opts" khớp với tùy chọn dòng lệnh "smp".
  • -readconfig sẽ chuẩn hóa tên cho tùy chọn dòng lệnh.
  • Hành vi tự động tính toán cấu trúc liên kết SMP khi một số tùy chọn tô pô SMP cho -smp được bỏ qua (ổ cắm, lõi, luồng) sẽ thay đổi trong tương lai. Nếu ABI khách cần được giữ nguyên khi nâng cấp trong khi sử dụng các tùy chọn cấu trúc liên kết SMP, người dùng nên đặt tất cả các tùy chọn một cách rõ ràng (ổ cắm, lõi, luồng) hoặc bỏ qua tất cả chúng.
  • Thiết bị "allwinner-a10", "pc87312", "ssi-sd" sẽ được định cấu hình với các thuộc tính rõ ràng thay vì ngầm. Điều này dường như không ảnh hưởng đến người dùng.
  • Lệnh Qd blockdev-add vẫn đang được tiến hành. Nó không hỗ trợ tất cả các trình điều khiển khối, nó thiếu một blockdev-del phù hợp, và nhiều hơn nữa. Nó có thể thay đổi không tương thích.
  • Đối với x86, chỉ định một tính năng CPUID với cả "+ feature / -feature" và "feature = on / off" sẽ gây ra cảnh báo. Hành vi hiện tại cho kết hợp này ("+ feature / -feature" thắng trên "feature = on / off") sẽ được thay đổi để "+ feature" và "-feature" sẽ là từ đồng nghĩa cho "feature = on" và "feature = tắt "tương ứng).
  • ARM:
  • Cải tiến cho bảng Aspeed.
  • Hỗ trợ cho các bẫy semihosting HLT ở chế độ AArch32 (cả ARM và Thumb).
  • Các bảng ACPI cho loại máy "virt" hỗ trợ ITS.
  • Thiết bị Cadence GEM hiện hỗ trợ nhiều hàng đợi ưu tiên thông qua thuộc tính xếp hàng ưu tiên num.
  • Bảng STM32F2xx (Netduino 2) hiện bao gồm các thiết bị ADC và SPI.
  • MIPS:
  • Hỗ trợ cho CPU 24KEc.
  • PowerPC:
  • Hỗ trợ cho CPU POWER9.
  • Các cải tiến cho nền tảng "powernv" mới.
  • pSeries:
  • Cầu nối PCI có thể được liên kết với NUMA nút.
  • Hỗ trợ cho hơn 1 TiB bộ nhớ khách.
  • Hỗ trợ hơn 64 GiB của cửa sổ MMIO trong cầu nối PCI.
  • Hỗ trợ cho thông số "-prom-env"
  • s390:
  • Hỗ trợ cho các mô hình CPU.
  • Hỗ trợ cho bản sửa đổi virtio-ccw 2.
  • x86:
  • Hỗ trợ một số tính năng CPUID mới liên quan đến tiện ích mở rộng tập lệnh AVX-512.
  • IOAPIC mô phỏng (được sử dụng bởi TCG và, với KVM, nếu tùy chọn "-machine kernel_irqchip" có giá trị "off" hoặc "split") hiện mặc định là phiên bản 0x20, hỗ trợ các thông báo ngắt kết thúc trực tiếp.
  • Hỗ trợ Chế độ Ngắt Mở rộng (EIM) trong thiết bị intel_iommu. EIM yêu cầu KVM (Linux v4.7 trở lên, hỗ trợ x2APIC) và "-machine kernel-irqchip = split"; nó được kích hoạt tự động nếu ngắt được bật lại ("-machine kernel-irqchip = split -device intel_iommu, intremap = on").
  • Hỗ trợ lên đến 288 CPU với các loại máy Q35. 256 hoặc nhiều CPU chỉ được hỗ trợ nếu IOMMU và EIM được bật.
  • Xen:
  • Hỗ trợ rút đĩa SCSI.
  • Hỗ trợ cho thiết bị tương thích với thiết bị tương thích SUSE xenlinux.
  • Mô phỏng và gán thiết bị:
  • QEMU hiện bao gồm một bộ nạp giả chung cho phép bạn tải nhiều hình ảnh hoặc giá trị vào bộ nhớ lúc khởi động. Thiết bị này được ghi lại trong tài liệu / generic-loader.txt.
  • ACPI:
  • Hỗ trợ cho việc cắm nóng các thiết bị NVDIMM (_FIT)
  • Thiết bị mạng:
  • Hỗ trợ khả năng chịu lỗi dựa trên bước khóa hạt thô (COLO).
  • PCI / PCIe:
  • Thiết bị EDU mẫu giờ đây hỗ trợ MSI.
  • Tài liệu hướng dẫn PCI Express đã được thêm vào để được tư vấn về cấu trúc liên kết và PCI so với PCIe.
  • virtio:
  • Thiết bị mới vhost-vsock.
  • Hỗ trợ ban đầu để xử lý các lỗi khách một cách duyên dáng (nghĩa là QEMU không được thoát khỏi lỗi khách).
  • Hỗ trợ thiết bị mã hóa virtio mới.
  • Xen:
  • Hỗ trợ cho bản sao tài trợ.
  • Hệ thống con Crypto:
  • Hỗ trợ thêm các thuật toán băm cho PBKDF.
  • Hỗ trợ cho chế độ CTR.
  • GUI:
  • SPICE có thể sử dụng hiển thị OpenGL thuần túy nếu "gl = on" được chỉ định.
  • Màn hình:
  • Di chuyển:
  • Hỗ trợ khả năng chịu lỗi dựa trên bước khóa hạt thô (COLO).
  • Mạng:
  • Chặn thiết bị và công cụ:
  • Các lệnh QMP khác hỗ trợ tên nút (chặn luồng, chặn-cam kết, chặn blockdev-backup, blockdev-mirror, blockdev-snapshot-delete-internal-sync, blockdev-snapshot-internal-sync, thay đổi sao lưu tệp , drive-backup, drive-mirror, nbd-server-add).
  • Sự kiện BLOCK_IO_ERROR hiện bao gồm tên nút.
  • Các lệnh QMP khác chấp nhận tên mẫu thiết bị (block_set_io_throttle, blockdev-change-medium, eject, x-blockdev-remove-medium, x-blockdev-insert-medium, blockdev-open-tray, blockdev-close-tray)
  • Sự kiện DEVICE_TRAY_MOVED hiện bao gồm id thiết bị.
  • Điều chỉnh giờ chỉ áp dụng cho thiết bị khách và không chặn công việc hoặc máy chủ NBD.
  • hỗ trợ drive-backup và blockdev-backup ghi các bản sao lưu ở định dạng nén.
  • Định dạng LUKS hiện có thể định cấu hình số lần lặp PBKDF.
  • hỗ trợ chặn luồng phát trực tuyến từ tệp sao lưu sang tệp sao lưu khác.
  • Hỗ trợ sao chép, cho khả năng chịu lỗi chặn thô (COLO).
  • Tiểu mục "dd" mới của qemu-img.
  • Trình điều khiển DMG có thể được biên dịch thành một trình điều khiển riêng biệt, để làm cho sự phụ thuộc của QEMU trên tùy chọn libbz2.
  • Hỗ trợ iSER trong trình khởi tạo iSCSI của QEMU thông qua một iser: // URI.
  • Máy khách và máy chủ NBD hỗ trợ phần mở rộng NBD_CMD_WRITE_ZEROES.
  • Hình ảnh thô hỗ trợ tùy chọn "bù trừ" và "kích thước" để chỉ truy cập một phần của tệp hoặc thiết bị.
  • Truy tìm:
  • "syslog" phụ trợ truy tìm mới.
  • Hỗ trợ cho nhiều "-d trace: PATTERN" đối số dòng lệnh.
  • Tùy chọn CLI:
  • Mô phỏng chế độ người dùng
  • Hỗ trợ đích đã loại bỏ
  • Mục tiêu unicore32-linux-người dùng đã triển khai một hệ thống khác gọi ABI từ dòng chính Linux cho kiến ​​trúc này. Hỗ trợ cho nó đã bị xóa.
  • Chức năng mới:
  • Đã thêm hỗ trợ cho nhiều syscalls bao gồm preadv, pwritev, syslog.
  • Cải tiến khả năng mở rộng lớn cho các chương trình đa luồng (ARM, SPARC, x86).
  • QEMU hiện có thể hiểu và tạo ra các hoạt động hàng rào và cmpxchg.
  • TCG:
  • Các nguyên thủy TCG mới đã được thêm vào để mô hình hóa hướng dẫn đồng bộ hóa kiến ​​trúc một cách an toàn (ví dụ: tiền tố nguyên tử, LL / SC, tiền tố LOCK). Các mục tiêu arm, aarch64, alpha và x86 giờ đây sử dụng các nguyên thủy này cho các chương trình người dùng Linux đa luồng. Các nhà bảo trì mục tiêu TCG được khuyến khích chuyển tiếp giao diện người dùng của họ để sử dụng các cơ sở mới.
  • Các phụ trợ TCG hiện phát ra các hướng dẫn rào cản thích hợp cho các rào cản lối vào khi chạy các chương trình đa luồng. Tuy nhiên, mô phỏng kiến ​​trúc được sắp xếp mạnh (ví dụ: x86) trên cấu trúc được sắp xếp yếu (ví dụ: ARM hoặc POWER) sẽ không hoạt động.
  • tb_flush () cuối cùng là luồng an toàn có nghĩa là các chương trình đa luồng có ít khả năng bị lỗi khi bộ đệm dịch được đặt lại
  • tranh chấp khóa trong vòng chạy cpu chính đã được giảm hiệu suất cải thiện cho mã đa luồng
  • một số chủng tộc đã được xác định và cố định
  • Rất nhiều công việc TCG được hợp nhất trong chu kỳ này, nơi các điều kiện tiên quyết để hỗ trợ mô phỏng hệ thống đa luồng (MTTCG). Trong khi hỗ trợ MTTCG đầy đủ được dự kiến ​​sẽ được hợp nhất trong chu kỳ phát triển tiếp theo, các chương trình người dùng Linux đa luồng sẽ được hưởng lợi từ công việc này.

Tính năng mới trong phiên bản 2.9.0:

  • Mô phỏng hệ thống:
  • Các thay đổi không tương thích:
  • Số lượng cầu nối PCI cho phép cho máy pSeries đã giảm từ 256 xuống 31 (nhiều hơn có thể được cấu hình bằng cách thiết lập các cửa sổ MMIO theo cách thủ công).
  • Đã xóa hỗ trợ cho tftp: // trong lớp chặn, vì điều này đã bị hỏng vĩnh viễn đối với các tệp lớn hơn 256KB.
  • Các thay đổi không tương thích trong tương lai:
  • Ba tùy chọn đang sử dụng các tên khác nhau trên dòng lệnh và trong tệp cấu hình. Cụ thể:
  • Phần tệp cấu hình "acpi" khớp với tùy chọn dòng lệnh "có thể truy cập được";
  • Phần tệp cấu hình "boot-opts" khớp với tùy chọn dòng lệnh "boot";
  • Phần tệp cấu hình "smp-opts" khớp với tùy chọn dòng lệnh "smp".
  • -readconfig sẽ chuẩn hóa tên cho tùy chọn dòng lệnh.
  • Hành vi tự động tính toán cấu trúc liên kết SMP khi một số tùy chọn tô pô SMP cho -smp được bỏ qua (ổ cắm, lõi, luồng) sẽ thay đổi trong tương lai. Nếu ABI khách cần được giữ nguyên khi nâng cấp trong khi sử dụng các tùy chọn cấu trúc liên kết SMP, người dùng nên đặt tất cả các tùy chọn một cách rõ ràng (ổ cắm, lõi, luồng) hoặc bỏ qua tất cả chúng.
  • Thiết bị "allwinner-a10", "pc87312", "ssi-sd" sẽ được định cấu hình với các thuộc tính rõ ràng thay vì ngầm. Điều này dường như không ảnh hưởng đến người dùng.
  • Lệnh Qd blockdev-add vẫn đang được tiến hành. Nó không hỗ trợ tất cả các trình điều khiển khối, nó thiếu một blockdev-del phù hợp, và nhiều hơn nữa. Nó có thể thay đổi không tương thích.
  • Đối với x86, chỉ định một tính năng CPUID với cả "+ feature / -feature" và "feature = on / off" sẽ gây ra cảnh báo. Hành vi hiện tại cho kết hợp này ("+ feature / -feature" thắng trên "feature = on / off") sẽ được thay đổi để "+ feature" và "-feature" sẽ là từ đồng nghĩa cho "feature = on" và "feature = tắt "tương ứng).
  • ARM:
  • Cải tiến cho bảng Aspeed.
  • Hỗ trợ cho các bẫy semihosting HLT ở chế độ AArch32 (cả ARM và Thumb).
  • Các bảng ACPI cho loại máy "virt" hỗ trợ ITS.
  • Thiết bị Cadence GEM hiện hỗ trợ nhiều hàng đợi ưu tiên thông qua thuộc tính xếp hàng ưu tiên num.
  • Bảng STM32F2xx (Netduino 2) hiện bao gồm các thiết bị ADC và SPI.
  • MIPS:
  • Hỗ trợ cho CPU 24KEc.
  • PowerPC:
  • Hỗ trợ cho CPU POWER9.
  • Các cải tiến cho nền tảng "powernv" mới.
  • pSeries:
  • Cầu nối PCI có thể được liên kết với NUMA nút.
  • Hỗ trợ cho hơn 1 TiB bộ nhớ khách.
  • Hỗ trợ hơn 64 GiB của cửa sổ MMIO trong cầu nối PCI.
  • Hỗ trợ cho thông số "-prom-env"
  • s390:
  • Hỗ trợ cho các mô hình CPU.
  • Hỗ trợ cho bản sửa đổi virtio-ccw 2.
  • x86:
  • Hỗ trợ một số tính năng CPUID mới liên quan đến tiện ích mở rộng tập lệnh AVX-512.
  • IOAPIC mô phỏng (được sử dụng bởi TCG và, với KVM, nếu tùy chọn "-machine kernel_irqchip" có giá trị "off" hoặc "split") hiện mặc định là phiên bản 0x20, hỗ trợ các thông báo ngắt kết thúc trực tiếp.
  • Hỗ trợ Chế độ Ngắt Mở rộng (EIM) trong thiết bị intel_iommu. EIM yêu cầu KVM (Linux v4.7 trở lên, hỗ trợ x2APIC) và "-machine kernel-irqchip = split"; nó được kích hoạt tự động nếu ngắt được bật lại ("-machine kernel-irqchip = split -device intel_iommu, intremap = on").
  • Hỗ trợ lên đến 288 CPU với các loại máy Q35. 256 hoặc nhiều CPU chỉ được hỗ trợ nếu IOMMU và EIM được bật.
  • Xen:
  • Hỗ trợ rút đĩa SCSI.
  • Hỗ trợ cho thiết bị tương thích với thiết bị tương thích SUSE xenlinux.
  • Mô phỏng và gán thiết bị:
  • QEMU hiện bao gồm một bộ nạp giả chung cho phép bạn tải nhiều hình ảnh hoặc giá trị vào bộ nhớ lúc khởi động. Thiết bị này được ghi lại trong tài liệu / generic-loader.txt.
  • ACPI:
  • Hỗ trợ cho việc cắm nóng các thiết bị NVDIMM (_FIT)
  • Thiết bị mạng:
  • Hỗ trợ khả năng chịu lỗi dựa trên bước khóa hạt thô (COLO).
  • PCI / PCIe:
  • Thiết bị EDU mẫu giờ đây hỗ trợ MSI.
  • Tài liệu hướng dẫn PCI Express đã được thêm vào để được tư vấn về cấu trúc liên kết và PCI so với PCIe.
  • virtio:
  • Thiết bị mới vhost-vsock.
  • Hỗ trợ ban đầu để xử lý các lỗi khách một cách duyên dáng (nghĩa là QEMU không được thoát khỏi lỗi khách).
  • Hỗ trợ thiết bị mã hóa virtio mới.
  • Xen:
  • Hỗ trợ cho bản sao tài trợ.
  • Hệ thống con Crypto:
  • Hỗ trợ thêm các thuật toán băm cho PBKDF.
  • Hỗ trợ cho chế độ CTR.
  • GUI:
  • SPICE có thể sử dụng hiển thị OpenGL thuần túy nếu "gl = on" được chỉ định.
  • Màn hình:
  • Di chuyển:
  • Hỗ trợ khả năng chịu lỗi dựa trên bước khóa hạt thô (COLO).
  • Mạng:
  • Chặn thiết bị và công cụ:
  • Các lệnh QMP khác hỗ trợ tên nút (chặn luồng, chặn-cam kết, chặn blockdev-backup, blockdev-mirror, blockdev-snapshot-delete-internal-sync, blockdev-snapshot-internal-sync, thay đổi sao lưu tệp , drive-backup, drive-mirror, nbd-server-add).
  • Sự kiện BLOCK_IO_ERROR hiện bao gồm tên nút.
  • Các lệnh QMP khác chấp nhận tên mẫu thiết bị (block_set_io_throttle, blockdev-change-medium, eject, x-blockdev-remove-medium, x-blockdev-insert-medium, blockdev-open-tray, blockdev-close-tray)
  • Sự kiện DEVICE_TRAY_MOVED hiện bao gồm id thiết bị.
  • Điều chỉnh giờ chỉ áp dụng cho thiết bị khách và không chặn công việc hoặc máy chủ NBD.
  • hỗ trợ drive-backup và blockdev-backup ghi các bản sao lưu ở định dạng nén.
  • Định dạng LUKS hiện có thể định cấu hình số lần lặp PBKDF.
  • hỗ trợ chặn luồng phát trực tuyến từ tệp sao lưu sang tệp sao lưu khác.
  • Hỗ trợ sao chép, cho khả năng chịu lỗi chặn thô (COLO).
  • Tiểu mục "dd" mới của qemu-img.
  • Trình điều khiển DMG có thể được biên dịch thành một trình điều khiển riêng biệt, để làm cho sự phụ thuộc của QEMU trên tùy chọn libbz2.
  • Hỗ trợ iSER trong trình khởi tạo iSCSI của QEMU thông qua một iser: // URI.
  • Máy khách và máy chủ NBD hỗ trợ phần mở rộng NBD_CMD_WRITE_ZEROES.
  • Hình ảnh thô hỗ trợ tùy chọn "bù trừ" và "kích thước" để chỉ truy cập một phần của tệp hoặc thiết bị.
  • Truy tìm:
  • "syslog" phụ trợ truy tìm mới.
  • Hỗ trợ cho nhiều "-d trace: PATTERN" đối số dòng lệnh.
  • Tùy chọn CLI:
  • Mô phỏng chế độ người dùng
  • Hỗ trợ đích đã loại bỏ
  • Mục tiêu unicore32-linux-người dùng đã triển khai một hệ thống khác gọi ABI từ dòng chính Linux cho kiến ​​trúc này. Hỗ trợ cho nó đã bị xóa.
  • Chức năng mới:
  • Đã thêm hỗ trợ cho nhiều syscalls bao gồm preadv, pwritev, syslog.
  • Cải tiến khả năng mở rộng lớn cho các chương trình đa luồng (ARM, SPARC, x86).
  • QEMU hiện có thể hiểu và tạo ra các hoạt động hàng rào và cmpxchg.
  • TCG:
  • Các nguyên thủy TCG mới đã được thêm vào để mô hình hóa hướng dẫn đồng bộ hóa kiến ​​trúc một cách an toàn (ví dụ: tiền tố nguyên tử, LL / SC, tiền tố LOCK). Các mục tiêu arm, aarch64, alpha và x86 giờ đây sử dụng các nguyên thủy này cho các chương trình người dùng Linux đa luồng. Các nhà bảo trì mục tiêu TCG được khuyến khích chuyển tiếp giao diện người dùng của họ để sử dụng các cơ sở mới.
  • Các phụ trợ TCG giờ đây phát ra các hướng dẫn rào cản thích hợp cho các rào cản lối vào khi chạy các chương trình đa luồng. Tuy nhiên, mô phỏng kiến ​​trúc được sắp xếp mạnh (ví dụ: x86) trên cấu trúc được sắp xếp yếu (ví dụ: ARM hoặc POWER) sẽ không hoạt động.
  • tb_flush () cuối cùng là luồng an toàn có nghĩa là các chương trình đa luồng có ít khả năng bị lỗi khi bộ đệm dịch được đặt lại
  • tranh chấp khóa trong vòng chạy cpu chính đã được giảm hiệu suất cải thiện cho mã đa luồng
  • một số chủng tộc đã được xác định và cố định
  • Rất nhiều công việc TCG được hợp nhất trong chu kỳ này, nơi các điều kiện tiên quyết để hỗ trợ mô phỏng hệ thống đa luồng (MTTCG). Trong khi hỗ trợ MTTCG đầy đủ được dự kiến ​​sẽ được hợp nhất trong chu kỳ phát triển tiếp theo, các chương trình người dùng Linux đa luồng sẽ được hưởng lợi từ công việc này.

Phần mềm khác của nhà phát triển Fabrice Bellard

TCCBOOT
TCCBOOT

3 Jun 15

KQEMU
KQEMU

2 Jun 15

Tiny C Compiler
Tiny C Compiler

3 Jun 15

Ý kiến ​​để QEMU

Bình luận không
Nhập bình luận
Bật hình ảnh!