Windows搭載予定のLinuxサブシステムでUbuntuが動作 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
2016/03/30(水) 14:57:55.72ID:2b3xF4As?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:Penguin
2016/03/31(木) 02:09:31.52ID:aZP35FXX0003login:Penguin
2016/03/31(木) 02:39:11.81ID:LoPu4wb90004login:Penguin
2016/03/31(木) 02:40:04.13ID:lpjF5Afa0005login:Penguin
2016/03/31(木) 02:45:41.06ID:LoPu4wb9逆はGUIをフル実装しないといけないからつらみ深い
0006login:Penguin
2016/03/31(木) 04:57:29.66ID:T7sXUWlZ0007login:Penguin
2016/03/31(木) 06:31:35.98ID:a8X1DZXhなにこの 強まったとかいう発言・・・ 気持ち悪い
>>5
フル実装ってそもそも、この手のサブシステム上のシステムは普通
GUIなんて載せないで、CLIで運用が当たり前ですが?
0008login:Penguin
2016/03/31(木) 08:45:52.42ID:8Bw8GHJS0009login:Penguin
2016/03/31(木) 09:46:00.64ID:IA8TtabH古いのはこちら。xpでbashがネイティヴ動作していた
http://unix.oskp.net/sua
0010login:Penguin
2016/03/31(木) 09:50:04.10ID:nQrsbu1B0011login:Penguin
2016/03/31(木) 09:54:52.19ID:FxKP9Xwc0012login:Penguin
2016/03/31(木) 10:18:47.23ID:T7sXUWlZ0013login:Penguin
2016/03/31(木) 10:31:06.64ID:g3CWzbaB>They've been doing this using LXD.
とあるので、コンテナだな。厳密にはNTサブシステムじゃない。
0014login:Penguin
2016/03/31(木) 10:56:41.73ID:s/RzM+Y1wineがエミュレーションでないと言っているのはCPUエミュレーションではないって意味だからな。
たしかにこれもCPUエミュレーションじゃないんだろうが当たり前だ。
0015login:Penguin
2016/03/31(木) 11:08:32.03ID:a8X1DZXhWindows用のWineが欲しいわ。
0016login:Penguin
2016/03/31(木) 11:09:37.36ID:93bc5KQBPOSIX subsystem は win32 subsystem とは独立していて、相互干渉できなかったはず。
おかげで、同一PC、同一OS上のバイナリなのに、シームレスに相互利用出来ず、
結構面倒で不自由な環境だったと思うのだが、既に記憶が風化していてうっすらとしか覚えてない。
今回も Linux subsystem って言ってるので、そこだけが心配。
サブシステム構成なので、
おそらく Cygwin みたいに、ソースレベルで POSIX と Win32 API 混ぜるような使い方は無理なはず。
コマンドラインのレベルでパイプライン通す場合も
Linux バイナリと Win32 バイナリを混在させるのはむつかしいんじゃないかって気がしてて、
下手すると、bash 上からは Win32 バイナリ呼べない可能性も危惧している。
0017login:Penguin
2016/03/31(木) 11:15:56.20ID:a8X1DZXh完全に閉じた世界じゃないか。
bashでシェルスクリプト書いて、Windows上のシステムを自動化とか
色々出来ると思ったが、あまり美味しそうに見えないな。
普通にWindowsに移植されてるアプリケーションそのまま動かしたほう
がなんぼもマシだろ。
0018login:Penguin
2016/03/31(木) 11:37:40.71ID:93bc5KQBcsh から win32 バイナリの実行したりパイプライン通したりは一応出来てるな。
しかし Windows 標準のコンソールと相性が悪いのか
ラインエディタがまともに動かない上、
操作の度にビープ音がピーピーうるさくてかなわん。
POSIX 系のこういう前科があるので、現物触ってみるまでは素直に喜べない。
0019login:Penguin
2016/03/31(木) 11:53:01.53ID:93bc5KQB> bashからnotepad.exeが叩けたりはしないよ。
あちゃ〜(ノ∀`)
0020login:Penguin
2016/03/31(木) 11:57:18.17ID:sUHhtjS20021login:Penguin
2016/03/31(木) 12:00:00.16ID:93bc5KQBそう。Ubuntu のバイナリが変更なしにそのまま動く。
0022login:Penguin
2016/03/31(木) 12:08:39.96ID:sUHhtjS20023login:Penguin
2016/03/31(木) 12:09:50.29ID:QHx7JX/v> とあるので、コンテナだな。厳密にはNTサブシステムじゃない。
少しは調べろよ。
もう日本語で情報出てるだろ。
http://japan.zdnet.com/article/35080406/
> Microsoftと、Ubuntuの開発元であるCanonicalは、コンテナ内や仮想マシン(VM)上のLinuxではなく、
> 「Windows Subsystem for Linux」(WSL)という、Windowsネイティブなライブラリと
> プログラムを使ってUbuntuを稼働させようとしている。
0024login:Penguin
2016/03/31(木) 12:15:33.46ID:/l7Q9qSC>>17
interixサブシステムはWindowsと
シームレスに統合されていたよ
bashでWindowsのコマンドも叩けたし
0025login:Penguin
2016/03/31(木) 12:17:41.25ID:QHx7JX/v> 動くのはCUIアプリのみ?それともGUIアプリも動くのか?
LinuxのGUIはクライアント・サーバー方式なので
少なくともWindowsにWindows用のXサーバーをインストールすることで
WindowsにGUIを表示することは出来る。これは従来からできる。
そしてXクライアントはCUIアプリと殆ど変わらないものなので
このやり方でGUIアプリは動くだろう。
設計的にはWindowsのデスクトップがXサーバーを兼ねるべきだが
そこまでは(まだ)エミュレートしないと思う。
Ubuntuに入っているXサーバーはそのまま使うのは変な話。
なぜならXサーバー相当のものを2つ起動することになるから。
0026login:Penguin
2016/03/31(木) 12:20:39.86ID:mOcQULJzprocが完全じゃないからまだtopが動かないよーとかmysqlがまだ動かないよーとか言ってるから
とりあえずCUI完動目指してXは度外視な気がする
正直X使えて嬉しい人はそこまで多くないだろうし開発者向けっつーてるから
Linuxサーバ向けのウェブアプリをWindowsで開発してる人がローカルに動作環境作れて嬉しいねくらいの話じゃないかと
0027login:Penguin
2016/03/31(木) 12:23:23.09ID:mOcQULJz嬉しいかどうかはともかくとして
0028login:Penguin
2016/03/31(木) 12:26:28.31ID:vajs0V900029login:Penguin
2016/03/31(木) 12:31:18.88ID:93bc5KQB開発者向けだから逆に
gitk とか meld とかで GUI 欲しいってケースもあと思うよ。
bash から notepad.exe 呼べないって言ってるので、
現時点で Ubuntu 側から win32 バイナリ叩けないのは確定なので、
現状では cygwin の代替になる気がしない。
VM に対するメリットも、省メモリな点くらいかな?
0030login:Penguin
2016/03/31(木) 12:33:18.40ID:93bc5KQB0031login:Penguin
2016/03/31(木) 12:36:20.05ID:QHx7JX/v本物のLinuxバイナリだからだろうね。
Linuxから見ればnotepad.exeは未知の形式のファイルとして
見えてるわけで、Linux本来の振る舞いとしては、このファイルは
Linuxでは実行できないファイルとして扱われる。
WINEのようなWindowsバイナリを解釈してNTサブシステムの下で
実行するような仕組みをLinuxに組み込む必要がある。
0032login:Penguin
2016/03/31(木) 12:37:24.90ID:QHx7JX/v> cygwin 高速化用の API 整備してくれた方が幸せになれるんじゃないだろうか?
それがLinuxサブシステムじゃね?
0033login:Penguin
2016/03/31(木) 12:42:04.77ID:IA8TtabHinterixではできてたから、そのうちサポートするかも
0034login:Penguin
2016/03/31(木) 12:50:23.95ID:QHx7JX/vそのうちサポートするだろうっていうのは同意するけど、
Interixはバイナリ互換じゃないでしょ?
Interixとは違う仕組みが必要になるはず。
0035login:Penguin
2016/03/31(木) 13:01:45.61ID:Bm1Ztxtfクライアントとサーバーがソケットで通信できさえすれば使えるX11の利点を生かして
X ServerはWin32デスクトップ環境で動かして、クライアントを同一マシンのLinux subsystemで動かせば良い
0036login:Penguin
2016/03/31(木) 13:07:56.75ID:93bc5KQBCygwin が遅い原因は主に fork エミュレーションが遅いせいだから、
Linux サブシステムをまるごと用意せずとも、fork の高速化支援があれば十分なはず。
0037login:Penguin
2016/03/31(木) 13:13:02.37ID:ykSvWRSfCygwinがずっと遅いって言われて原因もforkだって
わかってるのに解決できないってことは、
かなり多くのエミュレーションが必要であり、
それをやったらLinuxサブシステムレベルになると思ってるよ。
0038login:Penguin
2016/03/31(木) 13:15:06.65ID:Bm1ZtxtfこれのLinux kernelはUML(user mode linux) ほぼそのままみたい。
そこから親カーネルへのシステムコールをNTドライバが受け取って、NT kernel API(Zw API)に変換してるようだ。
ちなみにZw APIにはfork(2)に相当するのは昔からある。これまでWin32 APIとして露出してなかっただけで。
つまり、Linux環境のユーザーから見えるOSカーネルは、Linuxカーネルそのもの。
だからWin32 のexeのことなどを、そのカーネルは「何も知らない」
0039login:Penguin
2016/03/31(木) 13:20:09.02ID:kvjrWp8Jwinでlinux動かして何のメリットがあるの?吸収合併したいみたいな感じか?
0040login:Penguin
2016/03/31(木) 13:38:08.91ID:ykSvWRSf開発者としては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:Penguin
2016/03/31(木) 13:45:57.83ID:Bm1ZtxtfWindows版Dockerの上で、Win32やLinuxのコンテナを
気軽に使えるようになるとそれなりに嬉しい
0042login:Penguin
2016/03/31(木) 13:53:30.96ID:ykSvWRSf> 仕組み的にはHyper-Vなどのハイパーバイザベースより軽そうだし
軽いっていうか、これはWindowsはLinuxでもあると考えてもいいぐらいだよ
>>9のリンク先に図があるけど、Windowsっていうのは正確に言うと
NTカーネルっていう一番基本的なシステムがあって
そのNTカーネルの上にWindowsサブシステムを実装している。
同様にNTカーネルの上にLinuxサブシステムを実装している。
つまりNTカーネルから見て、WindowsとLinuxは同等の存在。
もし仮にここからWindowsサブシステムを取り除いたとするならば、
それはLinuxといっても過言じゃない。
0043login:Penguin
2016/03/31(木) 13:59:26.81ID:a8X1DZXhならば、Windows10と同居する形で、Ubuntu Linuxそのものが存在できる
ということかい?GUIまで含めてね。
移植なしにUbuntuとアプリケーション類がそのまんまNTカーネル上で実装
というか乗っける事が出来、Windows10と切り替えるような感じでホイホイ
動かせるなら大したもんだが。
ただその場合、ストレージ上にLinuxサブシステム用のディレクトリとか出来る
のかね?
0044login:Penguin
2016/03/31(木) 14:04:27.62ID:ykSvWRSf> 移植なしに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:Penguin
2016/03/31(木) 14:07:40.09ID:a8X1DZXhとなると、Wineのようなものでもないから、ほぼほぼ動かせると。
X.org周りはどうするつもりなんだろ。startxでそのまんま起動したら面白いとは
思うけれど。
ただ、そういうことであれば、node.jsなどの既存のものも、windows用を拾って
来てどうこうも、究極的に言えば仮想環境自体がいらなくなるということにもなる
ね。
0046login:Penguin
2016/03/31(木) 14:18:41.89ID:Bm1ZtxtfLinux版バイナリをLinux on Windowsで動かすほうが
どうしてもPOSIXシステムコール→NTカーネルAPIの互換レイヤが入る分だけ遅くなると思う
そのパフォーマンスペナルティーがかなりあるのであれば
Linux on Windowsはあくまでお手軽互換環境で、
ガチで使いたいソフトはやはりWin32版作って使ってね、ということになるかもしれない
そうではなく、Linux on Windowsが十分優秀であれば、将来いろんなOSSのWin32対応は減っていくかも
0047login:Penguin
2016/03/31(木) 14:26:33.23ID:vqCdOTjQワロタ
0048login:Penguin
2016/03/31(木) 14:30:07.18ID:93bc5KQBX は別途仕組みを用意しないと
当面は win32 版、例えば Cygwin の X 等を使うことになるんじゃないかな?
仮想環境は cgroup 機能するなら Linux 系に限り不要にはなるかも。
0049login:Penguin
2016/03/31(木) 14:40:08.39ID:ykSvWRSf> どうしてもPOSIXシステムコール→NTカーネルAPIの互換レイヤが入る分だけ遅くなると思う
>>9の図をよく見てみよう。
Windowsアプリ → Win32 API → Windowsサブシステム → NT カーネル
Windowsでも互換レイヤ相当のものが入ってるんだよ。
これがLinuxアプリだと
Linuxアプリ → POSIXシステムコール → Linuxサブシステム → NT カーネル
こうなるだけ
0050login:Penguin
2016/03/31(木) 14:41:52.18ID:FoObC27R■ このスレッドは過去ログ倉庫に格納されています