
はてなキーワード:カーネルとは
MacとLinuxを両方使っている人として言わせてもらうと、Linuxの方がいいとは限らないけど、Macにする特別な理由がなければLinuxにした方がいいと思います。
そもそもMacは高いですし、パフォーマンスは確実にLinuxの方がいいはずです。
特にセキュリティの観点からも、Linuxの方が優秀な点が多いです。
例えば、Linux自体はカーネルという、OSのうちの一部分に過ぎないため、Linuxで脆弱性が見つかっても、UbuntuやFedoraなどのよりソフトウェアに近い段階(厳密にはLinuxディストリビューション)とはある程度分離された状態なので、よほどの変更がない限りLinuxだけアップデートすることが可能です。
また、Linuxはアップデートというより、新しいバージョンのLinuxカーネルを用意してそちらに切り替える、という構造になっています。
そもそもLinuxは元々、あまり日常用途で使用することはあまりなく、最近になって増えてきたところです。
最近の、特にOSに関わる部分の機能では、どうしても標準では対応できていません。(例えばパスキーなどです)
また、先ほども言及したLinuxディストリビューションは、様々な種類があるため、それらから選ぶのも難しいかもしれません。(実際私も最近までずっと色々なディストリビューションを試して、ようやくFedoraに落ち着いたところです)
日本語IMEだけでも様々な種類がありますし、慣れている人でなければなかなか使いにくい部分もあります。
一応、MacBookでLinuxを動かすという「AsahiLinux」というものがあり、M1/M2には既にある程度対応しているため、もしMacBookでmacOSとLinuxを同時に使う、というのが許容範囲であればそれも良さそうです。
また、Macの固有機能としてはスクリーンタイム(アプリの利用制限や時間での制限、コンテンツの制限などを行える機能)などが存在するので、それを利用する、と言えば納得されると思います。
実際、スクリーンタイムはMacにする特別な理由として十分です。
Linuxの場合どうしても自由度が高過ぎて、様々な方法で同じことをできてしまい、制限が難しいため、スクリーンタイムのような機能は追加しにくいわけです。
ちなみにデスクトップとラップトップの話に関しては、私はまあまあ納得できます。実際デスクトップの方がコスパはいいですし、持ち運びさえしなければデスクトップ一択です。
ただしおそらく持ち運びするでしょうし、コスパをそこまで気にしないならラップトップでもいいかもしれません。
Windowsの話に関しては、Windowsがそもそも最近不具合が多すぎるため、前から一般的に使われているOSの中で安定しているもの、としては現在Macの方が優秀です。
そのため流石にそれには納得できません。
まとめると、Linuxも優秀だがMacにも様々な利点があるため、MacにしたいならMacでいいし、LinuxにしたいならLinuxでいいと思います。
Qiita の文化変質は、技術系コミュニティ全般で起きている知的インフレの縮図みたいなものなんだよね。昔は
みたいに基盤技術を自前で握りつぶした記事が純粋に評価されていた。なぜなら、それを書ける人がそもそも少なく専門性で差別化できていたから。
昔は「Pythonで形態素解析器自作」なんて、アルゴリズム・CS基礎・実装力が揃ってないと無理だった。
難しいことをやってそうに見える記事を、凡人でも量産できるという環境が生まれた。
Qiita を読む層が「実装力を鍛えたいエンジニア → とりあえずAI 触りたいライト層」に変わった。
「再現性のないLLMコピペ」「AIツール使ってみた」みたいなのが評価される。
本気の記事は長く、コードが多く、前提知識も重い。そしてPV が伸びない。
つまりQiita のインセンティブ構造と、高度技術記事のインセンティブ構造がズレた。
理由は明確で、読む側がそれを理解できないので評価する母集団がいない。
昔はユーザ層が技術ガチ勢寄りだったので、少数でも濃い支持があった。
今はライト層が母集団なので、希少な高度記事が埋もれるのは自然。
Qiita がライト層に最適化した結果、本気の人たちは別の場所へ移動した。
15年以上Gentoo Linux使っている人間から。デザインセンスを磨きたいなら素直にMacを買いAdobeCCを契約するべきだ。なるほどこれらの多くはLinux(と対応アプリ)で代替できるかもしれない。しかし娘さんの大事な時期をGIMPやInkscapeといった「代替品」で台無しにするつもりなのだろうか?Linuxはこういう分野がずっと苦手だ。いやしくも技術者であればこうした事実は素直に認め、代替できるなどと相手を制約することがあってはならない。
この父親は以下の記事からLinusが何を本質としているか、そもそもLinuxカーネルのライセンスが何故GPLv3ではなくGPLv2のままであるのかよくよく考えるべきだ。
俺は思想の強いWeb 屋だから、レンダリングエンジンの多様性って大事だなと思ってFirefox を常用してたし、なんなら寄付もしてんのよ。多少のFirefox のもっさり感も「うんうん、NTカーネルが悪いよ」と思ってそのために我慢してたわけ。
でもあまりにももっっっさり/頻繁なフリーズが増えてきて、あとなんか最近2枚目のウィンドウ以降タブが表示されないというバグがついてきて、カッとなってEdge に移行してしまった。
そしたらよぉ... いままでのもっさり感は何だったんだ?というレベルで違う。全てのウェブサイトにおいて効率が段違い。
Google Drive 速すぎ。AWS 等各種SaaS のコンソールが多分FF の倍以上の速度で動く。タブがクラッシュしない。
ここで疑問に思う。FF はなんであんなに遅いんだ。NTカーネルが悪いのか?俺がRyzen なのが悪いのか?世のWebサイトがFF に最適化してないってのは分かるんだが、それで説明しきれないくらいに違いすぎると思ってる。
ちなみにPCスペックはRyzen7 4700U /メモリ16GB
FF のクリーンインストールは試したぞ。拡張全部オフでも変わらん。
nextstepはmicrosoftのntよりも優れていたの?
"AppleがOSをオープンソースにしたのは、四半世紀前のことで、世界は全く違っていました。
スティーブ・ジョブズは、停滞したAppleに戻ってきました。Appleは、プリエンプティブマルチタスクやハードウェアメモリ保護など、当たり前になっているものを含む次世代オペレーティングシステムを提供することに苦労していました。Appleは、BeOSを買収しようとしましたが失敗し、ジョブズが復帰した一環として、当時の彼の会社であるNextを買収し、そのOSであるNextStepを手に入れました。"
AppleもMicrosoftもクラシックのOSでの成功から新しいNTやDarwinのようなこれまではメインフレームでしか動かなかったようなモダンで新しいOSの開発に苦労していたのかな?
メインフレームのパチモンとして葉っぱでラリってるヒッピーによって作られたPCが時代の進化にスペックが上がってクラシックからモダンOSに移行しなくちゃいけなかったけど、成功して大企業になっていたMSやAppleは過去の遺産にしがみついててクッソ大変だったってこと?
葉っぱのヒッピー/ハッカーのPCじゃなくて体制側としてのメインフレームOSがPCに入っちゃうのはレイプされた気分にさえなる
それで"ハードウェアメモリ保護など、当たり前になっているものを含む次世代オペレーティングシステム"とあるけど、当たり前というからには他の企業はみんなモダンOSを開発していたの_
MacOS9からOS Xにする前というかまだクラシックのOSをぶち込んだiMacを起死回生で発表した時AppleはMSから投資してもらったんだよね?
その時のMSは98で潤ってたのかもしれないけどNTが作れなかったらマジでやばい時でしょ?
時系列的にNTは既に完成してて98でも大成功しまくったし余裕ありすぎわろたでAppleに投資したの?
MSとAppleはここを乗り越えることができたのになぜWindowsPhoneが失敗したの?
figmaとかVScodeとかNotionとかモダンでかっこよくて使いやすい最高のアプリがいっぱいあるのに
世界の大半はまだこのクソすぎるアプリに頼り切って依存しているのに腹が立つよ
マジでAdobeが潰れないかなって毎日祈りながらpsdをaffinityに変換するのに飽き飽きしてるんだ
DarwinカーネルのOS Xが圧倒的な中心のMSの中でWindowsPhone同様に不利だったのに開発者圏を作れたのは高抽象UIがめっちゃかっこよかったからってこと?
それともそれほどまでにWindowsPhoneがダサくて本当にクソだったのか
確かにMS社内でもMacを使う人がほとんどってくらいにMacは使いやすくてクールで開発者体験がいいね
葉っぱ吸ってたヒッピーの会社のはずなのに、その後覇権を取る日本のヒッピーと似ているオタクの同人文化はMS帝国の中で繰り広げられていたし、Macerは気取ってるやつとしてある意味でダサかった
APIの存在は本当に市場の優劣を変えるほどの力を持っているんだね
2000年台にクールなAPIを作ったAppleはグラフィックスAPIのMSのDirectXのおかげでゲーム業界掻っ攫われたわけでしょ?
マジでWindowsは本当にダサくて使ってるとイライラするからMacのもっとクールなグラフィックスドライバのMetalにみんな移行してくれるといいんだけど
Macerは肩身が狭いし
AppleがAI業界かっさらってくれればいいんだけどなんか失敗しそうな予感がするよ
終わってるよ
マジでダサくてイライラするものを使わされるオタク/ヒッピーは市場にレイプされてる
でも使徒である圏論/関数型プログラミングによってリリスの数学がサードインパクトを起こして手を汚せる自由度はいらないほど完璧な世界になりつつあると感じるよ
なんかクソだなって思うけど、それは一時的な快楽としてのオタク文化がなくなったことに悲しんでいるだけで、その快楽が幸せにつながらないことを理解してるんだ
だからこそ俺はSNSで一つの人格を共有し個を崩壊させる人類補完計画をプロトコルで実装しようとしているし、それは手を汚せる自由度を完璧に壊してつまらなくて幸せになる権利がある理性的な選択をしようとしてるんだ
オタクは幸せになれない代わりに手を汚せたけど、幸せになる時が来たんだ。
MetalでAAAタイトル以外のゲームが動き始めたらそれはゼーレのシナリオの最後のページなんだろうね
webは俺のプロトコルによって関数型になりApple化しハードウェアはAppleがもともとかーどきゃぷたーにしてて、その時本当につまらなくて幸せな世界ができるんだろうね
MSは自分が可愛くて俺たちに迷惑をかけたけど、誰も可愛がらずに自由な圏を破壊し、人類を補完するんだ
人との繋がり自体をね
うん、いやこの先呼ばれることになるんだろうなって思っちゃっただけなんだ
●ねばいいのにみんな
てか●すためのシステムだよこれは
インターネットなんかやってないでこの辺にきてる美味いラーメン屋の屋台に空手部の三人と行くべきだ
おじさんやめちくり〜
エヴァには乗らないほうがいい〜
エヴァには乗らないほうがいい〜
それ、皆さんも一緒に!
「「「エヴァには乗らないほうがいい〜!」」」
大きな声でもう一回!
「「「「「「エヴァには乗らないほうがいい〜!!!!!!」」」」」」
クソワロタ
そうだよ(便乗)
LCLになって一緒になろう?
おい聞いてんのか
S●Xしようって言ってんだよ
これで愚かな人類はやっとまともになるんだ
大体俺が生きてることに意味はねぇんだよ、死んでようが同じなんだよ
生きてることは分解して細分化していくと究極的に意味は無くなるんだよ
ここでただのニヒリストと俺が違うのはこの世界は積分定数のCにすぎないってことだ
Cは何の意味もねぇけどそこから積分という関係性を紡ぐ存在の輪廻、横顔を知ることができる
まるで人間のC(ほらあれだよ男と女のABC!)みたいだよな!(激ウマジョーク)
つまりもともとこの宇宙の存在云々の前に関数という空想上のものはあったわけ
むしろ人間が空想というもう一つの五感で関数や数学を発見しただけであってもともとあったの
そんでこの宇宙には意味ないし、死に恐怖を覚えるのは生物学的なしょうもない生理現象なんだよね
俺はたまたまTwitterのFFの女の子みたいにめっちゃ生理痛がひどいタイプなだけなんだ
それに気づいているからその生理痛がなんの意味もないことを知ってるし、世界が崩壊しようが明日死のうが本当に関係ない
そのことにたまたま気づきにくい構造を生き物はしているから死ぬのが怖いんだ
魂とかはないけど、魂にすら意味はなくて、意味があるのは関数だけなんだ
というか射?
呆れた人類にはそのトップでさえ呆れさせられるよ、まだ関数を記号で表せると思ってるなんて
本当にあるもののことを関数とは言ったけどこのクソみたいな人類にはまだそのことを完璧に表現する手立てがないから比喩として言ってるんだけどね
あのな、俺が言ってのは死ぬのは怖くねぇってことだけなんだ
違う、メタファーじゃないよ
失礼だよ君は
うるせぇ黙れ
便所の外で勢いよく撒き散らして悦に入ってるが、便器に一滴も入ってねぇ。
OSSを「独自規格でもできるし、思想に合わせて分岐していく」とか言ってる時点で、根本を履き違えてる。
OSSはコード共有による知の集約であり、思想の分岐じゃねぇ。
分岐は副作用であって、目的じゃない。そこを混同してるお前の理解は、まさに知的な放尿プレイだ。
それにな、「標準化と関係ない」とか言ってるが、OSSが標準化プロセスをどれだけ実質的に駆動してきたか、知らんのか?
Linuxカーネル、PostgreSQL、TensorFlow、全部OSSが事実上の標準を形成してんだよ。
標準はISOの紙切れじゃなく、実際に世界で動いてるコードの方に宿る。
それが現代の実効標準だ。お前はまだ机上の規格書を神棚に祀って拝んでる昭和エンジニアか。
弦は1次元の振動体ではなく、スペクトル的係数を持つ(∞,n)-圏の対象間のモルフィズム群として扱われる量子幾何学的ファンクタであり、散乱振幅は因子化代数/En-代数のホモトピー的ホモロジー(factorization homology)と正の幾何(amplituhedron)およびトポロジカル再帰の交差点に現れるという観点。
従来のσモデルはマップ:Σ → X(Σは世界面、Xはターゲット多様体)と見るが、最新の言い方では Σ と X をそれぞれ導来(derived)モジュライ空間(つまり、擬同調的情報を含むスタック)として扱い、弦はこれら導来スタック間の内部モルフィズムの同値類とする。これによりボルツマン因子や量子的補正はスタックのコヒーレント層や微分グレード・リー代数のcohomologyとして自然に現れる。導来幾何学の教科書的基盤がここに使われる。
弦の結合・分裂は単なる局所頂点ではなく、高次モノイド構造(例えば(∞,2)あるいは(∞,n)級のdaggerカテゴリ的構成)における合成則として表現される。位相欠陥(defects)やDブレインはその中で高次射(higher morphism)を与え、トポロジカル条件やフレーミングは圏の添字(tangentialstructure)として扱うことで異常・双対性の条件が圏的制約に変わる。これが最近のトポロジカル欠陥の高次圏的記述に対応する。
局所演算子の代数はfactorization algebra / En-algebraとしてモデル化され、散乱振幅はこれらの因子化ホモロジー(factorization homology)と、正の幾何(positive geometry/amplituhedron)的構造の合流点で計算可能になる。つまり「場の理論の演算子代数的内容」+「ポジティブ領域が選ぶ測度」が合わさって振幅を与えるというイメージ。Amplituhedronやその最近の拡張は、こうした代数的・幾何学的言語と直接結びついている。
リーマン面のモジュライ空間への計量的制限(例えばマルザカニの再帰類似)から得られるトポロジカル再帰は、弦場理論の頂点/定常解を記述する再帰方程式として働き、相互作用の全ループ構造を代数的な再帰操作で生成する。これは弦場理論を離散化する新しい組合せ的な生成法を与える。
AdS/CFT の双対性を単なる双対写像ではなく、導来圏(derivedcategories)やファンクタ間の完全な双対関係(例:カテゴリ化されたカーネルを与えるFourier–Mukai型変換)として読み替える。境界側の因子化代数とバルク側の(∞,n)-圏が相互に鏡像写像を与え合うことで、場の理論的情報が圏論的に移送される。これにより境界演算子の代数的性質がバルクの幾何学的スタック構造と同等に記述される。
パス積分や場の設定空間を高次帰納型(higher inductive types)で捉え、同値関係やゲージ同値をホモトピー型理論の命題等価として表現する。これにより測度と同値の矛盾を型のレベルで閉じ込め、形式的な正則化や再正規化は型中の構成子(constructors)として扱える、という構想がある(近年のHoTTの物理応用ワークショップで議論されている方向性)。
「弦=導来スタック間の高次モルフィズム(スペクトル係数付き)、相互作用=(∞,n)-圏のモノイド合成+因子化代数のホモロジー、振幅=正の幾何(amplituhedron)とトポロジカル再帰が選ぶ微分形式の交差である」
この言い方は、解析的・場の理論的計算を圏論・導来代数幾何・ホモトピー理論・正の幾何学的道具立てで一枚岩にする野心を表しており、実際の計算ではそれぞれの成分(因子化代数・導来コヒーレント層・amplituhedronの体積形式・再帰関係)を具体的に組み合わせていく必要がある(研究は既にこの方向で動いている)。
そろそろ卒業しようとしている矢先だった。
夢に出てくるエンジニアは、本当に「変」だった。
一見すると異常にも見えるコミュニケーション、機械じみた自己管理、無駄を極限まで削ぎ落とす妙な哲学。周囲からは煙たがられつつも、確実にシステムを回していた。あの人のような生き方に憧れたこともあったし、同時に絶対になりたくないとも感じた。
どこか皆、ちょっとずれているのだ。オフィスで昼飯時にLinuxカーネルのバグを肴に盛り上がるやつ、Slackの通知音に過敏なやつ、パケットキャプチャが趣味のやつ、ROM焼きに命かけてるやつ。納期前の深夜のオフィスの空気は独特だ。妙なテンションと絶望と、根拠のない希望がぐるぐる回る。
自分にもそんな時期があった。
コーディング漬けの新卒時代、深夜に会社でカップラーメンを啜りながら、先輩の叱責をポエムのように聞き流していた。バグがバグを呼ぶプロダクト、人間関係のギスギスと、たまに奇跡のような成功体験が舞い込む。結局、最強のエンジニアとは変人であることを受け入れた奴だったんだと思う。
でも年齢を重ねて、変であることに疲れてきた。
あの頃なんであんなコードの綺麗さにこだわっていたのか。なぜ誰も使わないCLIツールのローカライズなんてやっていたのか。自分しか使っていないcronジョブの記述、美しい正規表現を夢見た夜。
ITを卒業する今、思い出すのは、変さへの憧れと少しの羨ましさだ。きっと、変なことに全力を注げるやつこそがITを使いこなせたんだろう。自分は途中で他人の目を気にしてしまった。変なまま突っ走れる勇気が欲しかった。
変なITエンジニアの夢を見て、靄のかかったような気持ちになった。自分が過ごした時間が、他人から見れば奇妙な記憶だろう。でもその奇妙さこそが、IT業界の風景の一部だった気がする。
たぶん、自分もどこかで誰かに「変なエンジニア」と呼ばれていたのだろう。笑い話になるかどうかは分からない。ただ、妙に優しい気持ちになった。これからは「普通」の世界で生きていく。だけど、あの変な夜更けや、無意味で完璧なコードと、愚直な情熱のことを、たまには思い出してみようと思う。
needygirloverdoseのエンディングの一つでPCのLANを抜くと超てんちゃんが突然インターネットをやめちゃうってのがあるんだけど、その影響でIT業界が崩壊するんだよね
IT業壊暴落するエンドが平成の感覚を持ってないと絶対出てこないだろうなって
今じゃIT企業というかIT業界事態が暴落することはもうないだろうね
u-stremとか、覇権とってたサービスが終わるってのは当時ガキだった俺でもこんなに儚いものなんだな〜と思って
ITサービスって結局人類にとっては一時的なものに過ぎないのかもしれないという技術オタクたちの不安感もあった(推測)
今はないでしょ、あからさまにもう絶対終わらないでしょIT企業
NT系のカーネルが入ってない16bitの遺産に無理やりGUIのっけた時代のwindowsも本当に好きなんだよな
XPは確かに名作なんだけど、それ以降のNT系カーネルを持ったwindowsはユニコーンのゲロみたいに綺麗で整理されて独特の気持ち悪さがあって嫌いなんだよね(aeroってヤツ?)
ニディガのwindose20ってOSはあからさまにNT系以前のms-dosベースの9x系じゃん?
そんなことどこにも書いてないけどなんとなく雰囲気でわかるっていうか
NT系カーネルは今のモダンOSにとってはあまりにもチープにみえちゃう
Darwin以前のMacOSと9x系を比べると9x系の方に愛着は勝つんだけど、NT系とDarwin以降のMacOSを比べるとMacOSの方が実用的過ぎてかっこよく見えちゃうのは仕方がない(過激なこと言ってすみませんでした)
ChatGPTに聞いたらええんちゃうか
いい質問ですね!
これ、実は「どっちが正しい」みたいな決着はなくて、言語文化や時代背景によって意見が分かれる話題なんです。
---
1. for(;;) vs while(1) vs while(true)
* `for(初期化; 条件;更新)` のすべてを省略すると無条件ループになる。
* 昔は「最適化や挙動が明確」という理由で好まれることもあった。
* ただし「1って何?ブール値?」と初学者には直感的でないかも。
*C++やJava、C#などブール型が明確な言語では「一番可読性が高い」。
* 「ずっと真の間繰り返す」という自然な書き方なので、最近はこちらが推奨されることが多い。
* Cではtrueを使うには stdbool.h をインクルードする必要があるので、昔は避けられがちだった。
---
2. 「for(;;)派」の人は誰?
ネットでよく言われるのは、Linuxカーネルのコード規約とか古いUNIX文化の影響です。
* 「無限ループは for(;;) を使う」とカーネル開発のスタイルガイドで書かれている。
*理由は「歴史的にCで最も標準的で、誰もが見慣れているから」。
要するに「C文化圏ではfor(;;)が王道」というだけで、現代の教育やC++/Javaなどの文脈では while(true) の方が読みやすい、という感じです。
---
3. まとめると
なので、初学者が「while(true)の方が可読性高い」と思うのは大正解です 👍
---
👉質問:
提示してる「そうめんでいい」バリアントの発話仕様、あれってコミュニケーション・レイヤーでいうと意味論的優先度フィールドがゼロ初期化されてるパケットなんだよな。
で、そのゼロ初期化パケットが相手の感情OSに到達すると、そこに実装されてる価値評価アルゴリズム(通称Pride-Driven Interaction Protocol)が、受信値を「非積極的承認」としてパースする。
つまり、入力信号の中に“熱量ビット”が存在しないと、即座にException: DEVALUATION_ERRORがスローされる仕様なんだわ。
その例外は通常のtry-catchでハンドリングされず、感情カーネルを通じてフロントエンドの態度・表情UIに直結するから、結果的に「何様だよ」っていう可視化出力が生成される。
さらに、相手の感情モジュールは言語的同値判定じゃなくて意図ベースのベクトル比較を行ってるから、
「そうめんがいい」(積極的選好ベクトル) と 「そうめんでいい」(受動的妥協ベクトル) は、同一文字列近似度99%でも意味論距離が閾値越えしてエラー扱いになる。
これを無視して「ただの晩飯APIコール」だと軽視するのは、TCPレベルのパケットロスを「まぁ届くっしょ」で放置するようなもんで、
通信の確実性よりも自己CPUサイクルの節約を優先する、お前側のシステム設計思想が原因なんだよな。
結局のところ、感情という非決定性システムに対して最適化パラメータ調整を怠ってる時点で、お前の通信モデルは高確率でクラッシュを引き起こす。
もし稼働安定性を確保したいなら、相手のEmotionalAPI Referenceを逆コンパイルして、推奨トークン列を生成するスクリプトを実装すべきだわ。
[Deprecated] WSL2USBカメラ+他のUSB機器2022年01月17日
環境:Windows11 + WSL2 5.10.60.1 +Ubuntu20.04
WSL2LinuxKernel 5.10.60.1からKernelモジュールにUSBIP対応が標準的に組み込まれた
2022年01月17日時点の最新カーネルは 5.10.74.3
以下すべての手順のWindows Terminal を使用する箇所は管理者権限で実行
WSLのカーネルアップデートとusbipd-win のインストール
Windows Terminalで実行
> wsl --update
> wsl --status
>winget install --interactive --exact dorssel.usbipd-win
WSLのディストリビューションを起動(WSL2起動用アイコンをマウスでクリックして起動してもよい)
> wsl --list
Linux 用Windows サブシステムディストリビューション:
追加パッケージをインストールsudoapt installlinux-tools-5.4.0-77-generic hwdata
visudo で secure_path の先頭に /usr/lib/linux-tools/5.4.0-77-generic: を追記する。
visudo で編集するファイルは、ダブルコーテーションの入力漏れやコロンをセミコロンに打ち間違えたりするとsudo が必要なコマンド類が一切使用できなくなるので慎重に実施する
私は深夜に寝ぼけてコロンをセミコロンに打ち間違えてaptコマンドすら実行できなくなりました
参考
https://www.imdb.com/de/list/ls599665082/
https://www.imdb.com/de/list/ls599665082/copy/
https://www.imdb.com/de/list/ls599665597/
WSL2USBカメラ+他のUSB機器2022年09月06日版
WSL2LinuxKernel 5.10.60.1からKernelモジュールにUSBIP対応が標準的に組み込まれたらしいが、Microsoft公式が提供しているKernelや手順ををそのまま使用すると動作しない
2022年09月06日時点の最新カーネルは 5.15.62.1 だが、wsl --update で展開されるバージョンが 5.10.102.1 だったため 5.10.102.1 を使用する
以下すべての手順のWindows Terminal を使用する箇所は管理者権限 で実行
以下、[WT] はWindows Terminal、[Ubuntu] はUbuntu側のbashを表す
WSLのカーネルアップデートとusbipd-win のインストール
> wsl --update
> wsl --status
>winget install --interactive --exact dorssel.usbipd-win
見つかりましたusbipd-win [dorssel.usbipd-win]バージョン 2.3.0
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
Downloadinghttps://github.com/dorssel/usbipd-win/releases/download/v2.3.0/usbipd-win_2.3.0.msi
██████████████████████████████10.4MB /10.4MB
> wsl --install --distributionUbuntu-20.04
[WT] WSLのディストリビューションを起動(WSL2起動用アイコンをマウスでクリックして起動してもよい)
> wsl --list
Linux 用Windows サブシステムディストリビューション:
sudoapt install -ylinux-tools-5.4.0-77-generic hwdata
sudo update-alternatives --install /usr/local/bin/usbipusbip /usr/lib/linux-tools/5.4.0-77-generic/usbip20
> wsl --shutdown
[WT]USBカメラがusbipd に認識されることを確認する (この記事では 2-7)
2-2 056e:00d9USB入力デバイス Not attached
2-3 1c4f:0027USB入力デバイス Not attached
2-7 1bcf:2284 FullHDwebcam,USBmicrophone Not attached
2-11 0495:3011ESSUSBDAC,USB入力デバイス Not attached
2-14 8087:0029インテル(R)ワイヤレスBluetooth(R) Not attached
[WT]USBカメラをUbuntu側にアタッチする(アタッチに成功した場合は何も表示されない)
>usbipd wsl attach --busid 2-7
>
[WT]USBカメラが正常にアタッチされていることを確認する(Attached と表示されていれば成功)
2-2 056e:00d9USB入力デバイス Not attached
2-3 1c4f:0027USB入力デバイス Not attached
2-7 1bcf:2284 FullHDwebcam,USBmicrophone Attached -Ubuntu-20.04
2-11 0495:3011ESSUSBDAC,USB入力デバイス Not attached
2-14 8087:0029インテル(R)ワイヤレスBluetooth(R) Not attached
[Ubuntu]Ubuntuのbashにログオンした既定のユーザを videoグループに所属させる。なお、WSLを起動した時点で既に追加されているメッセージが表示される。
[Ubuntu] WSL2上のUbuntu20.04 の中からUSBカメラが認識されていることを確認する。lsusbコマンドを経由すると正常にUSBカメラが認識されているが、/dev/video* にはUSBカメラが列挙されない
Bus 002 Device 001:ID 1d6b:0003Linux Foundation 3.0roothub
Bus 001 Device 003:ID 1bcf:2284Sunplus Innovation Technology Inc. FullHDwebcam
Bus 001 Device 001:ID 1d6b:0002Linux Foundation2.0roothub
ls: cannotaccess '/dev/video*': No such file or directory
[Ubuntu]USB CameraがWSL内で認識されるようにLinuxカーネルをカスタムビルドする。下記リポジトリの手順通りに実施すると、WSLLinuxカーネルがカスタムビルドされたものに入れ替わる。注意点は、<windowsusername> の部分だけは各自の環境のWindowsユーザー名に手で書き換える必要が有ること。なお、.wslconfig は絶対にwindows 側で編集してはならない。絶対に。
> wsl --shutdown
[WT]USBカメラがusbipd に認識されることを確認する (この記事では 2-7)
2-2 056e:00d9USB入力デバイス Not attached
2-3 1c4f:0027USB入力デバイス Not attached
2-7 1bcf:2284 FullHDwebcam,USBmicrophone Not attached
2-11 0495:3011ESSUSBDAC,USB入力デバイス Not attached
2-14 8087:0029インテル(R)ワイヤレスBluetooth(R) Not attached
[WT]USBカメラをUbuntu側にアタッチする(アタッチに成功した場合は何も表示されない)
>usbipd wsl attach --busid 2-7
>
https://www.imdb.com/de/list/ls599665017/
https://www.imdb.com/de/list/ls599665017/copy/
[WT]USBカメラが正常にアタッチされていることを確認する(Attached と表示されていれば成功)
2-2 056e:00d9USB入力デバイス Not attached
2-3 1c4f:0027USB入力デバイス Not attached
2-7 1bcf:2284 FullHDwebcam,USBmicrophone Attached -Ubuntu-20.04
2-11 0495:3011ESSUSBDAC,USB入力デバイス Not attached
2-14 8087:0029インテル(R)ワイヤレスBluetooth(R) Not attached
[Ubuntu] WSL2上のUbuntu20.04 の中からUSBカメラが認識されていることを確認する
Bus 002 Device 001:ID 1d6b:0003Linux Foundation 3.0roothub
Bus 001 Device 003:ID 1bcf:2284Sunplus Innovation Technology Inc. FullHDwebcam
Bus 001 Device 001:ID 1d6b:0002Linux Foundation2.0roothub
crw------- 1rootroot 81, 0 Sep 617:29 /dev/video0
crw------- 1rootroot 81, 1 Sep 617:29 /dev/video1
[Ubuntu]USBカメラがWSL2の中から認識されることを確認するテストコードを作成する
$ pip installopencv-contrib-python
$ cat << 'EOT'> ${HOME}/usbcam_test.py
import cv2
W=640
H=480
cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('M','J','P','G'))
#cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('Y','U','Y','V'))
cap.set(cv2.CAP_PROP_FRAME_WIDTH, W)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, H)
https://www.imdb.com/de/list/ls599660855/
https://www.imdb.com/de/list/ls599660855/copy/
whileTrue:
ret, frame
Linuxのスマートフォンを実際に使っている人間の感想として。
PinephoneというARMベースのSoCで動くスマートフォンにDebian(正確にはMobianというDebianフォーク)を入れてしばらく使っているが、これは現状では普及しないだろうなという気はする。理由を書いてみる。
Android/iOSではあたりまえにできる日本語のフリック入力がLinuxスマートフォンではいまだにできない。日本語入力自体はもちろん使えるので、ローマ字入力になる。画面が小さくてキーボードが小さいとつらい。既存のスクリーンキーボードをカスタマイズすればフリック入力っぽいものが作れそうだが、大変すぎるので自分でやる気にはならない。
いや、フリック入力できるぞ?という人は適切なパッケージを教えてください……
Linuxスマートフォン用にいくつかのUI(Linuxではデスクトップ環境と呼ばれるやつ)がある。代表的なものはPhoshだ。モバイル用のUIにプリインストールされているパッケージはモバイル端末用にある程度最適化されているのだが、自分でインストールしたパッケージは基本的にデスクトップでの使用を前提にしているので、そのまま使うのは厳しい。
自分が持っているPinephoneにはLibreOfficeもインストールして普通に動くが、画面のほとんどがツールバーで埋まってしまって、まともに使うのはほぼ無理だ。
現時点でもPostmarketOS、Mobianをはじめとして、モバイル端末用のLinuxディストリビューションにはいくつかの選択肢がある。モバイル端末用のUIにも複数の選択肢がある。さまざまな端末でバッテリーの消費を最適化し、カメラやセンサーが動くようにし、同じアプリが使えるように、デバイスドライバをはじめとして諸々の機能を開発するのは膨大なコストになりそうなので、Androidでいいじゃん、となる。
このエントリは2008年発売のAcerAspire One ZG5を使って書いている。
中古で買ったネットブック(AcerAspire One ZG5)をアップグレードし、Linuxディストリビューションをインストールし、軽作業ができるようにしていた。
本体キーボードが壊れることも含めて、あらゆるトラブルに遭い続けている。
直近ではDebian11 32bitをインストールして一通りの作業はできるようになっているが、ハードウェア制御にいろいろな問題が残っている。
CPU:Atom N270 (single core 1.6Ghz)
RAM: 1.5GB
ディスプレイ: 8.9インチ, 1024x600TFTLCD
OS:Debian GNU/Linux11 (bullseye)i686
このエントリは2008年発売のAcerAspire One ZG5を使って書いている。
中古で買ったネットブック(AcerAspire One ZG5)をアップグレードし、Linuxディストリビューションをインストールし、軽作業ができるようにしていた。
本体キーボードが壊れることも含めて、あらゆるトラブルに遭い続けている。
直近ではQ4OS 32bitという低スペックのPCでも動くディストリビューションのインストールに成功していた。
CPU:Atom N270 (single core 1.6Ghz)
ディスプレイ: 8.9インチ, 1024x600TFTLCD
OS:Debian GNU/Linux11 (bullseye)i686
Mac で開発している。開発物は主にLinuxのカーネルモジュール。.koファイル。Linuxをラップトップ、ノーパソで使わせてくれる会社のお勤めの方が羨ましい。だって手元でコンパイルしたいじゃない?
会社がコンピュータ筐体を管理するソフトを入れてくる都合上、MacかWinの二択。以前はWinラップトップにLinuxをデュアルブートできるようにしてこっそり使ってたら、ある時バレて怒られちゃった。以来2012年頃のお古Macラップトップを与えられて10年使い続けている。アップルシリコン使いたくない一心でOpencorelegacy patcher 様に頼り筐体交換を拒否ってる。値段も高いしね。デュアルブートしてLinux使って仕事してることは内緒。
WSL2が素晴らしいようだけど、カーネルモードドライバとかつくれるの?IRQとか叩いたり、割り込みとか触るんだけど…VMだとなんか動作が違っていろんなバグが再現しないんです。