Windows 开放了 WSL( Linux 子系统),所以到底开放了什么权限?什么机理。

2017-11-20 21:45:42 +08:00
 erlinux

Windows 10 里面有 WSL 可以直接开一个 bash 终端。(默认 ubuntu,现在 store 还能下载 OpenSuse )

但是我安装 firewalld 不行、nmap 也跑不出来。


这我就懵逼了啊,那这个到底有什么用?

对微软来说,到底开放了什么权限。这背后又有什么含义?
又是如何实现的,听说不是虚拟机...好像是在 Windows 的核心层做了对应...

我也不很懂,突然想到了这个问题,就来 v2 求大神指点下。

8355 次点击
所在节点    Windows
11 条回复
erlinux
2017-11-20 21:47:12 +08:00
借楼再问下:ebtables 和 iptables 的关系...
erlinux
2017-11-20 21:48:13 +08:00
另外,我的 ubuntu 的 bash.exe 经常会收到。信号为 1 的进程结束...然后我给命令加 "-y" ,静默执行就没啥问题了。奇怪..............
billlee
2017-11-20 21:54:17 +08:00
应用空间的基本没问题,内核的东西不用想。
whwq2012
2017-11-20 22:00:09 +08:00
b 站有个视频,是印度人介绍 wsl 的原理,你可以去搜搜看
erlinux
2017-11-20 23:21:11 +08:00
@erlinux 不是信号 1...是信号 6

E: Method http has died unexpectedly!
E: 子进程 http 收到信号 6。
jakes
2017-11-21 00:18:07 +08:00
yyfearth
2017-11-21 05:12:29 +08:00
@erlinux @jakes 其实简单来说就是 WSL 就像是 Wine 是一个应用兼容层
Wine 是在 Linux/Unix 下让你可以兼容直接运行部分 Win32 程序
WSL 是在 Windows 下让你可以兼容直接运行部分 Linux 程序

所以 WSL 不是一个 VM 虚拟机 他建立了一个 Linux 内核虚拟层 但不是也不包含 Linux 内核
所以 WSL 没办法运行需要很内核功能的东西 但是随着 WSL 底层的完善 他就会变得越来越兼容 Linux 内核
慢慢的越来越多的 Linux 程序可以跑在 WSL 上面了
firewalld nmap 这些跑不起来 估计是因为 Linux 的网络栈还没有在 WSL 兼容层完全实现

和 Linux VM 比 WSL 的优势之一是损耗小 不需要一直有一个 Hyperviser 跑在后台 而且占用大量系统资源
因为实际上 Windows + WSL 都是同时运行在同一个 Windows 内核上 没有另外一个 Linux kernel 跑在 VM 里面
另外一个优势就是整合度高 如果是 VM 实际上就相当于是 Windows 通过网络或其他接口和另外一台机器通信
而 WSL 是直接在同一个系统里面 WSL 的文件 就在 Windows 的文件系统里面 而且 Windows 可以一定程度上管理 WSL 里面的东西
缺点自然就是不能 100% 当作一个完整的 Linux 使用

可以认为 VM 是在本机虚拟了一个另外一台电脑硬件 然后你在这个虚拟的电脑里面跑 Linux 或者 另一个 Windows
而 WSL 是在 Windows 上面 虚拟了一个 Linux 内核 然后在这个虚拟的内核上面跑 Linux 应用
而 Wine 是在 Linux/Unix 上面虚拟了一个 Win32 API 然后让这个虚拟层上面跑 Win32 程序
kaneg
2017-11-21 08:21:10 +08:00
微软搞 wsl,最终目标可能是想让 Windows 成为 docker 容器的宿主机,从而开拓自己的服务器市场。
honeycomb
2017-11-21 09:22:10 +08:00
@erlinux 据说微软白盒实现了 Linux 内核 API 的驱动
xml123
2017-11-21 10:37:45 +08:00
github.com/ethanhs/WSL-Programs
可以参考这个页面,能兼容的东西还在不断更新
junjieyuanxiling
2019-01-23 19:16:24 +08:00
@honeycomb Linux 不是没有 API 吗…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/408057

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX