LinuxThreads 和 NPTL
上一篇 /
下一篇 2007-03-10 14:57:02
/ 个人分类:EDA软件相关
http://www.ibm.com/developerworks/cn/linux/l-threading.html
LD_ASSUME_KERNEL 环境变量
正如上面介绍的一样,ABI 的引入使得可以同时支持 NPTL 和 LinuxThreads 模型。基本上来说,这是通过 ld (一个动态链接器/加载器)来进行处理的,它会决定动态链接到哪个运行时线程库上。
举例来说,下面是 WebSphere® Application Server 对这个变量所使用的一些通用设置;您可以根据自己的需要进行适当的设置:
LD_ASSUME_KERNEL=2.4.19:这会覆盖 NPTL 的实现。这种实现通常都表示使用标准的 LinuxThreads 模型,并启用浮动堆栈的特性。
LD_ASSUME_KERNEL=2.2.5:这会覆盖 NPTL 的实现。这种实现通常都表示使用 LinuxThreads 模型,同时使用固定堆栈大小。
我们可以使用下面的命令来设置这个变量:
export LD_ASSUME_KERNEL=2.4.19
注意,对于任何 LD_ASSUME_KERNEL 设置的支持都取决于目前所支持的线程库的 ABI 版本。例如,如果线程库并不支持 2.2.5 版本的 ABI,那么用户就不能将 LD_ASSUME_KERNEL 设置为 2.2.5。通常,NPTL 需要 2.4.20,而 LinuxThreads 则需要 2.4.1。
如果您正运行的是一个启用了 NPTL 的 Linux 发行版,但是应用程序却是基于 LinuxThreads 模型来设计的,那么所有这些设置通常都可以使用。
GNU_LIBPTHREAD_VERSION 宏
大部分现代 Linux 发行版都预装了 LinuxThreads 和 NPTL,因此它们提供了一种机制来在二者之间进行切换。要查看您的系统上正在使用的是哪个线程库,请运行下面的命令:
$ getconf GNU_LIBPTHREAD_VERSION
这会产生类似于下面的输出结果:
NPTL 0.34
或者:
linuxthreads-0.10
Linux 发行版所使用的线程模型、glibc 版本和内核版本
表 1 列出了一些流行的 Linux 发行版,以及它们所采用的线程实现的类型、glibc 库和内核版本。
表 1. Linux 发行版及其线程实现
| 线程实现 |
C 库 |
发行版 |
内核 |
| LinuxThreads 0.7, 0.71 (for libc5) |
libc 5.x |
Red Hat 4.2 |
|
| LinuxThreads 0.7, 0.71 (for glibc 2) |
glibc 2.0.x |
Red Hat 5.x |
|
| LinuxThreads 0.8 |
glibc 2.1.1 |
Red Hat 6.0 |
|
| LinuxThreads 0.8 |
glibc 2.1.2 |
Red Hat 6.1 and 6.2 |
|
| LinuxThreads 0.9 |
| Red Hat 7.2 |
2.4.7 |
| LinuxThreads 0.9 |
glibc 2.2.4 |
Red Hat 2.1 AS |
2.4.9 |
| LinuxThreads 0.10 |
glibc 2.2.93 |
Red Hat 8.0 |
2.4.18 |
| NPTL 0.6 |
glibc 2.3 |
Red Hat 9.0 |
2.4.20 |
| NPTL 0.61 |
glibc 2.3.2 |
Red Hat 3.0 EL |
2.4.21 |
| NPTL 2.3.4 |
glibc 2.3.4 |
Red Hat 4.0 |
2.6.9 |
| LinuxThreads 0.9 |
glibc 2.2 |
SUSE Linux Enterprise Server 7.1 |
2.4.18 |
| LinuxThreads 0.9 |
glibc 2.2.5 |
SUSE Linux Enterprise Server 8 |
2.4.21 |
| LinuxThreads 0.9 |
glibc 2.2.5 |
United Linux |
2.4.21 |
| NPTL 2.3.5 |
glibc 2.3.3 |
SUSE Linux Enterprise Server 9 |
2.6.5 |
注意,从 2.6.x 版本的内核和 glibc 2.3.3 开始,NPTL 所采用的版本号命名约定发生了变化:这个库现在是根据所使用的 glibc 的版本进行编号的。
导入论坛
收藏
分享给好友
管理
举报
TAG:
EDA软件相关