【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/ そりゃまあ、WindowsでLinuxが動くという話ではなくて、
Windows自体がLinuxカーネル相当の機能を備えただけで
Linuxを使わずにWindowsでLinuxアプリが動いてる状態ですから
当然では? マルチメディア系は普通にLinux使えよ。
もしくはHyper-Vに突っ込む。 サービス関連周りのコマンドが通らなかったり、本物と差がある部分を列挙して欲しいな
それと結構頻繁に初期設定が変わっていて、一度できたことが他のPCでつまずくとかそう言うのやめてほしい >>560
何度も言われてるようにWSLはLinuxじゃなくてLinuxアプリが動くものですから
つまりね、Linuxが起動してターミナルを開いた状態と
Windowsが起動して(WSLの)ターミナルが開いた状態。
このターミナルが開いた状態から両者は同じになるの
WSLはターミナルだよ。Linuxアプリが動くターミナル > それと結構頻繁に初期設定が変わって
なんのことかわからない、WSLとは全く関係ないはなしだろ またWSL1なのか2なのかはっきりさせずにレスバ突入 WSL2はまだリリースされてないんだから、今はデフォルトWSL1だろ
それはともかく仮想マシンにInsider Preview入れてるけど
WSL2はアーキテクチャが違うのにWSL1と同じように使えるね
あれもLinux "カーネル" を使ってるだけで、ディストリそのものではない。
「WSL2でUbuntuを使っている」と言ったとしても、Ubuntuのサービスが起動するわけじゃない。
Ubuntuの起動プロセスはすっ飛ばしてる。
(だからUbuntuを仮想マシンに入れるよりもずっと起動が速い)
WSLはUbuntu以外にもDebian等、複数のディストリを使えるが
仕組み的にはWSL2で動かす全てのディストリが単一のLinuxカーネルを使っていて
Ubuntuのターミナルを開かなくても裏で単一のLinuxカーネルは起動してる。
(これも起動が早い理由)
ようするにLinuxコンテナの仕組みを使ってるんだわ。
だからWSL2でも「WSLのターミナルを開いた状態」=「Linuxが起動してターミナルを開いた状態」というのは同じ 俺はWSLでもWSL2でも構わんのだが、Linuxで(Ubuntuで)使ってるアプリがWindowsPCで使えてデータ連携が簡単にできればそれでいい。
アプリ使うだけのライトユーザーだし。 アプリが何を指すのか知らないが、
GUIアプリであればWindows版を使う。
GUIアプリならWindows版はほぼ確実にあるから
Linuxに求めるのはWindowsにはない(あってもLinuxのものとはかけ離れてる)
CLIコマンドとその実行環境であるターミナルで、Ubuntuで使ってる
CLIコマンドがWindowsで連携できて便利に使えればそれでいい。
という人が一番多いと思うわw
一時期MacがもてはやされたのもmacOSのGUI + ターミナルでCLIコマンドが
使えるという点だし。むしろBSD系のコマンドであるmacOSよりも
Linux(GNU)のコマンドのほうが高機能で普及してて使いやすい。 まあ結局MacもHomebrewなんかでコマンドをGNUのに入れ替えしないと
つかいものにならんし
UNIXマシンとして考えるといまのMacは使いにくいよね
rootlessもきもいし FreeBSDも同じだったな
ports/pkgでGNU尽くし WSLのターミナルって、タイトルバーが起動した直後はディストリ名になってるのに、
いつの間にか変なのになってるって思ったら、どうやらWindowsのexeを実行したら
その実行したコマンドのパスになってるみたいなんだけど、これ俺だけ?
例えばcmd.exeを実行するとC:\WINDOWS\system32\cmd.exeって表示される
これ戻す方法ないの?見た目の問題だけだから別にいいんだけどさ node.exe
> .exit
終了すると、タイトルは元に戻る >>556
グラボやサウンドチップを模擬したものだろうね いずれは有望だろうし、安いノートでもUbuntuが保証範囲内で動くってのは素晴らしいけどね
ただまだ実用にするには怖くて、とりあえずMacを使っておくか、仮想環境のUbuntuを使うかにしておいた方が安全だろう >>557
Raspberry Piの音をPluseAudioで飛ばしてWindowsマシンで鳴らそうと思って
いろいろ試したがVMwareの仮想環境にLinux入れて
それで受けて鳴らすのが一番いいという結論に至った >>565
CygwinならXも使えるし、LXDEなどのデスクトップ環境も使えるぞ それなら、Cygwin/X + WSLでいいんじゃね? VcXsrv入れればいいだけなのに
当然 Xfceなども動かせる VirtualBoxやVMwちすいなら小細工しなくても普通のパソコンだよ >>576
WSLのおかげでXサーバの需要ができてこういうのの開発が進んでいくんだろうな
そしてLinuxのデスクトップ環境も普及していくと だからデスクトップ環境はいつまでもWindowsの後追いから抜け出せねぇんだよな。 https://mao.5ch.net/test/read.cgi/linux/1548776755/26-27n
26 login:Penguin2019/04/08(月) 12:51:19.40ID:pOf/Q0Ti
あの頃(どの頃)、Compizとかで無意味にグリグリしてたのってなんだったんだろうな
27 login:Penguin2019/04/08(月) 14:19:26.03ID:LEsHZ2MF
>>26
MS「これからはGUIの処理にGPUを使用します。」
アンチ「デスクトップが立体になるのかよwww」
Linux「俺らのほうが進んでるし(グリグリ)」
MS「お前らそんなのが使いやすいと思ってんの?GUIのレンダリングを
高速化するために、パワー有るGPU能力を使うだけだよ」
アンチ「あっ」
Linux「あっ」
こんな感じ windowsの後追い?
そんなの思想のdeがあっても俺は使わないし、windowsが良いならwindows使うよ。 Vistaや7のDWM環境でガウスぼかし使ってるのを
無駄な高負荷!これだからMSは!!…とか難癖つけてたのは覚えてる
まあWindowsは何だかんだ言ってExplorer(ファイラー/シェルの方)の出来が化け物 windowsの無駄に重い装飾は嫌いだが
タイトルバーや窓枠のガウスぼかしに関してはすごく有用で重宝してた
8以降で無くしたのほんまクソ >>582
ネイバーしか関知しないファイル共有(SMB)と無駄にインデックス蓄積するところは無能だがな。
ssdは関係ないがHDDのシークを考えたとき、ファイル数の少ないLinuxがいいな。今のWindowsはssd/gpu込みの考えだろう ピロピロピロピ ;ハヽ/::::ヽ.ヘ===ァゴーウィゴーウィヒカリッヘーYOゴーウィゴーウィシンジッテー
ヒーメターオモイ;{::{/≧===≦V:/;ツーヨーサニーカエテデュッウィーヴェヴェーヴェw
ゴーウィゴーウォ;>:´:::::::::::::::::::::::::`ヽ;YOゴーウィゴーウィムカおっおっ(^ω^)(ムカおっおっ)
アーケナイヨ;γ::::::::::::::::::::::::::し:::::::::::ヽ;アーラータナールヨアケッヲーヴォヴォヴォヴォw
ウーシナ _;//::::::し::::::::::::::::::::::::::::::::::::::ハ;ナニカウォマナブソーンナコートーワカアッテイルケド
カーナシミ;| ll ! :::::::l::::::/|ハ::::::::∧::::i :::::::i;ワスレタサヴァイダレガオシエテクレルワケダーンw
スベテヲ;、ヾ|:::::::::|:::/`ト-:::::/ _,X:j:::/:::l;カラダガオイツカナ-イクラッシュマイハート
ダケドマ;ヾ:::::::::|V(◯) !V(◯)/::::/;オージケツクラーイ(クラーイ)イマコソタチアガーッレー
ゴーウィゴ-;∧::::ト “ ,rェェェ “ ノ:::/;YOゴーウィゴーウィシンジーテ(シンジーテ)
ツーヨーサ;/:::::\ト ,_|,r-r-| ィ::/::| ;ゴーウィゴーウィミライッヘーYOゴーウィゴーウィムカ
アーケナーイ;/ ヽ;アーラータナルヨワケッヲーアヴァヴァヴァヴァw wslpathって/initへのシンボリックリンクだったんだなw これからはLinuxは独立したOSというよりもJava環境や.NETと同じようにwindows上で動作するプラットフォームとして定着して、WSLを前提としたwindows向けソフトも多く出てくるだろうね WSLを前提としたLinuxツールなら見かけたけどね。たしかQiitaで web系エンジニアはMAC買えみたいな風潮は変わりますか? MacがARMになったらとりあえずMacを買って後でWindowsを買うかどうか決めろとは言われなくなるかも 既にsnapdragon版のwinndows出てるし意外とその時はarm版macでも普通に動くかもよ MacがARMになって困る層ってどんな分野だろうか
映像業界か? 映像もそうだけどグラフィックデザイン系はみんな面倒なことになるんじゃないの
webはOSSで周ってるから余裕だろうけど CPUのアーキテクチャなんて何でも変わらんと思うよ
単にグレード・値段の高低があるだけで x64と64ビットARMだとx64のがレスポンスが良い。
64ビットARMがx64と同じクロックで動ければ話しは違うんだろうが。 基本的な命令セットしか使ってなければ互換性は高いけど、
AMDとintelの間ですら最適化まで考えると大変なんですが >>594
自分も変わって欲しい、軽いSurface Proの方が正直持ち運びにいいから外に持ってく時にはそっちの方がいいんだよね
iPadがMacOSだったらまた別なんだけど
WSL2の使い勝手に凄い興味がある WSL2は仮想マシンを使ってると言うけど、
カーネルと仮想マシンに手を入れてるから全然別物なんだよね。
仮想マシンの一番の問題点であるメモリ使用量を減らすことに成功してるようだし
複数のディストロ使ってもWSL2で使用するカーネルはたった一つで
常に起動した状態だから、仮想マシン起動待ちなんてのはほぼ無いに等しいし Dockerに近いというかMSが正式にDockerサポートしてくれればいいのに。
もとのWSLとは住み分けは出来るはず。 Dockerを買収でもしない限りそれはないでしょw
まあ今のMSなら買収する可能性もあるわけだが
> もとのWSLとは住み分けは出来るはず。
そもそもWSLとDockerは全くの別物
WSLはLinuxカーネルを提供するもので、
DockerはLinuxカーネルのコンテナ機能を利用して
コンテナイメージ開発と起動を行うためのツールだから まあ、WSL2ならDocker使えるからもうそれでいいけどね。 DockerならDocker Desktopで今でも使えるじゃん?
WSL2によるDockerはメモリが効率よく使えるとか
起動が早いってメリットだと思うが。
あぁ、あとボリュームの扱いが今よりましになってればいいな Hyper-Vは気にしなくていいよ。
Dockerはアプリの配布を楽にするもので
仮想マシンとは関係ないから。
WindowsがLinuxじゃないからHyper-VでLinuxを
動かしていたってだけで、Dockerコンテナイメージを作る
っていう作業はLinuxじゃなくてもできる。 そりゃライセンス的に問題ありだな。
VMwareなら出来るらしいけど。 VirtuialBoxやVMwareも使いたいねん
Hyper-V混ぜるとややこしくなるねん DockerのせいでHyper-Vは必須になってしまったので
VirtuialBoxやVMwareは諦めてる。
そのうちHyper-V上で動くようになるだろう あってると思う。
Androidエミュ(AVD)も昔はHyper-Vと共存できなかったけど、Hyper-Vベースに変更されて共存できる様になったしね。 これからエンジニア目指すつもりだけど買うのはwindowsノートでも大丈夫??
ここにあるmacの利点ってWSL2あれば十分そうだけど。。。
https://itpropartners.com/blog/8122/#Mac 久しぶりにWSL2入れてみたらすげえ快適になってる。
VcXsrvも動く! >>617
ボヤッとしてるなあ
iOSアプリもやるならmacが無難 vmwareはhyperv有効になっていても使えるようになったのでは
vboxは開発が追いついていないらしいが VirtualBoxも6からHyper-Vと共存できるようになったんじゃなかったけ?使ってないから知らんけど VMware Workstation
→次期バージョンで対応予定(年末頃ベータ公開見込み)
VirtualBox
→6からHyper-Vが有効な時はハイパーバイザーはHyper-Vを使うようになった
ただ出来はまだまだ(期待通りに動かない場合がある)
だったはず
WSL2は本当にカーネル共有してんのね、dmesgに同じメッセージが表示される
カーネルモジュールロードしたらどうなるかお試し中 WSL2はサクサクになった。Xアプリもストレスなく動くな。
こっちが本命か・・・ うちのWSL2何故かまだLocalhostが使えない localhostつうか、WSL2とホストのWin10とのマッピングだぞありゃ。 本物のLinuxカーネルを使うことにしたら互換性が上がって速くなりましたって
当たり前すぎて技術的には全然面白くないな 面白くないけどそれが最適解だったんだから仕方ないね >>627
そうとも言い切れないよ。
仮想マシンを使ってるので、Linux側からWindowsファイルシステムを
drvfs経由で参照すると遅くなってる。
ただし9pを使えばいいので大した問題にならなくなってるが
また、仮想マシンを使った場合の欠点である、メモリ使用量の問題
仮想マシンに一定量取られると言う問題を、Linuxカーネルに手を加えることで解決してる。
また仮想マシンを使うと言ってもディストリごとに起動するのではなく
全ディストリで一つしか起動せず、Linuxコンテナを使うことで共有するという
普通の仮想マシンとは違う構成になってる所も重要
これにより、仮想マシンにUbuntuを入れた時の、起動プロセスをまるごと省略できている
「仮想マシンを使う」と聞いてその後の思考を放棄してるようだが
調べてみると技術的に面白いことの組み合わせになってる。 initも全ディストロで共有なの?
WSL2でsystemdが使えるようになればよかったのだが >>630
WSLはWindowsのCLI環境の一つという扱いなのだから
Linuxそのものではない。
OSはWindowsでその中でLinuxコマンドが動くだけ 仕組み的にはLinuxコンテナを使ってるDockerと似た仕組みを使ってるんだよね。
DockerがUbuntuのDockerイメージを起動するのに時間がかからないのと同じで
WSL2もUbuntuの起動に時間がかからない。
Dockerは、すでに起動してるホスト(という呼び方は適切ではないが)の
Linuxカーネルを共有してる。だから起動が速い
WSL2もすでに起動してるLinuxカーネルを共有するから起動が速い
しかも起動するのはLinuxカーネルだけで良いので、
CoreOS(Container Linux)のような軽量OSで十分なため
Linuxカーネルそのものも起動が速い。 >>630
恐らくバイナリは共有だね、ホスト上のカーネルと同じディレクトリにinitってファイルがある、インスタンスは別かな
/proc/mountsやdfコマンドで見ると、/initは9pでどっかからファイルをマウントしてるようなんだよね
ファイルをマウントとかできるんだねぇ
WSL2でのカーネルモジュールのロードは取り敢えずzfsが成功、Ubuntu側でロードしてAlpine側からlsmodで見えてた
うちでは19028辺りからWSL2は良くコケる…、一応フィードバック済み >>633
Linuxから見ると、/init がWSLの実体
/init自身が9pプロトコルを扱ってる
wslpathコマンドも/initのシンボリックリンク 個人的には今の時代になって9Pを引っ張り出してきたというのがWSL2のおもしろポイントだけどな
よくこの選択をしたよ >>635
9pはqemu/KVMで実績があったから採用しただけだろ 実績があったって話なら
他のプロトコルだって実績あるだろ Windowsで(おそらく)実績がない9pではなく
NFSとかCIFSとかあるだろう procfsやsysfsも公開できるからって話が前にスレで出てたような >>640
それただのネットワークファイル共有プロトコルじゃん 9pはネットワーク共有プロトコルだぞ?
https://ja.wikipedia.org/wiki/9P
> 9P (または Plan 9 Filesystem Protocol または Styx)
https://www.atmarkit.co.jp/ait/articles/1903/01/news043.html
> WSL$は、9Pと呼ばれるファイル共有プロトコルを利用する。 9PはNFSとかよりも抽象的なファイルも扱えるんだろ >>644
>9PはNFSとは異なり、キャッシュや、仮想ファイル(例えば、プロセスを表現する/proc)の提供も補助する。
>9Pが選ばれたのは、/procファイルシステムなどの疑似ファイルシステムを扱えるのが大きな理由だと考えられる。
なんでそれぞれの文章の直後にこう書かれているのにそこは無視するわけ? 単にネットワークファイルシステムだぞ
642が意味不明だ >>648
9pはvirtfsで使われているので「ただのネットワークファイル共有プロトコル」ではないが >>646
その記事を書いた人の考えてることを根拠にされても困るんだがw
WindowsからWSLの/procを参照できることがなんで重要なの? virtfsで使われてるただのネットワークファイル共有プロトコルだぞw >>649
意味がわからない
「ただの」になんかすごい深遠な概念が含まれてるのかも知れんが俺は脳を共有してないので説明されないとわからん 1. 9pはネットワーク共有プロトコルである
2. だがvirtfsで使うと、そのネットワーク共有プロトコルをネットワークを介さないで使うことができる
3. つまり9pはネットワーク共有プロトコルではない
4. だからvirfsを使わなくても9pはネットワーク共有プロトコルでなくなるのだ!
こういう発想かねぇ?
バカだな >>654
ホストとゲストでファイルシステムを共有するプロトコルの話でなかったらなんの話なの? >>656
ホストとゲストでファイルシステムを共有できるプロトコルには
NFSやCIFSなどがありますって話だろ ■ このスレッドは過去ログ倉庫に格納されています