Linux では、pfn の正式名称は「ページ フレーム番号」で、これは物理メモリ領域の番号です。 「ページフレーム」とは物理メモリのことで、物理メモリをページサイズの領域に分割し、各ページに番号を付けたもので、この番号が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 サイトの他の関連記事を参照してください。

Linux操作をマスターする理由は、幅広いアプリケーションシナリオと強力な機能です。 1)Linuxは、開発者、システム管理者、テクノロジー愛好家に適しており、サーバー管理、組み込みシステム、コンテナ化テクノロジーで使用されています。 2)Linuxの学習は、ファイルシステム構造、シェルの使用、ユーザー許可管理、プロセス管理から始めることができます。 3)Linuxコマンドラインは、LS、MKDIR、CDなどのシェルを介してコマンドを実行し、リダイレクトおよびパイプライン操作をサポートするコアツールです。 4)高度な使用法には、バックアップスクリプトなどの自動化されたスクリプトの書き込み、TARコマンド、条件付き判断が含まれます。 5)一般的なエラーには、エコー、セットX、$?を介してデバッグできます。 6)パフォーマンス最適化の提案

Linuxシステムの5つの柱は次のとおりです。1。Kernel、2。SystemLibrary、3。Shell、4。FileSystem、5。SystemTools。カーネルはハードウェアリソースを管理し、基本的なサービスを提供します。システムライブラリは、アプリケーション用の事前コンパイルされた機能を提供します。シェルは、ユーザーがシステムと対話するインターフェイスです。ファイルシステムはデータを整理して保存します。また、システムツールはシステム管理とメンテナンスに使用されます。

Linux Systemsでは、起動時に特定のキーを押すか、「sudosystemctlrescue」などのコマンドを使用することにより、メンテナンスモードを入力できます。メンテナンスモードを使用すると、管理者は、ファイルシステムの修復、パスワードのリセット、セキュリティの脆弱性など、干渉なしにシステムメンテナンスとトラブルシューティングを実行できます。

Linuxの初心者は、ファイル管理、ユーザー管理、ネットワーク構成などの基本操作をマスターする必要があります。 1)文件管理:使用mkdir、タッチ、ls rm 3)ネットワーク構成:ifconfig、echo、およびufwコマンドを使用します。これらの操作はLinuxシステム管理の基礎であり、それらをマスターすることでシステムを効果的に管理できます。

この記事では、LinuxのSudo特権を管理する方法について説明します。重要な焦点は、 /etc /sudoersの安全性とアクセスを制限することです。

この記事では、Google Authenticatorを使用してLinux上のSSH用の2要素認証(2FA)のセットアップ、インストール、構成、およびトラブルシューティング手順の詳細に関するガイドを提供します。 Enhanced Secなど、2FAのセキュリティ利益を強調しています

この記事では、Linuxシステムのパフォーマンスを監視するためにTop、HTOP、およびVMSTATを使用して、効果的なシステム管理のための独自の機能とカスタマイズオプションを詳述することについて説明します。

記事では、APT、Yum、およびDNFを使用してLinuxでソフトウェアパッケージの管理を行い、インストール、更新、および削除をカバーしています。さまざまな分布に対する機能と適合性を比較します。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
