Немногие знают, что с выходом обновленной платформы виртуализации VMware vSphere 5.5 компания VMware поменяла архитектуру драйверов, которые использует гипервизор для взаимодействия с аппаратным обеспечением. Теперь эта архитектура называется Native Device Driver Architecture, и она позволяет использовать нативные драйверы для VMkernel вместо драйверов под Linux.
William Lam написал хороший пост на эту тему. Изложим здесь его основные моменты вкратце.
Раньше VMware ESX / ESXi использовал архитектуру драйверов Linux, но поскольку ядро гипервизора VMkernel - это не Linux, то VMware пришлось сделать модуль vmklinux, который находится между VMkernel и драйверами:
Эта архитектура позволяет драйверам "Linux-происхождения" общаться с VMkernel через API, предоставляемый vmklinux.
Однако очевидно, что у такой архитектуры есть множество недостатков:
Дополнительный уровень трансляции команд добавляет багоемкости и потерь производительности.
Необходима совместимость драйверов с ядром Linux, хотя требуется-то всего лишь совместимость с VMkernel.
Ограниченность функциональности драйвера - он может сделать для VMkernel не больше, чем может сделать для Linux.
Ввиду всего этого в VMware ESXi 5.5 и была введена новая архитектура, в которой отсутствует ненужная прослойка:
Теперь VMware предоставляет своим партнерам средство разработки Native Driver Development Kit (NDDK), которое позволяет производителям аппаратного обеспечения делать нативные драйверы для VMware ESXi / VMkernel как для отдельной ОС. Доступна эта возможность только партнерам уровня TAP (Technology Alliance Partner).
С одной стороны это все выглядит позитивно, если бы не одно но. Если раньше Linux-драйверы, которые выпускались под лицензией GPL, были доступны как open source, то и исходные коды драйверов для ESXi (в соответствии с лицензией GPL) были также доступны публично.
Поэтому независимые разработчики могли использовать их для разработки собственных и доработки существующих драйверов к устройствам, официально неподдерживаемым VMware ESXi (для так называемого "Whitebox-железа").
Теперь же VMware не планирует выпускать драйверы как Open Source, что сильно ограничит возможности по поддержке аппаратных компонентов и платформ, отсутствующих в списке совместимости HCL.
Платформа виртуализации VMware vSphere 5.5 на данный момент поддерживает как legacy-модель драйверов, так и Native Device Driver Architecture в целях обратной совместимости. Однако рано или поздно VMware откажется от поддержки Linux-драйверов, и многим пользователям такое не понравится.
Поэтому VMware просто обязана предоставить всем разработчикам свободный доступ к NDDK, а не только TAP-партнерам, чтобы сохранить хорошую репутацию в такой ситуации.