【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/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とか動かないし
2020/07/26(日) 19:02:48.06ID:zOThrt4A
systemdが動かないっていうことの意味がわかってないのだろうけど
WSLが起動したときに自動的にsshdやnginxとかが動かないってことなんですよ
これでどうやってサーバーを運用するのか?
使い物になりませんね。
2020/07/26(日) 19:16:48.62ID:vBb/Wycj
WSLでサーバーを運用するって前提が間違ってる。
Hyper-Vで普通にLinux動かせばいいんだよ。
目的が手段になってるんだろうな。
2020/07/26(日) 19:25:33.16ID:XZ4Z5jBt
仮想switchが腐っとる
2020/07/26(日) 19:29:10.47ID:ZaJi1y7V
WSLでLinuxが動くってなったら
全部Linuxでやってしまおうと考えるのが普通
なのにLinuxの乗り換えられない
LinuxにWindowsを混ぜて使う意味がない
2020/07/26(日) 19:47:39.24ID:vBb/Wycj
普通じゃねえから
お前が異常だから
2020/07/26(日) 19:52:02.53ID:j0iixhCP
自動起動くらいは起動スクリプトを自分で書いて
タスクスケジューラやスタートアップフォルダから実行させればいいが
snapdみたいにsystemdが無いと動かない物があるんだよね
2020/07/26(日) 20:30:17.15ID:CiT/2tNR
だったら初めからLinux使えよって感じだけどなんなの?
2020/07/26(日) 20:32:07.74ID:BQKxZh5y
いやいや何いってんの?Linux使えるようになったんだから
タスクスケジューラもスタートアップも全部systemdに置き換えるのが普通でしょ
なんのためにLinuxが使えるようになったと思ってるんだ
2020/07/26(日) 20:33:14.67ID:BQKxZh5y
WSLはWindows使ってる人がLinuxに移行するための道具でしょ
systemdが使えないとLinuxに移行できないんだが
道具としての役目を果たしていない
2020/07/26(日) 21:06:41.60ID:hR3h7KAV
Linuxに移行するためのものじゃなく、PowerShell慣れないから
Windowsでbash(UNIXシェル)使いたいっていう要望満たすための道具だと思うが
2020/07/26(日) 21:20:45.38ID:J3DaLhIH
最近公式ドキュメントを読まないバカが増えているんだよなあw
2020/07/26(日) 21:34:24.62ID:CiT/2tNR
Microsoftも大変だ
2020/07/26(日) 21:34:29.61ID:RnzshpFZ
>>495
公式ドキュメントに目を通すことに時間を費やすほどの価値を感じていない人が増えているだけ。
でもそれはユーザーのすそ野が広い証拠だよ。
2020/07/26(日) 21:39:55.41ID:CnqDJvhQ
WSL2のメリットを理解できる人が使えばいいよ。オレはバリバリ便利だよ。
2020/07/26(日) 21:41:24.31ID:BQKxZh5y
systemdをWindows側でやってたら
いつまで経ってもLinuxに乗り換えられないじゃん
2020/07/26(日) 21:48:54.91ID:j0iixhCP
マイクロソフトとしてはWindowsを捨てられたら困るだろ

サーバー側の開発環境としてUnixなMacが使われてたから
Windiwsでも開発環境を用意しましょうって事だろう
2020/07/27(月) 00:46:57.94ID:vH2HYJXW
そもそもwslを使ってもlinuxに乗り換えられないよ?
2020/07/27(月) 00:52:15.04ID:GfQOo21q
単純にLinuxのバイナリを動かすだけの目的だったからな
でなぜか本物のLinuxカーネルを搭載することになったw
2020/07/27(月) 00:55:26.57ID:gpnb2Ncf
Windows 10 MobileでAndroidのアプリを動かすために作られたともいわれてるよな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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