☆Linux カーネルの仕組みを勉強するスレ☆
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
01/10/02 17:44ID:38KkZsUQカーネル全般について語り合うスレッドです。
0023login:Penguin
01/10/03 15:39ID:OoBvWckAUNIX Internals: The New Frontiers / Uresh Vahalia
(邦訳:最前線 UNIX のカーネル)
一冊でほとんど網羅してるので、質問する前に必ず読め。
0024login:Penguin
01/10/03 19:06ID:2CGhO19gUNIXカーネルとLINUXカーネルは別物ではないですか?
0025生徒A
01/10/03 20:26ID:L1U0davcOSの構造なんて,大体似たようなもんだから,1つわかれば
別のOSについてもわかるので,わかりやすい物から攻略すべし.
って漏れも修行中なんだけど.
Solarisなんかは結構すっきりしていて良いかと.
0026login:Penguin
01/10/03 20:34ID:OZlrqpPMオライリーの新しいのもあります。これも難しい....
詳解 Linuxカーネル
ttp://www.oreilly.co.jp/BOOK/kernel/
002722
01/10/03 20:56ID:hQhC8R6E立ち読みしてみたけど。あまりよくないみたいっす。小学館。
詳解Linuxカーネル、買おうと思っていたんだけど、
ギリギリ足りなかったので、
「Lions' Commentary on UNIX」ってのを買いました。
最初、「ヤッチマッター」とか思ったんですが、
よく読むと結構面白いデス。
0028??????
01/10/03 21:06ID:bEXvgoqgの中で、
「カーネルはずいぶん巨大なプログラムになっているが、カーネルについて
勉強するとすれば、どこから手をつければいいのか?」
という質問に、リーナスさんが答えてます。
0029login:Penguin
01/10/03 21:15ID:WC8.1bjoどの本も高いからね。失敗は許されない(笑
ところで生徒Aさんは理系の学生ですね?
「 . 」と使うのは理系の学生ということを最近知りました。
全然関係ないのですが・・・・・・
学生のあいだじゃないとKernelの勉強する余裕も暇も無いんだろうなぁ
0030login:Penguin
01/10/03 21:33ID:7HwwpjBYLionsの本はいいよ。まだ小さいころのUNIXだから楽に読める。
ただ、うちの学生に読ませるとPDP/11の構造とか昔のCの
特異なシンタックスとか、ユーザー空間とカーネル空間の
マッピングなんかが分かりにくいから少し丁寧に解説しなくては
ならなくてめんどい。
>>18 誤爆だよ。>>13はslab accellarator って書いてるんだよ。
003122
01/10/03 21:36ID:hQhC8R6E>>29
Lions' Commentary on UNIX 、イイです。
他のカーネル解析本が5、6、7千円する中、
3800円という値段だし、ソースのコメントも、
解説も、厨房の漏れにも簡単に理解できます。
UNIX6thEditionのソースだけど。。。
ま、まぁ、かなり良書だと思います。
PDP-11モッテルヒトニトッテハナー (・∀・)
ヒガイシャハオレダケジャイヤダナー(・∀・)
カッテクレーカッテクレー (T∀T)
0032
01/10/03 21:59ID:6FwjUW2sほんまむだやで。
0033login:Penguin
01/10/03 23:58ID:eXoVUEs6そうそう。カーネルを勉強したからといってどうせOSを作るわけでもないんだろ?
はっきりいって仕事でそんな知識は必要ありません。必要なのは体力、根性です(藁
0034login:Penguin
01/10/04 00:06ID:qcYQ0G.sカーネルハックして、自分の環境に
より適合させたいってのはあるんですが。
それに、コンピューター関連の仕事なら
かなり役に立つらしいですよ。
0035login:Penguin
01/10/04 00:19ID:IJ/BVV8A御意。カーネルを読むことによってプログラミング
することが楽しくなり、おまけにコンピュータに
関する様々な知識が得られるでしょう。
0036login:Penguin
01/10/04 01:37ID:TP.JpGmU仕事でカーネルいじってますが、何か?
0037生徒A
01/10/04 02:20ID:BnS2BE2U本棚からお勧め書籍を紹介。
●A.S.タネンバウム, A.S.ウッドハル/ オペレーティングシステム
・設計と理論およびMINIXによる実装, ピアソン, ¥8,800
個人的にはOSの本を1冊かうならコレ。マイクロカーネルのUNIX
(下位)互換のOS、MINIXの解説本。図版も適切でわかりやすく、
巻末に解説付きソースコードとCD-ROMが付属。
●A.S.タネンバウム / 分散オペレーティングシステム
(プレンティスホール)¥6,400
基本的に分散アーキテクチャの本だが、スレッドやセマフォ、
メッセージパッシングなどといったOSの基本を学ぶのに最適。
マルチプロセッサに関してもかなり詳しい。
ほかにも色々あるけど、とりあえず2冊。
0038login:Penguin
01/10/04 05:17ID:Up.CcwEMカーネルデザインってのはソフトウェアエンジニアの一般教養の一つだろ。
一般教養はえてして practical には見えんもんだけど。
でも、物事に対する造詣の深さってのはそういう一般教養の積み重ねなんだよ。
薄っぺらいつまらんエンジニアで一生を終えたいんなら必要ないけどな。
0039login:Penguin
01/10/04 12:17ID:qcYQ0G.s調べてみた。
http://www.amazon.co.jp/exec/obidos/ASIN/4894710471/ref=sr_aps_d_1_1/250-2499176-5469014
http://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?W-NIPS=9971429985
あと、MINIXに関する本は
http://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?KEYWORD=%4D%69%6E%69%78
0040login:Penguin
01/10/04 12:54ID:7fdQf4Tsはよさげ。
00414
01/10/05 00:23ID:gYIiu.Dk0042login:Penguin
01/10/05 00:28ID:x.kXOwPcオメデトーアゲ
004341
01/10/05 19:30ID:b1Ltl45Y004441
01/10/05 19:30ID:b1Ltl45Y0045login:Penguin
01/10/05 22:02ID:s1QC/7Fg(´-`).。oO(オメデト...)
0046生徒A
01/10/08 17:37ID:ckosTg1k>「C言語初歩段階」の私が、Linuxのカーネルを「読んで理解出来るよ
>うになる」段階に到達するには、一体どんな本を勉強すればよろしいの
>でしょうか?
別スレの質問だが、「C言語初歩段階」なんて言っているくらいなら
C言語をマスターするのが先。プログラム板でC言語関連の書籍を捜す
べし。
とりあえずC言語で1万行くらいのプログラムを書け。話はそれからだ。
期待しているよ。
0047login:Penguin
01/10/08 17:59ID:b/ngw8PEclassぐらいは理解できんときついわな!!
0048login:Penguin
01/10/08 18:40ID:a7vO/utYコード数、UNIX6Editionの主要部分より
多いし。
0049login:Penguin
01/10/08 21:03ID:x5IDA3B2解説してくれる人いますか?
SE用の実装で、ILRの向こうの8259をどう扱えば良いか、悩んでるんですが。
0050login:Penguin
01/10/08 21:04ID:x5IDA3B20051生徒A
01/10/08 22:34ID:YM3gMNoMSH-4は割り込みが1本にまとめられていて、割り込み要因が
どれかはソフトウェアで判定しなければならないため、
PC/ATの割り込みコントローラをエミュレートする形で
割り込みを判定するルーチン…でいいのかなぁ。
もし全然嘘だったらごめんなさい。
念のため、Linux/SHのページを貼っておきます。
http://linuxsh.sourceforge.net/docs/abe/doc/linux-sh-kernel-bootup_J.php3
0052login:Penguin
01/10/09 00:13ID:bLcM5DEQ005352
01/10/09 00:16ID:bLcM5DEQできたてのころのカーネルはデバイスドライバがバグりやすいとか書いてあったなあ、
入れるのに少し抵抗が、、
0054生徒A
01/10/09 01:04ID:3eF2sAZg005553
01/10/09 01:09ID:bLcM5DEQなるほど・・!
VM上で動かせばディスク死んだりすることも無いということですね!
(勘違いだったら死脳ッ戸
レスありがとうございます。
0056生徒A
01/10/09 03:03ID:3eF2sAZg>OSを採用するべきではないかとおもうのですが
別スレの質問。技術的には言っていることは正しい(多分)。
ただ、そのような言語を理解できる人が少ないため、カーネルの
メンテナンス要因が激減すると思われ。
そのデメリットがメリットを上回っているのが現状。
「いいや違う」という反論はソースコードでのみ受け付ける。
もちろん、君がオブジェクト指向言語で書いたOSのコードでね。
0057login:Penguin
01/10/09 20:44ID:z4CgcBHE0058名無しさん@お腹いっぱい。
01/10/09 21:18ID:P9P83zo6そんな言語でOS作ったら悲惨なことになるっていう結論が出てた
0059login:Penguin
01/10/09 23:01ID:z4CgcBHE0060login:Penguin
01/10/09 23:43ID:bAzeTfP60061
01/10/14 09:30ID:q04qm9lH軽いから、デバイスドライバー部分とCPU周辺
チップのところ以外では、OSをインタープリター言語
で書いても十分実用になるのかな?
0062login:Penguin
01/10/14 23:50ID:bKvEFw2kカーネル部分を作るには、アセンブリがわかる必要がありますよね。
全部Cってわけにはいかないと思うのです。どこで勉強すればよいか教えて
ください。(Cはわかります。)
それから、OSがどんな風に立ち上がるのか(ローダーってやつ?)なんかも
どこで勉強すればよいのでしょう。ハードディスクの先頭に何かアセンブリで
書いておくのでしょうか?
スレを汚してすみません。でも初心者スレでは無視されるだけだと思いますので。
お願いします。
0063login:Penguin
01/10/15 00:06ID:yWyIFyqvhttp://www.linux.or.jp/JF/
読み漁れば脱初心者にはなれる。
>それから、OSがどんな風に立ち上がるのか(ローダーってやつ?)なんかも
>どこで勉強すればよいのでしょう。
上のサイトにも書いてあった気がするけど。
今月号のLinuxMagajineが特集してた。悪くない。
0065login:Penguin
01/10/15 00:15ID:IJzxys8Qほれ。
http://www.linux.or.jp/JF/JFdocs/From-PowerUp-To-Bash-Prompt-HOWTO.html
別に初心者スレでも無視しないけど。
006662
01/10/15 00:30ID:KoDPieN3ありがとうございます。
>別に初心者スレでも無視しないけど。
すみません。
0067login:Penguin
01/10/15 00:30ID:RTj/vcxRNetBSDの方がおもしろいぞ。いっぺん見てみろ。
0068login:Penguin
01/10/15 01:18ID:0RSIU0EvOSの勉強するんだったら、BSD勧めとく。
386の勉強するんだったら、Linuxも悪くない。
0069login:Penguin
01/10/15 01:25ID:c0PMqbqd0070login:Penguin
01/10/15 03:51ID:LRyZyG6E確かに。ソースを読むのもいいけど、とりあえず、
-current の man.tgz を持ってきて、/usr/share/man/cat9 を
覗くだけでも宝の山。
hard link が多いから、ファイル選んで読むべし。
0071login:Penguin
01/10/15 07:44ID:RTj/vcxRの順番で勉強せい。
MINIX、386BSDの挙動を完全に理解できたら、後のものはソースコードを眺めるだけでよし。
いきなりLinuxカーネルはきつすぎる。
良い意味で実用主義、悪い意味で「とりあえず動けばOK」。
ただひたすら読みにくい。
Linux、*BSDを読み終えたらSunだ。ちゃんと金払えよ。
そしてスレッドの美しさに酔いしれろ。
0072login:Penguin
01/10/15 07:52ID:fLIHewuGSolarisんとこ、machやl4の方がいいと思うけど。
0073login:Penguin
01/10/15 07:55ID:fLIHewuG0074login:Penguin
01/10/15 09:47ID:1RSiSLerソースを眺めているがサパーリわからん。
やはりVC++で500行程度のコードを書いたことが有る。
と言うレベルの俺には難しすぎる(わらぃ
007574
01/10/15 10:17ID:1RSiSLerああ、今まで必死にソースを追った作業は何だったんだろう?
鬱出汁脳
0076login:Penguin
01/10/16 00:45ID:B9OVQJ4uマジ感動するよ、
(カーネルの仕組みの前にPCのブートの仕組みを学ぶのもいいかも)
http://isweb32.infoseek.co.jp/computer/nobumasa/hardware/boot_hdd/boot/boot.html
参照
0077login:Penguin
01/10/16 00:59ID:0iRzhq4aいいドキュメントだね。
0078login:Penguin
01/10/16 06:05ID:+7CBRx1XSolaris とか NetBSD だと scheduler activation というネタもあるし、
FreeBSD にも KSE っていうネタがあって、おおよそ最近のスレッド技術は
深くカーネルと関係してるから、一概にそうともいえないよ。
ここまでくると上級レベルだから、構造の勉強というようなレベルは超えてるかもしれないけど。
0079login:Penguin
01/10/16 10:28ID:W7jl/1HX0080login:Penguin
01/10/16 21:00ID:+8viyP9S0081login:Penguin
01/10/16 22:02ID:tFjq3kLfちょっと厳しいんじゃないかな。
大まかにOSの構造を説明してある良書ってないん
ですかね。機能を知ってからソースを見ると、関数
名や変数名がヒントになるから、ぐっと理解が早い
と思うんですけど。
それとも、「これから勉強したい」人も、そこまで
は出来ているという前提?
0082login:Penguin
01/10/16 23:41ID:Lbh3v4LX0083login:Penguin
01/10/17 00:03ID:p7GUM0P4大あり
0084login:Penguin
01/10/17 00:11ID:58ZfHvGc2種やら1種のテキストに書いてあるレベルの知識と、ソース読むことの
間を埋めてくれるのって、どんな知識でしょう?
個人的にはCの知識かな、と思うけど、ケーススタディとしてカーネルを
使うのは厳しそうだと気づいた今日この頃です。
0085login:Penguin
01/10/17 00:15ID:6udvZ9Dg>間を埋めてくれるのって、どんな知識でしょう?
努力と根性と経験です。
0086login:Penguin
01/10/17 00:36ID:kW1Ppu3x0087login:Penguin
01/10/17 01:12ID:0KcBObcyおらいりー「詳解 linuxカーネル」
0088login:Penguin
01/10/17 01:17ID:BOPoQ/5Yおなじおらいりーでも、でばどら本から入っていくってのも
手だな。ちょっと古いけど。
売りポイントとしては、「実際に自分で作ったものを動かせる。
動かすことで理解が深まる」ってとこかな。
0089login:Penguin
01/10/17 01:22ID:kW1Ppu3xhttp://www.amazon.co.jp/exec/obidos/tg/detail/glance/-/english-books/0596000081
0090login:Penguin
01/10/17 01:27ID:6udvZ9Dg気になるのは、元にしてるのは2.2系なのか2.4系なのか、かな。
0091login:Penguin
01/10/17 06:38ID:8SzjHmJIその為の悪魔本とかなんじゃねーの?
あと *BSD とかのソースが綺麗で読みやすいといか言ってのは
実際に読んだことのない厨だな。
まぁ綺麗なのは事実だが FreeBSD の VM は悪魔のように(苦笑)複雑で
とりあえず論文読まないと通読は不可。
http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/vm-design/index.html
http://www.ccrc.wustl.edu/pub/chuck/tech/uvm/
Linux のカーネルはすげー実装がシンプルだから逆に読みやすいと思うが。
>>71
>MINIX -> 386BSD -> NetBSD -> FreeBSD -> Linux -> Solaris
386BSD って 4.3BSD Tahoe/Reno だろ? イマドキどーすんだ,あんなの読んで。
4.4BSD lite が入手できるんだからそっち読んどくが吉。
0092♯6411
01/10/17 11:04ID:Nt5BAsRN悪魔本でも、和訳の
「4.3BSDの設計と実装」
は、初心者には(もちろんエキスパートにも)
オススメじゃないよね?
…って、まだ版を重ねてんだろか?
原書嫁。
Linuxのカーネルがある意味読みやすいというのは
同意。386の教科書が傍らにあるとベターかな。
ただ、ネットワーク周りは、読んで脱力したこともしばしば。
0093login:Penguin
01/10/18 02:31ID:EfR4Vz7cたしかに、4.4BSD みたいに抽象度が高いとまっすぐ読めなくなるから総体的な知識が必要になるし、
Linux はベタだから、前提知識なしにパッと見て quick hack する場合は楽だけど、
Linux は全体的にソースが汚いし、ベタなんであまり勉強にはなりません。
0094login:Penguin
01/10/18 02:34ID:EfR4Vz7c今なら、Linux VM でも FreeBSD の Mach VM でもなくて、
NetBSD の uvm を読んだ方がいい。
0095login:Penguin
01/10/18 05:52ID:u3DpsjUwお前は本当に UVM を読みたいのかと問いたい。問い詰めたい。小1時間問い詰
めたい。お前、UVM って言いたいだけちゃうんかと。
まあお前らド素人は、Linux VM でも読んでなさいってこった。
0096login:Penguin
01/10/19 02:01ID:TH1cXybv0097MINIXカーネル解読中
01/10/24 16:18ID:XFF6eHt30098生徒A
01/10/24 16:49ID:Sk/5JNlU全部じゃないが).
0099login:Penguin
01/10/24 19:35ID:4dNCtF18MINIXと386BSDのソースのありか(URI)きぼーん
0100login:Penguin
01/10/24 19:39ID:UYXjUcucftpサーチで一発だよ、厨房君?
0101login:Penguin
01/10/24 20:00ID:ZaQ1mC9Dftpサーチって何?
0102login:Penguin
01/10/24 20:03ID:XZp0N0cmGoogleで一発だよ
0103gea
01/10/26 01:49ID:M11l2acb0104login:Penguin
01/10/26 03:17ID:/MJaN4Ug0105login:Penguin
01/10/26 04:01ID:FmgZ80usネタなんだろうけどモトネタがわからないのでマジレス
http://www.ccrc.wustl.edu/pub/chuck/tech/uvm/
これまでの COW を更に進めて匿名ページの COW もやるようにした VM ね。
0106完全気密性型個室チャット設置
01/10/26 09:00ID:JKN2MAJ418個設置。共有チャットも10個設置。
気軽に参加してくださいね。
みなさんのお越しをお待ちして
おります。右フレームの中ほどに
あります。よろしくね。
http://home9.highway.ne.jp/cym10262/
0107某スレの12
01/10/27 11:12ID:eYNUQGN30108房スレの13
01/10/27 11:32ID:YfJuIONB0109login:Penguin
01/10/27 12:01ID:wm8gbMCY0110login:Penguin
01/10/27 15:21ID:5IDha0Op0111login:Penguin
01/10/27 15:28ID:lXVHxyhY気密型ハカーとお勉強イイ!
0112カーネル初心者
01/10/27 16:27ID:Hh35ZjqYつくれますか?
0114110
01/10/28 02:37ID:v7FYjkutHDDコントローラ?の仕様とか見ながら書いたのかな
仕様って手に入るのかな・・。
0115login:Penguin
01/10/28 02:51ID:c0cZVdxb東芝の開発者向けサイト
http://linux.toshiba-dme.co.jp/linux/jpn/develop.php3
0116login:Penguin
01/10/28 02:53ID:cJ0fmml80.0.1って....
あまり古すぎじゃないか?移植どころか、「とりあえず動かす」
ころのだろうから、ちょっと読むにも大変なんでわ?
コントローラの仕様ってのは、どっかで手にはいりそうだね。
とりあえずは、
CQ出版社のインターフェース増刊
TECH I vol.10 ATA(IDE)/ATAPIの徹底研究
でどーよ?
0117110
01/10/28 04:40ID:v7FYjkut0.0.1のカーネルって小さいから読みやすいかな、
と思ったけどMINIXのほうを読むことにしよっと・・。
インターフェースの増刊かなり最新ですね・・すぐ手に入りそうだ。
っていうかインターフェースって雑誌、今はじめて知りました・・
バックナンバーの目次とか眺めたけどすごく面白そう、何で今まで知らなかったんだろう・・
116さんに感謝・・。
0118117
01/10/28 04:41ID:v7FYjkut0119login:Penguin
01/11/05 04:47ID:zk7Lax0shttp://www.amazon.co.jp/exec/obidos/ASIN/0471408824/
0120教えて!!!
01/11/06 23:49ID:seaNFRBfrpmのバージョンアップをしろといわれてしかなたく
rpmのバージョンアップをしようとしています。
環境はTLJ6.0で、Pentium 166MHzです。
現在は3.0.3なんですが、これを3.0.4以上にしなければなりません。
でも
#rpm --rebuild rpm-3.0.6-15.src.rpm
の実行中に
/usr/include/bits/string2.h:XXX warning : pointer of type 'void *' used in arithmetic
といった種類のメッセージがダぁーっと出てきます。それでも処理はずっと続いて3分くらいしたらとまるんですが、非常に不安です。このとき実は渡さなければならなかった引数とかありますか?
わかんないんでしょうがなくある方に教えていただいて
rpm -Uvh rpm-3.0.6-15.i386.rpm
を実行しました。
そしたらこんな表示が・・・・
libpopt.so.0 is needed by rpm-3.0.6-15
どないなってまんねん???
i?86のところの*は環境によって違うということですが、それは具体的にどういう意味ですか?
ほんとにタコタコで申し訳ありません。どうかこの哀れなタコを助けてください。*_*
それからも一つ質問!
どうしてこんなにリナックスは難しいんですか?
0121login:Penguin
01/11/07 01:19ID:5qQLJtTDマルチうざい
■ このスレッドは過去ログ倉庫に格納されています