アカウント名:
パスワード:
なんか他のバーチャルマシン系とそれほど違いを感じないような。WSL1のとき、Windowsカーネルで処理してますと聞いたときは素直に驚いたのだが…
WSL1 は Cygwin や Linux における Wine のように API をエミュレートしてるだけだったから。
エミュレートのレイヤーは違いましたね。CygwinはあくまでWindowsサブシステム上で動くものだから、バイナリーはPE(exe/dll)だし、エミュレーションはCygwin1.dllが担当して、いわゆるWin32APIを呼び出してます。一方でWSL1のエミュレーションはWindowsサブシステムやWin32APIをすっ飛ばして、もっとNTカーネルに近いところで行われているので、LinuxのELFバイナリーをそのまま動かすことができます。
確かカーネルスレッド構造体内のあるフラグを見てシステムコールのマップを切り替えていました。なのでユーザ空間からはLinuxと同じに見えるように実装頑張っていました。
このやたら難儀な仕組み維持するの結局諦めちゃうのかなサブシステムっていうには…ユーザーライド上で動いてるし…なんだこれ
https://forest.watch.impress.co.jp/docs/news/1240999.html [impress.co.jp]先のことは解りませんがWSL1も維持するようです
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell
WSL2って (スコア:0)
なんか他のバーチャルマシン系とそれほど違いを感じないような。WSL1のとき、Windowsカーネルで処理してますと聞いたときは素直に驚いたのだが…
Re:WSL2って (スコア:0)
WSL1 は Cygwin や Linux における Wine のように API をエミュレートしてるだけだったから。
CygwinとWSL1の違い (スコア:3)
エミュレートのレイヤーは違いましたね。CygwinはあくまでWindowsサブシステム上で動くものだから、バイナリーはPE(exe/dll)だし、エミュレーションはCygwin1.dllが担当して、いわゆるWin32APIを呼び出してます。一方でWSL1のエミュレーションはWindowsサブシステムやWin32APIをすっ飛ばして、もっとNTカーネルに近いところで行われているので、LinuxのELFバイナリーをそのまま動かすことができます。
Re: (スコア:0)
確かカーネルスレッド構造体内のあるフラグを見てシステムコールのマップを切り替えていました。
なのでユーザ空間からはLinuxと同じに見えるように実装頑張っていました。
Re: (スコア:0)
このやたら難儀な仕組み維持するの結局諦めちゃうのかな
サブシステムっていうには…ユーザーライド上で動いてるし…なんだこれ
Re: (スコア:0)
https://forest.watch.impress.co.jp/docs/news/1240999.html [impress.co.jp]
先のことは解りませんがWSL1も維持するようです