【Bash】Windows Subsystem for Linux【WSL】6
■ このスレッドは過去ログ倉庫に格納されています
WSL2アーキテクチャ
https://www.atmarkit.co.jp/ait/articles/1906/14/news019.html
WSL 2では、仮想マシン環境が起動し、bashがコマンドを受け付けるまで2秒程度という速度で起動できる。
このため、コマンドプロンプトなどからwsl.exeなどを使ってbashコマンドを処理する時間は、
現在のWSL 1とほとんど変わらない。また、本物のLinux実行環境であるため、
これまで正しく動作できなかったアプリケーション、例えばコンテナシステム(Dockerなど)や
ユーザーファイルシステム(FUSEなど)も動作させることができる。その上で、現在のWSL 1と同等の機能と使い勝手を実現するという。
WSL 2はWSL 1を置き換えずに併存する
WSL 2が登場したからといって、WSL 1は廃止になるわけではなく、引き続き利用可能である。
ファイル共有プロトコル「9P」でWSL 1との互換性を確保
このように、WSL 2とWin32環境の間のファイル共有は、どちらも9Pを使うことになる。
また、WSLからWin32プログラムを起動する「Win32相互運用性」では、最初にWSL側で、
実行ファイルを判別する必要がある。具体的には、実行ファイル先頭のマジックナンバー
(Win32ではMZ)を見て、LinuxのELF64か、Win32の実行ファイルなのかを判断する。
【Bash】Windows Subsystem for Linux【WSL】5
https://mao.5ch.net/test/read.cgi/linux/1553100855/ ついにDockerに対応したWSL2を私見で解説してみた
http://koduki.hatenablog.com/entry/2019/05/10/124945
ここ重要
> さらにWSL2の環境毎にVMを立ち上げるのではなくLinuxカーネルは一つだけ立ち上げて、
> それぞれのWSL環境はコンテナで仕切っている様です。 Microsoft、「WSL 2」への質問にブログで回答
https://www.atmarkit.co.jp/ait/articles/1905/16/news096.html
WSL 2は「Hyper-V」を使用するのか。「Windows 10 Home」で使えるのか
WSL 2は、Windows 10 Homeを含め、現在のWSLが使用できる
全てのSKU(Stock Keeping Unit:個々のエディションやインストールオプションを表す番号)で使用できる。
「WSL 1」はどうなるのか。廃止されるのか
現在、WSL 1を非推奨とする計画はない。WSL 1とWSL 2は共存でき、
各ディストリビューションはいつでもアップグレード、ダウングレードできる。
https://www.atmarkit.co.jp/ait/articles/1906/14/news103.html
LinuxファイルをLinuxルートファイルシステムに配置
Microsoftによれば、Linuxアプリケーションで頻繁にアクセスするファイルを
WSL 2ではLinuxルートファイルシステムに置くようにしてほしいという。
高速なファイルアクセスが可能になるためだ。WSL 1では、ファイルを「Cドライブ」に置くようMicrosoftは推奨してきた。
なお、WSL 2では、WindowsアプリケーションがLinuxルートファイルシステムにアクセスできるようになっている。
例えば、bashシェルで「explorer.exe /」を実行すると、エクスプローラでLinuxのルートディレクトリの内容を表示できる。
初期ビルドでは、動的IPアドレスでLinuxネットワークアプリケーションにアクセスする
WSL 2は仮想マシン(VM)で動作するので、WindowsからそのVMのIPアドレスを使って、
Linuxネットワークアプリケーションにアクセスする必要がある。逆にLinuxから
WindowsホストのIPアドレスでWindowsネットワークアプリケーションにアクセスする必要がある。
Microsoftはできるだけ早期に、WSL 2がlocalhost経由でネットワークアプリケーションにアクセスできるようにするという。 >>前スレ992
> ファイル名生成APIなんてものはないけど、
この時点で「OSがファイル名を決める」と矛盾してるんだがどういうことだ?
でたらめ言うのもいい加減にしろよw >>4
矛盾も何も、ファイル名生成APIって言い出したやつが馬鹿ってことなだけなんだが? もしかして、OSが決めたファイル名の意味がわかってないのかな? >>3
>例えば、bashシェルで「explorer.exe /」を実行すると、エクスプローラでLinuxのルートディレクトリの内容を表示できる。
こいつ試さず記事書いてるよな >>8
MS のドキュメントを見た限りでは、explorer.exe . であっても表示されるのは カレントディレクトリ でしょうね。ルートディレクトリ?w
WSL2 の環境が無いので WSL1 ですが、explorer.exe . カレントディレクトリ、explorer.exe \\ ルートディレクトリ ですね。 Docker ❤ WSL 2 - The Future of Docker Desktop for Windows - Docker Engineering Blog
https://engineering.docker.com/2019/06/docker-hearts-wsl-2/
まあそうなるな UbuntuがMicrosoftストアで配布されているように、
Docker専用ディストリMicrosoftストアで配布されるってことかな?
WSL2上のソフトがホスト上で直接動いているかのように見えるならば、
Docker for Windowsがやっている様々なプロキシ機能は
WSL2の担当になって、何もすることはなくなるからね WSL2はHomeでも動くようになるってのがいいね。
Docker for WindowsはProでしか使えなかった。 VScodeとRemoteというプラグイン使うと組み合わせて使うとイケてる。
開発系のツールはLinuxの中にブチ込めて楽になった。
Eclipseいらねえわ。 WSL1とWSL2のベンチマーク公開 、どっちの性能が高い? 2019/06/20 10:10 後藤大地
https://news.mynavi.jp/article/20190620-845374/
Phoronixは6月14日(米国時間)、「Linux Hardware Reviews, Articles, & Gaming -
Phoronix」において、WindowsでLinuxバイナリを実行する技術であるWSL1とWSL2のベンチ
マーク結果を発表した。
WSL1はWindows 10にすでに搭載されている機能、WSL2はWindows 10の開発版に搭載されて
いる機能だ。MicrosoftはWSL2でファイルシステムパフォーマンスが大幅に向上すると
うたっており、ユーザーや開発者から注目されている。
Phoronixのベンチマーク結果は多岐にわたるが、大きくまとめると次のような結果になっている。
・I/Oバウンダリな処理に関しては、WSL2がWSL1よりも高い性能を示している
https://news.mynavi.jp/photo/article/20190620-845374/images/001l.jpg
・CPUバウンダリな処理に関しては、WSL1がWSL2よりも高い性能を示している
https://news.mynavi.jp/photo/article/20190620-845374/images/002l.jpg
WSL1はレイヤ技術に近く、Linuxカーネルに対するシステムコールをWindowsカーネルへの
システムコールに差し替えることで動作している。この方式はCPUの利用が効率よく高速に
動作しやすいと言われている。ただし、LinuxとWindowsではファイルシステムが違いすぎる
ため、ファイルシステムに関しては性能が低いという状態になっている。
一方、WSL2はHyper-Vを使うといった方法を採用しており、仮想環境で動作している。
ファイルシステムに関してはWSL1よりも性能が向上しているが、CPUに関しては逆に処理が
遅くなっている。これは仮想環境を通すことでその分性能が下がったと見られる。
WSL2はまだ開発段階にあり、今後パフォーマンスが向上する可能性もある。しかし、WSL2の
仕組みを考えるとこれ以上パフォーマンスが大幅に上昇するとは考えにくく、現状の
パフォーマンスがほぼベースになることが予想される。 ストアに来たのね
プレビュー版だから設定画面とかなく、
jsonそのまま弄らせるとか中々やな MS純正品しか使っちゃいけない会社ならともかく、wslttyに満足している自分には何もメリットないな。 Previewだのfast ringだの焦らしてばっかりだな WSLってnmap動かないの?
こうなるのだが
$nmap 192.168.0.2
Starting Nmap 7.60 ( https://nmap.org ) at 2019-06-27 00:23 JST
Problem binding to interface , errno: 92
socket_bindtodevice: Protocol not available
Problem binding to interface , errno: 92
socket_bindtodevice: Protocol not available
Problem binding to interface , errno: 92
socket_bindtodevice: Protocol not available
Problem binding to interface , errno: 92
socket_bindtodevice: Protocol not available
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.16 seconds $ sudo nmap 192.168.0.2
Starting Nmap 7.60 ( https://nmap.org ) at 2019-06-27 00:34 JST
dnet: Failed to open device eth0
QUITTING!
なんでeth0開けないんですか? wsl1はarpすら使えないしtcp/udp以外の
特殊なパケットは扱えないんでは 直接的には、RAWモードでソケットを作ろうとしてサポートされてないって怒られてるね
/proc/net配下にあることしか出来ないはずだから、WSLでは省略されてる機能らしい(UNIXドメインソケットは?だて疑問があるけど)
ちなみにWSL2ではいける Linux kernelのupstreamで修正済みのバグを踏み抜いてるissue見ると安定リリースでもkernelのアップデートには追従してほしいところ 「WSL 2」へのバージョンアップでLinux互換環境はどう変わるのか?
2019年06月28日 05時00分 公開 [塩田紳二,著]
https://www.atmarkit.co.jp/ait/articles/1906/28/news034.html
2020年春に提供予定の機能アップデート「20H1」のプレビュー版に、WSLを強化した
「WSL 2」が実装された。早速、WSL 2でどのような変更があるのか、Linuxとの互換性は
向上しているのかなどを簡単に検証してみた。 >>31
WSL2ってプレビュー版出てるの?
もう、
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
で入れれるの? そのよくわからん呪文調べてる暇があったら
プレビュー版の使い方でも調べてこい >>32
ご自分で情報を得るようにしたほうがいいと思いますよ。
ttps://devblogs.microsoft.com/commandline/wsl-2-is-now-available-in-windows-insiders/
ttps://docs.microsoft.com/en-us/windows/wsl/wsl2-index >>33-34
WSL入れてて、WSL2にしようとしてるけど出来ないよ
PowerShell(管理者権限)で
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
wsl --set-version Ubuntu-18.04 2
とやったけど、
VirtualMachinePlatformはオンになったけど、
wsl --set-version Ubuntu-18.04 2
をやると
「コマンドラインオプションが無効です --set-version」ってなる
WSLは昨日MicrosoftStoreから入れたから最新のはずだが これはもしかして、Win10home64bit 1903じゃ、VirtualMachinePlatformが効かないのでは? >>35
なぜ OSビルドを 18917 以上にしないのですか? 18917って1903と違ってプレビュー版なんでしょ?
さすがにコケたら怖いから、OS自体プレビュー版に出来ないわ
まあ、入れてみたいけどね ところで、18917とかプレビュー版って急に落ちたりしたりしないの?
WindowsTerminal入れたが対して使ってないのにすでに数回落ちたぞ
やっぱOSにプレビュー版は不安やわ >>45
急に落ちたりはないようです 該当スレで聞いてみては
ttp://mevius.5ch.net/test/read.cgi/win/1554145899/l50
ttp://mevius.5ch.net/test/read.cgi/win/1554114504/l50 Windows10 home 64bit 1903使用。
>>35でVirtualMachinePlatformオンにした後に、オフにして
VMware立ち上げようとしたら、
「VMwarePlayerとDevice/Credential Guardには互換性がありません。
VMPlayerは、Device/Credential Guardを無効にした後で実行することが出来ます。」
ってなったので、
グループポリシーエディタ(gpedit.msc)でDevice/Credential Guardをオフにしようとしたが、
Win10homeだとグループポリシーエディタが起動すらしないぞ
MSはhomeユーザーなめてるのか
(変なバッチファイル作って入れる方法はあるらしいが) ああ、それプレビュー版だからだよ
素人は本番リリースまで待てよ。 何も理解できてない奴が使う機能じゃないから、
そういった人は触らなくても良いと思うわ
Insiderのみってことも分からなければ、
仮想環境の状態も分からないとか・・・ いや、普通にWindows再起動したら普通にVMware立ち上がったわ
多分、Windows10homeは、VirtualMachinePlatformオフにして再起動でVMware復活するわ そりゃそうだろな、OSの下で動くハイパーバイザ型が
再起動なしで無効にできるとか思えねぇし 4.19.52動いたー
kernel.orgから持ってきたやつがダメなのはどこに問題があるんだ… そもそも自称先進国のホルホルゴキブリ朝鮮人は、電子レンジの根幹マグネトロンが作れない。
家電用マグネトロンすら作れない糞食い馬鹿と言うことは当然、航空機や船舶、気象、軍事用レーダーも作れない。
日本のハイテク部品を組み立て、それが売れただけでG7の日本にホルホル自慢。
極めつけは、マグネトロンを全て日本からの輸入に頼ってる糞食い土人白丁が
「韓国の電子分野技術は日本を超えた。ホルホルホル・・・」
とホルホル寝言 19H2が18362のままってことはWSL2は来ないのか
来年まで待つか WSL1でも困ってない。もうそれで慣れてしまったからかな?
VSCodeのRemoteもWSL1のほうが使い勝手がいい。 >>58
仕組み的に一長一短あるよね(´・ω・`) wslの文字コードの処理がよくわからん。
UTF-8のテキストストリームを処理するに当たり、
for文の処理後のパイプラインとか、echoとかがスクリプトにあると、
UTF-8がなぜかCP932に変換されてしまう。
そのせいで、"nkf -w"を適時挟み込む必要がある変なスクリプトになるわ。
これって、wsl特有の現象だよねぇ。 >>61
コマンドプロンプトで動いてるせいだろうな。
chcp 65001ってやるとどうなる? >>61
フォントが無いだけやろ。
UTF-8はUTF-8のまま、何も変換してない すまん!
for文内で実行したコマンドが、CP932でストリーム吐いてやがったw
単独で動かすまで気づかなかったよ。
ちなみに、echoやlsのリダイレクトはUTF-8であることは確認した。
>>62
chcp 65001 && wsl で起動しても、振る舞いは変わらなかった。
>>63
コンソールで普通に文字化けしただけみたい。
お騒がせしました。 ストアのWSLで一番難易度高いのってPengwin Enterprise?
別途RHELなりOracleなり契約して手動で展開しろってやつみたいだけど
Debianを試してみたらWSLで使う分にはUbuntuと大差なかった
SuSEはYaSTがよく分からなくて触ってない >>65
そうだろ?コマンドプロンプトやOSが変換するわけないんやで
そもそもリダイレクトっていうのはテキストだけじゃなく
バイナリデータだってリダイレクトできるんだから。
間のどこかでなにか変換が入るわけがない 文字コードの暗黙変換が行われるのはせいぜいコマンド起動時の引数だけでしょ。 windows terminalをインストールしました。よさげですね。 今更ながら、wslttyを導入した。
長いこと使ってなかったLinuxのターミナルの感じを思い出した。
絵文字も文字化けすることなくそのまま表示(白黒だけど)できたのは驚いた。 windows terminalがuwpアプリで
起動オプションを付けられないのがわかり
ええっとなった WSLと直接関係ないけどX410ってマルチウィンドウだとDirect3D使ってくれないのかよ
シングルウィンドウの方がfirefoxのスクロールが速い >>71
それ以前に技術プレビュー版なのに、
その程度のことでいちいち驚くんじゃないよ
建設現場公開って聞いて行ってみたら、
まだ建設しててええっとなった。と書き込んでるようなもん >>73
uwpだからであってプレビュー関係ない
標準ターミナルならショートカット作って
ディスチリビューション、ユーザー、ディレクトリ指定などして起動できるが
uwpだとショートカットはただのリンクなので
デフォルト設定で起動した後に手動であれこれしないと駄目 UWPアプリでもコマンドラインで起動出来て、引数も渡せるけど?
もっともTerminalが引数を受け取るかは別だけど プレビュー版のWindowTerminalで、初期起動時にどの機能使いたいとかなら、設定ファイル(json)弄れよ… Debian 10 "Buster"のリリースって明日か
WSLの方がリリースされたら一度リセットすっかな DebianをbusterにしたらLinuxカーネル4.11以上を要求するようになったQtが4.4.0扱いのWSL1で動かなくなった(一応対策法あり)
4.19なWSL2なら動くのか?怖くてFastに出来ないが なんでQtごときがLinuxカーネルのバージョンを要求するんだよ? 多分、Qt本体じゃなくて依存パッケージのせいだろうな。 Qt自体が(条件付きで)kernel4.11以上要求するようになってるよ
statx APIを使うようにcompileされたバイナリは、kernel4.11以上が必要で、
配布されてるのがstaticにstatxを有効にされちゃってるという話
statxを切ってbuildすればいいんだけど、Qtのrecompileは馬鹿げてるな
Qtdevがいけてない 余ってたcoreM、4GBメモリ、SSDのwindows tabletにWSL2導入してみた。
・initが暴走した。条件は不明だがCPUコア1つを100%使ってた。windows側からはvmmemの暴走で気がつける。
・kernelはいくつか機能がoffにされているので特殊なことやりたい人は注意。
・小規模のweb開発くらいなら、XやIME入れなければぎりぎりいける。
hyper-v使った現行dockerだと割当メモリを1GBにしても厳しかったので、
次世代docker for winの評価のために環境作ったけど、WSL2のdistributionを
systemd-nspawnみたいに使ったほうがいいかもしれない。 WSL2からのDNSリクエストがノートン先生に潰されてた…
盲点だったわ アンチウイルスソフトはもう入れないほうがいいってよく言われてるでしょ Windows 10はもうDefenderだけでいい。 偉人の名言・・・・・・
伊藤博文「嘘つき朝鮮人とは関わってはならない」
新井白石「朝鮮人は都合が悪くなると平気でウソをつく」
新渡戸稲造「朝鮮亡国の原因は、気候にあらず、土壌にあらず、
朝鮮民族という人間にある」
福沢諭吉「この世界に救いようのないどうしようもない民族がいる。
朝鮮人だ。」
本田総一郎「韓国人と関わるな」
夏目漱石「余は支那人や朝鮮人に生れなくって、善かったと思った」
吉田松陰「朝鮮人の意識改革は不可能だ」
津田梅子「動物の方がこのような汚い朝鮮人よりましだ」 wsl -t DebianしたらKERNEL_SECURITY_CHECK_FAILURE
最近PCの調子が悪くて偶然だろうけど心臓に悪い WSL2ってfuse使えるんだよな?
それってext4とかxfsも使えるってことなのかね というかWSL2のファイルシステムがext4だったような
WSL1のような下手にWin32から触るとぶっ壊れるのが回避されてる zfsのロード迄はやってみた事があるけどね
カーネルモジュールに要求するパラメータがちょっと違うからそれなりに手こずる
ただ、ディスクデバイスをどうやってくっ付けるかって問題はある >>96
別に回避はされてない。
Windowsからext4のイメージファイルの中身を直接触ると壊れることがある
だから直接さわんな。
9Pプロトコルを使ってさわれ。
そうすればWSL1でも壊れない Win32ファイルパスで触れんのと
> Windowsからext4のイメージファイルの中身を直接触ると壊れることがある
が同じだと思ってる辺りがアホ イメージファイルってHyper-VのようにVHDXなんだけ?
開こうと思えば開けるんじゃないの?ext4なんて知らんってエラーになるけど。 ■ このスレッドは過去ログ倉庫に格納されています