У QEMU редко бывает одно изменение, ради которого обновление можно описать одной строкой. Версия 11.1 вышла 11 августа и снова получилась большой: изменения затронули Arm, RISC-V, PowerPC, s390x, миграцию виртуальных машин и графическую подсистему. Но среди этого списка есть довольно конкретное дополнение к эмуляции накопителей.
Код UFS в QEMU 11.1 приведен ближе к спецификации UFS 4.1. Теперь эмулируемое устройство поддерживает Write Booster, а также Host Initiated Defragmentation, сокращенно HID. Обе возможности добавлены непосредственно в реализацию UFS и сопровождаются тестами.
Write Booster в UFS использует выделенную область памяти как буфер для ускорения записи. Для обычного владельца смартфона эта механика обычно остается незаметной: ее работу определяют контроллер накопителя, прошивка и операционная система. Для разработчика ситуация другая. Если программное обеспечение должно корректно работать с соответствующими возможностями UFS, одной абстракции в виде обычного виртуального диска уже недостаточно.
Похожая логика у Host Initiated Defragmentation. Эта функция позволяет хосту инициировать внутреннюю реорганизацию данных накопителем. QEMU теперь способен эмулировать такое поведение, а значит, сценарии с HID можно проверять без обязательного доступа к физическому UFS-устройству. Реализация была добавлена отдельной серией изменений уже после поддержки Write Booster.
Это не означает, что виртуальный накопитель в QEMU внезапно стал полным цифровым двойником конкретной микросхемы Samsung, Kioxia или другого производителя. В релизе реализованы определенные механизмы стандарта UFS 4.1, а не все аппаратные особенности реальных накопителей. Для проверки логики драйверов и системного ПО разница существенная: тестовая среда теперь знает больше о поведении UFS, которое раньше приходилось обходить или воспроизводить другими средствами.
Сам QEMU 11.1 этим не ограничивается. Релиз получил big-endian-цель для RISC-V, новые архитектурные возможности Arm, изменения виртуализации и отдельный сервер qemu-vnc. Но именно доработка UFS хорошо объясняет характер обновления: разработчики расширяют не условный набор виртуального железа, а точность эмуляции тех функций, с которыми современное системное ПО действительно взаимодействует.
Для обычного настольного пользователя QEMU эффект почти незаметен. Для разработки низкоуровневого ПО, тестирования драйверов и систем, работающих с UFS, версия 11.1 дает еще пару сценариев, которые теперь можно перенести с физического стенда в воспроизводимую виртуальную среду.
QEMU 11.1 научился точнее имитировать современные UFS-накопители
В QEMU 11.1 эмуляция UFS получила две функции из спецификации UFS 4.1: Write Booster и Host Initiated Defragmentation. Обновление интересно прежде всего разработчикам, которым нужно воспроизводить поведение современного мобильного накопителя внутри виртуальной среды.

Источник: Phoronix
2 показов







