リンク:
コメント (57)
_________________________________________________
俺はLinuxカーネル開発をプロとしてやってる。いい本だよ。いくつかのAPIは古くなってるけど、基本的な概念はまだ同じ。いつも通り、実際にコードを書くことで補完するのがいいね。そうすれば、リアルタイムで何が変わったかが分かる。
他に始めるためのリソースはある?
ラボを進めてみて。
俺はディスプレイ用のカーネルモジュールをプロとして書いてるけど、それが始めるのに役立った。
これすごい、シェアしてくれてありがとう。
ディスプレイ?説明してくれる?
いくつかのディスプレイは動かすためにカスタムドライバが必要なんだ。時にはデバイステーブルのエントリだけで済むこともあるし、他の時はIOエクスパンダーや電源レギュレーター、パネルのI2Cインターフェース用のドライバを書く必要がある。俺はあるディスプレイ用にdrmブリッジドライバも書いたよ。
どんなディスプレイのことを言ってるのかもっと知りたかったけど、分かった気がする。でも、これは俺の給料の範囲を超えてる。俺はただノートパソコンを起動してYouTubeを見るだけだから。
組み込みAndroidデバイス用のディスプレイだよ。
Androidデバイスではほとんどのディスプレイが独自のドライバを必要とするって本当?
多くの場合、SoCベンダー(例えばQualcomm)が一般的なMIPIデバイスドライバを提供する。この一般的なドライバは、デバイステーブルを使って特定のディスプレイプロパティで設定できる。エンーブルピンやディスプレイタイミングなどはこの方法で指定できる。そういう意味では、ドライバを書く必要はなくて、デバイステーブルを通じて設定を指定するだけで済む。
もし基本的なMIPIドライバ以上のニーズ(例えば、動作中にI2Cでデータを送る必要がある場合)があるなら、一般的なドライバをカスタマイズするか、同じことを達成するための別のモジュールを作ることができる。
それはQualcommのダウンストリームディスプレイカーネルドライバだけだよ。アップストリームカーネルでは、MIPI DSIディスプレイドライバを書くか、既存の一般的なMIPI DSIディスプレイドライバにディスプレイタイミング/GPIOを追加する必要がある。俺はQualcommのデバイステーブルを通じた方法が好きだけど、ベンダーが自分のディスプレイドライバやタイミングをアップストリームに上げるインセンティブがないから、オープンソースには良くない。
15年前にこの本を最初から最後まで読んだ。Linuxの内部についての魅力的で深い、でも読みやすい本だよ。
もちろん、15年でたくさんのことが変わったけど、基本的な部分はほとんど同じだ。
ユーザーレベルのプログラムがより高いセキュリティレベルで動いているOSにシステムコールをする仕組みを理解したときは、本当に感動した。すごくクールだよ。
Lustreは最高だよ、もしそれに関わってるなら。
聞いたことも使ったこともない。
驚くことじゃない、だっておそらくスパコンを持ってないから。
いや、笑。今このサブはちょっと毒性があるね。なんで俺が言ったことに対して13のダウンボートがあるのか全然理解できない。たくさんのトロールがいる。
誰かがLustreについて言及したスレッドに現れて「聞いたことない」って言っただけだよ。それは議論に貢献してないし、Googleで得られたはずのさらなる説明を求めることもなかった。
/r/Linuxはエリートの集まりになったの?
いや、ただ読解力のある人たちだよ。
数十年前、オンラインで検索エンジンを使うのは当然だった。メーリングリストやIRCで質問する前に。
お前は「聞いたことない」って言って、OPにとって興味のあるツールについて話に飛び込んできた。
出て行け。
俺もお前のママのことは聞いたことないけど、彼女も最高だと思うよ☺️
お前のママや妹についても同じことを言われてたよ。
妹はいないけど、俺のママは最高だ。彼女のことが大好き。
ユーザー名が合ってるな。
開発はチェックしてない。カーネル開発で違いを生むことができるかな?5年のDevOpsとサイバー専門家。
やる価値ある?
スタック: python, Bash, ruby
_________________________________________________
まだ価値はあると思う。Linuxカーネル開発に入る方法だし、印刷されたものは棚に並ぶ時点で既に古くなってる。だから、そのまま進めて、合わないところはインターネットを使えばいい。
_________________________________________________
最近読んだ。まだいい本だよ。syscalls、VFS、ページキャッシュのようなコア概念の良い概要を提供してる。多くの詳細が変わったことを頭に入れておく必要があるけど、本当に楽しめたし、たくさん学んだ。
_________________________________________________
Linux Kernel Programming Second Edition by Kaiwan N. Billimoria (2024)。
この本はv6.xカーネルに焦点を当てていて、すべてのガイドと例が最新のUbuntu LTSを使用している。
この本の半分は最初のモジュールを書くことについてだ。俺はあまり好きじゃなかった、著者が常に自分を繰り返してるから。
著者は自分の本をモジュールにリファクタリングすべきだ、そうすれば繰り返さなくて済む。
_________________________________________________
この本を大学でLinuxカーネル開発を教えるときの参考にしたのは約10年前だ。Linuxカーネルの内部についてはまだ非常に有効だ。この本は基本以上のことを教えてくれるし、まだ有効だけど、いくつかの部分はすでに古くなってる。
_________________________________________________
2版を持ってる。著者はいいライターで、概念をうまく提示してる。こういう本に求めるものだよ。これと最近のコードのバージョンがあれば、しっかりしたスタートになる。
100% – ずっと前に読んだけど、冗談抜きで本当にページをめくるのが楽しかった。時々チェックするけど(そして失望する)、新しいものを書いてないのを見ると。
_________________________________________________
この本が書かれた時点での特定のバージョンのカーネルをまだダウンロードして実行できるってことを指摘するコメントをまだ見たことがない。もしカーネルコードを書く仕事を得るのが目標なら、最適ではないかもしれないけど、学ぶには非常に実行可能なオプションだよ!
_________________________________________________
どれくらいの時間があるの?カーネル開発における15年って何?
ETA: これは冗談のつもりだった。他のコメントを読むと、まだいくつかの価値があるようだけど、最新のトレンドに追いつくためには明らかに追加の作業が必要だね。
_________________________________________________
この本について「https://download.oldlinux.org/ECLK-5.0-WithCover.pdf」って投稿で聞いたことがあるかもしれない、役に立つかも。
要約の一部: 「この本は初期のLinuxカーネル(V0.12)のすべてのソースコードに対して詳細で包括的なコメントと説明を提供し、読者がLinuxの動作メカニズムを包括的かつ深く理解できるようにすることを目的としています…」
ちなみに、頑張ってね。
_________________________________________________
もっと最新のものを推薦する人いる?それともまだこれを使うべき?
これはいい出発点だよ、ただし(提案されているように)実際のカーネルドキュメントやガイドも読み続けることが大事。そっちの方が最新だし、本とドキュメントを補完し合う。
も補完に使うといいよ。
俺も知りたい ;)
_________________________________________________
もし最初のページに「ユーザースペースを壊さない!」って赤字でフルページの文がなかったら、読まない。リンウスを怒らせるな。
/s
_________________________________________________
この本を推薦してる人たちへ - 俺は好奇心から読んだ2版を持ってるけど、楽しんだ。今回の版ではどれくらい変わったの?
_________________________________________________
オペレーティングシステムをどれくらい理解してる?
_________________________________________________
2020年に、大学院の組み込みシステムとLinuxカーネルドライバ開発をこの本の章を使って教えた。
まだいいリソースだし、カーネルドキュメントを読めばすぐに最新情報に追いつける。
_________________________________________________
基本的な概念を理解するためにこの本を読む。何かを実装する必要があるときにソースコードを見る。何を探すべきかを知っていれば、カーネルソースのクロスリファレンスがあれば十分だ。実際の動作するドライバやコードを通じて、何でもする方法の例が数百もある。
_________________________________________________
俺はフルタイムのカーネル開発者じゃないけど、いくつかのパッチとプラットフォームドライバを実装したことがある。この本はいい、しっかり読んで、特定のAPIよりも概念を重視した方がいい。ハンズオンでやりたいなら、カーネルドキュメントやデバイスモデルを読むことを勧める。サブシステムの内部設計に深入りする必要がないなら、大丈夫だよ。
_________________________________________________
この本は約10年間俺の本棚にあった。最初はいい意図で買ったけど、当時のカーネルが少し古いって理由で開けなかった。やってみなよ、 dude。
_________________________________________________
LOL、懐かしい思い出だな。90年代の初めから中頃にカーネル開発をしてた頃を思い出す。あの頃から約4000万行のコードが増えた。まだ初期段階で、200k行にも満たなかった頃だ。
_________________________________________________
関係ないけど、Linuxカーネルの全リポジトリをクローンするのはやめた方がいい。たくさんのコミットやタグがあるから。
_________________________________________________
Linux Programming Interface
この本はOPの投稿の本と同じスキルを教えてくれるの?
それとも単にさまざまなシステムコールを示してるだけ?
_________________________________________________
最近の本を始めるために推薦してくれる人いる?Linuxを異なるマシンや電話で動かすためにカーネルを開発したい。
_________________________________________________
どれくらい興味がある?きっとたくさん学べると思う。でも、時間とエネルギーが限られてるなら、古い情報が含まれてないことが分かってるものを読む方がいいかも。
_________________________________________________
「ユーザースペースを壊さない」ってコピペが広まることを本当に願ってる。
_________________________________________________
2010年のはCで書かれてて、うまく動いて、クラッシュもせず、完璧に機能してた。アプリケーションはほとんどデスクトップ用で、すごくスムーズだった。
今のは毎日不要なニュースが何百万もあって、頼んでもいないのに更新される。すぐにクラッシュするし、言語や設定ファイルに関しては混沌としてる。
LinuxもWindowsもMacもAndroidも、ずっと悪化してる。 昔やってたことは、今はもっと複雑で時間がかかる。
ソフトウェアだけじゃなくて、ハードウェアも後退してる。昔は100%機能するPS2キーボードがあったのに、今はシンプルなキーボードですらUSBみたいな不必要に複雑なプロトコルを使ってる。
Arduino、ESP32、STM32のプロトタイプを開発中なんだけど(教育用のRPN計算機)、USBじゃない数値キーボードが見つからない… マイクロプロセッサがキーボードと通信するために、キーボードやアクセサリにもっとお金を使わなきゃいけない。
これは我々が陥った広範な愚かさの明確な例だ。
_________________________________________________
リンウスとどうやって対処するかの章があるか気になるな、彼がゲートキーパーだからxD。
_________________________________________________
Rust :)