![](/img/trans.png)
[英]Intercepting 64-bit Linux kernel function: Length of a function pointer at 32/64-bit?
[英]Does upgrading a Linux kernel to the latest 64-bit change glibc?
在Linode,我们一直在进行升级,以利用他们的新SSD驱动器。 我们正在较旧的Ubuntu 10.10 32位系统上运行。
为了进行新的升级,我们已经将内核从32位更改为“最新的64位”。 到目前为止,它一直运行良好(我们正在运行的32位软件很高兴在64位内核中运行),但是我想知道这是否会改变glibc。 我唯一需要关注的Linode是一个Linode,我们使用C编译器来构建软件,而我并不一定要更改用于构建的glibc版本。
是的,我知道我们应该将实际发行版升级到较新的64位Ubuntu,但这是一个更大的项目,尚不准备就绪。 因此,暂时我们只想使用最新的64位内核运行,因为它似乎没有任何危害。 当前,我们仅关注从C源代码创建版本对glibc的影响。
当然,如果有人知道运行64位内核还有其他缺点,请随时发表讲话!
谢谢,
道格
看一下这个例子:
64位系统:
alex@rhyme ~/RPM $ ldd /bin/ls
linux-vdso.so.1 (0x00007fffef200000)
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f4b7b9d8000)
libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f4b7b7b0000)
libcap.so.2 => /lib64/libcap.so.2 (0x00007f4b7b5a8000)
libacl.so.1 => /lib64/libacl.so.1 (0x00007f4b7b398000)
libc.so.6 => /lib64/libc.so.6 (0x00007f4b7afe8000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4b7bc30000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f4b7ade0000)
libpcre.so.3 => /lib64/libpcre.so.3 (0x00007f4b7ab98000)
libattr.so.1 => /lib64/libattr.so.1 (0x00007f4b7a990000)
alex@rhyme ~/RPM $ sudo chroot hsh/chroot/ /bin/bash
[sudo] password for alex:
[root@rhyme /]#
但chroot环境(用于构建)是32位的:
[root@rhyme /]# ldd /bin/ls
linux-gate.so.1 (0xf7752000)
libtinfo.so.5 => /lib/libtinfo.so.5 (0xf76f8000)
libselinux.so.1 => /lib/libselinux.so.1 (0xf76d0000)
libcap.so.2 => /lib/libcap.so.2 (0xf76c8000)
libacl.so.1 => /lib/libacl.so.1 (0xf76b8000)
libc.so.6 => /lib/libc.so.6 (0xf7540000)
/lib/ld-linux.so.2 (0xf7730000)
libpcre.so.3 => /lib/libpcre.so.3 (0xf74f8000)
libdl.so.2 => /lib/libdl.so.2 (0xf74f0000)
libattr.so.1 => /lib/libattr.so.1 (0xf74e8000)
[root@rhyme /]#
注意ldd输出中的差异。 coreutils
(和ls
)的版本基本相同。
据我所知,使用64位内核可能会有一个缺点。 在64位模式下,它需要更多的内存用于内核本身和控制结构(内核代码指令为64位)。 除此之外,我没有注意到这种配置的任何问题。
BTW运行在一个系统中同时包含32个和64个二进制文件和库的系统称为多体系结构(在上面的示例中没有多体系结构,因为第二个系统拥有自己的独立文件系统,我已将其写入根目录) 。 据我所知,Debian和Ubuntu都具有可行的多体系结构支持,并且apt
的单个实例可以完美地管理32位和64位软件包集。
因此,从理论上讲,您可以进行“缓慢的迁移”,只需在64位库的32位对应库旁边安装64位库,然后将32位至64位二进制文件一一替换。 当然,这不是最快的方法;-),但是可以使它几乎无缝,没有长时间的停机或软件版本或行为的意外更改。 当然,您的里程可能会有所不同,因此您应该仔细检查自己的状况,环境等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.