探検


【Bash】Windows Subsystem for Linux【WSL】9

■ このスレッドは過去ログ倉庫に格納されています
1login:Penguin
垢版 |
2020/12/10(木) 17:44:21.97ID:o6AATirQ
ついに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/
2020/12/10(木) 19:31:40.03ID:TB58pINX
WSLからWindowsのファイルシステムにアクセスするのは遅いな
WSL1も遅かったがWSL2はもっと遅くなってる
find -L(シンボリックリンクの解決)を使うとfindよりも極端に遅くなる
Windowsのファイルシステムにアクセスしない場合はWSL2は十分速いんだが
2020/12/11(金) 08:24:17.72ID:b4LJ8n00
公式でもwindowsのファイルシステムでは使うなって言ってるね
なんかデフォルトのファイルシステムサイズが小さいのか、すごく大きなファイルはディスク一杯!って出て作業できないや
メモリー増やさないと駄目かも
2020/12/11(金) 13:16:20.97ID:YPbJK/5K
WindowsからWSLのファイルシステムアクセスは実用的ですか?
2020/12/11(金) 17:44:39.56ID:L1NuDIfv
遅いだけで十分実用的
6login:Penguin
垢版 |
2020/12/12(土) 12:16:19.62ID:arkY6vfB
wsl2で振られるvEthernetのアドレス、範囲を指定したりすることってできます?
うちの会社結構広大なプライベートアドレスを使っていてかぶることがある。

近接しているwslの方が優先されるし、そのアドレスでLAN側に出ていくことはないので、ほとんど実害はないのですが、
そのアドレスが通信が必要な実ホストと万が一かぶるを面倒になりそうで。
2020/12/21(月) 20:11:02.52ID:x05TIYuR
windows用のbusyboxでも日本語が理解できて感動
8login:Penguin
垢版 |
2020/12/22(火) 18:31:45.38ID:5BrIzTyC
あげ
2020/12/22(火) 19:56:10.21ID:/HDWOBUs
>>>993
>お前が言ってるのはDockerがあればLinuxは不要と言ってるのと同じことだぞ
>LinuxでもDockerは使える。Dockerコンテナの中に作業データ全部入れてしまえば
>ホストのLinuxでやることは何もなくなる

>デスクトップLinuxを使ってCUIでやることは全部Dockerでやればいいと
>お前はいいたいのか?不便すぎるだろう

DockerがあればLinuxは不要とか俺が言ってることと真逆のーじゃねーか
Dockerじゃ簡単にできないこと、つまりシステムのコンテナ化がDockerとは別に必要なんだよ
LXCとかフル仮想化のことな
WSL2にはそれを期待したんだがsystemdがサポートされてないからクソ中途半端
こんな出来ばえならDockerで十分だ
10login:Penguin
垢版 |
2020/12/22(火) 20:50:01.02ID:5BrIzTyC
>>9
systemdはWindowsのサービスで置き換えられるだろ
Linuxだからって全部がsystemdを使うわけではない
Windows版Linux(=WSL2)はサービスを使うだけの話
OSはWindowsだってわかってんのか?
2020/12/22(火) 20:55:50.27ID:/HDWOBUs
>>10
もうめちゃくちゃだなお前さん
12login:Penguin
垢版 |
2020/12/22(火) 21:01:30.28ID:5BrIzTyC
>>11
ほーら反論できなくなったw
WSL1もWSL2もWindowsにLinuxに変えるものじゃなくて
Linuxアプリを動かせるようにするものだって
理解してないからそんなアホなことを言うんだよ
WSLはお前のためのLinuxお勉強環境じゃないの

それでお前は俺の質問に答えてない
Linuxを使う時、お前はホームディレクトリに何も置かないのか?
Linuxを使う時、GUIデスクトップ+Dockerの中だけで作業してるのか?
あ、systemdだけ使うんだったなw
2020/12/22(火) 21:15:33.20ID:/HDWOBUs
>>12
めちゃくちゃすぎて反論もクソもないわ
systemdをWindowsサービスで代替する具体的な方法を出してみろよ
2020/12/22(火) 21:22:12.64ID:/HDWOBUs
>>12
>Linuxアプリを動かせるようにするものだって
だからそう言ってんじゃん
Linuxアプリ動かすだけならDockerで十分だろ
Dockerはアプリケーションコンテナなんだからよ

>Linuxを使う時、お前はホームディレクトリに何も置かないのか?
>Linuxを使う時、GUIデスクトップ+Dockerの中だけで作業してるのか
ホームディレクトリにファイルは置いてるがべつにホームにこだわる必要はない
必要なファイルは作業用のコンテナにマウントすればいいだけだからな
Dockerでできる作業は全部Dockerだよ
これはLinuxでもWindowsでも同じ
んでWSL2でやるような作業って全部そういうDockerだけでできる作業なんだよな

Dockerにできないあるいは難しい仕事をやろうと思ったらsystemdなどを動かしてアプリケーションではなくシステムを切り出すしかない
15login:Penguin
垢版 |
2020/12/22(火) 22:06:24.53ID:5BrIzTyC
>>13
Windowsでbatファイルを自動実行したい時(タスクスケジューラの設定)
https://qiita.com/Richard_Roe/items/44e16841f16ee40c6113
16login:Penguin
垢版 |
2020/12/22(火) 22:07:15.71ID:5BrIzTyC
>>14
> Linuxアプリ動かすだけならDockerで十分だろ
> Dockerはアプリケーションコンテナなんだからよ

DockerはLinuxアプリを動かすためのもの
WSLはWindowsにLinux相当のCUIを導入するもの

理解できた?
2020/12/22(火) 22:08:21.08ID:/HDWOBUs
>>16
CUIもDockerで十分
所詮はbashっていうアプリだからな
2020/12/22(火) 22:08:43.64ID:/HDWOBUs
>>15
systemdじゃないじゃん
19login:Penguin
垢版 |
2020/12/22(火) 22:09:59.68ID:5BrIzTyC
lsをDockerコンテナで実行しても
ホストのファイルシステムは見れないしなw
20login:Penguin
垢版 |
2020/12/22(火) 22:10:26.17ID:5BrIzTyC
>>18
だからsystemd使わないでいいだろ
Windowsなんだから、Windowsの流儀でやれ
21login:Penguin
垢版 |
2020/12/22(火) 22:11:58.19ID:5BrIzTyC
>17
> 所詮はbashっていうアプリだからな
だからその理屈なら、お前はLinuxデスクトップを使ってる時に
bashを起動したかったら、dockerを使えって言ってるの
コンテナの中しか見えないがなw
2020/12/22(火) 22:14:36.78ID:/HDWOBUs
>>19
マウントしろ
2020/12/22(火) 22:15:26.60ID:/HDWOBUs
>>20
意味わからん
Windowsの流儀でやるならWSLも要らんだろ
PowerShell使えば?
2020/12/22(火) 22:16:43.89ID:/HDWOBUs
>>21
Linux使ってるなら普通にbashでもコンテナでbashでもいい
Windowsならコンテナで十分
あえてWSLにする意味はない
25login:Penguin
垢版 |
2020/12/22(火) 22:17:14.21ID:5BrIzTyC
>>22
> マウントしろ
だから、お前がLinuxデスクトップでbashを使う時にでDockerにマウントしろ
俺はそんな面倒なことはしない

> Windowsの流儀でやるならWSLも要らんだろ

だからWindowsの流儀で劣っていたCUI環境を
大幅に改善させたのがWSLだっていってんだろ

> PowerShell使えば?
それも使えるし、なんでも使えるw
26login:Penguin
垢版 |
2020/12/22(火) 22:18:19.62ID:5BrIzTyC
>>24
> Linux使ってるなら普通にbashでもコンテナでbashでもいい
だからLinuxユーザーに言ってきなさい。
bashはDockerコンテナで動かせって(笑)
2020/12/22(火) 22:19:22.40ID:/HDWOBUs
>>25
面倒じゃないからDocker使うわ
WSLはコンテナと違ってイミューたブルじゃないから管理めんどくせんだよね

Windows上でならPSのほうが遥かに強力なCLIだぞ?
PSに比べたらbashとか貧弱すぎるわ
2020/12/22(火) 22:20:19.80ID:/HDWOBUs
>>26
言うまでもない
わかってるやつはみんなコンテナ使ってる
29login:Penguin
垢版 |
2020/12/22(火) 22:20:42.86ID:5BrIzTyC
うざいからスレ立ててきた
そっちでやれ

bash(すべてのCLIコマンド)はDockerコンテナで動かすべき
https://mao.5ch.net/test/read.cgi/linux/1608643209/
2020/12/22(火) 22:21:28.20ID:/HDWOBUs
ここまででWSLを使うメリットまだ1つも出せてねえぞ?
そんなんで大丈夫か?
2020/12/22(火) 22:22:08.52ID:5BrIzTyC
だからWindowsのCUI環境をLinuxデスクトップ並にすることだって言ってんだろw
2020/12/22(火) 22:23:02.39ID:/HDWOBUs
>>31
劣化してんじゃん
WindowsをCLIで動かしたいならPS使えよ
2020/12/22(火) 22:29:04.70ID:/HDWOBUs
結局お前は「Windows上に強力なCLI環境を載せたい」んじゃなく「Linuxでbashを使いたい」だけなんだよ
WSLはVMだからホストWindowsのコントロールなんてろくにできない
そんな環境で普段使い用のターミナルを整備したって意味ないの
WSLでbash使うんだったらコンテナでbash使うのと変わらん
ならイミュータブルでより便利なコンテナで十分だ
2020/12/22(火) 22:35:57.95ID:5BrIzTyC
WSLの登場ですっかり様変わりしてしまったが
なぜsystemdが使えないはずのmacOSが開発者に人気だったかと言うと
CUI環境が強力なデスクトップ環境だったから
そこにWSLの登場でmacOSよりもCUI環境が快適なデスクトップ環境が登場した
2020/12/22(火) 22:36:30.82ID:5BrIzTyC
>>32
> WindowsをCLIで動かしたいならPS使えよ
両方使えるだろ

だからもうLinuxデスクトップを使う意味がなくなったんだよ
2020/12/22(火) 22:37:25.94ID:5BrIzTyC
>>33
> 結局お前は「Windows上に強力なCLI環境を載せたい」んじゃなく「Linuxでbashを使いたい」だけなんだよ

俺が「Windows上に強力なCLI環境を載せたい」といっていて
お前が「Linuxでbashを使いたい」だけといってる

ウソを付くのはやめろ
2020/12/22(火) 22:38:00.76ID:5BrIzTyC
> WSLはVMだからホストWindowsのコントロールなんてろくにできない

WSLからWindows用のコマンドはすべて動かせる
Dockerじゃできないなw
2020/12/22(火) 22:39:07.80ID:5BrIzTyC
なんだw 自分からWSLのメリット言ってしまってるじゃんw

DockerからホストWindowsのコントロールはできないが
WSLからならWindowsのコマンド(cmd.exeなど)がすべて実行できるので
Windowsのコントロールが出来る
2020/12/22(火) 22:40:35.18ID:/HDWOBUs
>>34
まったくズレてる意見だ
MacのCLIはMacコントロールできた
WSLはWindowsを満足にコントロールできない
多少はできるかもしれんがその目的ではPowerShellのほうが遥かに優秀
結局のところWSLでできことは隔離されたLinuxサンドボックスでCLI作業することだけ
そんなんだったらコンテナで十分なんだ
2020/12/22(火) 22:43:04.85ID:/HDWOBUs
>>36
Windowsに強力なCLIを載せたいならWSLじゃ無理だから諦めろ
あれはWindows載せたLinux VMにアクセスするためのCLIであってWindowsに乗せるCLIじゃない
2020/12/22(火) 22:43:06.37ID:5BrIzTyC
> MacのCLIはMacコントロールできた
> WSLはWindowsを満足にコントロールできない

できるっていってるだろうが。reg.exeだって実行できる
アホか PowerShellスクリプトだって動く
逃げるな呼ばーかw
2020/12/22(火) 22:44:02.52ID:5BrIzTyC
WSLからコントロールできないWindowsの機能を言ってみ

https://www.atmarkit.co.jp/fwin2k/operation/xpsp2dep02/xpsp2dep02_04.html

 GUIではなく、コマンドラインでWindowsファイアウォールを操作するには、
netshというシェルを利用する。まずnetshを起動後、firewallコンテキストに切り替え、
各種のコマンドを実行する。具体的には以下のようにすればよい。
2020/12/22(火) 22:45:46.54ID:/HDWOBUs
>>37
powershellより遥かに貧弱なCLIでやる意味がない
2020/12/22(火) 22:46:48.06ID:5BrIzTyC
>>43
LinuxユーザーにPowerShellのほうが優れてるぞー
LinuxでもPowerShellつかえよお前らって言ってこい
2020/12/22(火) 22:47:30.24ID:5BrIzTyC
bashとpowershellは思想が違ってるから使い分けるものだって理解できない時点でアウト
もちろんWSLからpowershellは実行できるw
2020/12/22(火) 22:48:43.70ID:5BrIzTyC
WSLからnetsh.exeは普通に起動できるけど
Dockerコンテナからnetsh.exeを起動できるのかな?w
マウントすればファイル見えるんでしたよねwww
2020/12/22(火) 22:53:18.74ID:/HDWOBUs
>>42
手始めにWSL2ターミナルからコマンドレット直接呼び出してみて
Windows操作はPowerShellコマンドレットが最も充実している
これができないんじゃ力の大半を奪われたも同然
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況