Dove sono stati raccolti i dati necessari per eseguire un programma software?

Affinché un programma possa essere eseguito su un moderno sistema operativo come Windows, Linux, Android, OSX e iOS per citarne alcuni, il sistema operativo prima alloca un processo con un singolo thread di esecuzione (che richiede solo una singola CPU per funzionare) . Quindi il sistema operativo di solito legge da un “disco rigido” che è un vecchio termine per il dispositivo di archiviazione persistente. Il file letto viene chiamato eseguibile, ma sono dati IS. Puoi aprire un file eseguibile in un editor di testo, ma tutto ciò che vedrai sarà gobbledygook. Se si utilizza il programma hex-viewer, è possibile visualizzare i valori dei byte nel file.

I contenuti di un file eseguibile sono istruzioni macchina che la CPU carica nei suoi registri. Diciamo che abbiamo compilato un programma che possiamo eseguire dalla riga di comando, ma è davvero noioso; tutto ciò che fa è stampare le parole Hello World! E poi esce. Questo programma non necessita di dati aggiuntivi da Internet, dall’utente o da alcun file. Se apri questo programma nel tuo hex-viewer, potresti aspettarti che sia molto breve. Non è così breve come si potrebbe pensare, e anche allora non si vede tutto il codice che viene caricato nel processo di quei programmi prima che possa essere eseguito correttamente. Ogni sistema operativo ha un modo leggermente diverso di stampare il testo sullo schermo. Invece di copiare tutto quel codice nel tuo programma, il tuo programma è stato compilato con riferimenti a blocchi di codice che il sistema operativo ha sempre a portata di mano (molti programmi hanno bisogno di quel codice!) E questo riduce le dimensioni del tuo file. Sfortunatamente, poiché ogni sistema operativo ha un modo leggermente diverso di fare le cose, non è possibile eseguire un programma compilato per un sistema operativo su un altro sistema operativo.

Quindi, per riassumere: un file eseguibile sono dati, ma non sono tutti i dati necessari. Il sistema operativo fornisce anche alcuni dati eseguibili per l’esecuzione del programma.

Dalla mente del programmatore, dai dati raccolti dall’azienda (ad esempio i dati sulle vendite), dalle fonti di notizie, da Internet, da … beh, dipende da quali dati. (I dati non “eseguono un programma software”, un programma utilizza i dati.)