繁体   English   中英

是否将Linux内核升级到最新的64位更改glibc?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM