linux apr は Apache ポータブル ランタイム ライブラリを指し、英語の完全名は「Apache ポータブル ランタイム ライブラリ」です。主に上位層のアプリケーションに、使用できる下位レベルのサポート インターフェイス ライブラリを提供します。複数のオペレーティング システム プラットフォームにわたって。
#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。
Linux apr とは何ですか?
apache apr の紹介
APR (Apache ポータブル ランタイム ライブラリ、Apache ポータブル ランタイム ライブラリ) の目的はその名の通りです。上位層アプリケーションは、複数のオペレーティング システム プラットフォーム間で使用できる低レベルのサポート インターフェイス ライブラリを提供します。 Apache の初期バージョンでは、アプリケーション自体がさまざまなオペレーティング システム プラットフォームの詳細を処理し、プラットフォームごとに異なる処理関数を呼び出すことができなければなりませんでした。
Apache のさらなる開発に伴い、Apache 組織はこれらの共通機能を分離し、新しいプロジェクトとして開発することを決定しました。このように、APR の開発は Apache から独立しており、Apache は APR のみを使用します。現在、APR は主に Apache で使用されていますが、APR の移植性の向上により、移植が必要な一部の C プログラムでも APR が使用され始めています。Flood ローダー (http://httpd.apache) などのオープンソース プロジェクト.org/test/flood /、このプロジェクトはサーバー ストレス テストに使用されます。Apache だけに適用されるわけではありません)、FreeSwitch (www.freeswitch.org)、JXTA-C (http://jxta-c.jxta.org、C JXTA ポイントツーポイント プラットフォーム実装のバージョン) ; 商用プロジェクトには、Blogline (http://www.bloglines.com/)、covalent (http://www.covalent.net) などが含まれます。 APRはプラットフォームの詳細な処理を下位に下げ、アプリケーションは特定のプラットフォームを全く考慮する必要がありません。Unix、Linux、Windowのいずれであっても、アプリケーションが実行するインターフェースは基本的に統一されています。そのため、APRではポータビリティと統合された上位層インターフェイスは、その検討の重要なポイントです。APR の初期の目的はこれではありませんでした。当初は、Apache で使用されるすべてのコードを共通のコード ベースにマージすることだけを望んでいました。しかし、これは正しい戦略ではありませんでした。 APR は後に目標を変更しました。共通のコードを使用することが良いことではない場合があります。たとえば、リクエストをスレッドまたはプロセスにマップする方法はプラットフォームに依存するため、共通のコード ベースだけではこの区別を完了できません。APR の目標は次のとおりです。セキュリティを期待する パフォーマンスを犠牲にすることなくマージできるすべてのコードをマージする
APR の初期の目標の 1 つは、(一部だけではなく) すべてのプラットフォームに共通の統一された操作関数インターフェイスを提供することであり、これは非常に注目に値します。もちろん、非現実的な目標です。すべてのプラットフォームのすべての機能をサポートすることは不可能であるため、APR は現在、Win32、OS/2、BeOS、Darwin、Linux、この目標を達成するために、APR 開発者は、プラットフォーム間でこれらの機能を区別するために、すべてのプラットフォームで実行できない機能に対して一連の機能マクロ (FEATURE MACROS) を作成する必要があります。これらの機能マクロの定義は非常に単純で、通常は APR_HAS_FEATURE パラメーター設定を使用します。 :
特定のプラットフォームにこの機能がある場合、このマクロは true に設定する必要があります。たとえば、Linux と Windows の両方にメモリ マップド ファイルがあり、APR はメモリ マップド ファイル用の操作インターフェイスを提供するため、これら 2 つは各プラットフォームでは、APR_HAS_MMAP マクロを設定する必要があり、ap_mmap_* 関数はディスク ファイルをメモリにマップし、適切なステータス コードを返す必要があります。オペレーティング システムがメモリ マッピングをサポートしていない場合は、APR_HAS_MMAP を 0 に設定し、すべてのap_mmap_* 関数を定義する必要はありません。 2 番目のステップは、プログラム内でサポートされていない機能を使用するユーザーに警告することです。
現在 APR でサポートされている基本タイプは次のとおりです。
表 3-1 APR でサポートされている基本タイプ
フォルダ名 | 説明 | |
atomic | ##/apr/atomic##アトミック操作 | #dso |
/apr/dso |
共有ライブラリの動的読み込み |
#file io |
/apr/file_io | ##ファイル IO 処理#mmap | |
メモリ マップド ファイル | locks | |
プロセスとスレッドは相互に排他的ですロック | memory | |
メモリ プールオペレーション | network_io | |
NetworkIO プロセス | #poll | /apr/poll |
##ポーリング IO | table | /apr/tables |
Apache 配列 (スタック)およびテーブルとハッシュ テーブル | process |
/apr/threadproc | # #プロセスとスレッドの操作
#user | /apr/user | ユーザーおよびユーザー グループの操作 |
##/apr/time | 時間操作 | #string |
/apr/strings |
文字列操作 |
#password |
##端末パスワード処理 | misc | |
どのグループにも属さない寄せ集め残りのクラスの任意の apr タイプは、 | shmem | |
共有メモリ | random | ##/apr/random|
乱数生成ライブラリ |
## iconv | apr には以下が含まれますmmap、DSO などの一般的な開発コンポーネント。apr -util このディレクトリには、一般的に使用される開発コンポーネントもいくつか含まれています。これらのコンポーネントは、apr ディレクトリ内のコンポーネントよりも Apache と密接に関連しています。ストレージ セグメントとストレージ セグメント グループ、暗号化など。 apr-iconv パッケージ内のファイルは、主に iconv エンコーディングを実装するために使用されます。現在のトランスコーディング プロセスのほとんどはネイティブ エンコーディングに関連しています。変換する前に、ローカル エンコーディングを正しく設定できる必要があります。したがって、2 つの非ローカル コード A および B を変換する必要がある場合、変換プロセスは大まかに、A-> ローカルおよびローカル-> B または B-> ローカルおよびローカル-> A となります。 | 上記 3 つのパッケージの最新のダウンロード アドレスは次のとおりです:
以上がLinux 4 月とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。