Вопрос

Как сообщество открытого/свободного программного обеспечения разрабатывать драйверы для продуктов, не имеющих документации?

Это было полезно?

Решение

Как вы что-то реконструируете?

  • Вы наблюдаете за вводом и выводом и разрабатываете набор правил или моделей, описывающих работу объекта.

Пример:

Допустим, вы хотите разработать драйвер USB-камеры.«Черный ящик» — это программный драйвер.

  1. Разработайте привязки к ОС и/или драйверу, чтобы вы могли видеть входные и выходные данные драйвера.
  2. Сгенерируйте типичные входные данные и запишите выходные данные.
  3. Проанализируйте выходные данные и синтезируйте модель, описывающую взаимосвязь между входными и выходными данными.
  4. Протестируйте модель — поставьте ее вместо драйвера черного ящика и запустите тесты.
  5. Если он делает все, что вам нужно, все готово, если нет, промойте и повторите.

Обратите внимание, что это всего лишь обычный научный процесс/решение проблем.Например, синоптики делают то же самое — они наблюдают за погодой, сравнивают текущие условия с моделью, которая предсказывает, что произойдет в ближайшие несколько дней, а затем сравнивают результаты модели с реальностью.Если оно не совпадает, они возвращаются и корректируют модель.

Этот метод немного безопаснее (юридически), чем реверс-инжиниринг в «чистой комнате», когда кто-то фактически декомпилирует код или дизассемблирует продукт, тщательно его анализирует и создает модель на основе увиденного.Тогда модель (И НИЧЕГО БОЛЬШЕ) передается разработчикам, тиражирующим функциональность продукта.Однако инженер, который разобрал оригинал, не может участвовать, поскольку он может принести части кода/проекта, защищенные авторским правом, и случайно поместить их в новый код.

Однако, если вы никогда не дизассемблируете и не декомпилируете продукт, вы должны оказаться в юридически безопасной зоне — единственной оставшейся проблемой являются патенты.

-Адам

Другие советы

Это довольно расплывчатый вопрос, но я бы сказал обратный инжиниринг.То, как они это сделают, зависит от того, что это за устройство и что для него доступно.Во многих случаях устройство может иметь набор микросхем, аналогичный другому устройству, который можно модифицировать для работы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top