【Bash】Windows Subsystem for Linux【WSL】9
レス数が900を超えています。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/ >>803
> すると、ソフトウェアベンダーはLinux用のソフトしか作らなくなるのでは?
> Linux用ソフトしかなくなった世界で、Windowsはどうなるだろう?
そのLinux用ソフトをWindowsで使うのでは?w
だってLinuxじゃWindows用ソフト動かないでしょwww WindowsがLinuxに侵食されるのを心配するより、chrome osに侵食されるのを心配したほうが良い。chrome osは管理が楽でAndroidアプリが動いて、最近学校に大量に導入されている。 Microsoft「だからクラウドにビジネスの主体を移動して
Windows 10の無料アップデートを実現したんだよ
普通に考えればOSの利益が減って損すると思うだろうが
MicrosoftのビジネスにとってWindowsはすでに重要ではない。
いつから計画して、いつ実現したのかわかるかな?」 やりがいのないLinuxプラットホームでソフトウェアベンダーがアプリをリリースする事は殆どないんだよなあ
ここは現実とかけ離れておかしくなっている奴が多いのか?w 依存地獄がなんてやってたら、常用環境がおかしくなったわ。
アプリ設定画面からリセットかけても初期化されないので削除するしか無かった。
再DLめんどくせーな。 Flatpak, Snap, AppImageとかElectron, PWAなんかでリリースすれば依存地獄なくなるんじゃね >>815
毎回フルパッケージでリリースって要領が悪すぎる
というかそれ以前の問題なんだよ >>816
あ、はい。手元にあるファイルとの差分だけを
ダウンロードする仕組みを作れってことですね GUIに対応しないと言っても、WSL1の初期からXVNCでも何でも好きな鯖入れて使えてたし
音が出ないも自分でPulseAudio入れてホスト(Windowsでも、他のLinuxホストでも)にリダイレクトするだけだったし
対応しない ではなく お前にはできない だっただけ。 なんちゃってユーザーだろ。
使ったこと無いと思う。 WSLはまだ使い物にならないから、なんちゃってユーザーが多い。 いやふつうに開発で使ってるって
ほんまこいつずっと何言ってんだ? WSLが使える道具だってわかったら困るんだろ?
志賀なんとかスレで荒らしてるやつが
ここにも来てるみたいだし 「ぼくの書いた記事を読んだのだろうけどあれでは使えない、なぜなのかはお前が書け」
「ぼくがデスクトップ画像を貼ったらピタッと止まった」
「彼らには使えているはずがない」
これ追い出さないとダメな奴 単に自分のものさしでしか物事を測れないってだけだと思う。実機に勝ものなしっていう、ものさし。 実機だとドライバ周りやらグラボまわりやらで要らねえトラブルおこるから、Linuxアプリ使うだけならWSLのが手軽まである。 Emacsを通してしかLinux使ってないから、WSLで十分なんだよな。VcXsrvでWindowsの一画面として動くし。
デスクトップ環境なんて必要ないから、かえってスッキリしていい。起動しているプロセスも数えれるほど。 >>829
ちょっとだけLinux使いたいって人には最適解ですね。特にWSL1はね。
mingwでうまく動かないときに使ってる。 WSLの前はCygwinでgnupack使ってたんだけど、遅かった。特にmagitは使い物にならないくらいに。forkエラーも時々出て途方に暮れた。WSLでそれらがみんな解決した。 >>830
ちょっとだけでなくガッツリ使ってるよ。 Linuxアプリが動くだけじゃなくて、環境が標準化されてるっていうのがいい
WSLという形で、仕様が決まってるから
アプリも対応しやすくなる
さっき作ったシェルスクリプトは、外部コマンドとしてあるバイナリを
内部で呼び出すんだけど、Windows用バイナリでもLinux用バイナリでも動くようにできた
Windowsメインで使ってる人は、exeをダウンロードするだろう、そしてそれを使える
WSLメインで使ってる人は、Linux用をダウンロードするだろう、それも使える
どちらでもよい WSLはGNU/Linuxのディストリビューションが使えるのがいい。MacなどのBSD系のUNIXはコマンドのオプションが微妙に異なっていて、作ったスクリプトなんかをLinuxサーバーに転用できない。DockerもLinuxをベースとした技術だし。 だから Mac用にWSL2を作らないかな?完全互換で
仮想マシンだから作れるやろ? >>835
異なるオプションを持つ同じ名称のコマンドが混在して混乱しそう。WSLはUNIX系のOSじゃないWindowsで動くからいいのかも。 >>836
Mac版のコマンドは全て使えなくすればOK
つーかすでにLinuxのコマンドと混乱してる
すべてGNU版のコマンドに入れ替えればいいのに >>839
知ってる。GNU版のコマンドに入れ替えても問題なく使える。
だからWSL2と同じようにLinuxカーネルを動かす仮想マシンであらゆるディストリを
複数同居できるようにして、デフォルトでmacOS側のファイルシステムをマウントし
Linux側からmacOSのコマンドを実行できるようにすれば、macOS版のWSLが出来るはずなんだ
真のLinuxカーネルで真のLinuxディストリを動かしつつ
そのLinuxからmacOSを制御したい >>842
Linuxのコマンドと信頼性が高いUbuntuのパッケージが使える
macは/bin/shが古いbashなのも気に入らない >>843
bashが古いなら自分でソース取ってきてmakeすればいいじゃん >>845
シェルスクリプトの一行目には#!/bin/shって書くのが普通なんだよ
そして/bin/shは入れ替え不可能になってる >>847
> なんとなく思ったんだけど、MacでもDockerが動くんだよね。ということはLinuxカーネルは動かせる。
依存関係が逆。DockerがLinuxカーネルを使ってる。DockerにはLinuxカーネル含まれてないし、動かす仕組みもない
Linuxカーネルが動くから、Dockerが動くんだよ
勘違いしてそうだけど、MacでDockerを動かす仕組みはWindowsでDockerを動かす仕組みと一緒。
macOSもWindowsも「Linuxではない」からLinuxカーネルの機能はない。
だから仮想マシンの上でDocker独自の軽量ディストリでLinuxカーネルを動かしてる。
macOSでも仮想マシンを使ってるんだよ。
一応補足するとWindowsにはLinuxカーネルの機能はないと言ったが、
WS1では仮想マシンを使わずに、Linuxカーネル互換機能を提供するものだから
完璧ではないが今のWindowsにはLinuxカーネルの機能があると言える。
そして仮想マシンを使うWSL2ではDocker独自の軽量ディストリの代わりに
MSが作ったWindows公式の軽量ディストリを使うようになった
WSLでは複数のディストリを同時に動かせるが、WSL2で使うLinuxカーネルは一つしかない
共通のLinuxカーネルの上でDockerを含めた複数のディストリを動かすから起動も速くメモリ効率もいい >>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が使えればいいんだが レス数が900を超えています。1000を超えると表示できなくなるよ。