8

システムに ARM Cortex-R4 を使用しています。メモリ管理ユニットの代わりにメモリ保護ユニットがあります。事実上、これはメモリ保護専用のハードウェアがあることを意味しますが、物理アドレスと仮想アドレスの間には 1 対 1 のマッピングがあります。MMU が無効になっている標準の Linux カーネルと uCLinux のどちらの Linux を使用するかについて、少し混乱しています。

ARM の評価ボードで、MMU を無効にしてコンパイルされた標準カーネルを実行しました。ARMの公式Webサイトで入手できるcramfsファイルシステムを使用しました。カーネルが起動した後、私はシェルにいますが、ほとんどの場合、シェルが応答を停止することがわかったため、多くの実験を行うことができませんでした (特に、オートコンプリートのために「タブ」を押したとき)。

そのため、正しいファイルシステムを使用した場合に MMU を使用しないカーネルがスムーズに動作するかどうかはまだわかりません。また、VM を使用しない Linux にはどのディストリビューション (buildroot?) を使用すればよいですか?

どんなアイデアや提案も大歓迎です。

4

3 に答える 3

7

この質問をしてから2年以上経ちました。今こそ、自分で見つけたものを書くべき時です。

ucLinux は、MMU を使用しないシステム用のカーネルを開発することを目的として、ずっと前に Linux カーネルからフォークされたプロジェクトでした。しかし、しばらくして、親の Linux ブランチにマージされました。そのため、現在、アクティブな ucLinux ディストリビューションは存在しません。

したがって、メインライン カーネル構成から MMU を無効にすると、MMU のないバージョンが得られます。実際、カーネル自体に構成オプションが提供され、ユーザーがメモリ レイアウトとアクセス許可を指定できるようになりました。

乾杯!

于 2014-06-09T10:06:02.810 に答える
2

uClinux は、MMU を「オフ」にして Linux カーネルを使用し、その上にいくつかのアプリケーションとライブラリを追加する Linux ディストリビューションです。どちらか一方を選択する必要はありません。

シェルが実行されているところまで来たら、ボード上で Linux sans MMU をブートすることはできましたが、バグに遭遇しました。

于 2012-08-05T10:45:28.827 に答える