最小限のカーネルを作成する方法について、このチュートリアルを行っていました。私はこれを間に読んだ:
ランタイム ライブラリ
OS 用のコードを作成する際の主要な部分は、libc とも呼ばれるランタイム ライブラリを書き直すことです。これは、RTL がコンパイラ パッケージの中で最も OS に依存する部分であるためです。C RTL は移植可能なプログラムを作成するのに十分な機能を提供しますが、RTL の内部動作は使用中の OS に依存します。実際、コンパイラ ベンダーは、同じ OS に対して異なる RTL を使用することがよくあります。Microsoft Visual C++ は、デバッグ/マルチスレッド/DLL のさまざまな組み合わせに対して異なるライブラリを提供し、古い MS-DOS コンパイラは、最大 6 つの異なるランタイム ライブラリを提供していました。メモリーモデル。
私はこの部分にちょっと混乱しています。カーネルを C コードで記述し、アドバイスに反して組み込みの printf() 関数を使用して何かを出力するとします。最後に、私のコードはマシンコードに変換されます。実行されると、プロセッサはそれを直接実行します。なぜ著者は言うのですか:
RTL の内部動作は、使用中の OS に依存していますか?