アカウント名:
パスワード:
なんか他のバーチャルマシン系とそれほど違いを感じないような。WSL1のとき、Windowsカーネルで処理してますと聞いたときは素直に驚いたのだが…
WSL1 は Cygwin や Linux における Wine のように API をエミュレートしてるだけだったから。
エミュレートのレイヤーは違いましたね。CygwinはあくまでWindowsサブシステム上で動くものだから、バイナリーはPE(exe/dll)だし、エミュレーションはCygwin1.dllが担当して、いわゆるWin32APIを呼び出してます。一方でWSL1のエミュレーションはWindowsサブシステムやWin32APIをすっ飛ばして、もっとNTカーネルに近いところで行われているので、LinuxのELFバイナリーをそのまま動かすことができます。
確かカーネルスレッド構造体内のあるフラグを見てシステムコールのマップを切り替えていました。なのでユーザ空間からはLinuxと同じに見えるように実装頑張っていました。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
普通のやつらの下を行け -- バッドノウハウ専門家
WSL2って (スコア:0)
なんか他のバーチャルマシン系とそれほど違いを感じないような。WSL1のとき、Windowsカーネルで処理してますと聞いたときは素直に驚いたのだが…
Re: (スコア: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と同じに見えるように実装頑張っていました。