【Bash】Windows Subsystem for Linux【WSL】9
■ このスレッドは過去ログ倉庫に格納されています
ついに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/ WSLからWindowsのファイルシステムにアクセスするのは遅いな
WSL1も遅かったがWSL2はもっと遅くなってる
find -L(シンボリックリンクの解決)を使うとfindよりも極端に遅くなる
Windowsのファイルシステムにアクセスしない場合はWSL2は十分速いんだが 公式でもwindowsのファイルシステムでは使うなって言ってるね
なんかデフォルトのファイルシステムサイズが小さいのか、すごく大きなファイルはディスク一杯!って出て作業できないや
メモリー増やさないと駄目かも WindowsからWSLのファイルシステムアクセスは実用的ですか? wsl2で振られるvEthernetのアドレス、範囲を指定したりすることってできます?
うちの会社結構広大なプライベートアドレスを使っていてかぶることがある。
近接しているwslの方が優先されるし、そのアドレスでLAN側に出ていくことはないので、ほとんど実害はないのですが、
そのアドレスが通信が必要な実ホストと万が一かぶるを面倒になりそうで。 windows用のbusyboxでも日本語が理解できて感動 >>>993
>お前が言ってるのはDockerがあればLinuxは不要と言ってるのと同じことだぞ
>LinuxでもDockerは使える。Dockerコンテナの中に作業データ全部入れてしまえば
>ホストのLinuxでやることは何もなくなる
>デスクトップLinuxを使ってCUIでやることは全部Dockerでやればいいと
>お前はいいたいのか?不便すぎるだろう
DockerがあればLinuxは不要とか俺が言ってることと真逆のーじゃねーか
Dockerじゃ簡単にできないこと、つまりシステムのコンテナ化がDockerとは別に必要なんだよ
LXCとかフル仮想化のことな
WSL2にはそれを期待したんだがsystemdがサポートされてないからクソ中途半端
こんな出来ばえならDockerで十分だ >>9
systemdはWindowsのサービスで置き換えられるだろ
Linuxだからって全部がsystemdを使うわけではない
Windows版Linux(=WSL2)はサービスを使うだけの話
OSはWindowsだってわかってんのか? >>11
ほーら反論できなくなったw
WSL1もWSL2もWindowsにLinuxに変えるものじゃなくて
Linuxアプリを動かせるようにするものだって
理解してないからそんなアホなことを言うんだよ
WSLはお前のためのLinuxお勉強環境じゃないの
それでお前は俺の質問に答えてない
Linuxを使う時、お前はホームディレクトリに何も置かないのか?
Linuxを使う時、GUIデスクトップ+Dockerの中だけで作業してるのか?
あ、systemdだけ使うんだったなw >>12
めちゃくちゃすぎて反論もクソもないわ
systemdをWindowsサービスで代替する具体的な方法を出してみろよ >>12
>Linuxアプリを動かせるようにするものだって
だからそう言ってんじゃん
Linuxアプリ動かすだけならDockerで十分だろ
Dockerはアプリケーションコンテナなんだからよ
>Linuxを使う時、お前はホームディレクトリに何も置かないのか?
>Linuxを使う時、GUIデスクトップ+Dockerの中だけで作業してるのか
ホームディレクトリにファイルは置いてるがべつにホームにこだわる必要はない
必要なファイルは作業用のコンテナにマウントすればいいだけだからな
Dockerでできる作業は全部Dockerだよ
これはLinuxでもWindowsでも同じ
んでWSL2でやるような作業って全部そういうDockerだけでできる作業なんだよな
Dockerにできないあるいは難しい仕事をやろうと思ったらsystemdなどを動かしてアプリケーションではなくシステムを切り出すしかない >>14
> Linuxアプリ動かすだけならDockerで十分だろ
> Dockerはアプリケーションコンテナなんだからよ
DockerはLinuxアプリを動かすためのもの
WSLはWindowsにLinux相当のCUIを導入するもの
理解できた? >>16
CUIもDockerで十分
所詮はbashっていうアプリだからな lsをDockerコンテナで実行しても
ホストのファイルシステムは見れないしなw >>18
だからsystemd使わないでいいだろ
Windowsなんだから、Windowsの流儀でやれ >17
> 所詮はbashっていうアプリだからな
だからその理屈なら、お前はLinuxデスクトップを使ってる時に
bashを起動したかったら、dockerを使えって言ってるの
コンテナの中しか見えないがなw >>20
意味わからん
Windowsの流儀でやるならWSLも要らんだろ
PowerShell使えば? >>21
Linux使ってるなら普通にbashでもコンテナでbashでもいい
Windowsならコンテナで十分
あえてWSLにする意味はない >>22
> マウントしろ
だから、お前がLinuxデスクトップでbashを使う時にでDockerにマウントしろ
俺はそんな面倒なことはしない
> Windowsの流儀でやるならWSLも要らんだろ
だからWindowsの流儀で劣っていたCUI環境を
大幅に改善させたのがWSLだっていってんだろ
> PowerShell使えば?
それも使えるし、なんでも使えるw >>24
> Linux使ってるなら普通にbashでもコンテナでbashでもいい
だからLinuxユーザーに言ってきなさい。
bashはDockerコンテナで動かせって(笑) >>25
面倒じゃないからDocker使うわ
WSLはコンテナと違ってイミューたブルじゃないから管理めんどくせんだよね
Windows上でならPSのほうが遥かに強力なCLIだぞ?
PSに比べたらbashとか貧弱すぎるわ >>26
言うまでもない
わかってるやつはみんなコンテナ使ってる うざいからスレ立ててきた
そっちでやれ
bash(すべてのCLIコマンド)はDockerコンテナで動かすべき
https://mao.5ch.net/test/read.cgi/linux/1608643209/ ここまででWSLを使うメリットまだ1つも出せてねえぞ?
そんなんで大丈夫か? だからWindowsのCUI環境をLinuxデスクトップ並にすることだって言ってんだろw >>31
劣化してんじゃん
WindowsをCLIで動かしたいならPS使えよ 結局お前は「Windows上に強力なCLI環境を載せたい」んじゃなく「Linuxでbashを使いたい」だけなんだよ
WSLはVMだからホストWindowsのコントロールなんてろくにできない
そんな環境で普段使い用のターミナルを整備したって意味ないの
WSLでbash使うんだったらコンテナでbash使うのと変わらん
ならイミュータブルでより便利なコンテナで十分だ WSLの登場ですっかり様変わりしてしまったが
なぜsystemdが使えないはずのmacOSが開発者に人気だったかと言うと
CUI環境が強力なデスクトップ環境だったから
そこにWSLの登場でmacOSよりもCUI環境が快適なデスクトップ環境が登場した >>32
> WindowsをCLIで動かしたいならPS使えよ
両方使えるだろ
だからもうLinuxデスクトップを使う意味がなくなったんだよ >>33
> 結局お前は「Windows上に強力なCLI環境を載せたい」んじゃなく「Linuxでbashを使いたい」だけなんだよ
俺が「Windows上に強力なCLI環境を載せたい」といっていて
お前が「Linuxでbashを使いたい」だけといってる
ウソを付くのはやめろ > WSLはVMだからホストWindowsのコントロールなんてろくにできない
WSLからWindows用のコマンドはすべて動かせる
Dockerじゃできないなw なんだw 自分からWSLのメリット言ってしまってるじゃんw
DockerからホストWindowsのコントロールはできないが
WSLからならWindowsのコマンド(cmd.exeなど)がすべて実行できるので
Windowsのコントロールが出来る >>34
まったくズレてる意見だ
MacのCLIはMacコントロールできた
WSLはWindowsを満足にコントロールできない
多少はできるかもしれんがその目的ではPowerShellのほうが遥かに優秀
結局のところWSLでできことは隔離されたLinuxサンドボックスでCLI作業することだけ
そんなんだったらコンテナで十分なんだ >>36
Windowsに強力なCLIを載せたいならWSLじゃ無理だから諦めろ
あれはWindows載せたLinux VMにアクセスするためのCLIであってWindowsに乗せるCLIじゃない > MacのCLIはMacコントロールできた
> WSLはWindowsを満足にコントロールできない
できるっていってるだろうが。reg.exeだって実行できる
アホか PowerShellスクリプトだって動く
逃げるな呼ばーかw WSLからコントロールできないWindowsの機能を言ってみ
https://www.atmarkit.co.jp/fwin2k/operation/xpsp2dep02/xpsp2dep02_04.html
GUIではなく、コマンドラインでWindowsファイアウォールを操作するには、
netshというシェルを利用する。まずnetshを起動後、firewallコンテキストに切り替え、
各種のコマンドを実行する。具体的には以下のようにすればよい。 >>37
powershellより遥かに貧弱なCLIでやる意味がない >>43
LinuxユーザーにPowerShellのほうが優れてるぞー
LinuxでもPowerShellつかえよお前らって言ってこい bashとpowershellは思想が違ってるから使い分けるものだって理解できない時点でアウト
もちろんWSLからpowershellは実行できるw WSLからnetsh.exeは普通に起動できるけど
Dockerコンテナからnetsh.exeを起動できるのかな?w
マウントすればファイル見えるんでしたよねwww >>42
手始めにWSL2ターミナルからコマンドレット直接呼び出してみて
Windows操作はPowerShellコマンドレットが最も充実している
これができないんじゃ力の大半を奪われたも同然 >>47
直接呼び出さなければ使えると認めましたねw
つーかお前はPowerShell信者のようだが
俺はbashの方が使いたいんだわ
bashからWindowsのexeコマンドを呼び出す
これが出来るからWSLは便利
「お前」はPowerShell信者のようだがなー!(笑) >>44
Linuxで必ずしもPowerShellが上位とは限らない
Windowsコントロールという大きウェイトを占める機能が意味をなさないからだ
Linuxでは文法のリッチさ、.NETクラスライブラリ、オブジェクト指向というメリットと動作の重さなどバランスをかんがえて選ぶ必要がある >>48
powershellではなく「コマンドレット」な
WindowsをコントロールするCLIは今やコマンドレットが第一級市民だ
これが使えないのではターミナルとしては飛車角落ちと言わざるを得ない
まあLinux VMを操作するだけなら要は足りるのかもしれんがね
普段使いのターミナルには程遠い >>49
皮肉もわからんのか?w
お前がPowerShellはーPowerShellはーって言ってる
と指摘してやってるだけなんだがw
Windowsは両方使える
お前がもしPowerShellよりもbashの方が優れてると少しでも思っているなら
WSLはそのbashを手に入れたということ
もちろんWSLからWindowsのexeコマンドを実行できる >>50
> これが使えないのではターミナルとしては飛車角落ちと言わざるを得ない
そういってるのはお前ですよね?
Windowsはどちらも使えると俺は言ってる
お前は、どうしてもPowerShellじゃなきゃいけないようだがなw WindowsでLinuxのコマンドが使えるのが便利だけど、それを認めたくないバカがいるのあかぁ。
ほんとLinuxは始まる前に末期だなぁw 気軽に環境構築したり壊したりできるのが魅力だと思ってたが違うのか Dockerはアプリを配布するために使うもの
Docker使ったって環境構築を気軽にできるわけがない
自分で作らないといけないんだから
使う目的がぜんぜん違う
そんなにDockerだけでやれるっていうのなら
「Dockerコンテナの中から」ホストのsystemdの設定でもすれば?
Linuxならsystemd動くでしょう?w
WSLならWindowsのサービスの設定(sc.exeコマンド)を実行できるけどねw >>51
まだわからねえのか
powershellではなくコマンドレットをWSLbashから直接実行してみろっていってんだよ? >>53
Linuxコマンドはコンテナで使えばいい >>56
だからなんでお前はPowerShellに固執してるの?
俺らがやりたいのは、bashでWindowsを
コントロール(正確にはexeコマンドの実行)することなんだが? >>59
コントロールするためのコマンドレットをbashから打てないだろ
WSLなんつう余計なレイヤー追加してできることを減らすとか笑えん >>60
おまえが主張するDockerコンテナからはどうやってもコマンドレット打てないだろ
だいたいWindowsをコントロールするもが目的であって
コマンドレットはその手段の一つでしかない
思いつきで文句いうんじゃねーよ
WSLならbashからexeを実行できてWindowsをコントロールできる
Dockerコンテナでは不可能なことだ あとはっきり言っいてやる
PowerShell使いたいのもコマンドレットを使いたいのも
それを言ってるのはお前だからな
こっちはWSLでWindowsと連携できる形で
bashが使えると喜んでいるというのにw WindowsとLinuxのイイトコドリが安定して出来るWSLは超便利っていう結論はひっくりかえせませんw なんでそんな必死なんだろう
Linuxの低レイヤー環境が必要なら用意すればいいしお手軽環境ならWSLがいい
なんでそこでDockerが出てくるんだ Winクライアントで動かすDockerなんてお手軽で便利なテスト環境でしかないだろ。
なんでそこまで宗教論争するのか理解できない。 Dockerを勘違いしてるのか、WSLをけなしたいのかどっちかなんだろうな
WSLがmacOSの対抗技術として導入されたようなもんだろ
macOS、systemd動きますか?動きませんよね。
それでもLinuxに近いCUIがあったから開発者に人気があった
Docker出たからmacOSのCUI、Homebrewはもういらないといいますか?
いわんだろ。WSLはiTermとHomebrewよりもよりよい対抗技術
Dockerの中でlsしたって見えるのはコンテナの中だけ WSL(2)が便利だと困る人が、随分前から潜伏してるよねこのスレ。 そういや噂されてるAndroidアプリ実行環境ってWSLベースなのかな >>68
いるねぇ。完璧すぎるからケチつけるのが大変そう。 前にも同じパターンの流れ見た気がするが同じ奴じゃないか
相手しなきゃいいのに WSLの話題続くと死んじゃう心の病気のヒトなんだろ。
俺は雑食系で便利と思ったモノはどんどん使うんで、WSLは重宝してるよ。 Windows 10 Home 版に、WSL2, Docker を入れた
OS の連続アップデートに、3時間掛かった。
CPU-i3, 8GB メモリを、電力エコモードで使っているから、コンパイルが遅いのかも
その後、WSL1 から、WSL2への変更。
Dockerのインストール自体は簡単だった
これで、Windows10 Pro 版じゃなくても、Dockerを使える。
Kubernetes も入っていた
これで、VSCode のRemote WSL, Remote Docker で開発できる
むしろ今では、立場が逆転して、Linux を分かっていない、Mac ユーザーの方が情弱w >>74
WindowsをGentooだとでも思っているのか?
Windows updateにコンパイルなんて無いぞ。 Linux使ってる理由はwin10を使いたくないからなので
win10でLinux環境を作れてもwin10を使うことはないのね
まぁ人それぞれだろうけど
少なくとも自分はそんな感じ >>76
そういう人って結構いるらしいね
Linuxを使いたくて使ってるんじゃなくて
Windows 10が嫌だから消去法でLinuxしか残らなかっただけ Linuxデスクトップでいいよね
なんでわざわざWindows Linuxデスクトップのいいところを言ってみてよw Linuxユーザーとは
@インストールしただけで選民思想
AやっていることはWindowsと同じ。しかもめんどくさくなっただけ。
Bコマンド打ち込んでプロだと勘違い
C新参に対して黙ってWindowsでも使ってろと間口を狭める
Dカーネルいじればいいだろと無茶を要求
E開発者とのずれを認識できていない
FWineを使うくせにLinuxを再現しようとする動きがあるとたたく
Gプログラミングできないのにソース要求する
H何でもオープンでないと、気に食わないエセ共産主義者
IWindowsユーザに馬鹿にされてることに気づいていない
JAndroidの事例をを引っ張り出して、「Linuxは普及している」と虚勢を張る
KAndroidのセキュリティ問題を指摘されると、Androidはぃぬx(笑)ではないと言い出す。
L結局普及してない点を指摘されると、「別に普及しなくていいよ」と思考停止
M三度の飯よりアップデートが大好き、コンパイルが大好き、カスタマイズ大好き
NOSを弄ることがゲームと化しているので、ゲームソフトが必要ない >>82
Windowsを使う上でのあらゆる苦痛から解放される WSLは260文字を超えるファイルパスを普通に扱えるので助かる。 >>83
スゲーな
俺そんな事考えるエネルギー持ち合わせてないわ
有る意味裏山 ただの慣れの問題
WSLで間に合っちゃってるので
最近素の*nixは使ったことない 正直virtualbox virtualpcで仮想環境つくるほうがいい
一般人にはメリットないわ 今時VirtualPCなんか使ってる奴いるのか?
知識が15年か20年くらい昔のまま止まってねーか? >>84
やっぱりLinuxのいいところってないんだね >>91
だからそれはWindowsがいやってだけで
Linuxが良いと言ってるわけじゃないでしょw >>93
Windowsにおける苦痛な点がないというのは立派な利点でしょ >>76
そういう理由なら貢献の意味も含めてOpenIndiana やGhostBSD を使おうよ >>95
苦痛がないならどのOSでもいいってことでしょ?
とくにLinuxを選ぶ理由がない 正直、Linux は個人で普段使いしたくない程度には苦痛を感じるかな
(仕事だから我慢している)
Windows なら脳死で Windows Update しても問題になることは少ないけど、
Linux なんて、dnf upgrade (apt でもいいが) したら、
必ずログ確認して、エラーが発生していないかとか、
設定ファイルが新しくなったから確認とか、
くだらないところでやることが多過ぎる
とりあえず、Update ボタン押してリブートしたら万事 OK くらいの完成度になってから出直してほしい Linuxはうぶんつ使ってるけど、virtualboxに入れて共有フォルダで作業してるわ。
WSLで共有フォルダで作業することもあるけどテラタームでログ取りしながら動かすことのがおおいかな。
出力結果がそのまま保存できるのは便利。
共有フォルダなんで、Windowsの多彩で使い勝手のいいアプリもそのまま使えるし、イマイチ・イマニのLinuxアプリを我慢して使わないのが良い。 >>97
どのOSでもいいけど現実的な選択肢は多くない
Mac、Windows、Linuxあとはマイナーな一部のOS
マニアじゃなければ最初の3つのうちどれかだろ
で、この中で比較したら苦痛が少ないのはLinuxということになる フル仮想化インスタンスとオーケストレーション基盤
WSLに足りないのはこれ ■ このスレッドは過去ログ倉庫に格納されています