灰皿が作成された理由を誰かが説明できますか?灰皿には特別な力はありますか?
私は現在mm/ashmem.c
からブラウジング中です。私が知る限りでは、カーネルはファイルベースのメモリであるashmemをmmapすることができると考えています。しかし、なぜ、灰皿を実装するのに苦労するのですか?同じ機能がRAM fsをマウントし、filemap/mmapを使ってメモリを共有することで実現できるようです。
私は、ashmemがコードを見てから、ピンイン/ピン止めのページと関連があるようだと確信しています。
しかし、ashmemはファイル記述子を介して共有する必要があります。バッキングファイルを作成し、各プロセスがそれを共有することを許可すると、同じ目標を達成できますか?私はこれがshmemよりも優れている方法を見ていますが、バッキングファイルを持つよりもどのように優れていますか? –
あなたが本当に望んでいるときにファイルを作成するのは、共有のメモリであるということは、まばらな、ハッキーなルートのようなものだからです。 (ファイルディスクリプタを使用することは、まだハッキリですが、そこにファイルを置くよりもハッキリしません。ファイルディスクリプタはすでにソケットやデバイスなど、さまざまな種類のリソースに一般化されています)。 – Kaz
キャッシュを固定し、カーネルバッファーと同様に、メモリーが必要なときに消えるアプリケーションのメモリー。 APIを使用すると、メモリが消去されたかどうかを知ることができます(まだキャッシュがあるかどうか)。 – Kaz