L'ho chiesto a me stesso e mi sono fatto male al cervello per alcune ore. Non ho ancora trovato nulla che abbia davvero senso. Chiunque scriva qualcosa su un argomento non è in grado di "insegnare". Se vuoi insegnare a qualcuno, prendi la lingua più elementare che una persona capisce, quindi non ha bisogno di occuparsi di altri argomenti durante la gestione di un argomento. Quindi sono giunto a una conclusione per me stesso che sembra adattarsi bene a tutto questo caos.
Nel linguaggio di programmazione C, ogni programma inizia con la main()
funzione. Altre lingue potrebbero definire altre funzioni da cui parte il programma. Ma un processore non conosce il main()
. Un processore conosce solo comandi predefiniti, rappresentati da combinazioni di 0
e 1
.
Nella programmazione a microprocessore, non avendo un sistema operativo sottostante (Microsoft Windows, Linux, MacOS, ..), è necessario indicare esplicitamente al processore da dove iniziare impostando il ProgramCounter
(PC) che itera e salta (loop, chiamate di funzione) all'interno del comandi noti al processore. Devi sapere quanto è grande la RAM, devi impostare la posizione dello stack del programma (variabili locali), nonché la posizione dell'heap (variabili dinamiche) e la posizione delle variabili globali (immagino che si chiamasse SSA ?) all'interno della RAM. Un singolo processore può eseguire un solo programma alla volta.
È qui che entra in gioco il sistema operativo. Il sistema operativo stesso è un programma che viene eseguito sul processore. Un programma che consente l'esecuzione di codice personalizzato. Esegue più programmi alla volta alternando i codici di esecuzione dei programmi (che vengono caricati nella RAM). Ma il sistema operativo È UN PROGRAMMA, ogni programma è scritto in modo diverso. Semplicemente inserendo il codice del tuo programma personalizzato nella RAM non lo eseguirai, il sistema operativo non lo conosce. Devi chiamare le funzioni sul sistema operativo che registra il tuo programma, dire al sistema operativo quanta memoria ha bisogno il programma, dove si trova il punto di ingresso nel programma (ilmain()
funzione in caso di C). E questo è ciò che suppongo si trovi all'interno della libreria di runtime e spiega perché è necessaria una libreria speciale per ciascun sistema operativo, perché questi sono solo programmi stessi e hanno funzioni diverse per fare queste cose.
Questo spiega anche perché NON è collegato dinamicamente in fase di esecuzione come lo .dll
sono i file, anche se si chiama RUNTIME Library. La libreria di runtime deve essere collegata staticamente, poiché è necessaria all'avvio del programma. La libreria di runtime inietta / collega il programma personalizzato in / a un altro programma (il sistema operativo) in RUNTIME. Questo provoca davvero un po 'di cervello ...
Conclusione: la libreria RUNTIME ha esito negativo nella denominazione. Potrebbe non esserci stato un .dll
(collegamento in fase di esecuzione) nei primi tempi e la questione della comprensione della differenza semplicemente non esisteva. Ma anche se questo è vero, il nome è scelto male.
I nomi migliori per la libreria di runtime potrebbero essere: StartupLibrary / OSEntryLibrary / SystemConnectLibrary / OSConnectLibrary
Spero di aver capito bene, per correzione / espansione. Saluti.