红联Linux门户
Linux协助

“Ubuntu on Windows”初体会

发布时刻:2016-04-01 10:03:06来历:linux网站作者:Linux我国

在 Windows 10 中原生运转 Linux bash 和其它的 ELF 二进制程序?对,你没看错,这便是昨夜微软宣告的“Ubuntu on Windows”项目所发表的现实——并且。

之前就有风闻说,微软在 Windows 10 里隐藏奥秘 Linux 子体系!现在,风闻变成真的了。

“Ubuntu on Windows”初体会

据该项意图协作方, Ubnutu 背面的 Canonical 公司的产品与战略负责人 Dustin Kirkland(https://www.linkedin.com/in/dustinkirkland/)说,他在几个月前传闻这个张狂的主意时也懵了,花费了不少时间才了解这后边发生了什么。


本文带你揭开“Ubuntu on Windows”的奥秘一角。

对“Ubuntu on Windows”的一种解读:vr视频


首要,让咱们看看发生了什么?

1.首要你得有个 Windows 10
2.翻开 Windows 开始菜单
3.输入“bash” (没有引号),回车
4.这会翻开一个 cmd.exe 窗口
5.运转 Ubuntu 的 /bin/bash
6.宾果!你能够彻底拜访一切的 Ubuntu 用户空间了
7.没错,这包含  apt、 ssh、 rsync、 find、 grep、 awk、 sed、 sort、 xargs、 md5sum、 gpg、 curl、 wget、apache、 mysql、 python、 perl、 ruby、 php、 gcc、 tar、 vim、 emacs、 diff、 patch 等等
8.以及,Ubuntu 软件库中数以万计的 ELF 二进制程序中的绝大多数!

“Ubuntu on Windows”初体会


“好吧,这是一个运转在虚拟机的 Ubuntu 吗?” 不!这底子不是一个虚拟机,不必在虚拟机中发动 Linux 内核,它便是 Ubuntu 的用户空间。

“哦,那是运转在容器里边啰?” 不不!这也不是一个容器,这是在 Windows 里边直接运转原生的 Ubuntu 二进制程序。

“嗯,就像 cygwin 那样?”不不不!cygwin 所包含的开源程序是以源代码从头编译后才干原生运转在 Windows 上。而这儿,咱们说的是一个比特都不差、校验值彻底相同的 Ubuntu 的 ELF 二进制程序能够直接运转在 Windows 下!

... ...

“那么,这就像是模拟器相同么?”这就比较挨近本相了,来自微软的一些顶级技能人员正在研讨一种技能,能够将 Linux 的体系调用实时地转换为 Windows 的体系调用。你能够把它当成 Wine 的一种反向技能。微软将其称之为“Windows 下的 Linux 子体系”,当然现在还没有开源。(我觉得网友 delectate 说的比较风趣,这个东西不如叫做 mine=microsoft's native emulator 。)


并且,依据 Dustin Kirkland(https://www.linkedin.com/in/dustinkirkland/) 的说法(http://blog.dustinkirkland.com/2016/03/ubuntu-on-windows.html),运用跨渠道的功能测验东西 sysbench 进行测验的成果发现,在 Windows 下运转这些原生的 ELF 二进制程序和在 Linux 下运转所耗费的 CPU 、内存和 IO 功能适当。关于这个成果,我表明非常的吃惊!

Dustin Kirkland(https://www.linkedin.com/in/dustinkirkland/)是该项目组的成员之一,他的体会能够让咱们感受一下这个“超级奥秘”的项目。

因为需求将整个 Ubuntu 的根文件体系打包到一个 Windows 运用软件包(.appx)中,这位现已十几年没有运用过 Windows 的老兄对微软开发东西非常生疏,在经过几个小时与 Visual Studio 的苦楚奋斗,制作了一堆各种尺度的 png 图标,修改了一打以上的 XML 文件后,他几乎不由得要将咖啡杯扔到该死的屏幕上了。


到最后,他总算寻求他所了解的 Linux 经历处理了这些问题。

按下 Windows 键,输入“bash”,回车!他发现这个要上载的根文件体系的内容放在  /mnt/c/Users/Kirkland/Downloads 下,只需求运用一个 cp -a 复制到方针方位即可,并用 find | xargs |rename 来批量更新文件名,用 grep| xargs | sed 查找替换途径,用 convert 东西快速地批量缩放图标,几乎不要太容易地搞定了这些作业,剩余的就只需求让 Visual Studio 自己干了,编译、上载到 Windows Store。搞定!

嗯,你或许从终端窗口中看到了 /mnt/c ,没错,这便是你的 Windows 下的 C: 盘,它们以读写形式直接挂载到 /mnt 下了。当然,你也能够在 Windows 下经过相似如下的途径拜访 Ubuntu 的文件体系:C:\Users\Kirkland\AppData\Local\Lxss\rootfs\ 。

“Ubuntu on Windows”初体会

一起,假如需求 ssh 连接到其它的 Linux 上,你底子不必下载 putty,直接输入 ssh 即可:

“Ubuntu on Windows”初体会

当然,你也能够运用 apt 来装置和更新软件包:

“Ubuntu on Windows”初体会


到目前为止,是不是一切的东西都能够完美作业了?还不满是。LTP(https://github.com/linux-test-project/ltp) 测验中的大多数都没问题,但是有一些则还不可,主要是 tty 相关的部分,比方 byobu、screen、tmux 等还不能很好的作业,不过信任也快了。

别的,趁便提一句,当时这个子体系所选用的 Linux 镜像是 Ubuntu 14.04 LTS,等 16.04 LTS 发布后信任很快就会更新到 Windows Store 上。


本文永久更新地址:http://www.138comgov138.com/linux/19423.html