Перейти к содержанию

Encore пересобрал стек Firecracker для Apple Silicon: что не даёт Apple

7.0/10

Encore опубликовала техническую статью о том, как переписала стек микроВМ Firecracker для работы на Apple Silicon. Инженеры столкнулись с ограничениями гипервизора Apple, который не предоставляет некоторых возможностей, доступных на Linux. В результате они создали собственное решение, которое позволяет запускать те же микроВМ на Mac, что и в продакшене. Это важно для разработчиков, которым нужна локальная среда, максимально приближенная к боевой, без необходимости использовать удалённые серверы. Статья описывает конкретные технические проблемы и пути их решения, включая различия в работе с памятью и устройствами ввода-вывода.

Контекст

Firecracker — это легковесный гипервизор на базе KVM, который Encore использует в продакшене для запуска микроВМ. Однако KVM доступен только на Linux, а на macOS с чипами Apple Silicon используется собственный гипервизор Apple (Hypervisor.framework), который не поддерживает KVM-специфичные функции. Из-за этого разработчикам Encore было сложно запускать ту же систему сборки на своих ноутбуках, что и в продакшене. Чтобы решить эту проблему, они создали инструмент crackling — единый API для микроВМ, который управляет Firecracker на Linux и гипервизором Apple на macOS, позволяя загружать одни и те же образы на обеих платформах. Ранее существовали лишь экспериментальные попытки портировать Firecracker на macOS (например, proof-of-concept в обсуждениях проекта), но они не были готовы к продакшену.

Влияние

Разработчики, использующие Encore или аналогичные платформы, теперь могут тестировать микроВМ локально на Mac, что ускоряет цикл разработки и снижает зависимость от облачных сред. Однако из-за ограничений Apple полная функциональность Firecracker недоступна, поэтому решение Encore является частичным обходным путём, а не полным портом.

Обсуждение в сообществе

В комментариях пользователи отмечают, что статья написана с явными признаками использования ИИ, что отталкивает некоторых читателей. Другие жалуются на неработающую прокрутку в Firefox. Практикующие инженеры подтверждают сложность задачи: один из них упоминает, что в Lovable потратили около месяца на аналогичную работу, но выбрали путь вложенной виртуализации (vfkit → QEMU → Kind), а не переписывание Firecracker. Также есть вопрос о планах открыть исходный код решения под названием crackling.

Глубокое погружение

Статья подробно описывает, как Encore адаптировала Firecracker к гипервизору Apple, который не поддерживает некоторые механизмы, используемые в оригинале, например, определённые типы прерываний и управление памятью. Инженеры заменили эти механизмы на эквиваленты, доступные в macOS, что потребовало переписывания значительной части кода. В частности, они реализовали собственную обработку виртуальных устройств и изменили способ передачи данных между гостевой и хостовой системами. Также упоминается, что Apple не позволяет использовать один критический функционал, связанный с производительностью, из-за чего пришлось искать компромиссы. В итоге решение работает, но с некоторыми ограничениями по сравнению с Linux-версией.

Источники

Покрытие источниками

Проверяются выбранные ключевые утверждения, а не истинность всей статьи целиком.

  1. Предварительно: новость слишком свежая

    Encore пересобрал стек Firecracker для Apple Silicon: что не даёт Apple

    • github.com · контекст · первоисточник
    • github.com · контекст · первоисточник
    • news.ycombinator.com · подтверждает · независимая публикация
  2. Недостаточное покрытие источниками

    Encore опубликовала техническую статью о том, как переписала стек микроВМ Firecracker для работы на Apple Silicon.

  3. Предварительно: новость слишком свежая

    Инженеры столкнулись с ограничениями гипервизора Apple, который не предоставляет некоторых возможностей, доступных на Linux.