Al livello di base, il codice di testo semplice alla fine si traduce in 0 e 1. Questi 0 e 1 rappresentano livelli di bassa e alta tensione. A questo punto, i livelli di tensione controllano i vari circuiti.
Pensa a una ventola alimentata a batteria. La corrente fornita dalla batteria alimenta un motore elettrico che, all'interno, utilizza l'elettricità per creare un campo magnetico che fa ruotare un albero, che fa ruotare le pale della ventola. Questo è un esempio di come la tensione può diventare fisica.
Si potrebbe creare un "interruttore" che, data la tensione corretta, alla fine otterrà l'alimentazione per interrompere il prelievo di corrente dal muro.
Ovviamente è molto più complicato di così, ma questo è il senso.
Per semplificare le cose, i computer sono composti da strati di astrazione.
Al livello più basso sono le tensioni, i circuiti, i transistor e il silicio. Lo strato successivo sopra l'hardware è il sistema operativo. Piuttosto che riscrivere il codice per ogni tipo di accesso hardware più e più volte, il sistema operativo gestisce l'hardware e fornisce "ganci" per utilizzarlo. Questi hook o "interfacce" consentono al tuo codice di avere un metodo comune per accedere a hardware eterogeneo. Quindi, utilizzando le interfacce fornite dal sistema operativo, puoi scrivere la tua applicazione.
In ciascuno di questi livelli, ci sono sottostrati, ad esempio l'hardware potrebbe avere il firmware - una sorta di set di istruzioni di basso livello che stabilisce come deve essere eseguito l'hardware, memorizzato in EEPROM e caricato quando l'unità è alimentata su. Un altro sottolivello è il modo in cui un linguaggio di livello superiore come python fornisce una libreria per scrivere software di rete senza dover programmare direttamente l'API del socket raw fornita dal sistema operativo.
Il sistema operativo gestisce la maggior parte dell'interazione hardware/software. I produttori di hardware scrivono "plug-in/moduli/driver" che consentono al sistema operativo di controllare il proprio hardware specifico.
Così si dovrebbe scrivere un'applicazione software che si avvale di queste interfacce fornite dall'OS all'hardware. Ad esempio, se si desidera spegnere il computer, Windows fornisce un'interfaccia per arrestare il computer. Il tuo software chiamerebbe questa interfaccia, e su compilazione/interpretazione, trasformato in codice che chiamerà un'interfaccia per il sistema operativo. Questa interfaccia, a sua volta, eseguirà una ben nota serie di istruzioni per istruire il computer a spegnersi. Queste istruzioni sono 0 e 1, basso e alto volt, che accedono a una parte specifica del computer progettata per gestire powerup/shutdown/standby e, dato il segnale giusto, faranno proprio questo.
curiosamente, sia l'interfaccia hardware fisica che l'interazione delle sfere nel tuo esempio sono basate su forze elettromagnetiche. –
Bella domanda .. –
Come ha detto Pavel, considera che tutta la materia è composta principalmente di spazio vuoto! – Alan