ndiswrapper командная строка | |
Разработчик (и) | Ян Кишка, Гиридхар Пеммасани, Понтус Фукс |
---|---|
Стабильная версия | 1.62 / 11 февраля 2019 г.; 20 месяцев назад (11.02.2019) |
Операционная система | Linux только на IA-32 и x86-64 архитектурах |
Тип | Оболочка драйвера |
Лицензия | GNU GPL |
Веб-сайт | Вики-сайт NDISwrapper, Область загрузки NDISwrapper |
NDISwrapper - это бесплатное программное обеспечение оболочка драйвера, которая позволяет использовать драйверы Windows XP сетевых устройств (для таких устройств, как карты PCI, USB-модемы и маршрутизаторы ) в операционных системах Linux. NDISwrapper реализует Windows kernel и 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 и vendorid: productid 0000: 0000, то NDISwrapper устанавливает драйвер в / etc / ndiswrapper / mydriver /. Этот каталог содержит три файла:
Существуют графические интерфейсы для NDISwrapper, такие как Ndisgtk и NdisConfig, которые позволяют устанавливать NDISwrapper с помощью графического интерфейса пользователя, а не консольных команд.
NDISwrapper позволяет Unix-подобной системе использовать драйверы Windows типа NDIS и WIFI. Это было полезно в то время, когда не было драйверов Linux Wi-Fi для обычных карт Wi-Fi. Он состоит из:
Ndiswrapper использует файлы Windows INF.
Когда приложение Linux вызывает устройство, которое зарегистрировано в Linux как устройство NDISwrapper, NDISwrapper определяет, какой драйвер Windows нацелен. Затем он преобразует запрос Linux в язык Windows, он вызывает драйвер Windows, ожидает результата и переводит его на язык Linux, а затем отправляет результат обратно в приложение Linux. Из драйвера Linux (NDISwrapper - это драйвер Linux) можно вызвать драйвер Windows, потому что они оба выполняются в одном адресном пространстве (таком же, как ядро Linux). Если драйвер Windows состоит из многоуровневых драйверов (например, один для Ethernet выше другого для USB), то вызывается драйвер верхнего уровня, и этот верхний уровень будет создавать новые вызовы (IRP на языке Windows), вызывая "mini ntoskrnl". Таким образом, «mini ntoskrnl» должен знать, что существуют другие драйверы, он должен предварительно зарегистрировать их в своей внутренней базе данных, прочитав файлы «.inf» Windows.