LINUX.ORG.RU

OS-independent device drivers

 


0

2

Существует ли стандарт, или категория драйверов, которые можно грузить как под Linux (protected mode), так и под DOS (real mode)? Reusable code, так сказать. Алгоритм работы с аппаратурой ведь один и тот же (вне зависимости от кол-ва колец защиты).

Можно ли использовать Linux-драйвера под другими ОС? Наподобие загрузки DLL в ReactOS.

Алгоритм работы с железом может быть одинаковый, а api для железо-драйвер и драйвер-(ядро)-юзерспейс сильно отличаются. В голову только ndiswrapper приходит из реальных примеров

phoenix ★★★★
()

Ты про исходники или бинарники?

Бинарник для real mode в protected mode запуститься только если ему кодовый сегмент как 16-битный указать (подозреваю в 64-битном режиме это нельзя). И то, запуститься то запустится, но надо очень постараться, чтобы он и там и там (по логике работы) выполнялся одинаково, чисто с точки зрения проца, а если ещё и разницу в abi операционной системы добавить, то всё ещё хуже.

Между разными ОС одинаковой разрядности всё попроще но скорее всего никто тоже не заморачивался, кроме X11, который умел грузить драйвера ОС-независимо.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 2)

Лол, нет конечно. Из чего-то подобного только ndiswrapper знаю, который позволяет исходники сетевых драйверов под Windows собрать под ядро Linux.

snizovtsev ★★★★★
()

Кстати, а можно ли использовать EFI драйверы ПОСЛЕ загрузки ОС, обращаясь к ним как к неким GENRIC устройствам? А то там так то много чего есть...

Jameson ★★★★★
()

Любой драйвер использует API нижележащих слоев ядра своей ОС, и предоставляет API для вышележащих слоев, и для юзерспейса (файлы /dev/mydevice и т. д.)

Оба этих API очень специфические у каждой ОС. Очень разные. Поэтому нет, нельзя.

Единственное что можно, это написать слои совместимости, которые будут «преобразовывать» API одной ОС в другое. Яркий пример - сетевые драйверы в Haiku OS, которые взяты из FreeBSD и OpenBSD и работают через прокладки.

У реактоса сама ОС это сплошной слой совместимости с виндой, поэтому там могут работать виндовые драйверы.

James_Holden ★★★
()