【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/ >>156
仮想マシン接続のほうが遅いですよ
あと、リモートにあるVMに接続して云々についてですが、
RDP一般であれば正しいですが、hyperv上でのxrdp/拡張セッションでの接続は、
ホストPCからしか接続できないです。
あとRemoteFX vGPUは今後サポートされる見込みがないですよ > あとRemoteFX vGPUは今後サポートされる見込みがないですよ
もっと優れた代替技術に変わるようだね。 もうそろそろ、Virtualboxのtoolbox相当が存在しないなんていう嘘の話は消えた?
まあ、あるという前提での話になっちゃってるからね。 マイクロソフト太っ腹やなw
Hyper-VにインストールしたUbuntu 18.04の画面解像度を変更する
https://gazee.net/develop/hyper-v-ubuntu-screen-resolution/
結論から言うと、Microsoftが公開しているlinux-vm-toolsをインストールすることで画面解像度を変更することができるようになります。
このlinux-vm-toolsは、その他にもクリップボードの共有機能もあり、インストールしておくと非常に便利です。 Hyper-Vって、ゲストOSとホストOSのクリップボード連携とかがWindows同士でしかできなかったんで、
自分はすぐ使うのをやめたとか言ってる人がいたけど、
本当はできるわけだよね。そいつは馬鹿だなぁと思った。 vhdxってNTFS圧縮するのはダメなのね
WSL2が起動しなくなって何事かと思った WSL2のlocalhost接続がこけた場合のlocalhost接続だけの復旧方法がわからない
vNetworkと別口だとは思わなかったわ
docker for WSL2以外では、使えなくても問題なさそうなところが微妙 WSL使ってる奴は池沼だろ
ドザーなら潔くpowershell(笑)とchocolatey(爆笑)で乗り切ってみろよ雑魚wwwwww Apple信者ってなんでMSに敵意持ってるの?
潰れそうだったAppleに資金提供してくれたから感謝する、なら分かるけど wsl2で構築したlinux環境をまるごとdropbox等のネットワーク上に
上げて、違うPCから同じlinux環境で作業することって出来ますか? 曖昧な質問だけど、
・export/importの話ならできる
・ネットワーク上にwslのdistributionを置いたまま使うという話なら無理 169でも言ってるけど、export、importpで良いやろ
別端末に同じ環境って意味合いなら >>138
ありがとう、Pengwin以外だと問題ないみたいね
ってpengwin-setupのバグみたいだからそりゃそうだけど
profile.dの生成がおかしくてdbusとfcitxの起動がうまく行ってなかった
Debianでtask-japanese-desktopを入れたらuim-mozcが入ったけどこのままibusやfcitx入れちゃっても大丈夫なんだろうか conemuからwslやるとzsh重いからfishにしてみたけどタブ補完の動きがおかしい……
結局bashに帰ってきちゃった docker for wsl2は、wsl2の環境作ってあれば、あまり価値なかった それコンテナ技術の意味合いが分かってないだけじゃないのか? WSLとDockerの環境は全然別物。使い方も違う。
本当にわかってないだろw docker for wsl2は、wsl2上にdocker-cliインストールしてくれるのと
クリックで動作・停止できるくらいしか機能ないから、
docker-cliインストールして使ってればいい >>176
当たり前じゃね?
Docker社が作ったのはDockerであって、
Docker DesktopやDocker for Windowsは
Linuxで動くDockerをWindowsに移植したようなもんだろ?
今までWindows版のRubyを使っていたが
WSLでWindows版Rubyはいらなくなった!って言ってるのと同じで
別にRubyがいらなくなったわけじゃないでしょ?
WindowsがLinuxを内包したから、Windows版が
要らなくなったという話の一部でしか無いよ せめて、docker desktop for win使ってから書けばいいのに わかってないのは>>177>>179>>181のほうだが
ID:wgwFcBqKのほうがクソレスだと思う >>175
conemuは機能的にはいいけどハードスペックでどうにかなる類いの重さじゃないし
UIもごちゃごちゃして使いにくいな 間違えた
>>184
だからお前よりもわかってるってw Debianのインストールイメージがbusterになったみたいだしまたリセットすっかな core-i3(6gen, SSD)のマシンが余ったからinsiderデビューしてみた。
WSL2にして、npm installとかI/Oまわりは実機の7割くらいの速度に改善されてよかったんだけど、
I/O以外で遅くなったりしているから、compileにかかる時間が読みづらかった。
gitやvirtual envの情報をpromptに表示させてたけど、directory移動するたびに少しだけ待たされる。
WSL1や、12年前のlaptop(core2duo, HDD)上のlinuxですら瞬時に表示されるというのに。
とりあえず非同期処理に書き直して対応。
単体としては満足だったけど、VMとの排他利用だと悩む。 >>190
でも、それをいったらMacってなんであんなに遅いんだろうね
WSLなみに遅いよ。 >>192
嘘だと思うなら、こんな感じのコード実行してみ
#!/bin/sh
i=0
while [ $i -lt 1000 ]; do
date > /dev/null
i=$((i+1))
done
俺の環境でLinuxだったら1秒だけど、Macだと3秒かかる。 その手のだとOS云々よりもMeltdown対策がどうなってるかで倍ぐらい変わりそうだな >>193
それが本当だとしてもそのコードが遅いことにどういう意味があるの? うん。Macのカーネルはフォークが遅いんだと思ってる。
Unixとしては実装が片手落ち。取りあえず動くけど最適化されてない dateが遅いだけとか言われそうだから改良してみた。
ともにbashで実行。バージョンは少し違ってMacは5.0.7で、Linuxは5.0.3
MacはMacBook ProでLinuxは同じマシンでしかも仮想マシン(VirtualBox)で実行
#!/bin/bash
i=0
while [ $i -lt 10000 ]; do
( : )
i=$((i+1))
done
dateコマンドを呼び出していない。サブシェルを使ってるから実質フォークのみが行われている。
Linuxだと3.5秒だが、Macだと9秒かかる。とても遅い。 macosのforkが遅いのは以前からさんざんベンチ付きでいわれてたことだし、
windowsにfork相当がないことやwsl1のfork実装がmacosよりも遅いってのも
このスレでも既知のことでしょうに。
>>191は何を言いたかったのかわからない。
あなたが遅いと言ってるのはmacosのforkが遅いってことですよね?
理由は、自身が>>196で書いてる通り、macosのfork実装が悪いんでしょう。
wsl2の話にどうつながるんでしょうか? macosのforkが遅い,windowsにfork相当がないのはGUIソフトではforkは使わない
からなのか?
実はLinuxでもGUIソフトではforkは(ほとんど?)使っていないとか >>198
> wsl2の話にどうつながるんでしょうか?
WSL2では内部で仮想マシンを使ってるから、
Macで動かしたVirtualBox上のLinux相当のパフォーマンスになるよ
高速だね! >>174だけどfcitx-mozcは動いたもののibus-mozcが動かない
そもそもibus-daemonが起動しなくてググってみたけど有力な情報がなくて断念 Windowsでもntdll.dllにRtlCloneUserProcessっていうfork相当の関数があるんだけどね
https://www.google.co.jp/search?q=RtlCloneUserProcess http://k-takata.o.oo7.jp/diary/2014-09.html
> Vista 以降には、RtlCloneUserProcess という内部 API があるらしい。
Vista 以降・・・
内部API・・・ >>199
windowsがforkを用意しなかった理由については、いろんな考察があるから調べてみるといいと思う。
役に立たない知識が増えるだけですけど。
linuxでの基本的なプロセス生成は
1. 親プロセスでforkして
2. 子プロセスで新しいプログラムをexec
3. 親プロセスがwait
の流れで、これはGUIでも同じです。
pstreeで親子関係を視覚化できます。
linuxを半日つかっても、通常1万プロセス程度しか生成されませんし、
forkが遅いといったところで1回あたりマイクロ秒で終わるので、
forkが遅いだけならシェル芸やベンチマーク以外には影響ないです。 >>199
AndroidはGUIでforkを上手に活用しているよ
Google Chromeはタブごとにプロセスを起動しているみたいだけど、通常はWindowsでも
LinuxでもGUIアプリケーションは1個のプロセスとして実装するのが普通で、必要に
応じてアプリケーション内でスレッドを生成している
Androidは、一般的なWindow SystemのWindowに対応するActivityやダウンロード等の
バックグランド処理をするServiceを複数組み合わせて1つのアプリを構成するが、その
AcitivityやServiceはそれぞれ1個1個独立したプロセスとして実行される
例えば、アプリを起動して設定画面を出すとメインActivityと設定Activityで2個プロセスが
起動されるようになっていて、2回forkが実行される
スレッドの生成よりプロセスの生成にはコストがかかるが、Androidのシステムの中核である
Zygoteがforkとコピーオンライトを活用してプロセスを管理していて、高速にAcitiviyや
Serviceを起動できるようにしている
そのためforkのないWindows NTカーネルでAndroidシステムを直接実装するのは難しい
WSL1がWindows上でAndroidを動かすための仕組み由来なのはこういう理由なはず
ちなみにLinuxのプロセスモデルは、VMSやWindows NTのspawnモデルでもUnixのfork
モデルでもなくPlan9のrfork由来のcloneモデルなので、タスクの設計思想が根本的に違う >>203
内部APIはともかくVista以降の何が問題なの?
WSLスレでXPを考慮する必要もないでしょ Ruby on Rails 6 では、テストの並列実行ができるようになったが、
Linux, Mac では、fork でプロセスを起動するが、
Windows では、fork が無いので、スレッドを起動する
ワーカーがプロセスの場合は、データベース(DB)を作成してから実行するので、
他のプロセスのDBと競合しないが、
ワーカーがスレッドの場合は、同じDBを使うので競合する >>208
明らかにruby on railsのバグだなw ウインドウサブ死すテムとは?
JDがウイン10で使えるようになるの? WSL(に限らんけど)Ubuntuのレポジトリって国内のレポジトリにすると速くなるいがいにメリット何かある?
本家には入ってない日本向け/日本で人気あるアプリが登録されてるとか、そういう「日本向けローカライズ」みたいなのされてるかどうかってことなんだけど。
ぐぐっても「近場だからはやいよ」ってばっかりで内容について触れてるページが見当たらない・・・ そうったのが欲しいならサードパーティーリポジトリを追加するんだと思うけど ミラーの意味をわかってないのか
ちなみにUbuntuはミラーを使わないアホ対策に
デフォルトのリポジトリをわざとクソ遅くしてる アホらしい質問で申し訳ないんだが、cronってwslで動かない?
cron起動してログ有効にして */5 * * * * echo "hoge" ってしてんのにログすら吐いてくれない……
なんか書き方間違ってるかな >>215
動くよ
ディストリにも依るだろうけど、ログの出力がsyslog任せになってたりしない?
>> /tmp/hoge.txt とかをコマンドライン後ろに追加してみればいいんじゃない >>216
なるほど、ちょっとやってみよう
ありがとー いい話だな〜。みんなけなし合うんじゃなくて助け合おうよ。 Alpine WSLでユーザー名は設定できたんだけどrootもデフォルトユーザーもパスワード設定されなくてsuできないんだけど手順を間違えたんだろうか 「WSL 2」最大の課題であった“localhost”問題が解決 〜「Windows 10」Build 18945
https://forest.watch.impress.co.jp/docs/news/1198651.html
最大の課題だった模様 最大の課題っていうのは優先順位が高いという意味で
実現が困難という意味じゃないぞw >>223
コマンドプロンプトでwsl -d Alpine -u rootとか?
同じ事になったから今の所そういう作りのようだけど >>226
ありがとう、無事apk upgradeとapk addできたよ 好きな場所にimportして環境作れるな
ストアのいらんやん >>229
そのとおり。MacもiPhoneもAndroidも
アプリを実行するだけならストアはいらないんだよ 以前からwsldlというのがGitHubにあったな WSLはストアの無いサーバOSにも入るから、こんなのもあるよ
ttps://aka.ms/wsl-ubuntu-1804
他にも公開されてたはず >>232
おまえのせいで直リンク踏んで今月の通信量200MB使っちゃったやん
1日の使用量超過なんだけど?
この時代直リンク禁止とは言わないが直リンクなら先に言ってほしい 今パケ死っていうのか?
言ったとしてもギガ死とかでは? 火狐はダウンロードするかどうか聞いてくれたので回避余裕でした わざわざh抜きで貼ってくれてんのにクリックするアホのが悪いわw >>244
>>235か?
ブラクラにあっさり引っかかるタイプだなw どう考えても直臨はる馬鹿が悪いってことだね
自分は悪くない、とか言うつもりのようだけどブラクラ張るやつと同じ事やっててて「俺は悪くない」は通用しないよ
その程度もわからんバカは死んだほうが世の中のためだねw これが直リンク
https://google.co.jp
これは直リンクではない
ttps://google.co.jp
>>246
正真正銘のアホw >>248
× これが直リンク
○ これがリンク
https://google.co.jp
× これは直リンクではない
○ これはリンクではない
ttps://google.co.jp 黙ってりゃいいものをチョンみたいにファビョって恥ずかしい・・・w >>254
俺はお前のことが好きになった
ホワイトリストに復活させてやるよ ■ このスレッドは過去ログ倉庫に格納されています