Eu mesmo perguntei isso e estava machucando meu cérebro por algumas horas. Ainda não encontrou nada que realmente faça sentido. Todo mundo que escreve algo em um tópico não é capaz de realmente "ensinar". Se você deseja ensinar alguém, use o idioma mais básico que uma pessoa entende, para que ele não precise se preocupar com outros tópicos ao lidar com um tópico. Então, eu cheguei a uma conclusão que parece se encaixar bem em todo esse caos.
Na linguagem de programação C, todo programa começa com a função main (). Outros idiomas podem definir outras funções onde o programa é iniciado. Mas um processador não conhece main (). Um processador conhece apenas comandos predefinidos, representados por combinações de "0" e "1".
Na programação do microprocessador, sem um sistema operacional subjacente (Microsoft Windows, Linux, MacOS, etc.), é necessário informar explicitamente ao processador por onde começar, definindo o ProgrammCounter (PC) que itera e salta (loops, chamadas de função) dentro os comandos conhecidos pelo processador. Você precisa saber o tamanho da RAM, definir a posição da pilha de programas (variáveis locais), bem como a posição da pilha (variáveis dinâmicas) e a localização das variáveis globais (por exemplo, SSA) ?) dentro da RAM. Um único processador pode executar apenas um programa por vez.
É aí que o sistema operacional entra. O próprio sistema operacional é um programa executado no processador. Um programa que permite a execução de código personalizado. Executa vários programas por vez, alternando entre os códigos de execução dos programas (que são carregados na RAM). Mas o sistema operacional É UM PROGRAMA, cada programa é escrito de maneira diferente. Simplesmente colocar o código do seu programa personalizado na RAM não o executará, o sistema operacional não o saberá. Você precisa chamar funções no sistema operacional que registra seu programa, informar ao sistema operacional quanta memória o programa precisa, onde está localizado o ponto de entrada no programa (a função main () no caso de C). E é isso que eu localizo na RuntimeLibrary e explica por que você precisa de uma biblioteca especial para cada sistema operacional,
Isso também explica por que NÃO está vinculado dinamicamente em tempo de execução como arquivos .dll, mesmo que seja chamado RUNTIMELibrary. A RuntimeLibrary precisa estar vinculada estaticamente, porque é necessária na inicialização do seu programa. A RuntimeLibrary injeta / conecta seu programa personalizado em / para outro programa (o sistema operacional) em RUNTIME. Isso realmente causa alguns problemas cerebrais ...
Conclusão: RUNTIMELibrary é uma falha na nomeação. Pode ser que não tenha existido .dll (vinculação em tempo de execução) nos primeiros tempos e a questão de entender a diferença simplesmente não existia. Mas mesmo que isso seja verdade, o nome é mal escolhido.
Os nomes melhores para a RuntimeLibrary podem ser: StartupLibrary / OSEntryLibrary / SystemConnectLibrary / OSConnectLibrary
espero que eu tenha acertado, para aplausos de correção / expansão.