首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内核体系结构与OS体系结构

内核体系结构与OS体系结构
EN

Unix & Linux用户
提问于 2017-11-18 14:20:15
回答 1查看 1.4K关注 0票数 4

内核架构和OS架构有什么区别?在试图确定编译二进制文件的体系结构时,其中哪一个是相关的?

据我所读,尽管在某些发行版中使用了32位操作系统,但还是可以安装64位内核。

uname -i打印的是什么,内核架构还是操作系统架构?dpkg --print-architecturearch呢?

EN

回答 1

Unix & Linux用户

发布于 2017-11-18 19:17:55

内核架构是内核的“首选”体系结构;它是由uname -march (它们是等价的)提供的体系结构。例如,在运行在64位x86兼容的CPU上的64位内核上,将是x86_64

在某些平台上,内核可以为多个体系结构运行二进制文件;例如,64位x86内核也可以运行32位二进制文件(有两个ABI,即“旧”i386/i686 ABI和x32)。它通过指示CPU在运行这种二进制文件时以32位模式运行,并提供32位系统调用与其本地64位系统调用之间的转换来支持这一点。通过QEMU添加用户地仿真,内核还可以为QEMU支持的任何体系结构运行二进制文件:例如,64位Intel CPU上的armhf。除了二进制文件本身,以及任何必要的转换层之外,您还需要与二进制结构相同的适当库;这就是多重弓的帮助之处,也是多重弓之前的/lib32//lib64分工。(如果你认为处理两个或三个ABI是很多的,那么看看MIPS系统.)

在这种情况下,“操作系统体系结构”可能意味着许多事情:它可以是安装系统时使用的体系结构,也可以是系统中大多数二进制文件使用的体系结构,等等。在Debian派生工具上,它是已安装的dpkg包的体系结构,正如dpkg --print-architecture给出的。

在构建二进制文件时,最容易针对的体系结构是编译器的默认目标体系结构,前提是您也拥有了适当的库。通常,这将是操作系统架构,不管这意味着什么。内核体系结构在这里并不特别重要。在Debian衍生工具上,扩展多重弓以涵盖交叉编译意味着为任何受支持的Debian体系结构(任何Debian系统)构建二进制文件变得越来越容易;但这是一个相当具体的用例,仍然需要对交叉编译约束有一个合理的熟悉程度。所以坚持默认的架构..。

uname -i打印任何内容时,它会打印内核体系结构的一个变体;-i是未知的无名-p将告诉您更多关于这一点的信息。

票数 6
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/405437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档