Jump to content

NDISобертка

NDISобертка
Разработчик(и) Ян Кишка, Гиридхар Пеммасани, Понтус Фукс
Стабильная версия
1,63 / 3 мая 2020 г .; 4 года назад ( 03.05.2020 )
Операционная система Linux только на IA-32 и x86-64. архитектурах
Тип Оболочка драйвера
Лицензия GNU GPL
Веб-сайт Вики-сайт NDISwrapper , область загрузки NDISwrapper

NDISwrapper — это бесплатная программная оболочка для драйверов , которая позволяет использовать Windows XP драйверы сетевых устройств (для таких устройств, как карты PCI , USB-модемы и маршрутизаторы ) в операционных системах Linux. Windows NDISwrapper работает путем реализации ядра и NDIS API-интерфейсов и динамического связывания сетевых драйверов Windows с этой реализацией. В результате он работает только в системах, основанных на архитектурах набора команд, поддерживаемых Windows, а именно IA-32 и x86-64 .

Собственные драйверы для некоторых сетевых адаптеров недоступны в Linux, поскольку некоторые производители поддерживают собственные интерфейсы и не пишут кроссплатформенные драйверы. NDISwrapper позволяет использовать драйверы Windows, которые доступны практически для всех современных сетевых адаптеров ПК.

Использовать

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

Есть три шага: создание драйвера Linux, его установка и использование. NDISwrapper состоит из двух основных частей: инструмента командной строки, используемого во время установки, и подсистемы Windows, используемой, когда приложение вызывает подсистему Wi-Fi.

Поскольку результатом установки NDISwrapper должен быть своего рода драйвер Linux для работы с приложениями Linux, первое действие, которое делает пользователь, — это «компилировать» пару или более файлов Windows, а версию Windows DDK NDISwrapper в модуль ядра Linux. Это делается с помощью инструмента под названием «ndiswrapper». Полученный драйвер Linux затем устанавливается (часто вручную) в ОС. Затем приложение Linux может отправить запрос этому драйверу Linux, который автоматически выполнит необходимые изменения для вызова своего (теперь уже) внутреннего драйвера Windows и DDK.

Для достижения этой «компиляции» NDISwrapper требуются как минимум файлы «.inf» и «.sys», которые неизменно входят в состав драйвера Windows. Например, если драйвер называется «mydriver» с файлами mydriver.inf и mydriver.sys и идентификатором поставщика:productid 0000:0000, то NDISwrapper устанавливает драйвер в /etc/ndiswrapper/mydriver/. Этот каталог содержит три файла:

  • 0000:0000.conf, содержащий информацию, извлеченную из inf-файла.
  • mydriver.inf (исходный inf-файл)
  • mydriver.sys (файл драйвера)

Графические интерфейсы

[ редактировать ]
Графический интерфейс Ndisgtk

Для NDISwrapper существуют графические интерфейсы, такие как Ndisgtk и NdisConfig, которые позволяют устанавливать NDISwrapper с использованием графического пользовательского интерфейса, а не консольных команд.

Архитектура

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

NDISwrapper позволяет Unix-подобной системе использовать драйверы Windows типа NDIS и WIFI.Это было полезно в то время, когда не было драйверов Linux Wi-Fi для обычных карт Wi-Fi.Он состоит из:

  • Драйвер NDIS, который является своего рода оверлеем для Ethernet . драйверов устройств
  • Менеджер Wi-Fi для управления радио и безопасностью карты Wi-Fi. Он предоставляет интерфейс «беспроводного расширения».
  • Менеджер USB и менеджер PnP, позволяющие использовать карты Wi-Fi, встроенные в USB-накопители. Менеджер USB состоит из двух частей: сначала крошечная реализация USBD (стек USB), а затем простой драйвер USB модели драйверов Windows (WDM), который сам состоит из двух частей: передняя часть будет принимать вызовы из стека USB NDISwrapper (в факт из вызовов, исходящих от исходного драйвера Windows, которые обычно предназначались для передачи в USB-стек Windows), а задняя часть использует USB-стек Linux.
  • Минимальный Ntoskrnl, имитирующий DDK для:
    • управление вызовами из драйвера Windows.
    • управление IRP для драйвера Windows (на данный момент только WDM)
    • упрощенное управление драйверами фильтров
    • загрузка/выгрузка драйверов Windows
  • Оболочка, преобразующая вызовы Linux в Windows и наоборот, а также управляющая результатами и кодами ошибок.

Как это работает

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

Ndiswrapper использует файлы INF Windows . [1]

Когда приложение Linux вызывает устройство, зарегистрированное в Linux как устройство NDISwrapper, NDISwrapper определяет, какой драйвер Windows является целевым. Затем он преобразует запрос Linux в язык Windows, вызывает драйвер Windows, ожидает результата и переводит его на язык Linux, а затем отправляет результат обратно в приложение Linux.Из драйвера Linux (NDISwrapper — это драйвер Linux) можно вызвать драйвер Windows, поскольку оба они выполняются в одном и том же адресном пространстве (так же, как ядро ​​Linux).Если драйвер Windows состоит из многоуровневых драйверов (например, один для Ethernet и один для USB), вызывается драйвер верхнего уровня, и этот верхний уровень будет создавать новые вызовы (IRP на языке Windows), вызывая «mini ntoskrnl». . Таким образом, «mini ntoskrnl» должен знать, что существуют другие драйверы, он должен заранее зарегистрировать их в своей внутренней базе данных, прочитав файлы Windows «.inf».

Похожие программы

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

Ограничения

[ редактировать ]
  • NDISwrapper использует устаревшие «беспроводные расширения», позволяющие приложениям получать доступ к Wi-Fi.
  • Поскольку NDISwrapper использует драйверы Windows; он поддерживает только архитектуры i386 и x86_64. [5]
  • NDISwrapper пока не поддерживает NDIS 6 (версия для Windows Vista), ограничивая драйверы Windows XP. [6] По состоянию на октябрь 2013 г. , ветка кода на сайте проекта находится в разработке с 2006 года, [7] но запрос на функцию от 2009 года остался невыполненным. [8]
Хотя для архитектуры x86 это не является серьезной проблемой из-за популярности Windows XP x86-32, многие поставщики предпочитают выпускать 64-разрядные версии драйверов только для Windows Vista. Это означает, что системы Linux, использующие архитектуру x86-64, не могут использовать такие сетевые устройства (они не могут использовать ни XP x86-32 NDIS5, поскольку они являются 64-битными системами, ни 64-битные драйверы NDIS6, поскольку они не могут использовать NDIS6). По-прежнему можно использовать 64-разрядные драйверы Windows XP, реализующие NDIS5. [9] однако для XP64 (NDIS5/64-разрядная версия) меньше доступных драйверов, чем для XP32 (NDIS5/32-разрядная версия).
  • С 2006 года большинство драйверов Windows совместимы с Windows Driver Foundation (WDF), который NDISWrapper не может использовать. Это делает NDISWrapper устаревшим, поскольку он поддерживает только предыдущую структуру драйверов WDM.

См. также

[ редактировать ]
  1. ^ «Какой дистрибутив Linux работает ИЗ КОРОБКИ с D-link usb wifi DWL-g122 rev.c1 (Rt73)??» .
  2. ^ Билл Пол (24 января 2004 г.). «Проект Зло: Зло продолжается» . freebsd-current (список рассылки). Архивировано из оригинала 2 июля 2017 года . Проверено 9 сентября 2014 г.
  3. ^ "sys/dev/netif/ndis/" . Перекрестная ссылка BSD суперпользователя . Драгонфлай БСД . 08.12.2018 . Проверено 4 марта 2019 г.
  4. ^ NetBSD-SoC: перенос сетевого драйвера NDIS FreeBSD на NetBSD
  5. ^ «Sourceforge.net: Часто задаваемые вопросы — ndiswrapper» . ndiswrapper.sourceforge.net. 20 января 2010 г. Проверено 5 августа 2011 г.
  6. ^ «SourceForge.net: Часто задаваемые вопросы по ndiswrapper» . Ndiswrapper.sourceforge.net. 20 января 2010 г. Проверено 28 июня 2024 г.
  7. ^ «SourceForge.net: ветка кода ndisv6» . Ndiswrapper.sourceforge.net. 01.11.2013 . Проверено 1 ноября 2013 г.
  8. ^ «SourceForge.net: запрос на добавление функции ndiswrapper» . Ndiswrapper.sourceforge.net. 12 апреля 2009 г. Проверено 28 июля 2013 г.
  9. ^ «Ndiswrapper/Обсуждение/Справка: Не удалось загрузить драйвер netr7364» .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a2d56db62023b710a0005b48edc8d943__1719570660
URL1:https://arc.ask3.ru/arc/aa/a2/43/a2d56db62023b710a0005b48edc8d943.html
Заголовок, (Title) документа по адресу, URL1:
NDISwrapper - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)