【Bash】Windows Subsystem for Linux【WSL】9
レス数が950を超えています。1000を超えると書き込みができなくなります。
ついにWSL2が登場したぜー。こりゃ完全にLinuxだ。ヒャッハー!WSL最高!開発にLinuxは使わねぇー。Windowsで開発してLinuxは動かすだけや!
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】8
https://mao.5ch.net/test/read.cgi/linux/1590742701/ >>850
長々書いてくれたけどDockerがLinuxのカーネルを使うことは分かっているよ。847のリンクの中の図がそうなってるよ。 >>851
そこがわかってるならDocker持ち出す必要ないだろ
Macでも仮想マシン使えるんだよね。ということはMacでも
Linuxを仮想マシンにインストールして使うことが出来る。
といえば済むだろ MacでもDockerが動くならMacでもLinuxのカーネルが動かせると書いたんだよ。分かりづらくてごめんよ。 >>849
>/bin/sh は入れ替え不可能
すべてのアプリがそのバージョンを使う事を想定しているから、
それを直接バージョンアップしてはいけない
他のバージョンを使うアプリは、自分で用意しないといけない。
または、Docker みたいに、環境・依存モジュールもまとめて配布する
Mac で使えるかどうか知らないけど、
プログラミング言語なら、日本人が作った、バージョンマネージャーのanyenv とか、
同様の機能のasdf とかもある >>854
ここも参考となる
https://ascii.jp/elem/000/001/043/1043010/
HyperkitがWSL2的と思ったのはハイパーバイザー型の仮想化ソフトだからだね。軽量なのでCUI環境作るのにピッタリ。(最初の話に戻る)
WSLの話でなくスマン。 LinuxはもうWindowsのサブシステムに成り下がってしまったんだな。
便利だからそっちのが良いけど。 本番環境では使うだろ。開発用として使わないってだけで 昔からLinuxじゃなくてMacで開発だったところがWindowsに変わっただけやで
元からLinuxで開発してない Macの最大のいいところはCmdがアプリ、OS系の操作、Ctrlがターミナル、Emacsのキーバインドと機能が整理されて独立されているところだわ
Windowsだとこれが全てCtrlにごった煮になってるから必ずキーが競合してしまう >>860
Keyhacででできるわ。左右のCtrlを使い分けられる。 Keyhac+FakeymacsでむしろWindowsの方が完全なEmacsキーバインドが実現されているよ。Cmdキーの件も左右のCtrlキーの使い分けで解決されている。 Windowsはフリーソフトがないと解決できない。
MacはHomebrewというフリーソフトがないと何もできない。 WindowsもMacもOSなんだから、当然といえば当然 WSLでopengl使ってプログラムしてる人いますか?
vcxsvr使ってwsl2上でコンパイルしたglのプログラム、動くんだけど一瞬でポリゴンが消えちゃって
サンプルで使われる四角を表示させるやつも駄目です
glut使ってるけど、なんでやろ? >>865
それは仕組上、Xサーバー側の問題なのでは。 >>865
vcxsvrの問題じゃない?opengl使うのは動かないことあった。
MobatermXのほうがまだましだった。 >>866
>>867
やっぱりサーバー側かな。WSL1の時は大丈夫だったと思うのですが。
ちょっと変えて試そうと思います。
ありがとうございます >>868
報告よろしくお願いします。WSL1も使ってるなら
WSL1でコンパイルしたものを動かしたらどうなるのかも知りたいです。 >>869
とりあえずWSL1の環境でコンパイルしてみましたが
エラーなくコンパイルはできますが、実行するとウインドウは作成されて
一瞬ポリゴンが表示されますが、すぐウィンドウが黒くなります(ポリゴンが消える)
実行時にエラーメッセージが出てますがそれは関係なさそうです
vcxsvrのログを見ると
SetPixelFormat Errorとあるのでサーバのせいみたいです。
自分の環境だとWSL1でも2でもglut使うプログラムは駄目みたいでした。
仕方がないのでXサーバをX410に変えてみたら、そちらは問題なく動作しました。
vcxsvrの問題で間違いなさそうです。
vcxsvrでもなにか解決法があるかもしれませんが、X410で解決するのでそちらを使うことにしました。
試しに仕事で作成したgl使ったソースもコンパイルして実行してみましたが
WSL+X410の環境で何も変更しないで動作しました。これなら使えそうです
ご参考まで X410って確かLIBGL_ALWAYS_INDIRECTが使えなくてXサーバー側の3D描画ができないよね
VcXsrvのNative OpenGLは切ってみた? >>862
左右のCtrlの切り分けに対応してないアプリはどうしてる? >>872
Keyhacがアプリから片方のモディファイアキーを横取りしているだけなんだけど、具体的にどういう質問? GUIの対応って、公式が検討していることを公表してたのは知ってるけど、何をどうするんだろう
現状でもWin側にXサーバー入れれば普通にGUIアプリは動くし >>875
それを言ったらWSLだって仮想マシンを入れて
"頑張って構成を作り上げれば" ほぼ同じことが出来るだろ?
MSがやるのは、その頑張る部分をなくすことだよ
頑張ってXサーバーを入れないと使えないんだから、入れなくて使えるようにするだろう
GUIを表示するために必要な、WSL側の設定も一切不要にするだろう
ハードウェアアクセラレーションもちゃんと動くようにするだろう
Windowsアプリとのコピペのやり取りや日本語対応などもちゃんと出来るようにするだろう
少しずつの対応になるだろうけど、GUIアプリのパッケージをWSL側に
インストールして実行したら普通にGUIアプリが起動するところまでやると思うよ
仮想マシンで(頑張って)出来ることなら全てできるようにするだろうね
Linuxをインストールするよりも簡単で、やりたいことが全部できるならLinuxをわざわざ使う必要がなくなる。 Windows側がRDPクライアント機能は標準で持ってるから
WSL側で(MS謹製の?)xrdp的なものを用意して、導入がラクか半自動でいけるくらいにはするんだろ
できる事は自分でxrdp突っ込んでRDPでグラフィカル環境を使うのと何も変わらん
xrdpやxvncとか突っ込むのに「頑張って」必死でやらないと(やっても)出来ないような奴なら
恩恵は無いと思うよ (MS製の?)xrdp的な鯖は、wayland経由でRDPで吐いてくれるとかだったかな
まあ多少は効率向上もあるかもしれんけど、xrdpやらの導入を「頑張らないと(頑張っても)できない」層が得るものは何もない 優先順位1が開発環境2がGPUで計算
nvidiaは普通のwindowsドライバにwith wsl2したものを提供
GUIはdirectX動かすつもり 連レスで頑張らないと持論展開できないのキモいですほんと お、ようやくWindows Updateでカーネルの更新が始まったぞ >>877
世界で10人くらいしか恩恵ないって事だろ。 まあ無いよりはあったほうがいいんだけど優先度的に他にもっとやって欲しいことはある 根回しして会議を繰り返して導入に成功したのがDockerだとすると、グランドデザインとは程遠いので、MSの将来が危ぶまれる。
Dockerは根本的に問題を解決する素晴らしいものではなく、問題を回避するための必要悪。
必要悪を導入するのに一生懸命になるより、悪を必要としない世界を作るべきでは? >>877
> できる事は自分でxrdp突っ込んでRDPでグラフィカル環境を使うのと何も変わらん
> xrdpやxvncとか突っ込むのに「頑張って」必死でやらないと(やっても)出来ないような奴なら
> 恩恵は無いと思うよ
ではここにやり方を書いてください。
パッケージのインストールではなくちゃんと動作する手順です。
それすらも面倒くさいようなら「頑張って」やるしかないってことですね >>884
> 根回しして会議を繰り返して導入に成功したのがDockerだとすると、グランドデザインとは程遠いので、MSの将来が危ぶまれる。
Dockerしか思いついてない時点で、
お前に新しいものを作り出す能力がないってのがよく分かるよw 俺に能力があろうがなかろうが、MSが道を誤ってることに変わりないだろう。
キミは何を言ってるんだね。
反論してるつもりなのか? 俺に能力があろうがなかろうが、MSが道を誤ってることに変わりないだろう。
その根拠は「能力がない俺」の主張が正しいからだ
ってこと?w
お前の主張が正しいかどうかの話をしてるんだから
MSが〜という話をする前の段階だよ WSL周りについては、MSは正しい選択を続けているように見えるけどねえ… 妄想者が増えているからあまり釣られないほうがいいよ Windows Subsystem for Linux Graphics Update - 0.2.11 あるGUIソフトがLinuxにしか無かったんでその作業の時だけLinux使ってきたがWSL2とX410試したらあっさり動いてしまった WSL使えなかったとか言ってるやつは無能すぎてまともにLinux使えない奴だろ。
WSLで出来ることだけるだけの頭もないバカってのがモロバレ。 それにしてもなんでこんなにメモリバカ喰いするんだ?
デスクトップだからいいけど、ノートで開発するなら辛そうだわ
普通に仮想マシンより食ってるよね >>896
Linuxの設計が、メモリがあればあるだけ
キャッシュとしてメモリを使うかららしいよ
どこかで解説してた > 普通に仮想マシンより食ってるよね
WSL2は仮想マシンだよw
仮想マシンのメモリ制限してないだけでしょ? WSL2の動的メモリが最大でホストの80%ってのと、Linuxのキャッシュアルゴリズムの相乗効果なんだろうけど
動的メモリの最大値は50%か8GBの少ない方に変更されてるね、仕様変更がプレビュー以外にいつ降ってくるかはよく分からん
それ以外にもメモリバルーンがあったと思うんだけど…、こんな場合には効かないのかな? その辺に関して、VMwareESXとかHyper-Vなどはどうやって解決してるんだろ?ってなるな。
理屈はほとんど同じだよね。 Windows 10 を起動するだけでも、8GB メモリの内、4GB確保する。
ファイルの先読みとか、バックグラウンドの処理用に確保するのだろう
ひとまず確保しているだけで、
必要になれば、何かを捨てて、必要な仕事をするはず
Linux でも同じ キャッシュはメモリが必要になったときに直ぐ開放されるの通常は使用済み用量としてにカウントされない
WSL2はVMなのでキャッシュであってもホストから見たら通常のメモリ使用と同じにしか見えない >>900
LinuxとWSLの仕様と仕様が組み合わさった結果予期しない動作が起きてるんだからバグでいいんじゃない? >>904
RAM 2GBのPCでもストレス無く動くから、WSL2で使用しているメモリでもアクセス頻度の低い領域はスワップアウトしてるぞ。 >>907
アクセス頻度の高い領域までスワップアウトされると、動作が遅くなってストレスが溜まる GUIが正式に起動できるようになるのが街同士い
ブルーライト軽減のためにredshift付かいたけどx.orgが使えればいいんだが >>906
WSL2上のLinuxしか使ってないならそうなる
問題はWSL2にメモリー喰われて他のWindowsアプリがスラッシングに陥るって話だから >>911
Linux 側の free -h の結果と Windows 側のタスクマネージャの パフォーマンスタブ-メモリー 見せて virtualboxは仮想環境立ち上げるといきなり設定したメモリ分を確保するけどね
だからどれだけあらば十分か考える
WSLは動的に実メモリの使用量を調整できるとしても
80%確保とか馬鹿じゃないの
ほぼWSL専用のwindowsじゃないの ウチのマシンはWSL2は起動しただけだと80パーセントも取らんなぁ。
最大80パーセントで起動直後から最大値まで取りに行くのか? あ、8G迄なのか。
それなら50パーまでしかいかんわ。 virtualboxみたいに自分で決めないから
文句もでるわけで
今は最大サイズが決められる
この問題は今はない 80%にあらわれてるようにdockerが独占するような
環境を想定してる
windowsでリソースが必要なことはなくなってる 仮想環境使うのに32GB積まないってないだろ・・・。今時。 そんなもん使い方次第
>>906の2GBとかは流石にネタレベルだが >>913
RAM 2GB君が立ち上がらないので4GBでゴメン
ttps://i.imgur.com/j5dsnXS.png
ttps://i.imgur.com/dea21n0.png >>922
WSL, chrome, 切り取りツールだけ
今度は
Chromeでタブを10個開き、libreofficeのwriterとcalcで各1つずつ編集してみた。wslがあるからといって、winアプリが重くなることはない
ttps://i.imgur.com/18rFu3i.png >>923
そりゃWSL側で何も動いてなきゃそうだろうなとしか言えんよ… >>924
元レス>>904はキャッシュが解放されないのが問題としているが、解放されなくたって、メインメモリを食ってなきゃ問題無いんだよ >>925
だからLinuxのキャッシュに33MiBしか使ってないなら意味ないだろって話な >>926
キャッシュを増やしてみたけど変わらないよ。使われない領域はちゃんと掃出される。
ttps://i.imgur.com/l6fAjJG.png
ttps://i.imgur.com/08zJXt8.png >>927
>>897
> Linuxの設計が、メモリがあればあるだけ
> キャッシュとしてメモリを使うかららしいよ
の意味わかってないの?
Linux側スカスカじゃん >>928
Linuxはキャッシュとして使ってるんだから
スカスカではない >>929
お前全然理解してないだろw
>>904の前半はWindows側のキャッシュの話
後半はLinuxのキャッシュの話
>>930
free の出力の見方も知らないやつが絡んでくるなよ…
1GiBも使ってないだろ 漏れは、8GB メモリのPC を使っているけど、
ブラウザでも動画を見たら、5GBぐらい使う
たぶん、キャッシュにでも使うのだろう
Windows 側で、ブラウザを起動したら、
4GBメモリのPCじゃ、ヤバイのでは?
WSL2, Docker も使える? >>933
理解できないなら黙っとけ
VMの動き知ってたらゲスト側のメモリーの使用状況を知るなんてできないことぐらい分かるだろ
そのうち協調動作するようになるかも知れないけど今は無理 イマドキのブラウザって無駄にメモリ使うアプリ筆頭じゃね。あるだけよこせって挙動する。
今のWSL2側でブラウザ使う物好きは少数だから問題なしw >>935
ゲスト側の内訳なんか知る必要ないだろ、ホストはリソースの逼迫度に応じて割当てれば良い。ゲストは割り当てられたリソースの中でやり繰りする。 >>931
> free の出力の見方も知らないやつが絡んでくるなよ…
> 1GiBも使ってないだろ
WSL2の話なら、俺はこんな感じだな
total used free shared buff/cache available
Mem: 24Gi 91Mi 22Gi 0.0Ki 1.9Gi 23Gi
Swap: 7.0Gi 0B 7.0Gi
キャッシュとして1.9Giバイト使ってる
Linuxとしてはキャッシュデータで埋められているから空き容量として扱うだろうけど
キャッシュデータとして意味があるから、Windowsから見れば使用容量にあたる >>938
> ゲスト側の内訳なんか知る必要ないだろ、
あるぞ。俺はメモリの少ないMac BookででDocker使ってるんだが
Dockerは当然仮想マシンなので、一定のメモリを割り当てないといけない
Dockerで動くアプリを起動したときは当然メモリが必要だが
そのアプリを起動してないときはメモリは必要ではない
しかし仮想マシンなので常に一定のメモリ量を割り当てないといけない
そうするとホストで使用できるメモリ量が減る
ホストはゲストが使用するメモリ量だけを与えるのが理想
だからゲスト側の内訳を知ることは重要なこと
WSL2はLinuxカーネルに手を入れるわけだからいずれそれが出来るようになるだろう >>938
マジで理解してないなら黙ってなよ…
Linuxは空いてるメモリーがあったらキャッシュに使う、もちろんLinux側でメモリーが逼迫したらキャッシュに割り当てたメモリーを使う
ホスト側からはキャッシュに使われてるのかアプリとかで使われてるのかはわからないから
> ホストはリソースの逼迫度に応じて割当てれば良い。
なんてことはできないんだよ >>939
空き容量freeはtotalからusedとbuff/cacheを引いたもの
cacheを空きと見てない
要は実際メモリを消費してるからその分ソフトウェアでどうこう
できる問題ではない まさかLinuxでWindowsのキャッシュメモリを扱うとか変態的なことはしないだろうな WSL1とVirtualBOXのゲストにUbuntu入れてるノートPC使いの俺がサイツヨだな!
DEなしならメモリの割当が1G切ってもけっこうさくっと動くぞ、Ubuntuは。 >>945
ハードウェアリソースとやらが何を指してるのか知らんけど今はメモリーの話ね >>944
そういう話ならWSL2のメモリ割当を最大1GBにすれば同じこと WSL2入れたらVMwarePlayer動かんくなったわ
ゴミだなこれ >>948
ハイパーバイザー プラットフォームは入れた? >>949
ありがとう
有効化してるけどVMwareのインスタンス立ち上げる時エラーになるんで結局WSL2の方止めちゃった レス数が950を超えています。1000を超えると書き込みができなくなります。