Я просто спросил это сам и несколько часов болел своим мозгом. Тем не менее не нашел ничего, что действительно могло бы сказать. Каждый, кто пишет что-то в теме, не может «научить». Если вы хотите научить кого-то, возьмите самый простой язык, который понимает человек, поэтому ему не нужно заботиться о других темах при работе с темой. Поэтому я сам пришел к выводу, что, похоже, хорошо подходит во всем этом хаосе.
На языке программирования C каждая программа начинается с функции main(). Другие языки могут определять другие функции, в которых запускается программа. Но процессор не знает main(). Процессор знает только предопределенные команды, представленные комбинациями «0» и «1».
В микропроцессорном программировании, не имеющем базовой операционной системы (Microsoft Windows, Linux, MacOS, ..), вам необходимо явно указать процессору, с чего начать, установив ProgrammCounter (ПК), который выполняет итерации и прыжки (петли, вызовы функций) в командах, известных процессору. Вам нужно знать, насколько велика оперативная память, вам нужно установить положение стека программ (локальные переменные), а также положение кучи (динамические переменные) и расположение глобальных переменных (i gues она называлась SSA ?) в ОЗУ. Один процессор может выполнять только одну программу за раз.
То, в которое входит операционная система. Сама операционная система - это программа, которая работает на процессоре. Программа, которая позволяет выполнять пользовательский код. Запускает сразу несколько программ за счет переключения между исполняемыми кодами программ (которые загружаются в ОЗУ). Но операционная система IS A PROGRAM, каждая программа написана по-разному. Простое размещение кода вашей пользовательской программы в ОЗУ не будет работать, операционная система этого не знает. Вам необходимо вызвать функции в операционной системе, которая регистрирует вашу программу, сообщить операционной системе, сколько памяти требуется программе, где расположена точка входа в программу (функция main() в случае C). И это то, что я нахожу в RuntimeLibrary, и объясняет, почему вам нужна специальная библиотека для каждой операционной системы, потому что это просто программы сами и имеют разные функции для этого.
Это также объясняет, почему это НЕ динамически связано во время выполнения, поскольку файлы .dll, даже если они называются RUNTIMELibrary.RuntimeLibrary необходимо связать статически, потому что это необходимо при запуске вашей программы. RuntimeLibrary вводит/подключает вашу пользовательскую программу в/в другую программу (операционную систему) в RUNTIME. Это реально вызывает некоторый мозг ...
Вывод: RUNTIMELibrary - это провал в именовании. Возможно, в ранние времена не было .dll (привязка во время выполнения), и проблема понимания разницы просто не существовала. Но даже если это так, имя плохо выбрано.
Лучшие имена для может быть библиотека времени исполнения: StartupLibrary/OSEntryLibrary/SystemConnectLibrary/OSConnectLibrary
надежды я получил это право, вверх для коррекции/расширения приветствий.
Вы не сказали, что такое «C runtime library»! – onmyway133
@entropy: Конечно, выглядит так, как я, но короткий ответ заключается в том, что это набор функций, многие из которых (но не обязательно все) указаны в части 7 стандарта C. –
Этот ответ подразумевает, что библиотеки C являются частью программных цепочек компилятора. Не точный. – jiggunjer