溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux apr指的是什么

發(fā)布時間:2023-04-19 10:40:51 來源:億速云 閱讀:107 作者:iii 欄目:建站服務器

本文小編為大家詳細介紹“l(fā)inux apr指的是什么”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“l(fā)inux apr指的是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

linux apr是指Apache可移植運行庫,其英文全稱是“Apache portable Run-time libraries”;其主要為上層的應用程序提供一個可以跨越多操作系統(tǒng)平臺使用的底層支持接口庫。

apache apr介紹

APR(Apache portable Run-time libraries,Apache可移植運行庫)的目的如其名稱一樣,主要為上層的應用程序提供一個可以跨越多操作系統(tǒng)平臺使用的底層支持接口庫。在早期 的Apache版本中,應用程序本身必須能夠處理各種具體操作系統(tǒng)平臺的細節(jié),并針對不同的平臺調(diào)用不同的處理函數(shù)。

隨著Apache的進一步開 發(fā),Apache組織決定將這些通用的函數(shù)獨立出來并發(fā)展成為一個新的項目。這樣,APR的開發(fā)就從Apache中獨立出來,Apache僅僅是使用 APR而已。目前APR主要還是由Apache使用,不過由于APR的較好的移植性,因此一些需要進行移植的C程序也開始使用APR,開源項目比如 Flood loader(http://httpd.apache.org/test/flood/,該項目用于服務器壓力測試,不僅僅適用于Apache)、FreeSwitch(www.freeswitch.org),JXTA-C(http://jxta-c.jxta.org,C版本的JXTA點對點平臺實現(xiàn));商業(yè)的項目則包括Blogline(http://www.bloglines.com/,covalent(http://www.covalent.net)等等。

APR使得平臺細節(jié)的處理進行下移。對于應用程序而言,它們根本就不需要考慮具體的平臺,不管是Unix、Linux還是Window,應用程序執(zhí)行的接口基本都是統(tǒng)一一致的。因此對于APR而言,可移植性和統(tǒng)一的上層接口是其考慮的一個重點。而APR最早的目的并不是如此,它最早只是希望將Apache中用到的所有代碼合并為一個通用的代碼庫,然而這不是一個正確的策略,因此后來APR改變了其目標。有的時候使用公共代碼并不是一件好事,比如如何將一個請求映射到線程或者進程是平臺相關的,因此僅僅一個公共的代碼庫并不能完成這種區(qū)分。APR的目標則是希望安全合并所有的能夠合并的代碼而不需要犧牲性能。

APR的最早的一個目標就是為所有的平臺(不是部分)提供一個公共的統(tǒng)一操作函數(shù)接口,這是一個非常了不起的目的,當然也是不現(xiàn)實的一個目標。我們不可能支持所有平臺的所有特征,因此APR目前只能為大多數(shù)平臺提供所有的APR特性支持,包括Win32、OS/2、BeOS、Darwin、Linux等等。為了能夠實現(xiàn)這個目標,APR開發(fā)者必須為那些不能運行于所有平臺的特性創(chuàng)建了一系列的特征宏(FEATURE MACROS)以在各個平臺之間區(qū)分這些特征。這些特征宏定義非常簡單,通常用APR_HAS_FEATURE參數(shù)設置:

如果某個平臺具有這個特性,則該宏必須設置為true,比如Linux和window都具有內(nèi)存映射文件,同時APR提供了內(nèi)存映射文件的操作接口,因此在這兩個平臺上,APR_HAS_MMAP宏必須設置,同時ap_mmap_*函數(shù)應該將磁盤文件映射為內(nèi)存并返回適當?shù)臓顟B(tài)碼。如果你的操作系統(tǒng)并不支持內(nèi)存映射,那么APR_HAS_MMAP必須設置為0,而且所有的ap_mmap_*函數(shù)也可以不需要定義。第二步就是對于那些在程序中使用了不支持的函數(shù)必須提出警告。

目前APR中支持的基本類型包括下面幾種:

表3-1 APR中支持的基本類型

類型名稱

文件夾名稱

描述

atomic

/apr/atomic

原子操作

dso

/apr/dso

動態(tài)加載共享庫

file io

/apr/file_io

文件IO處理

mmap

/apr/mmap

內(nèi)存映射文件

locks

/apr/locks

進程和線程互斥鎖

memory

/apr/memory

內(nèi)存池操作

network_io

/apr/network_io

網(wǎng)絡IO處理

poll

/apr/poll

輪詢IO

table

/apr/tables

Apache數(shù)組(堆棧)和表格以及哈希表

process

/apr/threadproc

進程和線程操作

user

/apr/user

用戶和用戶組操作

time

/apr/time

時間操作

string

/apr/strings

字符串操作

password

/apr/passwd

終端密碼處理

misc

/apr/misc

大雜燴,不屬于其余類的任何apr類型都可以放在里面

shmem

/apr/shmem

共享內(nèi)存

random

/apr/random

隨機數(shù)生成庫

apache 的apr項目目前有三部分組成,分別是apr、apr-util、apr-iconv
apr中包含了一些通用的開發(fā)組件,包括mmap,DSO等等
apr-util該目錄中也是包含了一些常用的開發(fā)組件。這些組件與apr目錄下的相比,它們與apache的關系更加密切一些。比如存儲段和存儲段組,加密等等。
apr-iconv包中的文件主要用于實現(xiàn)iconv編碼。目前的大部分編碼轉換過程都是與本地編碼相關的。在進行轉換之前必須能夠正確地設置本地編碼。因此假如兩個非本地編碼A和B需要轉換,則轉換過程大致為A->Local以及Local->B或者B->Local以及Local->A。

以上三個包最新下載地址為:

http://labs.mop.com/apache-mirror//apr/apr-1.4.6.tar.gz
http://labs.mop.com/apache-mirror//apr/apr-util-1.4.1.tar.gz
http://labs.mop.com/apache-mirror//apr/apr-iconv-1.2.1.tar.gz

讀到這里,這篇“l(fā)inux apr指的是什么”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內(nèi)容的文章,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI