☆Linux カーネルの仕組みを勉強するスレ☆
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
01/10/02 17:44ID:38KkZsUQカーネル全般について語り合うスレッドです。
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マルチうざい
0123login:Penguin
01/11/07 10:07ID:D4X9uT1H0124login:Penguin
01/11/07 11:58ID:D4X9uT1HオープンソースのOSであるLinuxの元々の開発者,リーナス・
トーバルス氏の右腕であるアラン・コックス氏は,Linuxカーネル2.4
のメンテナンスを担当しないことを明らかにした。トーバルス氏は,
開発ツリー2.5に集中するため,今後数週間以内にLinuxカーネル2.4
をコックス氏に任せるとしていた。
有識者のコメントを求む
0125login:Penguin
01/11/07 12:35ID:HqCHYej/124は記事内容を理解していない。よって終了。
0126login:Penguin
01/11/07 13:03ID:D4X9uT1H解説してください。お願いします。理解したいんです。
0127login:Penguin
01/11/07 13:10ID:BmKSSlYi>は,これまでもグループで行ってきたことで
>あり,これからもそれは変わらない
0128login:Penguin
01/11/07 15:29ID:FmMqLr+t0129login:Penguin
01/11/07 18:21ID:EVaWvNemacが逝くとかなりピンチ。
0130login:Penguin
01/11/07 23:16ID:9nIeZqmz-ac カーネルの Rik's VM とは?
http://clotho.ku3g.org/diary/?20011014#200110142
0131login:Penguin
01/11/08 00:39ID:6uTuNsVr0132login:Penguin
01/11/08 04:38ID:OuhnMvOV簡単だし、どうせマイクロカーネルだからっていう割り切りで、仮想化しまくってないのが、見通しの良さにつながってるように思う。
そのぶん癖はあるけど(IPCとか)、とりあえずどんなことやる必要があるかがわかるとおもう。
でも、モノリシックカーネルでの優先度制御とか、複雑なvmまわりとか勉強したいなら、NetBSDかなぁ。
わりと読みやすいけど、完全に理解するはなかなか・・・。
0133login:Penguin
01/11/10 00:06ID:GrwBKvex2.5の機能のメインっていったら、INPUTデバイス!
こいつが入力関係を一手に引き受けてくれるもんで、USBやらjoystickやらkybodeやらマウスやらが
シンプルになって、手軽にrawレベルで入力デバイスにアクセスできるようになるんだよう〜
そこの厨房な君も、他になにが追加されるか予想してみよう。
0134login:Penguin
01/11/10 00:10ID:I2bxXvg2イタい、イタすぎる....
0135login:Penguin
01/11/10 00:10ID:YzLCB467/dev/input
とは違うのか?
0136133
01/11/10 00:20ID:GrwBKvex0137133
01/11/10 00:25ID:GrwBKvexモタイブリッコ!発見!ハゲじゃなくって吐け、何をしってるんだ。 ゴラァ!
0138login:Penguin
01/11/10 01:31ID:JYB21yE5・全角アルファベット
・そもそも提案が意味不明
これだけ揃ってれば痛いだろ(w
個人的にはIDE CD-Rの扱いが楽になって欲しい。
ide-scsi使わないといけないのはめんどくさい。
0139login:Penguin
01/11/10 01:48ID:P+u86UuI・スケジューラのマルチメディア対応とマルチキュー化
・暗号化ファイルシステム
・n:mカーネルスレッド(無理か)
0140login:Penguin
01/11/10 02:11ID:H1+mtcC9呼び出すなよ。
厨房な俺の予想に意味があるのか?
http://lwn.net/2001/features/KernelSummit/
でも読めよ。
0141login:Penguin
01/11/11 01:23ID:gpvCOabaこれをPS/2とかの、USB以外のマウスとかキーボードに対応させて、
inputでイベント処理をさせるってことですなぁ ちがうか?汗
/dev/eventXで、流れて来たイベントを拾って、処理できるようになるから、
フレームバッファ関連のアプリが充実するのに期待しちゃうYOU。
0142login:Penguin
01/11/11 01:35ID:H6R3aNYWIBM が gnu のをベースにやってる n:m スレッドは
ユーザランドのスレッドだっけ?
0143login:Penguin
01/11/11 01:49ID:gBx3tRWzカーネル2.4になったら、Sound Blasterのゲームポートに差したアナログジョイスティック
の/dev/js0も/dev/input/js0へのシンボリックリンクになてたよ。
0144login:Penguin
01/11/11 12:02ID:Vp1d/jukNGPTだよね?
http://oss.software.ibm.com/developerworks/opensource/pthreads/
元の Pth は、ユーザレベルのスレッド実装だけど、
ちゃんとM:Nになってるみたいだけど。
まだ、SMPではちゃんと動いてないみたいですね。
次のバージョンで対応するようですが。
0145login:Penguin
01/11/11 12:59ID:gpvCOabaそか、ジョイステックも対応してたのか〜、
今のシステムってキーボードからの入力を拾うのってかなりメンドウでない?
たとえば、svgalibでもXでも、一度RAWモードで、キー入力を握られると、
他はどうにもできないのさ、それでXがエラーでおちたりしたら、
PCの後ろにシリアルケーブルつないでどうにかするしかないし。
それが改善されるんだよ〜っていいたかったのだ。
今は、まだ、 keybdev.cからhandle_scancodeっていう、
char/keyboard.cの関数を呼出ちゃってるウンコ仕様なんだけど、
この変がシンプルになるんだよ〜
シッタカブリしてしまったかのぉ、なははは。
ネタはこの辺↓
http://cvs.sf.net/cgi-bin/viewcvs.cgi/linuxconsole/ruby/linux/
■ このスレッドは過去ログ倉庫に格納されています