首页 / 知识
关于C#:为什么32位内核可以运行64位二进制文??件?
2023-04-14 13:50:00

How come a 32 bit kernel can run a 64 bit binary?在我的OS X机器上,内核是32位二进制文??件,但它可以运行64位二进制文??件。
当CPU陷入内核上下文时,可以从64位执行模式切换到32位,并且仍然可以构建32位内核来理解从64位用户空间应用程序传入的结构。 MacOS X内核无论如何都不会直接从用户应用程序取消引用指针,因为它驻留在其自己的单独地址空间中。例如,必须先将ioctl调用中的用户空间指针解析为其物理地址,然后再解析为内核地址空间中创建的新虚拟地址。 ioctl中的指针是64位还是32位并不重要,内核在任何情况下都不会直接取消引用它。 因此可以将32位内核和64位二进制文??件混合使用,反之亦然。您无法做的是将32位库与64位应用程序混合使用,因为在它们之间传递的指针将被截断。在每个发行版中,MacOS X均提供32位和64位版本的更多框架。 请注意,并非所有32位内核都能够运行64位进程。 Windows当然没有此属性,而且我从未在Linux上看到它。 不是运行二进制文件的内核。是处理器。 该二进制文件确实会调用库函数,而这些函数必须是64位的。而且,如果他们需要进行系统调用,则他们有责任解决自己本身是64位而内核只有32位这一事实。 但是您不必担心。 能够加载和运行64位二进制文??件的32位内核必须具有一些64位代码才能处理内存映射,程序加载和其他一些64位问题。 但是,不需要调度程序和许多其他操作系统操作就可以在64位模式下工作以解决其他问题-它可以将处理器切换到32位模式,并根据需要将其切换回以处理驱动程序,任务,内存分配和映射,中断等。 事实上,操作系统所做的大多数事情并不一定能以64位运行速度更快-操作系统不是繁重的数据处理器,而这些部分(流,磁盘I / O等)可能会转换为64位(无论如何都已插入操作系统)。 但是裸内核本身可能不会更快地切换任务,依此类推,如果是64位的话。 在大多数人仍在运行32位应用程序的情况下尤其如此,因此,尽管这是一项低开销的操作,但并不总是需要模式切换,但这确实需要一些时间。 -亚当 ELF32文件可以包含64位指令,并以64位模式运行。唯一的问题是标头和符号的组织采用32位格式。符号表的偏移量是32位。符号表条目为32位宽等。同时包含64位代码和32位代码的文件可以将自身显示为32位ELF文件,其中使用64位寄存器进行内部计算。 mach_kernel就是这样的一种可执行文件。它获得的好处是32位驱动器ELF可以链接到它。如果照顾到将位于4GB以下的指针传递给其他链接的ELF二进制文件,它将正常工作。 将内核设为64位只会带来内核扩展(即通常为驱动程序)可以为64位的有效优势。实际上,您将需要具有所有64位内核扩展,或者具有(现在是所有情况)所有32位内核扩展。它们必须是正在运行的内核体系结构的本机。 |
最新内容
相关内容
linux进程运行命令?
linux进程运行命令?,系统,工作,状态,地址,信息,进程,基础,命令,管理,软件,linux常用命令有哪些1、linux系统常用操作命令linux系统常用操作命linux显示运行命令?
linux显示运行命令?,系统,服务,状态,信息,工具,数据,电脑,标准,管理,时间,如何查看linux服务器运行状态?1、linux怎么查看服务器状态?我们一起linux运行vim命令?
linux运行vim命令?,系统,工具,官方网站,模式,基础,数据,代码,环境,入口,命令,如何使用Linux系统中的Vim编辑器1、vim编辑器的三种模式:一般模式linux监控命令运行?
linux监控命令运行?,系统,工作,地址,信息,工具,情况,标准,环境,命令,状态,linux服务器监控的几个方法和命令uptime 该命令直观的显示了服务器linux中命令停止运行?
linux中命令停止运行?,系统,代码,第一,命令,进程,指令,程序,方法,接线,硬盘,linux怎么停止当前命令首先,连接相应linux主机,进入到linux命令行状linux自动运行命令?
linux自动运行命令?,服务,系统,时间,代码,周期性,第一,命令,管理,在线,状态,linux计划任务(自动化执行任务的利器)1、Linux计划任务是一种自动linux显示内核命令?
linux显示内核命令?,地址,发行,信息,工具,电脑,系统,名称,内核,版本,状态,如何查看linux内核版本1、uname查看linux内核版本 最常用 的命令,适linux开启运行命令?
linux开启运行命令?,系统,服务,工作,管理,状态,命令,标准,情况,环境,工具,linux中如何开机启动运行指定的应用程序或指令?1、开机启动时自动运linux运行wps命令?
linux运行wps命令?,软件,官网,名称,时间,电脑,系统,工具,环境,项目,数据,wps支持linux命令行下word转pdf吗?1、通过浏览器进入到wps官网,然后点linux二进制执行命令?
linux二进制执行命令?,系统,工作,情况,代码,信息,位置,地址,命令,文件,目录,Linux系统常用操作命令有哪些1、linux常用命令: pwd命令 该命令linux运行cmd命令?
linux运行cmd命令?,电脑,系统,状态,情况,环境,命令,单位,管理,设备,数据,电脑运行命令怎么打开电脑运行命令需要同时按下“win图标”键和“R”linux运行两个命令?
linux运行两个命令?,网络,地址,系统,工作,暂停,命令,网站,密码,网上,入口,Linux下必须知道的11个网络命令1、netstat -r:打印路由表。路由表保