首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux的Windows子系统中的二进制文件是否与启动物理Linux时相同?

问Linux的Windows子系统中的二进制文件是否与启动物理Linux时相同?
EN

Unix & Linux用户
提问于 2021-12-13 01:31:19
回答 2查看 564关注 0票数 2

如果我们有Windows 10或11,并且使用WSL ()和发行版(如Ubuntu ),那么我们是否会使用与创建可引导Linux PC相同的二进制文件呢?

例如,当我们使用WSL Bash或Zsh命令提示符时,如果我们安装:

  • 鲁比,gcc和cc
  • GPU驱动程序
  • 任何密码挖掘可执行文件,如xmrig、t

如果我们创建了一个可引导的Linux驱动器或USB驱动器并从那里启动,它是否使用相同的二进制文件?

实际上,Ruby/gcc/cc可能不是一个问题,但是对于Linux驱动程序,这不是与Windows本地GPU驱动程序发生冲突吗?

EN

回答 2

Unix & Linux用户

发布于 2021-12-13 13:11:02

嗯,是和不是(因为你问了几种不同类型的二进制文件)。

应用程序二进制文件

是的,假设您使用的是x64 Linux系统,两个系统之间的二进制文件是相同的。实际上,您可以直接从物理Linux机器中取出一个驱动器,或者:

  • 创建系统的tarball,然后将其导入WSL。
  • 或者只需chroot进入该驱动器上的文件系统(以及这个已经完成了)。

在这些任务中,没有对二进制文件进行“转换”或更改。

引导二进制文件

注意,在以这种方式引导WSL2时,您正在从原始发行版运行大多数二进制文件。但是,实际的内核和init是由WSL2提供的,因此它可以引导Windows集成(例如运行Windows .exe's、网络集成和更多)。

值得注意的是,Systemd不会自动启动。解决办法在WSL2下支持Systemd,但是它需要运行引导后,以便WSL的init可以首先完成它的工作。

二进制驱动程序

另一方面,期望直接访问物理硬件的二进制驱动程序通常无法工作,除非WSL提供了一个虚拟的等效程序。WSL2正在虚拟环境中运行。但也有一些例外..。

USB设备驱动程序

但是,可以通过USB/IP (从Windows)共享USB设备并在WSL/Linux中连接到它们,从而直接访问Windows中的USB设备。对于这些设备,二进制驱动程序可以工作。

最近的WSL2内核版本包含了USB/IP支持,但即使在此之前,也可以在启用该功能的情况下构建自己的内核。

GPU计算

最近的WSL2版本(Windows11和Windows1021H2)提供了将Windows驱动程序用于WSL2 GPU计算任务的能力。这允许利用GPU计算体系结构(例如TensorFlow)的Linux二进制文件利用Windows。

我不能和密码挖掘打交道(而且我怀疑微软是否会推动这一点),但我希望现在也可以在这些二进制文件中使用这种架构。

票数 5
EN

Unix & Linux用户

发布于 2021-12-13 07:54:06

不是的。WSL只是微软对Linux的解释,与独立的Linux没有相同的硬件访问权限。

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

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

复制
相关文章

相似问题

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