Domanda

Come funziona il comunità di software open source/libero sviluppare driver per prodotti che non offrono documentazione?

È stato utile?

Soluzione

Come si decodifica qualcosa?

  • Osservi l'input e l'output e sviluppi una serie di regole o modelli che descrivono il funzionamento dell'oggetto.

Esempio:

Supponiamo che tu voglia sviluppare un driver per fotocamera USB.La "scatola nera" è il driver del software.

  1. Sviluppare hook nel sistema operativo e/o nel driver in modo da poter vedere gli input e gli output del driver
  2. Genera input tipici e registra gli output
  3. Analizzare gli output e sintetizzare un modello che descriva la relazione tra input e output
  4. Testa il modello: mettilo al posto del driver della scatola nera ed esegui i test
  5. Se fa tutto ciò di cui hai bisogno, il gioco è fatto, altrimenti risciacqua e ripeti

Tieni presente che questo è solo un normale processo scientifico/di risoluzione dei problemi.Ad esempio, i meteorologi fanno la stessa cosa: osservano il tempo, testano le condizioni attuali rispetto al modello, che prevede cosa accadrà nei prossimi giorni, e poi confrontano i risultati del modello con la realtà.Quando non corrisponde, tornano indietro e aggiustano il modello.

Questo metodo è leggermente più sicuro (dal punto di vista legale) rispetto al reverse engineering in camera bianca, in cui qualcuno decompila effettivamente il codice o disassembla il prodotto, lo analizza a fondo e crea un modello basato su ciò che ha visto.Quindi il modello (E NIENT'ALTRO) viene passato agli sviluppatori replicando la funzionalità del prodotto.L'ingegnere che ha smontato l'originale, tuttavia, non può partecipare perché potrebbe portare parti del codice/progetto protette da copyright e inserirle inavvertitamente nel nuovo codice.

Se non disassembli o decompili mai il prodotto, però, dovresti trovarti in acque legalmente sicure: l'unico problema rimasto è quello dei brevetti.

-Adamo

Altri suggerimenti

Questa è una domanda piuttosto vaga, ma direi ingegneria inversa.Il modo in cui lo fanno dipende dal tipo di dispositivo e da cosa è disponibile per esso.In molti casi il dispositivo può avere un chipset core simile a quello di un altro dispositivo che può essere modificato per funzionare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top