Unix / Linuxの内部をよりよく理解するために読むことをお勧めします[非公開]


54

私は過去4年間、アプリケーション開発者として(主にCで)* nix環境に取り組んできました。

* nixの内部知識を向上させるために、いくつかの本/ブログなどを提案してください。


1
あなたの経験では、カーネルソースを読むだけで助けになるでしょう。)
Eimantas

3
RTFSは常に最適ですが、時々少し読みやすくすると、ソースが少しわかりやすくなります。
スティーブンJazdzewski

編集権限を持つ人は、実際にそのタイトルを編集する必要があります。
jjclarkson

1
私は現在、Matt Mightの記事「What Every Computer Science Major Should Know」でアドバイスに従っています。彼は、Kernighan and PikeによるUnixプログラミング環境、Nemeth、Synder、HeinおよびWhaleyによるUNIXおよびLinuxシステム管理ハンドブック、LoveによるLinux Kernel Development、およびStevens、FennerおよびRudoffによるUnix Network Programmingを推奨しました。
アンソニー

1
@Anthony、これらは優れたリソースですが、ユーザーランド/コマンドラインにより適しています。また、特にLinuxは現在非常に急速に変化しているため、最新の状態に保つ必要があります。素晴らしいリソースはLWNkernelnewbiesです。
フォンブランド

回答:


36

Unixの「精神」を理解する方法に関するいくつかの提案と、以前の投稿で行われたすばらしい推奨事項を以下に示します。

  • KernighanとPikeによる「The Unix Programming Environment」:古い本ですが、Unix環境の本質を示しています。また、効果的なシェルユーザーになるのにも役立ちます。

  • 「短気のためのUnix」は、Unix環境をナビゲートすることを学ぶのに役立つリソースです。私のお気に入りの一つ。

あなたがパワーユーザーになりたいなら、Unixの専門家から集められたヒントとコツからなるO'Reillyの「Unix Power Tools」に勝るものはありません。

私が見たことのない楽しいライトと教育読書である別の本は、「オペレーティングシステム、設計および実装」です。


9
864ページの本が「せっかちな人のために」何かと呼ばれるのはなぜですか?
両生類

12
@両生類私はあなたが「患者のために」エディションを見たことがないとそれを取る。
クリストファーポイル

3
これは....「内部」ではありません
user997112


14

2
ライオンズ本の+1。MITのxv6は、x86マシンで動作し、ANSI Cを使用するLions v6の最新バージョンです。ソースコードと関連する教科書の両方をダウンロードできます。
ダニエルネスランド

8

頻繁に使用している書籍/サイト/マニュアル:

  • The Linux Kernel:この本は、TLDP(The Linux Documentation Project)の一部としてオンラインで公開されています。これは最新のものではなく、内部のマニュアルではありませんが、カーネルの原理とメカニズムに関する有用な情報と入門資料を提供します。

  • Linuxカーネルの理解:私見、これはオペレーティングシステムの設計と概念についての背景を持つ初心者向けの最高の本です。最新として受け入れられ、カーネルのバージョン2.6をカバーします。この本のHTMLバージョンはウェブ上にありますが、おそらくたぶん警告だと思います。

  • 仮想メモリ管理に関する本

Linuxカーネルの内部を勉強するとき、通常、ハードウェアがどのように機能し、どのハードウェアが抽象的な方法で提供するかを学ぶ必要があります。Intelにはこれに関する優れたマニュアルがあります。

オペレーティングシステムの設計と概念について学習する必要がある場合は、次の本をお勧めします。 オペレーティングシステムの概念


1
Linuxの仮想メモリマネージャーに関する別の本があります。ソースコードの説明が含まれています。URL:ptgmedia.pearsoncmg.com/images/0131453483/downloads/…(ダウンロードするのに合法)
dirtybit

+1。「仮想メモリマネージャ」に関する本?? 非常に興味深いようです。ありがとう:-)。
ヘマント

6

1
簡単に言えば、Linuxカーネルはカーネルの構築とインストール方法に関するものであり、実際にはLinux / Unixの内部に関するものではありません。それは良い本ではないと言っているわけではありませんが、私は少し偏っています。ああ、これらの本は両方ともオンラインで無料で見ることができます。
グレッグKH




2

Linuxデバイスドライバーも別の優れたリソースです。それはあなたに内部の仕組みに入るための別の方法を与えるでしょう。序文から:

これは、表面上は、Linuxシステム用のデバイスドライバーの作成に関する本です。もちろん、それは価値のある目標です。新しいハードウェア製品の流れはすぐに遅くなる可能性は低く、誰かがこれらの新しいガジェットをすべてLinuxで動作させる必要があります。しかし、この本はまた、Linuxカーネルがどのように機能し、その動作をあなたのニーズや興味に適応させる方法についても書かれています。Linuxはオープンシステムです。この本では、よりオープンで、より大きな開発者コミュニティがアクセスできることを願っています。


1

カーネルがサポートする理由と意味を理解するには、Eric RaymondによるThe Art of Unix Programmingを参照してください。それはかなり高い、哲学的なレベルで物事を取りますが、それは他の本の核心の詳細とうまく行くでしょう。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.