关注分享主机优惠活动
国内外VPS云服务器

linux apr是什么意思?

这篇文章主机频道详细介绍了“linux apr是什么意思”,内容详实,步骤清晰,细节恰当。希望这篇文章《linux apr是什么意思》能帮你解决疑惑。让我们按照主机频道的思路,一起学习新知识。

Linux apr指的是Apache portable runtime,英文全称是“Apache portable run-time libraries”;它主要为上层应用提供一个可以跨多个操作系统平台使用的底层支持接口库。

apache apr简介

顾名思义,APR(Apache Portable Run-time Libraries)的目的是提供一个底层支持接口库,可以跨多个操作系统平台用于上层应用程序。在早期的Apache版本中,应用程序本身必须能够处理各种特定操作系统平台的细节,并为不同的平台调用不同的处理函数。

随着Apache的进一步发展,Apache组织决定将这些通用功能分离出来,开发成一个新的项目。这样APR的开发就独立于apache,Apache只使用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对等平台实现);商业项目包括blogline(http://www.bloglines.com/,covalent(http://www.covalent.net)等。

APR使得平台细节的处理下移。对于应用来说,他们根本不需要考虑具体的平台。无论是Unix、Linux还是Window,应用执行的接口基本都是统一的。所以对于APR来说,便携性和统一的上层接口是一个重点考虑的因素。APR的最初目的是不一样的。起初,它只是想将Apache中使用的所有代码合并成一个公共代码库。然而,这不是一个正确的策略,所以后来APR改变了它的目标。有时候使用通用代码并不是一件好事。例如,如何将请求映射到线程或进程是平台相关的,因此只有公共代码库无法进行这种区分。APR的目标是在不牺牲性能的情况下,安全地合并所有可以合并的代码。

APR最早的目标之一就是为所有平台(不是某些)提供一个通用的统一操作功能接口,这是一个非常了不起的目标,当然也是一个不切实际的目标。我们无法支持所有平台的所有功能,所以APR只能提供大部分平台APR的所有功能,包括Win32、OS/2、BeOS、Darwin、Linux等等。为了实现这一目标,APR开发者必须为那些不能在所有平台上运行的功能创建一系列功能宏,以便在不同平台之间区分这些功能。这些特性的宏定义非常简单,通常用APR_HAS_FEATURE参数设置:

如果一个平台有这个特性,宏必须设置为true。比如Linux和window都有内存映射文件,APR提供了内存映射文件的操作接口。因此,在这两个平台上,必须设置APR_HAS_MMAP宏,ap_mmap_*函数要将磁盘文件映射到内存中,并返回相应的状态码。如果你的操作系统不支持内存映射,那么APR_HAS_MMAP必须设置为0,所有ap_mmap_*函数都不需要定义。第二步是警告那些在程序中使用不支持的函数的人。

目前,APR支持的基本类型包括:

表3-1 APR支持的基本类型

类型名

文件夹名称

形容

原子的

/apr/atomic

原子操作

动态共享对象

/apr/dso

动态加载共享库

文件io

/apr/file_io

文件IO处理

mmap

/apr/mmap

内存映射文件

/apr/锁

进程和线程互斥

记忆

/apr/内存

内存池操作

网络_io

/apr/网络_io

网络IO处理

投票

/四月/民意测验

轮询IO

桌子

/四月/表格

Apache数组(堆栈)、表和哈希表

过程

/apr/threadproc

进程和线程操作

用户

/四月/用户

用户和用户组操作

时间

/四月/时间

时间操作

线

/apr/字符串

字符串操作

密码

/四月/密码

终端密码处理

混杂的

/四月/杂项

一个大杂烩,任何不属于其他类的apr类型都可以放进去。

shmem

/apr/shmem

共用存储器

随意

/四月/随机

随机数生成库

目前apache的apr项目由三部分组成,分别是apr、apr-util和APR-iconva。APR包含一些常用的开发组件,包括mmap、DSO等。apr-util还包含一些常见的开发组件。这些组件与apache的关系比apr目录中的组件更密切。比如存储段和存储段组,加密等等。apr-iconv包中的文件主要用于实现iconv编码。目前大部分的编码转换过程都与本地编码有关。在转换之前,您必须能够正确设置本地编码。所以,如果两个非本地代码A和B需要转换,转换过程大致是A->;本地和本地->;B或B-& gt;本地和本地->;答.

以上三个包的最新下载地址为:

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

未经允许不得转载:主机频道 » linux apr是什么意思?

评论 抢沙发

评论前必须登录!