=== Поддержка FRED для amd64 Ссылки: + link:https://www.intel.com/content/www/us/en/content-details/819481/flexible-return-and-event-delivery-fred-specification.html[Спецификация Intel FRED до SDM] URL: link:https://www.intel.com/content/www/us/en/content-details/819481/flexible-return-and-event-delivery-fred-specification.html[] + link:https://reviews.freebsd.org/D55829[D55829 amd64: поддержка FRED] URL: link:https://reviews.freebsd.org/D55829[] Контакт: Konstantin Belousov Реализована поддержка функции FRED (Flexible Return and Event Delivery — гибкое возвращение и доставка событий) для очень современных платформ amd64. FRED представляет собой полную переработку аппаратного интерфейса для сообщения операционной системе об исключениях, прерываниях и системных вызовах, а также способа, которым операционная система возвращает управление из обработчика прерванному коду. Целью разработки FRED было избавиться от слоёв функций совместимости и ошибок, накопившихся в существующем способе, назовём его доставкой событий на основе IDT. Спецификация FRED теперь включена в Intel SDM редакции 90. Похоже, что AMD также планирует предоставить FRED в некоторых будущих реализациях. Таким образом, поддержка FRED требует нового пути кода для обработчиков событий. Хорошая структурированность FRED позволяет использовать минимальные trampoline-части на ассемблере, перенося бОльшую часть диспетчеризации в код на C. Реализация обработчика FRED была относительно простой и потребовала гораздо меньше времени, чем я изначально предполагал. Это показывает, насколько хорош и естественен предлагаемый интерфейс. На данный момент тестирование проводилось только на эмуляторе Simics. FRED должен поддерживаться недавно выпущенными процессорами Intel Panther Lake, но у меня нет доступа к реальному оборудованию. Спонсор: Фонд FreeBSD // // The FreeBSD Russian Documentation Project // // Original EN revision (18.04.2026): 3b65d32cc06273c117c66bb016b50269382540aa //