Ciao,
il cervello di un sistema informatico è costuito dal microprocessore.
Esso può eseguire delle operazioni semplici per cui è stato progettato, ad esempio "somma 2 valori", "moltiplica due valori", "Copia il dato A da qui a lì", ecc.
Per ogni tipo di operazione è prevista una apposita istruzione.
Quando si desidera che il PC faccia una cosa, occorre dire al microprocessore (CPU) quali operazioni deve svolgere, o meglio qual è la sequenza di operazioni semplici che deve eseguire.
Una sequenza abbastanza lunga di operazioni semplici consente al PC di svolgere attività complesse.
Tali sequenze di istruzioni sono chiamate programmi, e sono scritte da programmatori ;)
Tutto ciò che è programma è definito software, ed è diciamo "non palpabile" materialmente, tu vedi gli effetti di un software (programma), ma non lo puoi maneggiare come una cosa materiale.
Hardware invece è tutto ciò che tu puoi toccare, per intenderci è hardware la CPU, la motherboard, un pulsante, una scheda video, ecc.
Per far svolgere ad un dispositivo hardware le proprie attività viene utilizzato un apposito software scritto per esso, questo software è detto "driver" (pilota).
Serve appunto per pilotare quel particolare hardware.
Quindi un hardware privo del proprio driver non serve a nulla è solo un pezzo di ferro.
L'hardware però non comprende direttamente le istruzioni ma può "percepire" con appositi dispositivi elettrici lo stato della tensione elettrica.
Per semplificare molto possiamo dire che l'hardware può rilevare essenzialmente 2 stati di tensione elettrica uno più basso ed uno più alto.
A questo punto associamo a ZERO la tensione più bassa e ad UNO quella più alta.
Le istruzioni di cui si parlava all'inizio per sommare, moltiplicare ecc. sono codificate con sequenze di ZERI e di UNO (codice binario), per cui la CPU ha la capacità di leggere le istruzioni software e di far variare la tensione, nonchè di indirizzare all'hardware destinatario la sequenza zeri-uni sotto forma di tensione.
Distinguere se un fenomeno avviene perchè c'è un programma dietro non è sempre facile.
Ad esempio possiamo vedere una lampadina che si accende.
Ciò può avvenire perchè premendo il pulsante sul muro, questo opera meccanicamente "unendo due fili"
e consente alla corrente elettrica di giungere fino alla lampadina, premendo nuovamente il pulsante si scollegano i due fili e la lampadina si spegne (si ha in questo caso un mero sistema elettromeccanico).
La lampadina però se collegata ad un apposito hardware, pilotato a sua volta da un apposito software (driver), si potrebbe accendere perchè al verificarsi di certe condizioni, il software in esecuzione nella CPU prevede di attivare la seri di istruzioni il cui fine è di accendere la lampadina.
In pratica se c'è un programma che opera ci deve essere una CPU che esegua e capisca il programma, un programma senza cpu non può essere eseguito e non ha motivo di esistere.
Quindi basterebbe capire se un fenomeno è conseguente all'attività di una CPU che ha eseguito un programma.