虚拟机和 SSH 中的 Windows Bash 与 Ubuntu

And*_*ome 5 virtualbox ubuntu windows-10 windows-subsystem-for-linux

我已经环顾四周了一段时间,但我一直无法找出新的 Bash For Windows 10 和 ssh 进入在 VM 中运行的 Ubuntu(安装了 Windows 驱动器)之间的区别。

它是否与 Windows 有更多的集成,或者只是通过在 VM 中运行的 Ubuntu 安装来访问和安装它?

jll*_*gre 8

区别本质上是操作系统级虚拟化和基于管理程序的虚拟化之间的区别。

当您bash从 Windows 开始菜单启动时,您会看到一个文本窗口,可以访问完整的 Ubuntu 命令行环境,您可以从中安装任何用户级 Ubuntu 软件包。

与传统 VM 不同的是,没有 Linux 内核可以启动或运行,因此启动速度更快,运行更​​轻松。Ubuntu 本机二进制文件只是由 Windows 内核(恰好是它的一个新子系统)执行。另一个区别是没有开箱即用的图形集成。使用 VM,您可以访问虚拟硬件的文本和图形控制台的窗口(或全屏)表示,但使用 Windows bash,更像是从 Windows 终端模拟器远程连接到服务器。尽管如此,如果您启动一个 Linux 图形应用程序X11Windows 上的服务器。由于不涉及 Linux 内核,您不能使用 Linux 模块/驱动程序来访问您的硬件,它将被 Windows 本机模块/驱动程序访问。这有很多含义,例如,目前不支持符号链接以及长文件名和文件名大小写的问题,没有 inotify。没有像真机或传统 VM 那样的启动顺序,这意味着启动时不会自动启动任何服务bash。它有点类似于 Docker 启动bash

最后,这是一项正在进行的工作,因此还有很大的改进空间。您可能知道用户在该站点中报告最多的内容https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windows

也看看常见问题解答:https : //msdn.microsoft.com/en-us/commandline/wsl/faq

请注意,第一个用户请求“让我们从 Bash 启动 Windows 进程”是您无法在 Windows 上运行的 Linux VM 中执行的操作。