[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 05/09 10:23 / Filesize : 76 KB / Number-of Response : 336
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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

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

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

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

275 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 17:20]
>>274
今までどんなの読んでたの?
得体の知れないマクロってのはbus_spaceとかの事かな。

276 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 18:08]
ヘッダファイルこそがソースの肝なのに。。。

277 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/24 20:59]
NetBSD のカーネルハック本(和訳)って、
BSD Magazine の Vol.13 のことじゃないのか?


278 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/25 02:44]
>>276
そうなんだよね。本当に。

279 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/26 10:15]
/usr/includeの下は丸暗記するぐらいの勢いで読みまくった。
これはいきなりカーネル読み始めるよりも、効率的だし、
実用的だったよ。

280 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/26 13:48]
へたれプログラマなんですが、なんでそんなにヘッダファイルが重要なのか
わからないんですが、理由を教えていただけませんか?


281 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/26 14:31]
>>280
これは計算機科学の教科書の練習問題だと思うぞ。
こんなものかな。採点キボンヌ(配点20点)

ヘッダファイルにはデータ構造、関数定義など、モジュール間のインターフェイスと
なるものが記述されており実装の詳細を見ずに全体を把握する事が可能である。
また、一つのプロジェクト内のモジュールのインターフェイスというだけでなく、
異なるシステムとの間の相互運用性を確保するためにも必要である。





282 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/26 19:07]

俺の採点だと20点満点。素直に。
敢えてアラ探しやればできるだろが、練習問題という設定なら十分な回答だろ。

2ch的でない(奇をてらわない保守的な)回答だけど、そういう地味さにも好感。


283 名前:280 mailto:sage [03/10/27 08:00]
>>281
ありがとうございます。
なんか目から鱗でした。




284 名前:くだ質の534 mailto:sage [03/10/27 14:29]
そうか、ヘッダファイルってそんなに重要なんだ…。言われて
みればたしかに。

漏れも>>279みたいに凄い勢いでヘッダ読んでみまつ。勉強に
なったサンクスコ。

285 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/27 16:22]
重要は重要だけど、本で言えば目次だけ読むようなもんだから
偏食にならないようにネ

286 名前:名無しさん@お腹いっぱい。 mailto:sage [03/10/28 11:09]
>>280
頭(head)だからです。
頭だけとか体だけとかは駄目なんです。

287 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/04 23:33]
sys/kernel.h --

#defineSYSINIT(uniquifier, subsystem, order, func, ident)\
C_SYSINIT(uniquifier, subsystem, order,\
(sysinit_cfunc_t)(sysinit_nfunc_t)func, (void *)(ident))

funcを2重にキャストする意味って何?


288 名前: [03/11/19 22:40]
興味ありあげ

289 名前:名無しさん@お腹いっぱい。 [03/11/23 13:51]
BSDがSCOによって血祭りにあげられるまであと何日ですか?


290 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/23 19:47]
BSDによってSCOが血祭り、なんだろうな


291 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/23 20:15]
というか既に血まみれで死にそうなSCOが
あちこちに血しぶきを撒き散らして嫌がらせしてるんだろ。

292 名前:名無しさん@お腹いっぱい。 [03/11/23 22:11]
>>290-291
おまいら何もわかってないな
技術泥棒なんだよ
ギ ジ ュ ツ ド ロ ボ ウ
わかるか?

293 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/23 22:21]
>>292 煽り乙。どうせなら犬板のSCOスレ逝った方が人多くて楽しいと思われ




294 名前:名無しさん@お腹いっぱい。 mailto:sage [03/11/25 00:18]
同感

295 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/01 01:14]
BSDのカーネル読むにはどのBSDのソースがとっつきやすいですか?


296 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/01 03:31]
あなたの使っているものが一番じゃない?


297 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/06 12:38]
ソースなんて綺麗とか汚いとかほざくまえに、
動いてるコードなんだから黙って読むんだよ!
今じゃろくなコード書けない人間までコードが
云々なんて言い出す始末だからな。もうブチキレですよ。

298 名前:名無しさん@お腹いっぱい。 [03/12/09 18:58]
カーネルによって違うのかもしれませんが、
各種スレッドというのは、スタックセグメントだけを
スレッドごとに固有にもち、それ以外のセグメントは
プロセス内の全てのスレッドで共有するという感じなのでしょうか?
そうすると、ページディレクトリテーブルも共有で、
スタックセグメントだけを仮想メモリの機能として
別々の物理ページに割り当てるといった感じになっているのでしょうか?
それとも全てのスレッドに対してCR3を割り当てるのかな?

どうもプロセス内のスレッドとVMの関係がよく分りません。

299 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/09 19:45]
>>298
実装にもよるんだろうけど、スタックも含め、スレッドがいくつあろうと
アドレス空間は1プロセスで同じもの。スタックはスレッド毎に
切り替えて違うアドレスを指してあるだけ。

300 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/09 22:30]
>>298
コンテクストスイッチ発生させると、プロセスのコンテクストスイッチと
変わらんし...それじゃあ、スレッドの意味がない...


301 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/09 23:19]
>>297
逆だよ。ろくにコード組めないから、綺麗なコード読みたいんだよ。
まぁ清濁併せ呑む度量があれば一番なんだが、そんな人間は黙って
読んでるよ。



302 名前:名無しさん@お腹いっぱい。 mailto:sage [03/12/19 20:33]
おまいらカーネル**ckしてますね。

303 名前:名無しさん@お腹いっぱい。 [03/12/19 21:11]
>>302
そんなタイトルの日記があったな…




304 名前:Win厨 mailto:sage ぉ、刺身にしよか? [03/12/19 23:11]
>>303
あ、それ書いてたの、おれっちです。
最近NetBSDも忙しくて触って無いからカーネルファックもご無沙汰です。
厨房でもカーネルぐらい気合で理解できること証明したかったけど、
自分にはちょっと厳しかったです。また再開したときはよろしくです。

305 名前:名無しさん@お腹いっぱい。 mailto:からあげ [04/01/14 17:37]
あげてみる

306 名前:名無しさん@お腹いっぱい。 [04/02/13 00:25]
バッファをたくさんとれるようにカーネルイジってたら、

All mbuf clusters exhausted, please see tuning(7).

と出るんですが、クラスタ数を多く割り当てたり、
別の目的で利用されている、クラスタを借りたりすることはできないでしょうか?

307 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/13 03:27]
a.具体的に何をしていたのかを書いてみよう。
(たとえばkern.ipc.nmbclustersをほにゃららにしてみたとか
options NMBCLUSTERS = ほげ したら config におこられるとか)
b.もし、具体的な目的があるのであればそれも書いてみよう。
(たとえば 負荷が高いWebサーバーをなんとかしたいとか。)

あと環境もちゃんと書いてみよう。

308 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/16 05:49]
一度の関数呼び出しで何回もパケットを
送出しようとするときインタフェースカードで
データパケットが落とされることってありますか??
もし落とされたときは、ip_outputの返値は返ってきますか?
また、それは「0」以外の値ですか?

ループバック関数で戻ってきたパケットは欠如していません。
別のマシンでキャプチャーすると欠落しています。

原因・対策などありましたら、お願いします。

309 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/16 06:11]
>>308
当然あるだろ。ip_output は if_output 呼んでるだけだから、
あとはネットワークインターフェイス依存。
etherなら、netinet/ip_output.c、net/if_ethersubr.c、
と追いかけていって、NICのデバドラまで読んでけ。

まぁ単に送信バッファ溢れてるだけだろうがな。

310 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/16 06:39]
>>309
なるほど。。。参考になりました。
しかし、送信バッファがあふれても ip_outputの返値が0になるというのは問題なのでは??
ソケットバッファの場合はちゃんと制御できるのに。。。


311 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/16 07:20]
>>310
ぜんぜん問題じゃない。君の考え方のほうが問題。
ソケットは到達保証するが、IPは到達保証しない。
まだわからない?

312 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/16 08:20]
>>311
ソケットが送信保証をするためには、ip_outputの返値が0である必要があるし、
ip_outputの返値で0を返すためには、ether_outputの返値が0である必要がある。

ちなみに、ネットワークに出力されたあとは、ソケットも到達保証しないよ。
仮にできるのなら、何も苦労しない。。。

313 名前:名無しさん@お腹いっぱい。 mailto:sage [04/02/22 01:46]
PF_ROUTEソケットについて調べてるんですがどうもいまいち…
(いまいちなのはもちろん自分)
4.4BSDの本見てから、ソース見たけど????です

PF_ROUTEソケットを調べだしたのは。rtadvdで受けている
メッセージを見ていたところ、ioctl()などのリクエストでkernelから生成してるはずの
メッセージ数と合わない、こんなところからです。

orange.kame.net/dev/cvsweb.cgi/kame/kame/kame/rtadvd/rtadvd.c?rev=1.88
socket(PF_ROUTE, SOCK_RAW, 0))

やはりRAWだから一気に生成したメッセージはどこかで落されてしまうんですかね…。
落される場所がわからない…
できれば落さないように改造してみたいんですが…



314 名前:名無しさん@お腹いっぱい。 [04/05/24 19:37]


315 名前:名無しさん@お腹いっぱい。 mailto:sage [04/06/12 00:45]
二年半前のスレか・・・
見習いデーモンは一人前になったのだろうか。

316 名前:名無しさん@お腹いっぱい。 mailto:sage [04/06/12 01:22]
現在、まだ半人前とみた。

317 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/11 20:10]
>>1 の参考
...半分ぐらい読むには読んだけど、むつかし。
ので、いったん撤退して、こっち↓に着手。

Commentary on the Sixth Edition UNIX Operating System
tp://www.lemis.com/grog/Documentation/Lions/

そのうちリベンジの予定。

318 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/12 00:25]
>>317
よし!俺が今から
「The Design and Implementation of the 4.4BSD Operating System」
を読んで>>317を追い抜いてやるぜ!!

319 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/18 08:41]
しかし、"こっち"も...

-- m40.s --
/ initialize systems segments

mov $KISA0,r0
mov $KISD0,r1
mov $200,r4
clr r2
mov $6,r3
1:
mov r2,(r0)+
mov $77406,(r1)+ / 4k rw
add r4,r2
sob r3,1b

320 名前:名無しさん@お腹いっぱい。 mailto:sage [04/08/18 08:43]
~~
0619:
KISA0 and KISD0 are the high core addresses
of the rst pair of kernel mode segmentation
registers. The first six kernel descriptor
registers are initialised to 077406,
which is the description of a full size, 4K word,
read/write segment.
The first six kernel address registers are initialised
to 0, 0200, 0400, 0600, 01000 and
01200 respectively.

~~
sob
Subtract one from the designated register. If
the result is not zero, branch back "offset"
words;

...
...

321 名前:名無しさん@お腹いっぱい。 mailto:sage [04/09/07 03:06]
スタック
--interrupted routine--
ps : old PS
pc : old PC
--vector--
r0 : old r0
--trap(assembler version)--
nps: new PS after trap
r1 : old r1
sp : old SP for previous mode
dev: masked new PS
tpc return address in "call"
--csv---
old r5 <- r5
old r4
old r3
old r2
cret <- sp


r5r5r5r5r5
r5<-r5<-r5<-r5<-r5<-r5

うーん...
service routine(dev, sp, r1, nps, r0, pc, ps)
{

u.u_ar0 = &r0
なんとも...


322 名前:名無しさん@お腹いっぱい。 mailto:sage [05/01/28 11:37:58 ]


323 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/07/29(金) 01:02:14 ]
お前らXenのdom0に*BSDタンを担ぎ上げてください。



324 名前:名無しさん@お腹いっぱい。 [2005/07/29(金) 01:03:08 ]
お前らdomUはなんでもいいとおもいませんか。

325 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/10/24(月) 01:11:31 ]
「BSDカーネルの設計と実装 --FreeBSD詳解--」
www.ascii.co.jp/books/detail/4-7561/4-7561-4679-1.html


326 名前:名無しさん@お腹いっぱい。 mailto:sage [2005/11/13(日) 16:17:31 ]
>>325
よーし、俺のコレクションに加えちゃうぞー。
積読用に。

327 名前:見習デーモン mailto:age [2006/07/19(水) 15:21:55 ]
ひさしぶりに来ました。

>>316
半人前どころか四半人前ぐらいです。

スレたてたの約5年前なんですね…全く成長してないのに
自分でもショック。
仕事終わったら『BSDカーネルの設計と実装』買って帰ります…

328 名前:見習デーモン mailto:sage [2006/07/24(月) 15:25:26 ]
こんにちは。

上の本、順調に読み進めてます。
Netgraphハッカーになりてーなんて思ってたら
Netgraphがカーネルの中で一番ボリュームが多いって知って
さっそく挫けそうです。

OSMでバリバリ記事書く佐藤広生さんSUGEEEEEEE

329 名前:名無しさん@お腹いっぱい。 mailto:sage [2006/07/26(水) 02:45:29 ]
ん?多分ソースツリーの構成上だけの問題だと思うけど?
今netgraph関係は一部のモジュールを除いて、
ほとんどフラットに展開されてるから。それなりに数もあるし。
見る必要があるのはng_sample.cぐらいじゃない?



330 名前:見習いデーモン [2006/12/28(木) 17:49:40 ]
緊急浮上。

2007年はこれ
www.packetmischief.ca/openbsd/snmp/
と、OpenBSDのtcpdumpのpfに関連した拡張をFreeBSDに移植します。

331 名前:見習いデーモン mailto:age [2007/05/09(水) 14:28:39 ]
着手しました。
まだOpenBSD上で本家パッチの内容を調査してる段階。
すんなり移植できるといいな・・・

332 名前:見習いデーモン mailto:sage [2007/05/10(木) 12:09:26 ]
すまん、よく見たらカーネルと関係なかった。
回線切って首吊ってきます。

333 名前:名無しさん@お腹いっぱい。 [2008/06/04(水) 08:45:13 ]
カーネルの最新情報なら
www.kernel.org/



334 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/06/04(水) 09:24:35 ]
板違いだ

ケンタッキーでも食ってろ

335 名前:見習いデーモン mailto:age [2008/09/26(金) 10:31:54 ]
仕事がつらくてモチベーションが下がったとき、このスレを開くと
元気が出る。

今の俺は、7年前の俺が目指した俺になっているだろうか。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<76KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef