検索

Linuxのpfnとは何ですか

Mar 24, 2022 am 11:57 AM
linux

Linux では、pfn の正式名称は「ページ フレーム番号」で、これは物理メモリ領域の番号です。 「ページフレーム」とは物理メモリのことで、物理メモリをページサイズの領域に分割し、各ページに番号を付けたもので、この番号がPFNです。

Linuxのpfnとは何ですか

#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。

1. ページフレームとは何ですか?

オペレーティング システムの最も重要な機能の 1 つは、コンピュータ システム内のさまざまなリソースを管理することであり、最も重要なリソースであるメモリは、管理する必要があります。 Linux オペレーティング システムでは、物理メモリはページ サイズに従って管理されます。特定のページ サイズは、ハードウェアおよび Linux システム構成に関連します。4K が最も古典的な設定です。そこで、物理メモリをページサイズごとにページに分割し、各物理メモリ内のページサイズのメモリ領域をページフレームと呼びます。各物理ページ フレームの構造体ページ データ構造を確立して、各物理ページの使用状況を追跡します。カーネルのテキスト セグメントに使用されているか?それともプロセスのページテーブルでしょうか?さまざまなファイル キャッシュに使用されていますか、それともフリーの状態ですか...

各ページ フレームには、1 対 1 で対応するページ データ構造があります。システムは、ページで使用する page_to_pfn および pfn_to_page マクロを定義します。フレーム番号とページ データ構造間の変換の具体的な変換方法はメモリモデルに関係しますが、Linux カーネルの 3 つのメモリモデルについては第 3 章で詳しく説明します。

2. PFN とは何ですか?

コンピュータ システムの場合、その物理アドレス空間全体は、0 から始まり実際のシステムがサポートできる最大物理空間までのアドレス空間である必要があります。 ARM システムでは、物理アドレスが 32 ビットであると仮定すると、物理アドレス空間は 4G となり、ARM64 システムでは、サポートされる物理アドレス ビット数が 48 である場合、物理アドレス空間は 256T になります。もちろん、実際には、このような大きな物理アドレス空間のすべてがメモリに使用されるわけではなく、一部は I/O 空間にも属します (もちろん、一部の CPU アーチには独自の独立した IO アドレス空間があります)。したがって、メモリが占​​有する物理アドレス空間は限られた範囲になるはずであり、物理アドレス空間全体をカバーすることは不可能である。しかし、メモリがますます大容量化している現在、32 ビット システムの場合、4G 物理アドレス空間ではメモリ要件を満たすことができなくなっているため、後で詳しく説明するハイ メモリという概念があります。

PFN はページ フレーム番号の略で、物理メモリのいわゆるページ フレームです。物理メモリをページ サイズの領域に分割し、各ページに番号を付けます。この番号が PFN です。物理メモリがアドレス 0 から始まると仮定すると、PFN が 0 に等しいページ フレームは、アドレス 0 (物理アドレス) から始まるページになります。物理メモリがアドレス x から始まると仮定すると、最初のページ フレーム番号は (x>>PAGE_SHIFT) になります。

PFN の値の範囲は 0----(メモリ サイズ > 12) です。

ただし、物理メモリ マッピングの関係により、物理メモリ アドレス 0 はシステム上の物理アドレス 0 に対応します。例: s3c2440 では、メモリ アドレスは 0x30000000 から始まります。 RAM が接続されている場合、s3c2440 から見ると RAM の 0 アドレスは 0x30000000 であるため、システム内の pfn の値は (物理アドレス - メモリ ベース アドレス) > 12 になるはずです。

ただし、Linux ではすべて仮想アドレスが使用されるため、最初に仮想アドレスを物理アドレスに変換する必要があります。したがって、Linux にはカーネル線形空間の仮想アドレスと pfn を変換するマクロ定義があります。

#define virt_to_pfn(kaddr)	(__pa(kaddr) >> PAGE_SHIFT)   //__pa() 将虚拟地址转化成物理地址  
#define pfn_to_virt(pfn)	__va((pfn) << PAGE_SHIFT)

したがって、pfn は Linux カーネルのページ フレーム番号に対応する必要があります。対応する物理アドレスは単純な変換によって見つけることができます。

物理ページごとに、カーネルはそれを記述する記述子を割り当てます: page。 pfn はページに変換できます。

#define page_to_pfn __page_to_pfn
#define pfn_to_page __pfn_to_page

すべてのページ構造は、管理を容易にするために mem_map に保存されます。

Linux は物理メモリを 4K ページに分割して管理するためです。したがって、MMU もマッチング用のソフトウェアに設定されます。後述。

Linux は、4G 仮想空間をユーザー空間とカーネル空間に分割します。ユーザー空間は 0---3G、カーネル空間は 3G---4G です。ユーザー空間にはカーネル空間からアクセスできますが、カーネル空間にはシステムコールを通じてユーザー空間からアクセスする必要があります。

関連する推奨事項: 「Linux ビデオ チュートリアル

以上がLinuxのpfnとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Linux:メンテナンスモードの入力と終了Linux:メンテナンスモードの入力と終了May 02, 2025 am 12:01 AM

Linuxメンテナンスモードに入る方法には次のものがあります。1。grub構成ファイルを編集し、「シングル」または「1」パラメーターを追加し、Grub構成を更新します。 2。GRUBメニューでスタートアップパラメーターを編集し、「シングル」または「1」を追加します。終了メンテナンスモードでは、システムを再起動する必要があります。これらの手順を使用すると、必要に応じてメンテナンスモードをすばやく入力して安全に終了し、システムの安定性とセキュリティを確保できます。

Linuxの理解:定義されたコアコンポーネントLinuxの理解:定義されたコアコンポーネントMay 01, 2025 am 12:19 AM

Linuxのコアコ​​ンポーネントには、カーネル、シェル、ファイルシステム、プロセス管理、メモリ管理が含まれます。 1)カーネル管理システムリソース、2)シェルはユーザーインタラクションインターフェイスを提供します。3)ファイルシステムは複数の形式をサポートします。4)プロセス管理は、フォークなどのシステムコールを通じて実装され、5)メモリ管理は仮想メモリテクノロジーを使用します。

Linuxの構成要素:主要なコンポーネントが説明しましたLinuxの構成要素:主要なコンポーネントが説明しましたApr 30, 2025 am 12:26 AM

Linuxシステムのコアコンポーネントには、カーネル、ファイルシステム、ユーザースペースが含まれます。 1.カーネルはハードウェアリソースを管理し、基本的なサービスを提供します。 2。ファイルシステムは、データストレージと組織を担当します。 3.ユーザースペースでユーザープログラムとサービスを実行します。

メンテナンスモードの使用:Linuxのトラブルシューティングと修復メンテナンスモードの使用:Linuxのトラブルシューティングと修復Apr 29, 2025 am 12:28 AM

メンテナンスモードは、シングルユーザーモードまたはレスキューモードを介してLinuxシステムに入力される特別な動作レベルであり、システムのメンテナンスと修理に使用されます。 1.メンテナンスモードを入力し、コマンド「sudosystemctlisolaterscue.target」を使用します。 2。メンテナンスモードでは、ファイルシステムを確認して修復し、コマンド「FSCK/DEV/SDA1」を使用できます。 3.高度な使用法には、ルートユーザーパスワードのリセット、ファイルシステムの読み取りモードと書き込みモードのマウント、パスワードファイルの編集が含まれます。

Linuxメンテナンスモード:目的の理解Linuxメンテナンスモード:目的の理解Apr 28, 2025 am 12:01 AM

メンテナンスモードは、システムのメンテナンスと修理に使用され、管理者が簡素化された環境で作業できるようにします。 1。システム修理:破損したファイルシステムとブートローダーを修理します。 2。パスワードリセット:ルートユーザーパスワードをリセットします。 3。パッケージ管理:ソフトウェアパッケージをインストール、更新、または削除します。 GRUB構成を変更するか、特定のキーを使用してメンテナンスモードを入力することにより、メンテナンスタスクを実行した後、安全に終了できます。

Linux操作:ネットワーキングとネットワーク構成Linux操作:ネットワーキングとネットワーク構成Apr 27, 2025 am 12:09 AM

Linuxネットワークの構成は、次の手順で完了できます。1。ネットワークインターフェイスを構成し、IPコマンドを使用して、構成ファイルの永続性設定を一時的に設定または編集します。 2。固定IPを必要とするデバイスに適した静的IPを設定します。 3.ファイアウォールを管理し、iPtablesまたはFirewalldツールを使用してネットワークトラフィックを制御します。

Linuxのメンテナンスモード:システム管理者ガイドLinuxのメンテナンスモード:システム管理者ガイドApr 26, 2025 am 12:20 AM

メンテナンスモードは、Linuxシステム管理において重要な役割を果たし、修復、アップグレード、構成の変更を支援します。 1.メンテナンスモードを入力します。 Grubメニューから選択するか、コマンド「sudosystemctlisolaterscue.target」を使用できます。 2。メンテナンスモードでは、ファイルシステムの修理およびシステムの更新操作を実行できます。 3.高度な使用法には、ルートパスワードのリセットなどのタスクが含まれます。 4.メンテナンスモードに入ったり、ファイルシステムをマウントできないなどの一般的なエラーは、GRUB構成をチェックしてFSCKコマンドを使用して固定できます。

Linuxのメンテナンスモード:それを使用する時期と理由Linuxのメンテナンスモード:それを使用する時期と理由Apr 25, 2025 am 12:15 AM

Linuxメンテナンスモードを使用するタイミングと理由:1)システムが起動するとき、2)主要なシステムの更新またはアップグレードを実行するとき、3)ファイルシステムメンテナンスを実行するとき。メンテナンスモードは、安全で制御された環境を提供し、運用上の安全性と効率を確保し、ユーザーへの影響を減らし、システムセキュリティを強化します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。