5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

お前ら*BSDのカーネルをハックしますか?

1 :見習デーモン:01/10/17 18:35
これからsys/kern/init_main.c読んでみます。

【参考】
・「The Design and Implementation of the 4.4BSD Operating System」
 の第2章
http://www.freebsd.org/doc/en_US.ISO8859-1/books/design-44bsd/index.html

・*BSDでのアセンブリ
http://www.int80h.org/bsdasm/

なんか検索してみてもあんまりハックサイトひっかからないね。
Linuxより伝統あるはずなのに。

2 :2:01/10/17 20:24
2

3 :名無しさん@お腹いっぱい。:01/10/17 20:33
> これからsys/kern/init_main.c読んでみます。

つーか、sys/arch/${MACHINE}/${MACHINE}/locore.s の start か、
せめて sys/arch/${MACHINE}/${MACHINE}/machdep.c の initなんとか() の
方を先に読んだほうがいいぞ。init_main.c の main() は、locore.s から
呼ばれてるわけだが、locore の初期化処理と initなんとか() の方が
main() より先に走って、機種依存の低レベルの初期化を行うので。

上のパス名は NetBSD の場合だけど、FreeBSD や OpenBSD でも、
だいたい似たような場所でしょ。

4 :見習デーモン:01/10/17 20:38
>>3
アセンブラはちょっとしんどいかな、と思って。(もちろん理解する努力はしますが)
とりあえずカーネルの動きの概要がしりたいんで、init_main.cからかな?と思って読んでます。

#GLOBALでタグ作るのに意外と時間かかった・・・

5 : :01/10/17 21:46
>>1
そんな根性があるんだったら、フリーのエロゲー作ってよ。
OpenGLバリバリ使って動くやつをお願い。

6 :見習デーモン:01/10/17 21:49
>>5
http://piza2.2ch.net/test/read.cgi/tech/996199538/l50

7 :見習デーモン:01/10/17 23:13
VM_*の定義追いかけてたらCPU寄りなところまできてしまった・・・
結局>>3さんが言う通り機種依存なところも目を通してみたり。

8 :名無しさん@お腹いっぱい。:01/10/17 23:57
デバドラ書きたい君です
手っ取り早く書けるようになるには何を読むべきですか?
sys 以下、書籍、URL 問わず。
ターゲットは NetBSD/i386

9 :名無しさん@お腹いっぱい。:01/10/18 00:22
> 手っ取り早く書けるようになるには何を読むべきですか?

似たような種類のデバイスドライバのソース。
で、ハードウェア仕様的に違う部分だけ書き換える。
できるだけ移植物じゃなくて、NetBSD で書き下ろされたデバイス、
それもバス依存部と、バス独立部がちゃんと分離されている奴を
参考にすると良い。

ただし、既にサポートされているデバイスの中に、仕様的に似たチップがある
かどうか (同じチップメーカからの新版とか、メーカは違うけど、互換品があ
るとか) を、まず最初に調べるべき。そもそもデバイスドライバを書かなくて
済むとか、既存のドライバに処理を付け加えるだけで済むことも多いので。

あと、悪魔本は全く読まくてもなんとかなる気もするけど、Bach 本 ("UNIX
カーネルの設計"、Maurice J.Bach、共立出版) くらいは常識として、ざっと
流し読みしておいた方がいいと思われ。もはや実装は全然違うので、細かい部
分は全く違うんだけど、それなりに役にたつぞ。

あとは、section 9 の man page と、一般的な基礎知識と、気合いがあれば
なんとかなるだろう。

10 :名無しさん@お腹いっぱい。:01/10/18 00:54
>>8
鶏と卵になるけど、とりあえず書いちゃえば、書けますよ。
仮想デバイスとか小一時間あればできちゃうし、思ったより
敷居は低いと思います。

11 :見習デーモン:01/10/18 01:08
>>9
man 9 盲点でした。見てみたら情報の宝庫だ・・・
(日本語訳されてるともっとうれしいんだけど)

man のあるsectionの一覧を得る方法ってあります?
とりあえず本家サイトに一覧あったんでそれでみたんですけど、
ローカルでも何かコマンドで見れそうな気が・・・

12 :sage:01/10/18 01:13
ところで、「お前ら○○しますか?」というフレーズが
微妙に流行ってるのか?

13 :名無しさん@お腹いっぱい。:01/10/18 01:44
>>12
すでに微妙に流行遅れ。

14 :login:Penguin:01/10/18 01:44
こっちにも飛び火してます
http://mentai.2ch.net/test/read.cgi/network/1003037538/

15 :名無しさん@お腹いっぱい。:01/10/18 01:46
>>11 /usr/manとかそのあたり探してみれば?

16 :見習デーモン:01/10/18 01:55
>>15
鬱だ・・・単純に覗けばいいんだった・・・

init_main.c:start_init()がなんとなくわかってきた。
prepare_usermode()の定義が見つからないのが鬱だけど、そろそろ寝よう

17 :あへあへ:01/10/23 22:25
あへ

18 :見習デーモン:01/10/23 23:36
#先日の情報処理試験のためハック休んでました。今日から再開。

/sbin に myinit を作って(へろーわーるどの後whileで停止するだけ)、
start_init() の init 探すパスを myinit 指すように書き換えてみたけど、
kern_exit.c の exit1() で止まるねぇ。
どういう経路でここまで来たのかまだちょっとわからん。

global + Namazu 駆使して頑張ります。おー

19 :見習デーモン:01/10/25 03:59
kern_exec.c: execve() の exit1() で止まることがわかった。
vmspace_destroyedフラグがたっちゃってるのね。
image_params にセットされる値追いかけなくちゃ・・・

20 : :01/10/25 20:20
おやおや、こんなスレが。僕もちょうど読もうとしてた(のに2ヶ月間ほ
ったらかしてた)から参加しよう。

arch/include/pmap.h 以外で、全arch共通の pmap インタフェースを記述
した文書なりファイルってありますか?

6 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)