busdma

редактировать

В вычислениях, busdma, bus_dma и bus_space - это набор интерфейсов прикладного программирования, предназначенных для того, чтобы помочь сделать драйверы устройств менее зависимыми от кода, зависящего от платформы, что позволяет хосту операционная система, чтобы упростить перенос на новое компьютерное оборудование. Это достигается за счет наличия абстракций для отображения прямого доступа к памяти (DMA) по популярным машинно-независимым компьютерным шинам, таким как PCI, которые используются на различных архитектурах из IA-32 (NetBSD / i386) до DEC Alpha (NetBSD / alpha). Кроме того, некоторые устройства могут иметь несколько разновидностей, поддерживающих более одной шины, например, ISA, EISA, VESA Local Bus и PCI., по-прежнему используют одну и ту же базовую логику независимо от шины, и такие драйверы устройств также выиграют от этой же абстракции. Таким образом, смысл busdma состоит в том, чтобы облегчить максимальное повторное использование кода в широком диапазоне платформ.

. Примерно в 2006 г. абстракции шины и DMA сделали возможным для NetBSD поддержку 50 аппаратных платформ и 14 архитектур ЦП. из одного исходного дерева, по сравнению с моделью разветвления, используемой Linux ports.

Первоначально реализовано как API-интерфейсы bus_dma разработчиками Операционная система NetBSD, busdma была принята в OpenBSD, FreeBSD и их производные; с FreeBSD, включающей его под зонтиком busdma (без подчеркивания). И NetBSD, и OpenBSD имеют дополнительные API-интерфейсы bus_space, которые были объединены в версию busdma, встроенную во FreeBSD. DragonFly BSD Разработчики также медленно переводят свои драйверы на использование busdma.

Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-13 06:36:49
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте