トップページ⇒linux
1002コメント333KB

Windows搭載予定のLinuxサブシステムでUbuntuが動作 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin2016/03/30(水) 14:57:55.72ID:2b3xF4As
WindowsはLinuxの機能をもエミュレートする


?Microsoft and Canonical partner to bring Ubuntu to Windows 10
You'll soon be able to run Ubuntu on Windows 10.

http://www.zdnet.com/article/microsoft-and-canonical-partner-to-bring-ubuntu-to-windows-10/
0002login:Penguin2016/03/31(木) 02:09:31.52ID:aZP35FXX
Windows最強に強まったな
0003login:Penguin2016/03/31(木) 02:39:11.81ID:LoPu4wb9
これすごくない?エミュレーションじゃなくてネイティブのサブシステムだよね
0004login:Penguin2016/03/31(木) 02:40:04.13ID:lpjF5Afa
逆にしてほしい
0005login:Penguin2016/03/31(木) 02:45:41.06ID:LoPu4wb9
おうWineちゃんディスんのやめろや
逆はGUIをフル実装しないといけないからつらみ深い
0006login:Penguin2016/03/31(木) 04:57:29.66ID:T7sXUWlZ
そういや昔、Windows NTにposix subsystemていうのがあったなあ。 あれの復刻みたいなもんだな。
0007login:Penguin2016/03/31(木) 06:31:35.98ID:a8X1DZXh
>>2
なにこの 強まったとかいう発言・・・ 気持ち悪い

>>5
フル実装ってそもそも、この手のサブシステム上のシステムは普通
GUIなんて載せないで、CLIで運用が当たり前ですが?
0008login:Penguin2016/03/31(木) 08:45:52.42ID:8Bw8GHJS
MSの影響をうけているdebian
0009login:Penguin2016/03/31(木) 09:46:00.64ID:IA8TtabH
interix の次はLinuxサブシステムか

古いのはこちら。xpでbashがネイティヴ動作していた
http://unix.oskp.net/sua
0010login:Penguin2016/03/31(木) 09:50:04.10ID:nQrsbu1B
wineにもっと頑張ってほしいところ
0011login:Penguin2016/03/31(木) 09:54:52.19ID:FxKP9Xwc
驚くことにこれバイナリ互換らしいからIntelixよりだいぶすごい
0012login:Penguin2016/03/31(木) 10:18:47.23ID:T7sXUWlZ
Windows 10/GNUって誰かが訴える予感。
0013login:Penguin2016/03/31(木) 10:31:06.64ID:g3CWzbaB
>>3
>They've been doing this using LXD.
とあるので、コンテナだな。厳密にはNTサブシステムじゃない。
0014login:Penguin2016/03/31(木) 10:56:41.73ID:s/RzM+Y1
>>3
wineがエミュレーションでないと言っているのはCPUエミュレーションではないって意味だからな。
たしかにこれもCPUエミュレーションじゃないんだろうが当たり前だ。
0015login:Penguin2016/03/31(木) 11:08:32.03ID:a8X1DZXh
>>10
Windows用のWineが欲しいわ。
0016login:Penguin2016/03/31(木) 11:09:37.36ID:93bc5KQB
>>6
POSIX subsystem は win32 subsystem とは独立していて、相互干渉できなかったはず。
おかげで、同一PC、同一OS上のバイナリなのに、シームレスに相互利用出来ず、
結構面倒で不自由な環境だったと思うのだが、既に記憶が風化していてうっすらとしか覚えてない。
今回も Linux subsystem って言ってるので、そこだけが心配。

サブシステム構成なので、
おそらく Cygwin みたいに、ソースレベルで POSIX と Win32 API 混ぜるような使い方は無理なはず。
コマンドラインのレベルでパイプライン通す場合も
Linux バイナリと Win32 バイナリを混在させるのはむつかしいんじゃないかって気がしてて、
下手すると、bash 上からは Win32 バイナリ呼べない可能性も危惧している。
0017login:Penguin2016/03/31(木) 11:15:56.20ID:a8X1DZXh
>>16
完全に閉じた世界じゃないか。
bashでシェルスクリプト書いて、Windows上のシステムを自動化とか
色々出来ると思ったが、あまり美味しそうに見えないな。

普通にWindowsに移植されてるアプリケーションそのまま動かしたほう
がなんぼもマシだろ。
0018login:Penguin2016/03/31(木) 11:37:40.71ID:93bc5KQB
Windows 7 に SUA(Subsystem for UNIX-Based Application) 入れて試してみたけど、
csh から win32 バイナリの実行したりパイプライン通したりは一応出来てるな。
しかし Windows 標準のコンソールと相性が悪いのか
ラインエディタがまともに動かない上、
操作の度にビープ音がピーピーうるさくてかなわん。

POSIX 系のこういう前科があるので、現物触ってみるまでは素直に喜べない。
0019login:Penguin2016/03/31(木) 11:53:01.53ID:93bc5KQB
http://sqlazure.jp/r/tips/794/
> bashからnotepad.exeが叩けたりはしないよ。
あちゃ〜(ノ∀`)
0020login:Penguin2016/03/31(木) 11:57:18.17ID:sUHhtjS2
これってバイナリ互換なの?
0021login:Penguin2016/03/31(木) 12:00:00.16ID:93bc5KQB
>>20
そう。Ubuntu のバイナリが変更なしにそのまま動く。
0022login:Penguin2016/03/31(木) 12:08:39.96ID:sUHhtjS2
動くのはCUIアプリのみ?それともGUIアプリも動くのか?
0023login:Penguin2016/03/31(木) 12:09:50.29ID:QHx7JX/v
>>13
> とあるので、コンテナだな。厳密にはNTサブシステムじゃない。
少しは調べろよ。
もう日本語で情報出てるだろ。

http://japan.zdnet.com/article/35080406/
> Microsoftと、Ubuntuの開発元であるCanonicalは、コンテナ内や仮想マシン(VM)上のLinuxではなく、
> 「Windows Subsystem for Linux」(WSL)という、Windowsネイティブなライブラリと
> プログラムを使ってUbuntuを稼働させようとしている。
0024login:Penguin2016/03/31(木) 12:15:33.46ID:/l7Q9qSC
>>16
>>17
interixサブシステムはWindowsと
シームレスに統合されていたよ

bashでWindowsのコマンドも叩けたし
0025login:Penguin2016/03/31(木) 12:17:41.25ID:QHx7JX/v
>>22
> 動くのはCUIアプリのみ?それともGUIアプリも動くのか?

LinuxのGUIはクライアント・サーバー方式なので
少なくともWindowsにWindows用のXサーバーをインストールすることで
WindowsにGUIを表示することは出来る。これは従来からできる。

そしてXクライアントはCUIアプリと殆ど変わらないものなので
このやり方でGUIアプリは動くだろう。

設計的にはWindowsのデスクトップがXサーバーを兼ねるべきだが
そこまでは(まだ)エミュレートしないと思う。
Ubuntuに入っているXサーバーはそのまま使うのは変な話。
なぜならXサーバー相当のものを2つ起動することになるから。
0026login:Penguin2016/03/31(木) 12:20:39.86ID:mOcQULJz
>>22
procが完全じゃないからまだtopが動かないよーとかmysqlがまだ動かないよーとか言ってるから
とりあえずCUI完動目指してXは度外視な気がする
正直X使えて嬉しい人はそこまで多くないだろうし開発者向けっつーてるから
Linuxサーバ向けのウェブアプリをWindowsで開発してる人がローカルに動作環境作れて嬉しいねくらいの話じゃないかと
0027login:Penguin2016/03/31(木) 12:23:23.09ID:mOcQULJz
そうか、Windows側にXサーバ入れれば動くことは動きそうだな
嬉しいかどうかはともかくとして
0028login:Penguin2016/03/31(木) 12:26:28.31ID:vajs0V90
ゴミXを動かして何の得があるというのか
0029login:Penguin2016/03/31(木) 12:31:18.88ID:93bc5KQB
>>26
開発者向けだから逆に
gitk とか meld とかで GUI 欲しいってケースもあと思うよ。

bash から notepad.exe 呼べないって言ってるので、
現時点で Ubuntu 側から win32 バイナリ叩けないのは確定なので、
現状では cygwin の代替になる気がしない。
VM に対するメリットも、省メモリな点くらいかな?
0030login:Penguin2016/03/31(木) 12:33:18.40ID:93bc5KQB
cygwin 高速化用の API 整備してくれた方が幸せになれるんじゃないだろうか?
0031login:Penguin2016/03/31(木) 12:36:20.05ID:QHx7JX/v
bash から notepad.exe 呼べないって言うのは
本物のLinuxバイナリだからだろうね。

Linuxから見ればnotepad.exeは未知の形式のファイルとして
見えてるわけで、Linux本来の振る舞いとしては、このファイルは
Linuxでは実行できないファイルとして扱われる。

WINEのようなWindowsバイナリを解釈してNTサブシステムの下で
実行するような仕組みをLinuxに組み込む必要がある。
0032login:Penguin2016/03/31(木) 12:37:24.90ID:QHx7JX/v
>>30
> cygwin 高速化用の API 整備してくれた方が幸せになれるんじゃないだろうか?
それがLinuxサブシステムじゃね?
0033login:Penguin2016/03/31(木) 12:42:04.77ID:IA8TtabH
>>31
interixではできてたから、そのうちサポートするかも
0034login:Penguin2016/03/31(木) 12:50:23.95ID:QHx7JX/v
>>33
そのうちサポートするだろうっていうのは同意するけど、
Interixはバイナリ互換じゃないでしょ?
Interixとは違う仕組みが必要になるはず。
0035login:Penguin2016/03/31(木) 13:01:45.61ID:Bm1Ztxtf
>>26 >>29
クライアントとサーバーがソケットで通信できさえすれば使えるX11の利点を生かして
X ServerはWin32デスクトップ環境で動かして、クライアントを同一マシンのLinux subsystemで動かせば良い
0036login:Penguin2016/03/31(木) 13:07:56.75ID:93bc5KQB
>>32
Cygwin が遅い原因は主に fork エミュレーションが遅いせいだから、
Linux サブシステムをまるごと用意せずとも、fork の高速化支援があれば十分なはず。
0037login:Penguin2016/03/31(木) 13:13:02.37ID:ykSvWRSf
>>36
Cygwinがずっと遅いって言われて原因もforkだって
わかってるのに解決できないってことは、
かなり多くのエミュレーションが必要であり、
それをやったらLinuxサブシステムレベルになると思ってるよ。
0038login:Penguin2016/03/31(木) 13:15:06.65ID:Bm1Ztxtf
Interixとは違う。
これのLinux kernelはUML(user mode linux) ほぼそのままみたい。
そこから親カーネルへのシステムコールをNTドライバが受け取って、NT kernel API(Zw API)に変換してるようだ。

ちなみにZw APIにはfork(2)に相当するのは昔からある。これまでWin32 APIとして露出してなかっただけで。

つまり、Linux環境のユーザーから見えるOSカーネルは、Linuxカーネルそのもの。
だからWin32 のexeのことなどを、そのカーネルは「何も知らない」
0039login:Penguin2016/03/31(木) 13:20:09.02ID:kvjrWp8J
ubuntu厨なんでよくわからんけどMSはMS-officeをubuntuで動くようにしてくれるだけでいいのに
winでlinux動かして何のメリットがあるの?吸収合併したいみたいな感じか?
0040login:Penguin2016/03/31(木) 13:38:08.91ID:ykSvWRSf
>>39
開発者としてはWindowsでLinuxのコマンドが使えるだけで嬉しい。
MacOSXを使う理由も(Linuxに似た)Unixのコマンドが使えるからだし。

何でもインターネット時代である今は、インターネットに接続する
サーバーの多くはLinuxが選ばれている。だけどデスクトップはそうではない。

このプロジェクトが完成したら、仮想マシンを使うこと無く
Windowsを使いながら、Linuxサーバーで動かすアプリの開発ができる。



さらに重要なのは最近Linuxとクラウド界隈で話題になっているDockerなどのコンテナ技術。
コンテナを使うと1台のPCに隔離した環境で複数のウェブサービス(同種でも可)を簡単に起動できるようになる。
仮想マシンに似ているが起動が早くリソースを食わないというメリットが有る。
これは1つのLinuxカーネルを複数のLinux用コンテナで共有することで実現している。
だからWindows(当然MacOSXも)でLinux用コンテナを動かすことはできなかった。

もしWindowsでLinuxカーネルを完璧にエミュレートできれば、
数多のLinux用コンテナをWindowsで動かすことが可能になる。
つまりMicrosoftのクラウドであるAzure等でWindowsサーバーをベースのOSとして使い、
その上でLinux用コンテナを使って簡単かつ柔軟にウェブサービスを提供すると言う
モダンな仕組みが実現できるということ。それが最終的な目標だろう。
0041login:Penguin2016/03/31(木) 13:45:57.83ID:Bm1Ztxtf
仕組み的にはHyper-Vなどのハイパーバイザベースより軽そうだし
Windows版Dockerの上で、Win32やLinuxのコンテナを
気軽に使えるようになるとそれなりに嬉しい
0042login:Penguin2016/03/31(木) 13:53:30.96ID:ykSvWRSf
>>41
> 仕組み的にはHyper-Vなどのハイパーバイザベースより軽そうだし
軽いっていうか、これはWindowsはLinuxでもあると考えてもいいぐらいだよ

>>9のリンク先に図があるけど、Windowsっていうのは正確に言うと
NTカーネルっていう一番基本的なシステムがあって
そのNTカーネルの上にWindowsサブシステムを実装している。
同様にNTカーネルの上にLinuxサブシステムを実装している。

つまりNTカーネルから見て、WindowsとLinuxは同等の存在。
もし仮にここからWindowsサブシステムを取り除いたとするならば、
それはLinuxといっても過言じゃない。
0043login:Penguin2016/03/31(木) 13:59:26.81ID:a8X1DZXh
>>42
ならば、Windows10と同居する形で、Ubuntu Linuxそのものが存在できる
ということかい?GUIまで含めてね。

移植なしにUbuntuとアプリケーション類がそのまんまNTカーネル上で実装
というか乗っける事が出来、Windows10と切り替えるような感じでホイホイ
動かせるなら大したもんだが。

ただその場合、ストレージ上にLinuxサブシステム用のディレクトリとか出来る
のかね?
0044login:Penguin2016/03/31(木) 14:04:27.62ID:ykSvWRSf
>>43
> 移植なしにUbuntuとアプリケーション類がそのまんまNTカーネル上で実装
> というか乗っける事が出来、
そのとおり。Linuxのバイナリがそのまま動く。
再コンパイルも必要ない。

> ただその場合、ストレージ上にLinuxサブシステム用のディレクトリとか出来る
> のかね?
↓

http://sqlazure.jp/r/tips/794/
> Ubuntuさんがしたこと
>
> Ubuntu root ファイルシステムをWindows アプリケーションパッケージにしてWindows Storeで提供します。
> bashシェルから、/mnt でWindows のファイルシステム(Cドライブ、Dドライブなど)にもアクセスできます。(/mnt/c….)
>
> いろんなLinuxのバイナリを動くのを確認しているけど、topはまだ動作しない。
> MySQLも問題があるけど、多くのLinuxツールが動作することをTestingで確認してるらしい。
>
> gccも動くよ。
0045login:Penguin2016/03/31(木) 14:07:40.09ID:a8X1DZXh
>>44
となると、Wineのようなものでもないから、ほぼほぼ動かせると。
X.org周りはどうするつもりなんだろ。startxでそのまんま起動したら面白いとは
思うけれど。

ただ、そういうことであれば、node.jsなどの既存のものも、windows用を拾って
来てどうこうも、究極的に言えば仮想環境自体がいらなくなるということにもなる
ね。
0046login:Penguin2016/03/31(木) 14:18:41.89ID:Bm1Ztxtf
これから色々と検証する必要はあるだろうがあるアプリのwin32版をWindowsで動かすよりも
Linux版バイナリをLinux on Windowsで動かすほうが
どうしてもPOSIXシステムコール→NTカーネルAPIの互換レイヤが入る分だけ遅くなると思う

そのパフォーマンスペナルティーがかなりあるのであれば
Linux on Windowsはあくまでお手軽互換環境で、
ガチで使いたいソフトはやはりWin32版作って使ってね、ということになるかもしれない

そうではなく、Linux on Windowsが十分優秀であれば、将来いろんなOSSのWin32対応は減っていくかも
0047login:Penguin2016/03/31(木) 14:26:33.23ID:vqCdOTjQ
>>15
ワロタ
0048login:Penguin2016/03/31(木) 14:30:07.18ID:93bc5KQB
>>45
X は別途仕組みを用意しないと
当面は win32 版、例えば Cygwin の X 等を使うことになるんじゃないかな?

仮想環境は cgroup 機能するなら Linux 系に限り不要にはなるかも。
0049login:Penguin2016/03/31(木) 14:40:08.39ID:ykSvWRSf
>>46
> どうしてもPOSIXシステムコール→NTカーネルAPIの互換レイヤが入る分だけ遅くなると思う

>>9の図をよく見てみよう。

  Windowsアプリ → Win32 API → Windowsサブシステム → NT カーネル

Windowsでも互換レイヤ相当のものが入ってるんだよ。
これがLinuxアプリだと

  Linuxアプリ → POSIXシステムコール → Linuxサブシステム → NT カーネル

こうなるだけ
0050login:Penguin2016/03/31(木) 14:41:52.18ID:FoObC27R
逆が欲しいんだけど
■ このスレッドは過去ログ倉庫に格納されています