私はこれを自分で尋ねただけで、数時間脳を痛めていました。それでも、本当に意味のあることは何も見つかりませんでした。トピックに何かを書く人は皆、実際に「教える」ことはできません。誰かに教える場合は、その人が理解できる最も基本的な言語を使用するので、トピックを処理するときに他のトピックを気にする必要はありません。だから私は、このすべての混乱にうまく適合しているように思える自分のための結論に達しました。
プログラミング言語Cでは、すべてのプログラムはmain()関数で始まります。他の言語は、プログラムが開始する他の関数を定義する場合があります。しかし、プロセッサーはmain()を知りません。プロセッサは、「0」と「1」の組み合わせで表される事前定義されたコマンドのみを認識します。
基盤となるオペレーティングシステム(Microsoft Windows、Linux、MacOSなど)を持たないマイクロプロセッサプログラミングでは、内部で反復およびジャンプ(ループ、関数呼び出し)するProgrammCounter(PC)を設定して、どこから開始するかを明示的にプロセッサに指示する必要があります。プロセッサが認識しているコマンド。RAMの大きさ、プログラムスタック(ローカル変数)の位置、およびヒープ(動的変数)の位置とグローバル変数の位置(SSAと呼ばれていたと思われます)を設定する必要があります。 ?)RAM内。単一のプロセッサは、一度に1つのプログラムしか実行できません。
それがオペレーティングシステムの出番です。オペレーティングシステム自体は、プロセッサ上で実行されるプログラムです。カスタムコードの実行を可能にするプログラム。プログラムの実行コード(RAMにロードされている)を切り替えることにより、一度に複数のプログラムを実行します。しかし、オペレーティングシステムはプログラムであり、各プログラムは異なる方法で記述されています。カスタムプログラムのコードをRAMに置くだけでは実行されず、オペレーティングシステムはそれを認識しません。プログラムを登録するオペレーティングシステムの関数を呼び出し、プログラムに必要なメモリ量をオペレーティングシステムに知らせ、プログラムへのエントリポイントを配置する必要があります(Cの場合はmain()関数)。そしてこれは、RuntimeLibrary内にあると私が思うものであり、各オペレーティングシステムに特別なライブラリが必要な理由を説明しています。
これは、RUNTIMELibraryと呼ばれていても、.dllファイルのように実行時に動的にリンクされない理由も説明しています。RuntimeLibraryは静的にリンクする必要があります。プログラムの起動時に必要になるためです。RuntimeLibraryは、RUNTIMEにカスタムプログラムを別のプログラム(オペレーティングシステム)に挿入/接続します。これは本当に脳の一部を引き起こします...
結論:RUNTIMELibraryは命名に失敗しました。初期には.dll(実行時のリンク)がなく、違いを理解するという問題は単に存在しなかった可能性があります。しかし、これが本当であっても、その名前はひどく選ばれています。
RuntimeLibraryのより適切な名前は、StartupLibrary / OSEntryLibrary / SystemConnectLibrary / OSConnectLibraryです。
修正/拡張の応援のために、私が正しく理解できたことを願っています。