【Bash】Windows Subsystem for Linux【WSL】8

■ このスレッドは過去ログ倉庫に格納されています
2020/05/29(金) 17:58:21.78ID:N31NEDSz
ついに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】7
https://mao.5ch.net/test/read.cgi/linux/1579395785/
2020/07/18(土) 12:23:27.84ID:UJnZKFnK
FreeBSD使ったころ、緊急事態のときにtwmには世話になったな。
2020/07/18(土) 13:26:43.03ID:sHH6tu9z
>>384
VRAMに描き込むより遅いだろ
2020/07/18(土) 14:00:31.35ID:VADs+KjM
物理的に別のマシンからLANやWAN経由でリモート接続するなら確かにオーバーヘッドも気になるだろうが
(もっともこの場合、競合環境のオーバーヘッドはさらに大きなものとなるが)、
ローカルマシン内では、ネットワークソケット経由のオーバーヘッドと言っても、現在のPCの性能ではほぼ無視できる程度しか無いのでは。
2020/07/18(土) 14:02:58.69ID:VADs+KjM
twmは、昔フロッピー回覧で入手した98版BSDであの狭い画面で起動したときの遅さは筆舌に尽くしがたいものがあったが、
現在の環境では文字通りサックサクで、むしろ軽すぎて誤操作が誘発されるくらいの勢い。
2020/07/18(土) 14:08:59.73ID:qTuanotv
twmとやらの使い方を教えてくれ
WslにGUI入れないとだめ?
2020/07/18(土) 14:25:10.63ID:CFnTwW6F
twm、軽いのはいいが機能的にはどうなんだ?
2020/07/18(土) 14:47:56.73ID:UJnZKFnK
>>389
https://news.mynavi.jp/itsearch/article/hardware/4128
2020/07/18(土) 17:52:54.25ID:1hpIRiB5
twmとか使うくらいならwindowsのデスクドップにそれぞれのアプリケーションを表示したほうがよくないか?
393login:Penguin
垢版 |
2020/07/18(土) 19:10:54.01ID:/i8++BvR
>>388
お、仲間。
twmさえ殺してgeometry指定で大きな画面のxterm二個開いたりしてました?
2020/07/18(土) 19:22:29.00ID:XLDwCUyK
むしろKONで凌いでたとか
395login:Penguin
垢版 |
2020/07/18(土) 19:28:09.62ID:/i8++BvR
>>394
当時は漢字すらいらなかった。位置画面に表示できる情報量が全てで、フォントもぎりぎり:;あたりが区別できるサイズまで落としてたよ。
2020/07/19(日) 18:33:05.54ID:NsI52VT6
WSL2ってIP固定できないんか…
397login:Penguin
垢版 |
2020/07/19(日) 21:00:27.83ID:eJ/vy8Sz
wslを知ってから1か月余りの初心者ですが
質問させていただきます
dfを調べたところ実際のHDDはC:\ E:\で容量はそのとおりです
/dev/sdbはUbuntuの仮想HDDだと思われますが
Sizeは251G Availは233Gとなっています
この251Gはどこにあるのでしょうか又233Gを使用できるのでしょうか

$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb 251G 5.9G 233G 3% /
tmpfs 3.1G 0 3.1G 0% /mnt/wsl
tools 84G 53G 31G 64% /init
none 3.1G 0 3.1G 0% /dev
none 3.1G 8.0K 3.1G 1% /run
none 3.1G 0 3.1G 0% /run/lock
none 3.1G 0 3.1G 0% /run/shm
none 3.1G 0 3.1G 0% /run/user
tmpfs 3.1G 0 3.1G 0% /sys/fs/cgroup
C:\ 84G 53G 31G 64% /mnt/c
E:\ 215G 110G 105G 52% /mnt/e
2020/07/20(月) 10:18:28.47ID:D2YaNvaw
WSLって異常に遅くない?
2020/07/20(月) 10:24:34.13ID:+kqrwuhJ
>>397
仮想ディスクのサイズ
2020/07/20(月) 17:39:47.71ID:d00LzEH0
>>398
遅いのでみんなwsl2を使っている
2020/07/20(月) 18:34:37.77ID:ZhqR8Aq/
/mnt/cとかを使うと遅くなる
2020/07/20(月) 19:32:52.85ID:nFwT6MyI
>>398
wsl1を使っているが、異常ってほどは遅くない
2020/07/20(月) 19:43:38.86ID:x9RTlt90
WSL1はファイルシステム変換のためローカルファイルへのアクセスが遅い

WSL2はローカルファイルはネイティブなので速いが
Win側へのアクセスは9pファイルシステムの最適化が進んでなくて遅い
2020/07/20(月) 20:32:20.91ID:vZcuiOGo
WSL2は手っ取り早く高い互換性を得られるけど
仮想マシンのオーバーヘッドは免れない。
ただLinuxカーネルの改良は可能だから改善の余地はある

WSL1はWSL2ほどの互換性は得られないけど
最終手段としてNTカーネルやNTFSに手を加えることが可能だから
パフォーマンスの改良の余地の可能性は高い

両方に改善の余地があるからって
その両方をやるっていうのが流石MSって感じだよな
大企業は違うな
2020/07/20(月) 21:07:39.96ID:tQMAGmoC
WSL2をWindowsのVcXsrvと使ってるときにスリープすると接続切れたりする?
以前頻繁に発生していたけど、最近起きなくなったような気がする。
2020/07/20(月) 21:27:02.35ID:yargdAHu
>>403
そうだったのか
ビルドがさらに遅くなってた
2020/07/21(火) 00:35:00.90ID:wWfDK0Ed
>>404
割けるリソースが大きいからねえ
linux環境へは.net・powershellに続いてsysinternalsが移植されはじめているから充実していきそう
https://github.com/microsoft/ProcMon-for-Linux
2020/07/21(火) 00:55:50.82ID:dBwkqJ5A
Windows版powershellってみんな使ってるの?
ほとんど使ったことないんだけど、どんな感じ?
2020/07/21(火) 02:36:02.94ID:mBhcPGxx
16bitの資産も活かせなくなって久しいコマンドプロンプトなんかいまさら使うくらいなら、powershellを覚えた方がずっといいが
2020/07/21(火) 03:51:24.61ID:Tc5mB7+7
シェルスクリプトと同じ気持ちでパイプ使うと死ねる
2020/07/21(火) 04:18:34.37ID:0CXSD4t2
powershellのパイプはある意味癖が強いからなぁ
素直にpowershellのスクリプト内で.NETのインスタンス生成してC#ばりにゴリゴリ書いた方が早い事もある
2020/07/21(火) 04:31:33.04ID:C/28binx
パイプなんてどれも同じじゃないの?
2020/07/21(火) 09:09:06.37ID:ewEpLz/o
日本の刑務所の囚人の99%は在日外国人であるという統計が出てるらしいな
2020/07/21(火) 09:10:35.83ID:/19jkiOR
と思ってるとドツボに嵌る
PowerShellのパイプはC#のLINQやJavaのストリームのような遅延コレクションなのだが、
他のシェルで一般的に用いられるテキストベースのストリームと見做してもある程度扱えるように意図的に混同されているが故に変な罠が非常に多い
415login:Penguin
垢版 |
2020/07/21(火) 10:26:41.42ID:dBwkqJ5A
コマンドプロンプトはhistory系コマンドが貧弱なのが困る。
doskey /h で辿れるのは現在の履歴だけ。
historyをfzfとパイプ接続できるbashやzshの使い勝手の良さがcmdやpowershellにもあればいいのだけど。
2020/07/21(火) 10:32:43.84ID:nXYHdseE
もうbash使ったほうがいいのでは?
シェルスクリプトから普通にexe呼べるわけだし
417login:Penguin
垢版 |
2020/07/21(火) 13:47:08.48ID:z7OXKLT+
git bashでいい
2020/07/21(火) 13:48:55.25ID:cvaypvgc
bashならgit bashでもWSLでもcygwinでも動くしね
Windowsがほぼ公式にサポートしたのが大きい
今はまだWindows 8とか動かないOSが残ってるけど
Windows 10 Homeでも動くし後数年もすれば動かない環境はなくなるだろうね
2020/07/21(火) 13:58:50.72ID:DSQIOe6f
普通 tcsh
2020/07/21(火) 14:01:23.59ID:cvaypvgc
tcshって関数作れないんだろ?だめじゃん。
バッチファイルよりマシな程度としか思えないわ
2020/07/21(火) 14:09:42.62ID:cvaypvgc
それにposixでもないな
2020/07/21(火) 14:10:37.00ID:DSQIOe6f
そんな物は子スクリプトを吐くようにすればよろし
悔しかったら repeat 実装してみろ!

嘘です。SUN3からのBSDユーザーなんでね
2020/07/21(火) 15:17:09.16ID:cvaypvgc
repeatの仕様言ってみろや
424login:Penguin
垢版 |
2020/07/21(火) 16:46:32.52ID:dBwkqJ5A
そもそも論として、cmdやWSLの端末GUIに問題がある。
全角入力状態で全角文字を入力中にBackSpace、ESCと連続して押すとカーソルが表示されなくなる不具合があるし、
せっかくWindows10が対応している色付き絵文字も表示できない。
Windows Terminal使えということなのかもしれないけど、不具合は直してもらいたいもんだ。
425login:Penguin
垢版 |
2020/07/21(火) 16:52:38.09ID:cvaypvgc
>>424
おお、それか。やっと原因がわかった。
いつの間にかカーソルが消えていてなんでだって思ってたんだよ。
ちなみにresetコマンド実行すればもとに戻るぞ
これちゃんと報告した?報告しないといつまでも治らんぞ。
2020/07/21(火) 16:59:55.95ID:zd5LKZfk
普通はzsh
427login:Penguin
垢版 |
2020/07/21(火) 17:08:16.53ID:cvaypvgc
>>424
resetでリセットできるからなんかのエスケープシーケンスでできるだろうなと思っていたが
再現方法がわからなかったから調べてなかったが、おかげで(resetを使わない)解決方法もわかったで

http://nanno.dip.jp/softlib/man/rlogin/ctrlcode.html#DECOPT
25 DECTCEM カーソルの表示

CSIの?25hで再表示できる。
コマンドで言えば printf '\033[?25h'
プロンプトにこの文字を入れておけば消えても改行するだけで復活させられるだろう
2020/07/21(火) 18:12:00.98ID:6vMSNsuo
>>415
とりあえず、Clink
2020/07/21(火) 21:10:27.68ID:hJV+JW4I
wsl2はまだ安定した使用にはなってない事は分かった
只それだけ
その内又来ます
でわ
430login:Penguin
垢版 |
2020/07/22(水) 00:44:17.51ID:gsNRsjUH
wsl2内のdockerはタスクスケジューラの"NT AUTHORITY\SYSTEM"で起動出来ないのですかね?

ログイン中はバッチファイルに下記を記入して実行すれば行けたけど
スケジューラに登録してみたら実行されてない。
wsl -u root sudo service docker start
wsl -u root cd /var/lib/nginx ; sudo docker-compose up -d
2020/07/22(水) 03:14:45.93ID:3zU+KwSh
>>412
とりあえず外部プログラムの出力をパイプで受けるときマルチプロセスで動いてくれない
で、出力がでかいと死ぬ
2020/07/22(水) 06:32:46.83ID:DmDy0NhW
>>430
そういうことをしてくれるのが Docker Desktop for Windows
https://hub.docker.com/editions/community/docker-ce-desktop-windows/

公式アプリを使いましょう
なぜ無駄な努力をするのかわからない
433login:Penguin
垢版 |
2020/07/22(水) 07:54:31.76ID:gsNRsjUH
>>432
Docker Desktop for Windowsで出来なかったから直接入れて試してみたんだ…
VM上ではDocker Desktop for Windowsがシステム起動時に立ち上がってるが
実環境ではログインしてからじゃないと立ち上がらない
実環境はドメイン入ってるのが原因なのかよくわからん
2020/07/22(水) 08:02:51.29ID:X3lKO4Di
は?実環境? Dockerを実環境で使うならLinuxを使うもんだろ
OSの選択が間違ってる。Docker使うならOSはどれでもいい→Linuxでいい

どうしても使いたいなら、サービスの設定で
起動時に特定のユーザーでサービス起動するように設定するだけだろ
2020/07/22(水) 08:19:53.51ID:Y2WdTb5c
Apache2立ち上げてユーザー用ホームページ作ったんですが
local又は仮想IPアドレスからしか見えません
localは無理だとしても仮想IPアドレスでは
やはりネットワーク内からの閲覧は無理なんですか?
2020/07/22(水) 08:53:45.09ID:ILpdMsPa
仮想IPアドレスで使うんじゃなくてホストIPアドレスで使うの
2020/07/22(水) 11:02:54.38ID:NSArKURP
>>435
netsh.exe使って転送
2020/07/22(水) 11:43:15.44ID:JNelXK4+
>>430
SYSTEMアカウントでディストリインストールしたのか?
439login:Penguin
垢版 |
2020/07/22(水) 12:51:29.41ID:gsNRsjUH
>>434
それができる環境ならそうしてる
変にセキュリティがキツくて制限が多い
バッチジョブ開始権限が無いから特定ユーザーで起動できない

>>438
ドメインのユーザーアカウントでインストールしてる
バッチジョブ開始権限が無いからSYSTEMから実行するしかない

RUNASAで特定ユーザーで実行するexe作ってSYSTEMから起動してもだめだった
オートログインさせるしか方法はないのか?
2020/07/22(水) 12:54:43.64ID:0mhEikFA
>>439
そういうのを無理してやるから
なんだできるんじゃんってなって
これからも無意味な作業を押しつけられるんだよ

お前が頑張るから改善しないの
2020/07/23(木) 11:14:02.46ID:WcHNLLxC
WSL 2はWSL 1よりも21%高速、ベアメタルとの差は8% - Phroronix調査
https://news.mynavi.jp/article/20200618-1059720/
2020/07/23(木) 12:36:31.59ID:eppWQOi0
2が出た頃に1にCPU演算で負けてたがまだ変わってないんだな
2020/07/23(木) 13:23:25.93ID:bwFhQe1d
エミュレーションレイヤーすら関わらないCPU演算で仮想マシンが勝てるわけねーじゃん
2020/07/24(金) 07:16:14.55ID:gZLormkA
【IT】DELL、VMwareの売却を検討
https://hayabusa9.5ch.net/test/read.cgi/news/1595459374/
2020/07/24(金) 13:31:54.18ID:smXNzc12
Ubuntu 20.04 LTS 大量アップデート来てるね。

base-files libnss-systemd libpam-systemd libpulse0 libpulsedsp libpython3.8 libpython3.8-minimal libpython3.8-stdlib libseccomp2 libsystemd0 libudev1 openjdk-11-jdk openjdk-11-jdk-headless
openjdk-11-jre openjdk-11-jre-headless pulseaudio-utils python3-distupgrade python3.8 python3.8-minimal systemd systemd-sysv systemd-timesyncd ubuntu-release-upgrader-core udev wslu
2020/07/24(金) 13:44:30.80ID:GYvNclEl
仕方ないが、systemdとかWSLで意味ないものも更新される
2020/07/24(金) 17:44:55.66ID:8vFdCKty
システムにインストールされていないパッケージが更新される事はない
448login:Penguin
垢版 |
2020/07/24(金) 17:55:39.64ID:q65Q/gpY
お願いだから俺の素朴かつ基本的な疑問に誰か答えてくれ。

WSLって、なんで、Linux Subsystem for Windowsじゃなくて
Windows Subsystem for Linux なんだ?

Windows上で動く「Linuxサブシステム」なんじゃないの?
どうしても理解できない。
2020/07/24(金) 18:05:34.49ID:z8jsaCC+
>>448
UNIX互換環境を実現するSUA(Subsystem for UNIX-Based Application)を利用する
https://www.atmarkit.co.jp/ait/articles/1102/04/news120.html

Linuxのためのサブシステム
2020/07/24(金) 18:07:35.61ID:fOP+lmol
〜のため、以外で考えろ
https://dictionary.goo.ne.jp/word/en/for/
2020/07/24(金) 18:08:05.33ID:z8jsaCC+
>>449
https://www.reddit.com/r/bashonubuntuonwindows/comments/bjd253/linux_subsystem_for_windows/

Linux実行可能ファイルをを実行するための(Windowsの)サブシステム
2020/07/24(金) 18:09:21.23ID:WsjxBH5f
Linuxを動かすためのWindowsサブシステム
2020/07/24(金) 18:09:56.54ID:TzjTrDZp
>>448
Linuxに向かうためのWindowsの中のサブシステムだから
2020/07/24(金) 18:12:39.60ID:z8jsaCC+
これが答えか?

benhelioz WSL開発者
I wanted to call the feature "Linux on Windows" but legal didn't like leading with Linux since Microsoft does not own the name.

私はこの機能をLinux on Windowsと呼びたかったのですが、
legal(法務?)曰く、MicrosoftはLinuxという商標を持ってないので
頭につけるのを望まなかった
2020/07/24(金) 18:33:44.34ID:GYvNclEl
だったらLindowsでいいじゃん
2020/07/24(金) 18:41:32.39ID:KgUsH74f
LindowsはクソLinuxの名前じゃんw
あれはLinuxにつけるべき名前
2020/07/24(金) 18:59:37.47ID:n4ebcUC3
これとは別の話だけどとあるアプリのサードパーティー製プラグインで
「(アプリ名) for (サービス名)」
だったのが
「(サービス名) plugin for (アプリ名)」
に変わってたことを思い出した
2020/07/24(金) 19:25:56.41ID:KgUsH74f
フォーユーでもユーフォーでもいいってことなんだな
2020/07/24(金) 19:59:20.68ID:smXNzc12
そういえば、SUF(Service For Unix)は標準シェルがcshだった。
2020/07/24(金) 20:00:51.98ID:smXNzc12
SUFじゃなくてSFU。
2020/07/25(土) 03:35:20.02ID:tAP1tP9y
for は、向かう方向を表す
2020/07/25(土) 10:04:55.73ID:Hc0CuPYW
Debian testingのlibcのバージョンが2.31になって、WSL1でsleepコマンドが動かなくなったな。まだ未対応なのを忘れていた。
463login:Penguin
垢版 |
2020/07/25(土) 20:43:51.04ID:tO93DtCU
響け!
2020/07/25(土) 23:01:18.10ID:5QidXXyR
go to travel
465login:Penguin
垢版 |
2020/07/26(日) 00:15:42.88ID:JFi6bL83
WSL1なんだけど、どう言うタイミングでかパーミッションがおかしくなるな
2020/07/26(日) 01:01:35.91ID:MtiKbl5g
2004にする前に使ってたWSL1はデフォルトでパーミッションが777だったような
WSL2だとちゃんと644か755になる
2020/07/26(日) 01:11:45.38ID:XZ4Z5jBt
WAHAHA
2020/07/26(日) 03:50:15.91ID:hmn9MKPR
WSL1なら間違いなくお前がWindowsプロセスからファイルを編集したタイミングだろ
2020/07/26(日) 10:59:02.95ID:UiNVB7jc
標準のリナックスにあるものが入ってなかったり
ないものが入っていたりすれば互換性を欠くということ

つまり普通のVMのほうが優位である。画面もあるし。
2020/07/26(日) 11:18:06.35ID:zOThrt4A
>>469
ディストリがたくさんあると、それぞれで互換性がないからねw
471login:Penguin
垢版 |
2020/07/26(日) 11:25:46.64ID:1pF5nq+h
互換性が必要になる様な事あんの?
2020/07/26(日) 11:40:18.19ID:zOThrt4A
同じことをやろうと思っても
コマンドが違うから互換性がない
アプリのインストールでさえyumとaptで違いがある
2020/07/26(日) 11:42:14.00ID:CiT/2tNR
>>472
それ、wsl関係ないじゃん
2020/07/26(日) 11:57:59.48ID:aUU3oX3b
>>469 >>472
使い方がわからないなら無理して答えなくてもいいんだよw
2020/07/26(日) 11:59:51.90ID:CiT/2tNR
まあ、画面があるとか言ってる時点であれだが
2020/07/26(日) 12:07:22.59ID:zOThrt4A
常識で考えてCUIだけで満足するわけがないだろ
Linuxを使ったらGUIも使いたくなるのは必然
WSLでChromeを使うにはどうするんだって悩むぐらいなら
VM使ったほうが簡単
2020/07/26(日) 12:36:05.13ID:UBsGHCHD
釣り針がデカすぎる
2020/07/26(日) 12:36:32.08ID:xclkP+C6
>>476
用途に合わせて道具を選ぶだけでいいのに
わざわざ用途外のものを取り上げて言うなんて無駄な行為だよ
2020/07/26(日) 13:47:17.05ID:CiT/2tNR
>>476
必然?
WSLでChromeが使いたい理由って?
2020/07/26(日) 14:50:49.68ID:EB6TpW8K
どうでもいいがGUIを画面て言い方すんのやめれ
意味通らんし混乱するわ
481login:Penguin
垢版 |
2020/07/26(日) 14:52:06.60ID:R9SC0ZEQ
ちょっとした疑問なんだけど「標準のLinux」ってWSLだと何を示すの?
Ubuntu18?
2020/07/26(日) 16:42:38.83ID:p4Vc69kh
盛り上がってまいりました
2020/07/26(日) 17:41:08.13ID:soRt0nXj
下手の横好きでWSLでデスクトップ環境作ったけど、どこまで動くんだろうって好奇心でしかないな
それもVcXsrvを使うまでもなくRDPで済むようになるみたいだし、GPU支援もついて今よりどれくらい具合がよくなるかは楽しみではある
2020/07/26(日) 18:35:28.80ID:j0iixhCP
>>481
WSL用にカスタマイズしてないlinuxディストリのことでは?
WSLだとsystemdとか動かないし
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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