2

そのため、あまり機能しない最小限のOSを使用しています。基本的な C カーネルを 32 ビット プロテクト モードでロードするブートローダーがあります。次のようなものを使用できるように、C ライブラリを移植するにはどうすればよいprintfですか? GNU C Library の使用を検討しています。どこかにチュートリアルはありますか?

4

4 に答える 4

7

わかりました。C ライブラリへの移植はそれほど難しくありません。カーネルで Newlib を使用しています。開始するチュートリアルは次のとおりです: http://wiki.osdev.org/Porting_Newlib

基本的に次のことを行う必要があります。

  • クロス コンパイラを使用してライブラリ (Newlib など) をコンパイルします。
  • カーネル内のシステム関数 (fork、fstat など) のリストのスタブ実装を提供します。
  • ライブラリとカーネルをリンクする

malloc や printf (内部で malloc を使用する) などの関数を使用する場合は、ある種のメモリ管理と、sbrk の最も単純な実装が必要です。

于 2013-03-22T20:05:52.480 に答える
5

glibc を強くお勧めします。それは獣です。

代わりにnewlibを試してください。新しいカーネルへの移植は簡単です。here で説明されているように、いくつかのサポート関数を記述するだけで済みます。

于 2013-03-22T20:07:04.090 に答える
2

ブロックのもう 1 つの新しい子供は、組み込みスペースの状況を改善することを特に目的としたmuslです。

ただし、まだかなりの作業が進行中であるため、初心者にとってはおそらく最良の選択ではありません。

于 2013-03-25T12:21:13.953 に答える
1

uClibcのような小さな libc を探してください。GNU C ライブラリは巨大です。コメントが示すように、最初のステップは C コンパイラを動かすことです。

あなたは何をしようとしているのですか?完全なオペレーティング システムを構築することは、数年続く人々のグループの仕事です...既に機能しているものから始めて、最も興味のある部分をハッキングする方がよいでしょう。

于 2013-03-22T19:47:16.933 に答える