そのため、あまり機能しない最小限のOSを使用しています。基本的な C カーネルを 32 ビット プロテクト モードでロードするブートローダーがあります。次のようなものを使用できるように、C ライブラリを移植するにはどうすればよいprintf
ですか? GNU C Library の使用を検討しています。どこかにチュートリアルはありますか?
2888 次
4 に答える
7
わかりました。C ライブラリへの移植はそれほど難しくありません。カーネルで Newlib を使用しています。開始するチュートリアルは次のとおりです: http://wiki.osdev.org/Porting_Newlib。
基本的に次のことを行う必要があります。
- クロス コンパイラを使用してライブラリ (Newlib など) をコンパイルします。
- カーネル内のシステム関数 (fork、fstat など) のリストのスタブ実装を提供します。
- ライブラリとカーネルをリンクする
malloc や printf (内部で malloc を使用する) などの関数を使用する場合は、ある種のメモリ管理と、sbrk の最も単純な実装が必要です。
于 2013-03-22T20:05:52.480 に答える
2
ブロックのもう 1 つの新しい子供は、組み込みスペースの状況を改善することを特に目的としたmuslです。
ただし、まだかなりの作業が進行中であるため、初心者にとってはおそらく最良の選択ではありません。
于 2013-03-25T12:21:13.953 に答える
1
uClibcのような小さな libc を探してください。GNU C ライブラリは巨大です。コメントが示すように、最初のステップは C コンパイラを動かすことです。
あなたは何をしようとしているのですか?完全なオペレーティング システムを構築することは、数年続く人々のグループの仕事です...既に機能しているものから始めて、最も興味のある部分をハッキングする方がよいでしょう。
于 2013-03-22T19:47:16.933 に答える