【Bash】Windows Subsystem for Linux【WSL】6
■ このスレッドは過去ログ倉庫に格納されています
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】5
https://mao.5ch.net/test/read.cgi/linux/1553100855/ >>498
ライブラリもnull安全だしね、バイナリはいてくれるのはwslでもlinuxでもありがたい。それはそうと誤爆すまん。 Hyper-VにInsider Previewを入れてWSL2を試してみた。
最初、Hyper-V on Hyper-Vが有効になって無くて
WSL2に変換できなかったが、設定するだけであっさり動いた。
これ、すごいね。仮想マシンとは思えないぐらいさくっと起動する。
まあLinuxカーネルは常に起動してる状態で
コンテナ起動してるだけだから当たり前っちゃー当たり前なんだけど
ただの仮想マシンと思ったらぜんぜん違う >>431-432
確認した。その記事は完全に間違い。
開発者モード(おそらくSE_CREATE_SYMBOLIC_LINK_PRIVILEGE )の有無で確かに変わる。
WSL1とWSL2で挙動は全く同じ。
開発者モードが無効の場合、WSLからlnするとシンボリックリンクは作成されるが、
Windowsから見ると、ファイルもディレクトリもどちらもジャンクションになってる。
ただしWindowsから正しく扱えない特殊なジャンクション
開発者モードが有効の場合、WSLからシンボリックリンクを作成すると
Windowsからはどちらもシンボリックリンクになってる。
正確にはdirしたときにファイルにはSYMLINK、ディレクトリにはSYMLINKDと表示されてる
一応記事訂正の連絡はしておいたが、さてちゃんとするんだろうか? >>505
すごいじゃん
hyperVでもこれくらいやって欲しいもんだけど hyper-vのメモリの扱いはほんとに改善してほしいわ
10年も放置しやがって >>505
はー、すげー。これでもうWSL2を使わない理由なくなったんじゃね?
(潜在的にはWSL1の方がパフォーマンスを上げられると思ってるけど)
想像はしたが、カーネルにパッチを当てることで、Windowsとメモリを
共有してるって感じみたいね
>>507
本質的には仮想マシンが使ってるメモリ領域は、どこが使われているか
ホストから知ることができないので、カーネルにパッチ当て無い限り不可能だと思う。
0で埋められていたら、使われてないとみなすか、ゲストOS用ドライバで通信するとか カーネルパッチはオープンソースじゃないの?VMにただ当てるだけで住むならhyper-vにもみ込みあるんじゃね? >>509
本家Linuxカーネルにパッチが組み込まれるなら、
HyperVで動かすLinuxに限ってはその恩恵があるかもしれんね。 Hyper-Vでもゲストのバルーンドライバは結構前から実装されてたと思ったが?
Linux用は無かったとかWSL用にチューニングしたとかなんかな ドライバでやるよりももっと効率よくメモリ管理できるようになったんじゃないかな?
Linuxカーネルが持ってるメモリ割り当てシステムコールそのものをWindowsに転送してる(といいなぁw) ページキャッシュとかどうやって管理してるんだろな? WSLをつい先日初めて使ってみたんだが、思った以上に便利でビビった
どうしても仕事上Windows必須だけど、Linuxコマンドが使いたくなる時あるからな その気になればLinuxデスクトップアプリも動くからな。 Windows Subsystem for Linux に関してよく寄せられる質問
https://docs.microsoft.com/ja-jp/windows/wsl/faq
WSL の対象ユーザーは誰ですか。
これは、主に開発者向けのツールです。特に Web 開発者と、オープン ソース プロジェクトで作業している開発者が対象です。
これにより、Bash、一般的な Linux ツール (sed、 awk など)、および多くの Linux ファースト ツール (Ruby、Python など) を使用する必要があるユーザーは、Windows でそれらのツールチェーンを使用できます。
WSL ですべての Linux アプリを実行できますか。
いいえ。 WSL は、Bash およびコア Linux コマンド ライン ツールを必要とするユーザーが Windows 上でそれらを実行できるようにすることを目的としたツールです。
WSL は、GUI デスクトップやアプリケーション (例: Gnome、KDE など) をサポートすることを目的としていません。 bash が使いたいだけなら
git for windows に入ってた git bash で間に合う
殆どこれで用が済む WindowsはLinuxソフトも使えるようになったので、両方使えるWindowsにしとくのが吉。
ではないか? busyboxの日本語処理がまともなら、これで足りるんだけどな >>521
日本語処理関係でなにか困ることあった? >>522
ls で典型的なSJISダメ文字が消えちゃう(対処方法なし)ので致命的だなぁ
あと、sedやawkが、\:0x5cを付加しないとSJISダメ文字の処理ができない ん? Windows版busyboxの話?このスレWSLのスレだぞ?
busyboxといったらUbuntuのbusyboxの話だと思ったが
WindowsのファイルシステムはUnicode(UTF-16)だが
WSLから見た時は適切にUTF-8に変換されてるから
SJISなんか何も関係ないはずだが
sedやawk、つまりファイルの中身に関してはいい加減UTF-8に統一しとけ
日本語しか使えないSJISを使う必要はない >>524
>>517 からの流れで、
WSLを使う理由がGNU Core Utilitiesをウィンドウズでと考えた場合、
WSLより簡単な代替のひとつとしてbusyboxを上げることもダメなんかね?
配布されてるWindowsバイナリはビルド時に対応オプションついてないんだよ。
ファイルについては、コンバートすりゃいいが、
ファイル名については、リネームしたりしてダメ文字日本語をわざわざ変更しなきゃならない。
ツールを使いたいだけなのに、自分でビルドが必要だったり、SJIS使えないというのは
普通のユーザーには酷だろ。
結果として、残念だがbusyboxを使わないという選択になる。
lsの表示については試してみなよ、インストール必要ないから。 鯖用途でも実運用の為の検証やら総合試験やらでしか必要なくなったしな >>526
WSL自体がLinuxなんだけど?
Windows上でLinux使ってるだけのこと やっぱりWSLでもUbuntu使ってる人が多いのかな? >>525
落ち着いて人の話を聞きなさい
1. ここはWSLのスレ
2. busyboxはWSL(Ubuntu)版
3. busyboxを実行するのもWSL上
ここはそういう前提のスレですよ?
その前提以外でみんな話をしてるんだから
それ以外ならお前に説明する義務がある
ぐだぐだいってないで説明しましょう
何の話をしてるんだ? >>529
今のWSLはWindowsの上でLinuxを使わずに
Linuxアプリを動かせるようにしたものだからLinuxを使ってるとは言えない。
WSL2であれば、Linuxを使ってると言えるが >>525
あと、busyboxはGNU Core Utilsとは全く関係ない
GNU Core Utilsを使わずに、最小限のコマンドを詰め込んだもので
組み込み向け用の道具なんだから機能が少ないのはあえてそうしてる。
可能な限り機能削減を目指してるものに、便利さを求めるなって話
結論としては、WSLを使わない方法じゃなくて、WSLを使えばいい
WSLのスレなんだから >>532
WSLはカーネルが特殊というだけでLinuxそのもの
そしてWSLで使ってるLinuxディストリもカーネルが違うだけで本物のLinuxディストリ
WSLで動作してるUbuntuはUbuntuそのもの OSとしてのLinuxはカーネルだけじゃない
LinuxディストリはOSとして機能するようにいろいろなソフトウェアを組み立てたもので
WSLはそれを使ってる
だから本物のLinux
Linuxを利用してるのにLinuxは不要とか意味不明 WSL1はLinuxカーネルを偽装してるだけ
WSL2はLinuxカーネルそのもの
カーネル以外は本物のLinux
WSLのUbuntuはカーネルが違うだけで本物のUbuntu >>534
WSLで使えるディストリにはDebianがあるんだが、
そのDebianにはこういう物がある。
Debian GNU/kFreeBSD
https://www.debian.org/ports/kfreebsd-gnu/index.ja.html
> Debian GNU/kFreeBSD は FreeBSD のカーネル上に GNU C library を
> 使用した GNU ユーザランドと普通の Debian パッケージ群で構成される移植版です。
さて、このDebianはLinuxのDebianとほとんど同じように使えるわけだが、
Linuxカーネルの代わりにFreeBSDを使ってる。
これははたしてLinuxであろうか?
違うよね? Linuxカーネルを使ってないんだからこれはFreeBSDであってLinuxではない
WSLもそれと同じ。Linuxカーネルと互換性をもたせたWindowsを使ってるので
これはLinuxではない。あえて言うなら、Debian GNU/NT と言うべきだろう
WSLはLinux互換ではあるがLinuxではないんだよ >>538
debianにlinuxなんて意味はないぞ >>538
そんなの言葉遊びだろ
でもDebianではあるわけだ
ならWSLではLinuxと言わずにUbuntuやDebian、OpenSuseとか言えばいいのか? まあ、ほとんどの人が使うであろうWSL2はLinuxそのものだけどな >>538
WSLがLinuxじゃないならLinux板にスレ立てるなよw
Linux板に立ててるだけでLinuxだと思って使ってる証拠
過疎ってるUNIX板にでも立てとけ Debian GNU/kFreeBSDのスレはUNIX板に立ってるぞ
Debian GNU/kFreeBSD
http://mevius.5ch.net/test/read.cgi/unix/1131675435/ そういう話をするならLinuxじゃなくてGNU/Linuxと言えと昔から言われてるだろ >>535-537
WSLとcygwinの違いは? cygwinはどちらかというとPOSIX互換インタフェースです >>547
ここ https://www.gnu.org/home.en.html
に
GNU” is pronounced g'noo, as one syllable, like saying “grew” but replacing the r with n.
こうかいてある。ので、
・gは読む
・g'nooをみると「ぐぬー」、grewのようにだと「ぐにゅー」、と読みそう 昔、雑誌に載ってたストールマンを招いての座談会の記事によると
gnuはヌー https://ja.wikipedia.org/wiki/%E3%83%8C%E3%83%BC
gは発音する
発音しないとgnu systemがnew systemと聞こえて紛らわしいから
ということだった これ、LinuxがいらないっていうよりMacがいらないって話だと思う
Linuxはどちらにしろ実機で使うんだし。
WindowsにLinuxのパワーが合わされば、
UnixであるMacをらくらく超えちゃうみたいな
実際便利だしね >>554
お前の言うXとは、Xで動くアプリの画面なのか?
それともWindowsと競合するデスクトップ環境(アプリの外側)の画面なのか? XもだけどWin側でPulse鯖立てないと音も出せないよな そりゃまあ、WindowsでLinuxが動くという話ではなくて、
Windows自体がLinuxカーネル相当の機能を備えただけで
Linuxを使わずにWindowsでLinuxアプリが動いてる状態ですから
当然では? マルチメディア系は普通にLinux使えよ。
もしくはHyper-Vに突っ込む。 サービス関連周りのコマンドが通らなかったり、本物と差がある部分を列挙して欲しいな
それと結構頻繁に初期設定が変わっていて、一度できたことが他のPCでつまずくとかそう言うのやめてほしい >>560
何度も言われてるようにWSLはLinuxじゃなくてLinuxアプリが動くものですから
つまりね、Linuxが起動してターミナルを開いた状態と
Windowsが起動して(WSLの)ターミナルが開いた状態。
このターミナルが開いた状態から両者は同じになるの
WSLはターミナルだよ。Linuxアプリが動くターミナル > それと結構頻繁に初期設定が変わって
なんのことかわからない、WSLとは全く関係ないはなしだろ またWSL1なのか2なのかはっきりさせずにレスバ突入 WSL2はまだリリースされてないんだから、今はデフォルトWSL1だろ
それはともかく仮想マシンにInsider Preview入れてるけど
WSL2はアーキテクチャが違うのにWSL1と同じように使えるね
あれもLinux "カーネル" を使ってるだけで、ディストリそのものではない。
「WSL2でUbuntuを使っている」と言ったとしても、Ubuntuのサービスが起動するわけじゃない。
Ubuntuの起動プロセスはすっ飛ばしてる。
(だからUbuntuを仮想マシンに入れるよりもずっと起動が速い)
WSLはUbuntu以外にもDebian等、複数のディストリを使えるが
仕組み的にはWSL2で動かす全てのディストリが単一のLinuxカーネルを使っていて
Ubuntuのターミナルを開かなくても裏で単一のLinuxカーネルは起動してる。
(これも起動が早い理由)
ようするにLinuxコンテナの仕組みを使ってるんだわ。
だからWSL2でも「WSLのターミナルを開いた状態」=「Linuxが起動してターミナルを開いた状態」というのは同じ 俺はWSLでもWSL2でも構わんのだが、Linuxで(Ubuntuで)使ってるアプリがWindowsPCで使えてデータ連携が簡単にできればそれでいい。
アプリ使うだけのライトユーザーだし。 アプリが何を指すのか知らないが、
GUIアプリであればWindows版を使う。
GUIアプリならWindows版はほぼ確実にあるから
Linuxに求めるのはWindowsにはない(あってもLinuxのものとはかけ離れてる)
CLIコマンドとその実行環境であるターミナルで、Ubuntuで使ってる
CLIコマンドがWindowsで連携できて便利に使えればそれでいい。
という人が一番多いと思うわw
一時期MacがもてはやされたのもmacOSのGUI + ターミナルでCLIコマンドが
使えるという点だし。むしろBSD系のコマンドであるmacOSよりも
Linux(GNU)のコマンドのほうが高機能で普及してて使いやすい。 まあ結局MacもHomebrewなんかでコマンドをGNUのに入れ替えしないと
つかいものにならんし
UNIXマシンとして考えるといまのMacは使いにくいよね
rootlessもきもいし FreeBSDも同じだったな
ports/pkgでGNU尽くし WSLのターミナルって、タイトルバーが起動した直後はディストリ名になってるのに、
いつの間にか変なのになってるって思ったら、どうやらWindowsのexeを実行したら
その実行したコマンドのパスになってるみたいなんだけど、これ俺だけ?
例えばcmd.exeを実行するとC:\WINDOWS\system32\cmd.exeって表示される
これ戻す方法ないの?見た目の問題だけだから別にいいんだけどさ node.exe
> .exit
終了すると、タイトルは元に戻る >>556
グラボやサウンドチップを模擬したものだろうね いずれは有望だろうし、安いノートでもUbuntuが保証範囲内で動くってのは素晴らしいけどね
ただまだ実用にするには怖くて、とりあえずMacを使っておくか、仮想環境のUbuntuを使うかにしておいた方が安全だろう >>557
Raspberry Piの音をPluseAudioで飛ばしてWindowsマシンで鳴らそうと思って
いろいろ試したがVMwareの仮想環境にLinux入れて
それで受けて鳴らすのが一番いいという結論に至った >>565
CygwinならXも使えるし、LXDEなどのデスクトップ環境も使えるぞ それなら、Cygwin/X + WSLでいいんじゃね? VcXsrv入れればいいだけなのに
当然 Xfceなども動かせる VirtualBoxやVMwちすいなら小細工しなくても普通のパソコンだよ >>576
WSLのおかげでXサーバの需要ができてこういうのの開発が進んでいくんだろうな
そしてLinuxのデスクトップ環境も普及していくと だからデスクトップ環境はいつまでもWindowsの後追いから抜け出せねぇんだよな。 https://mao.5ch.net/test/read.cgi/linux/1548776755/26-27n
26 login:Penguin2019/04/08(月) 12:51:19.40ID:pOf/Q0Ti
あの頃(どの頃)、Compizとかで無意味にグリグリしてたのってなんだったんだろうな
27 login:Penguin2019/04/08(月) 14:19:26.03ID:LEsHZ2MF
>>26
MS「これからはGUIの処理にGPUを使用します。」
アンチ「デスクトップが立体になるのかよwww」
Linux「俺らのほうが進んでるし(グリグリ)」
MS「お前らそんなのが使いやすいと思ってんの?GUIのレンダリングを
高速化するために、パワー有るGPU能力を使うだけだよ」
アンチ「あっ」
Linux「あっ」
こんな感じ windowsの後追い?
そんなの思想のdeがあっても俺は使わないし、windowsが良いならwindows使うよ。 Vistaや7のDWM環境でガウスぼかし使ってるのを
無駄な高負荷!これだからMSは!!…とか難癖つけてたのは覚えてる
まあWindowsは何だかんだ言ってExplorer(ファイラー/シェルの方)の出来が化け物 windowsの無駄に重い装飾は嫌いだが
タイトルバーや窓枠のガウスぼかしに関してはすごく有用で重宝してた
8以降で無くしたのほんまクソ >>582
ネイバーしか関知しないファイル共有(SMB)と無駄にインデックス蓄積するところは無能だがな。
ssdは関係ないがHDDのシークを考えたとき、ファイル数の少ないLinuxがいいな。今のWindowsはssd/gpu込みの考えだろう ピロピロピロピ ;ハヽ/::::ヽ.ヘ===ァゴーウィゴーウィヒカリッヘーYOゴーウィゴーウィシンジッテー
ヒーメターオモイ;{::{/≧===≦V:/;ツーヨーサニーカエテデュッウィーヴェヴェーヴェw
ゴーウィゴーウォ;>:´:::::::::::::::::::::::::`ヽ;YOゴーウィゴーウィムカおっおっ(^ω^)(ムカおっおっ)
アーケナイヨ;γ::::::::::::::::::::::::::し:::::::::::ヽ;アーラータナールヨアケッヲーヴォヴォヴォヴォw
ウーシナ _;//::::::し::::::::::::::::::::::::::::::::::::::ハ;ナニカウォマナブソーンナコートーワカアッテイルケド
カーナシミ;| ll ! :::::::l::::::/|ハ::::::::∧::::i :::::::i;ワスレタサヴァイダレガオシエテクレルワケダーンw
スベテヲ;、ヾ|:::::::::|:::/`ト-:::::/ _,X:j:::/:::l;カラダガオイツカナ-イクラッシュマイハート
ダケドマ;ヾ:::::::::|V(◯) !V(◯)/::::/;オージケツクラーイ(クラーイ)イマコソタチアガーッレー
ゴーウィゴ-;∧::::ト “ ,rェェェ “ ノ:::/;YOゴーウィゴーウィシンジーテ(シンジーテ)
ツーヨーサ;/:::::\ト ,_|,r-r-| ィ::/::| ;ゴーウィゴーウィミライッヘーYOゴーウィゴーウィムカ
アーケナーイ;/ ヽ;アーラータナルヨワケッヲーアヴァヴァヴァヴァw wslpathって/initへのシンボリックリンクだったんだなw これからはLinuxは独立したOSというよりもJava環境や.NETと同じようにwindows上で動作するプラットフォームとして定着して、WSLを前提としたwindows向けソフトも多く出てくるだろうね WSLを前提としたLinuxツールなら見かけたけどね。たしかQiitaで web系エンジニアはMAC買えみたいな風潮は変わりますか? MacがARMになったらとりあえずMacを買って後でWindowsを買うかどうか決めろとは言われなくなるかも 既にsnapdragon版のwinndows出てるし意外とその時はarm版macでも普通に動くかもよ MacがARMになって困る層ってどんな分野だろうか
映像業界か? 映像もそうだけどグラフィックデザイン系はみんな面倒なことになるんじゃないの
webはOSSで周ってるから余裕だろうけど ■ このスレッドは過去ログ倉庫に格納されています