【Bash】Windows Subsystem for Linux【WSL】7
■ このスレッドは過去ログ倉庫に格納されています
ヒャッハー!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】6
https://mao.5ch.net/test/read.cgi/linux/1560665525/ この星の無数の塵の一つだと
今の僕には理解出来ない♪ >>741
外部からはポート転送の設定しないとアクセスできないだろ?
試しにファイアーウォール無効にしてやってみたけど出来なかった WSL は、Windows でgrep できないから、Linux を使うためのもの
Windowsには興味がなくて、Linuxに興味があるから、この板でよい >>753
いやだからそれしか方法無いってことでしょ? >>755
WSL1を使うという方法もある
WSL2はWSL1の代替ではなく両方メンテナンスされる
動作モードの違いのようなもの
WSL1とWSL2はモードの切替に数分かかるものの相互に変換できる
またDockerを使う方法もある。ただしUbuntuに直接入れるのではなく
Docker for Windowsを使うこと。これはWSLから接続することも出来るが
WSLを必要とせず、コマンドライン+Windowsでも動作するものなのだから
外部から接続することも出来るだろう >>754
じゃあ、>>1の一行目っていりますかね?
はじめから付いてた? >>757
明らかに低度の低い荒らしがいるわけで、
気にしないで放置してるとLinux板が腐ってくるよ。 wsl2を使ってみているんだけど、Linux側からwsl.exe -l -vをやると、コマンドの出力にnull文字が沢山含まれている。
どうしてだろ? >>761
普通はWindowsのコマンドはコードページを変えるとそのコードページに合わせて
文字コードを切り替えるようになってるんだけどねぇ
wsl.exeの出力はコマンドプロンプトでchcp 65001してもchcp 437しても
切り替わらない。何故か常にUnicode(UTF16)ででてる
wsl.exeはもちろん英語でも対応してるんだから文字コードを
切り替えることができるはずなんだけど
wsl.exeのバグだろうね
https://github.com/microsoft/WSL/issues/4607 >>762
UTF-16かぁ。とりあえず不具合ということでスッキリした。ありがとう。 -l -vの出力にASCII外の文字がないのは幸いだったな nkfはasciiと判別するんだよな。-W16L付けると変換してくれるけど、wsl.exeのバグが修正されるとまたおかしくなる。スクリプト書くときの話です。 WSL2いいなぁ。WSL1と同様、瞬時に起動する。dockerも使えたし、sshfsなんかも動くんだね。 >>765
今の時代nkfとか日本専用のツール使うの卒業しろよ。iconv使え。
wsl.exeのバグが修正されたらとかあとで考えればいいと思うが
wsl.exe --helpの2バイト目がnull文字かどうかで判断すればいいだけだぞ
シェルスクリプトではnull文字は直接扱えないから
cut?head?とod使うことになるだろうけど >>767
nkf は Ubuntu のディストリビューションに標準で入っているよ。
iconvは入力文字の自動判定ができないので、nkfを使ってみたんだけど、
結局自動判定できなかった。
公開するコマンドに組み込んで使いたいので、バグの修正後も動くものに
したい。結局、以下のどちらかにしようと思う。後者の方が良さそう。
wsl.exe -l -v | tr -d '\0' | tr -d '\r'
wsl.exe -l -v | sed 's/[^[:print:]]//g あ、ごめん。nkf は cmigemo の依存パッケージでした。
おそらく、cmigemo をインストールしたときに一緒に入ったんだと思う。
公開するコマンドということから、nkf は使うべきでないコマンドでした。 iconvも必ずしも入ってるか?と言われたら疑問残るけどね
POSIXで規定されてるとは言えたしか比較的最近の話だったはずだし
ああでもDockerイメージのdebianもcentosもalpineですら入ってるのか
なら問題ないかもな
あとは本質的にはWindows側の問題なんだからwsl.exeのラッパーバッチファイルとか
作るってのもありかもね。バッチファイルでできるかしらんけど
できなきゃvbscriptやpowershellを使うとかね 日本語のために必要なツールなんだから、
別にどれ使ったっていいんだよ
今でもlessの文字化け対策にlv併用してるくらいだわ どれ使ってもいいなら、なおのことiconvでしょ?
POSIX準拠 Ruby は標準で、NKF も入っている
nkf(Network Kanji code conversion Filter, https://osdn.net/projects/nkf/) を
Ruby から使うためのモジュールです
NKF.guess(文字列)で、文字コードをそこそこ推測できる スクリプトとかでは使わんけどnkfのほうがコマンドとしては簡単だから手打ちでは使うな WSL2でもmount typeでdrvfs使えるんだね。
ファイルサーバのマウントはcifsに置き換えかと思っていたら肩透かし。 sleepコマンドが使えない件、Slowビルド19041.208では未解決だけど、Fastビルド19619.1000では解決されてた。 マジか・・・
着実に出来が良くなってきてるな。
もう、WSL 2の方がいいな。 初めてWindows10にubuntu入れたが日本語表記しない
どうすればいいん?
ubuntuはマイクロのストアからものですん 完全に本当のUbuntuと同じやり方で
日本語化するんだなw 来週の月例の日にぶつけてくるんじゃないかと・・・
1909もそうだったし。 Windows Terminalは、結局、bold表示には対応しないままRC1になっちゃいましたね
対応の方法について思ったよりも広範囲で論争になってるみたい
https://github.com/microsoft/terminal/issues/109
全角記号に日本語全角フォントを使ってくれないのも残念なままですが、
こっちはUnicodeレベルでぐちゃぐちゃだからなぁ > Windows Terminalは、結局、bold表示には対応しないままRC1になっちゃいましたね
bold表示に対応してる端末なんてあるの? >>790
https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_parameters
元の仕様は8色しかなく、名前を付けただけでした。SGRパラメータ30?37は前景色を選択し、
40?47は背景を選択しました。かなりの数の端末が、異なるフォントではなく明るい色として
「太字」(SGRコード1)を実装したため、8つの追加の前景色が提供されました。
bold = 明るい色のこと CRTの頃の実装なら、高輝度は確かにより太っては見えるしな wslってdockerとかコンパイラとか開発環境いれていく以外に便利な使い道あるの?
windowsで動かないけど、wslでなら動く便利ツールが存在するとか 365日サーバー稼働している俺には必要ない
Teratermで充分 今であればVSCodeとRemote Developmentが使えるところだな ちょっと聞きたいけどwslによるlinuxってどこにインコされるの?
network>wsl>linuxみたいだけど
windows上からは見れないんだよね実際にwindows上のどこにあるの? %LocalAppData%\Packages以下にある
ストアアプリのデータと同じ場所 >>800
WSL1はNTFS上(ApoData配下の深いところ。Windowsからアクセスする時は、\\wsl$から行かないとだめ)
WSL2はHyper-Vの仮想マシンのディスク上(こちらも\\wsl$からアクセスできる) >WSL2はHyper-Vの仮想マシンのディスク
ってどこにあるんだろうな。.vhdxだろうけど。 >>796
どういう用途にbash使ってるのかしりたい
個人的にはコマンドをパイプで組み合わせるくらいならwindowsで困ってない
(xargsをwindowsでは使いたくないけど)
batかくよりshell scriptが書きたいはわかる
windows上のファイルをbashやshell上のファイラーで管理するのは茨の道だと思ってたんだが
そうでもない? >>806
誰も答えないので。自分の場合はだけど、ファイラーはemacsのdiredを使っている。
ファイル開くのは f 押すのみ。emacsカスタマイズして、Windowsのドキュメント
もemacsから開けるようにしているので、explorerあまり使わない。
ファイルのコピーや移動はwdiredってのを使うと、2つのdiredバッファ間で c や r で
対応できる。sshにはtrampってのを使ってやはりそこでもdired使っている。開いた
diredバッファ間でやはりwdired使えるので、WinSCPは一切使わない。というか
インストールもしていない。bashはshell-modeっての開いている。ANSI端末である
必要があれば、ansi-termってのもある。shell-modeはtrampの接続先でも使えるので、
ターミナルソフトも使わない。なのでTera Termもインストールしていない。
という、変な使い方をしている人も居るということで。 >>795
MS「開発に便利なWSL作ったで!」
開発者「うぉー!」
お前「開発以外で何が便利なの?」 所で何時正式発表有るのよ
いい加減待ちくたびれたわ Insider Preview リングで入れて、すぐにオフでいいんでない? MSあたりの巨大企業が本気で取り組むと凄いことが出来るんだろうな
Excelなんかも最初はダメダメだったけどいつの間にかスタンダードになったしな 善いことだ
そのうちMicrosoft Linuxとかやり出してLinux界隈に要らん反感を買うのでは…と思っていたが、WSLのやり方はずっと穏健でスマートだった。
いまやWindows自体が堅牢で計量な環境なので、そこにLinuxを融合するのは理に適ってもいる まじかよw
> Adding Linux GUI app support to WSL is on our roadmap
GUIアプリサポートするんだ?設計的にはX ServerをWindowsに搭載するんだろうな。 WaylandでレンダリングしたものをRDPでWindows側で表示しているらしい
まあ自分で適当なXサーバ入れてRDPで接続しても同じ事だが
お仕着せでデフォで手段が提供されるなら喜びこそすれ嘆く理由は無いな >>825
"These apps connected to a wayland server running inside of WSL, which communicated with a RDP client on the Windows host."
Wayland+RDPらしい 思い起こせばん十年前MSからAT互換機用Win3.1日本語版が出た事によって98の呪縛から解き放たれたあのときの興奮に近いモノを感じる GPUはWindowsの方が強力につかえるのに
機械学習とかで使うGPGPUはLinuxの方が充実してたからな でも/dev/nvidia0が直接生えるわけじゃないのね
まあいずれツール側が対応してくれるんだろうけど >>833
これ
nvidiaもnouveauもアレだから、マシになることを祈りたい >>820
GPUとGUI使えるのか
もうLinuxにWinのデスクトップのせちゃえよ >>837
WSLは出来ないことを出来るようにするんじゃなくて
より手間なく出来るようにするのが目的
いわば統合開発環境を提供しているようなもんだ >>839
使いづらいLinuxのデスクトップを排除、Windowsの制御化に
持ってくることが重要なのだから、それをやると劣化することになる。 Mainlining The Microsoft DirectX Kernel Driver For Linux Will Be An Uphill Battle
https://www.phoronix.com/scan.php?page=news_item&px=Microsoft-DXGKRNL-Uphill-Battle いうほど使いにくいか?
慣れちゃってるから解らないのだがどの辺が使いにくいの? まぁWindowsに慣れてれば使いにくいだろうし、
日々Linux使ってればそりゃ慣れてるんだから使いやすいだろうし WSL2でのDirectXはWDDM2.5以上のグラフィックドライバが必要なのか
流石にPC買い換えないといかんか >>827
なんでWaylandなんでしょうね。
X11+xrdpでもいいように思うけど。 waylandは色々と潜在的な問題を抱えてて先行き不透明なのになぁ ■ このスレッドは過去ログ倉庫に格納されています