Question

Comment le communauté du logiciel open source/libre développer des pilotes pour des produits qui n'offrent aucune documentation ?

Était-ce utile?

La solution

Comment procéder à l'ingénierie inverse de quelque chose ?

  • Vous observez les entrées et les sorties et développez un ensemble de règles ou de modèles qui décrivent le fonctionnement de l'objet.

Exemple:

Disons que vous souhaitez développer un pilote de caméra USB.La « boîte noire » est le pilote du logiciel.

  1. Développez des hooks dans le système d’exploitation et/ou le pilote afin que vous puissiez voir les entrées et sorties du pilote
  2. Générez des entrées typiques et enregistrez les sorties
  3. Analyser les sorties et synthétiser un modèle qui décrit la relation entre l'entrée et la sortie
  4. Testez le modèle - mettez-le à la place du pilote boîte noire et exécutez vos tests
  5. S'il fait tout ce dont vous avez besoin, vous avez terminé, sinon rincez et répétez

Notez qu’il ne s’agit que d’un processus scientifique/de résolution de problèmes régulier.Par exemple, les prévisionnistes font la même chose : ils observent la météo, testent les conditions actuelles par rapport au modèle, qui prédit ce qui va se passer au cours des prochains jours, puis comparent les résultats du modèle à la réalité.Quand cela ne correspond pas, ils reviennent et ajustent le modèle.

Cette méthode est légèrement plus sûre (légalement) que l'ingénierie inverse en salle blanche, où quelqu'un décompile le code ou désassemble le produit, l'analyse minutieusement et crée un modèle basé sur ce qu'il a vu.Ensuite le modèle (ET RIEN D'AUTRE) est transmis aux développeurs qui répliquent les fonctionnalités du produit.Cependant, l'ingénieur qui a démonté l'original ne peut pas participer car il pourrait apporter des parties protégées par le droit d'auteur du code/conception et les insérer par inadvertance dans le nouveau code.

Si vous ne démontez ou ne décompilez jamais le produit, vous devriez être dans des eaux juridiquement sûres - le seul problème qui reste est celui des brevets.

-Adam

Autres conseils

C'est une question assez vague, mais je dirais ingénierie inverse.La manière dont ils procèdent dépend du type d’appareil dont il s’agit et de ce qui est disponible pour celui-ci.Dans de nombreux cas, l'appareil peut avoir un chipset principal similaire à celui d'un autre appareil qui peut être modifié pour fonctionner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top