お前ら*BSDのカーネルをハックしますか? (378レス)
上下前次1-新
124(1): 02/05/08 23:44 AAS
>>123
人によって"損"の感じ方が異なります
私の損とあなたの損は違います
125(2): 02/05/08 23:46 AAS
>>124
うーん
将来ネットワーク関係のソフトウェアを開発したいのですけども。
そーゆー人にとっては有益でしょうか?
126: T大理系 02/05/08 23:49 AAS
みんな理系?
凄いです
尊敬します
127: 02/05/08 23:59 AAS
>>125
そういう具体的な目標があるのなら、カーネルに拘らずに最初から
ネット周りのプログラムをハクした方がいいと思われ。
カーネル書ける奴はスゴイが、カーネル書ける奴だけがスゴイわけじゃない。
128(1): 02/05/09 00:08 AAS
俺的にはドライバをバリバリ書き捲くってるような人が
プログラマとして尊敬に値すると思ってる。
カーネルはどっちかって言うと設計するものって感じだしねぇ。
129: 02/05/09 00:10 AAS
>>128
実務家っぽい御意見…
130(2): 02/05/09 00:11 AAS
人に訊いてからじゃないと始められない奴は結局何もできない。
hackなんてのは気づいたらやっているか、やらないと夜が明けないかのどちらかだ。
131: 02/05/09 01:13 AAS
>>125
ネットゲーのサーバとかのように、非同期に発生する大量の要求を
うまく捌かなければならないプログラムを書くのは、
カーネルを書くのと似たようなセンスが必要な気がする。
# RDBMSとかもそうだな。
こういうシステムをうまく設計できる奴は
非常に使えるね。
132: 02/05/09 12:11 AAS
>>130 がいいこと言った。
133(2): 学生 02/05/10 19:33 AAS
みなさんどうもありがとう
ところでみなさん理系ですか?
もしくはコンピュータで飯を食っている人達ですか?
134: 02/05/10 19:44 AAS
>>133
理系かそうでないかなんてどうでもいいことだ。
とりあえずやってみろ
>>130
どっかで聞いた気がするが、イイね
135: 02/05/10 20:22 AAS
>>133
俺も学生。経営情報学科というとこにいる。
理系だか文系だかわからん。
136: 02/05/11 05:29 AAS
あーあ
カーネルいじって遊んでたら
もー朝だよ...
寝よーっと。
137: 02/05/11 14:10 AAS
カーネル・ハッカースおじさんのAAキボンヌ
138: 02/05/21 11:26 AAS
hack より fuck だと最近痛感 おっかけさぼりすぎで make world 不能状態
139: 26=52=..... 02/05/25 03:44 AAS
某誌のネタにしますた。
140: 02/06/03 01:15 AAS
保守age
141: 02/06/03 01:59 AAS
見習いデーモンは死んだのか?
142: 02/06/09 05:21 AAS
AA省
143(3): 02/06/21 07:49 AAS
誰かハックしてる人いますかー。
BSDのkernel読み始めるとしたら、手をつけるところは
どこがおすすめですかねぇ
144: 02/06/21 08:28 AAS
>>143
過去ログ
145(1): 02/06/21 09:23 AAS
>>143
current の SMPng
146(2): 02/06/25 23:38 AAS
>>143
まぁ、過去ログにもいろいろあるけど、手足から見て行くのがいいと思うね。
デバイスドライバ、ファイルフォーマット毎のプロセス実行サブシステム(imgact_*)、
簡単なファイルシステム、低水準の初期化部あたりは割とコンパクトに
まとまってて読みやすいんじゃないの?
>>145
ほぅ。じゃぁ、具体的に何処のファイルがSMPngに関係してるのか言ってみ。
省1
147: 02/06/26 00:06 AAS
>>146 の後半
ネタにマジレスカコワルイ
148(1): 02/06/26 00:28 AAS
>>146
FreeBSD以外の*BSDってperforce使っているんですか?
FreeBSDのperforce treeってanonymousでソースを取れるんでしょうか?
できるんなら見てみたいと思っています。
149: 02/06/26 01:08 AAS
>>148 他の*BSDでは使ってないです。
でもSMPngっていったらFreeBSDでしょ。
リポジトリのブラウズならここでどうぞ。
外部リンク:people.freebsd.org
手元に置きたければ
外部リンク[txt]:people.freebsd.org
に取り方が書いてある。
150(5): 02/07/03 03:05 AAS
FreeBSDのブートについて質問させてください。
sys/boot/common/load_elf.c を読んでるんですが、
/kernelのエントリアドレス(当方では0xc012b130)に0xff000000をマスクして
符号反転してオフセット(off)を0x40000000にしている意味がわからないです。
コメントの「i386 relocates after locore」っていうのも呪文ですし…
で、結局/kernelのプログラムヘッダの仮想アドレス(当方では0xc0100000)と
さっきのoffを加算して桁あふれさせて0x100000にして、
省2
151(2): @夜勤雀棟 ◆YaKINcTg 02/07/03 05:48 AAS
>>150
sys/boot/common/load_elf.c
> off = - (off & 0xff000000u); /* i386 relocates after locore */
offの最上位の1バイトをクリアするだけだと。
e.g. 0xc012b130 -> 0x0012b130
>/* i386 relocates after locore */
boot2内で/kernelを16MB以下のリニアアドレス(0x00100000-)へ展開しておき、
省3
152(1): [age] 02/07/03 21:52 AAS
良サイト宣伝中〜〜。
外部リンク:www.interone.jp
注)私はサイト関係者とは無関係ですよ。
153: 02/07/04 03:20 AAS
>>152
BSD カーネルのハックに関する良サイトかと思って見に行っちゃったよ :-)
154: 02/07/04 05:05 AAS
アドレスの最後の方のgameがgmakeに見えて、見に行っちゃったよ。。
155(1): 02/07/06 20:57 AAS
>>151
その通り。なぜ、&= ~(0xff000000)じゃないのかよう分からんけど。
で、じゃあ何故ELFヘッダの開始番地が0x100XXXなんかじゃ無くて
0xc01000XXになってるかっていうと、paging開始後はカーネル仮想メモリ
アドレスは全て0xc0000000以降になっていて、 カーネルで使用している
メモリアドレスは全てそこにマップされるから。(リンカとELFフォーマット
の機能を使えばそういう状況にも実は対応できたりするような気もするけど)
省5
156(1): 150 02/07/06 21:47 AAS
>>151 >>155
お二人のレスを見ると自分がはずしまくってるのかニアミスなのか
すげぇ悩みます。
load_elf.cに↓のようにコード追加して
--
228行目あたり
if (kernel) {
省13
157(1): @夜勤雀棟 ◆YaKINcTg 02/07/06 22:25 AAS
>>156
> off = - (off & 0xff000000u); /* i386 relocates after locore */
スマソ。コードを読み違えました。
off -= (off & 0xff000000u);
だったら最上位バイトのクリアですね。
158: 150 02/07/06 23:16 AAS
>>157
まぁ「保証はしない」っておっしゃってましたしね =)
さてすっきりしたところでつぎはbtx.sでものぞいてみますか…
159: 02/07/18 02:40 AAS
せっかくだから俺は、ed0からtcpパケットがユーザランドまで行くまでを追って見るぜ
edintr-> ed_rint(dev/ed/if_ed.c)-> ether_input
->ether_demux(net/if_ethersubr.c)->(queueへ)
(queueからnetisrで)->ipintr->ip_input(netinet/ip_input.c)->
tcp_input->(順序を組み立てる為のqueueへ?)
ぐらいまで読めましたが、そっからどうなってるのかわかりますか?
160(1): 02/07/19 00:02 AAS
上から来るぞ! 気をつけろ!
TCP は置いといてとりあえず UDP 追ってみては?
161: 02/07/21 04:14 AAS
おい、>>160見習いデーモン,生きてるか?
udpの場合ip_inputの後
udp_input@udp_usrreqで配送先のプロセスを探して、sowakeupで起こす
そうすると、sbwait()で待ってた
soreceive()(uipc_socket.c)->recvit()でcopyoutされ、
recvitからはrecvfromに戻ってシステムコール完了と言った感じですか。
162: 02/07/29 19:56 AAS
ここなかなか良さそう。ただしSimplified Chinese。
外部リンク:opensource.zjonline.com.cn
163(1): 150 [FreeBSD 4.6R です。] 02/07/30 09:23 AAS
おはようございます。
PICの解説で参考になるページ見つけたんで貼っておきます。
外部リンク[html]:www.asahi-net.or.jp
外部リンク[htm]:www.cqpub.co.jp
で、また質問させてください。
sys/boot/i386/btx/btx/btx.s を読んでるんですが、
220行目あたりの「Launch user task」からがサッパリわかりません。
省8
164: 02/07/30 10:45 AAS
基本的にはbtxではタスク切替え使ってない筈。(そんな豪勢なことする
ほどのサイズも無いし)単純に、EFLAGSもPOPすることで、
特権を切替えてbtx_hdrにあるモニタルーチンのエントリーへ
飛んでるだけのことと思う。
165: @夜勤雀棟 ◆YaKINcTg 02/07/30 15:06 AAS
>>163
この場合はTSSは関係ないですね。(V86用に使うだけ)
割り込みが起こったことにしてiretしているだけです。
166(1): 150=163 02/07/31 19:46 AAS
レスどうもです。
はやとちりしてました。iretはタスク切替えだけで使うものではなかったんですね。
インテルのマニュアルの命令リファレンスで確認しました。
でも、pushしておいたEIP(btx_hdr+0xc)がiretで特権を切替えたあと
実行される番地みたいですけど、btx_hdr+0xcって
btx_hdr: .byte 0xeb # Machine ID
.byte 0xe # Header size
省8
167: @夜勤雀棟 ◆YaKINcTg 02/07/31 20:21 AAS
>>166
>でも、pushしておいたEIP(btx_hdr+0xc)がiretで特権を切替えたあと
>実行される番地みたいですけど
>pushl btx_hdr+0xc# Set EIP
これは間接参照でbtx_hdr+0xc番地の内容(long)をpushするという意味です。
# operandに'$'が付いていないことに留意。
168: 150 02/08/03 14:17 AAS
>>これは間接参照でbtx_hdr+0xc番地の内容(long)をpushするという意味です。
にしても、特権切替えたあとはどのコードが走るのか全然わからないです。
EIPが0x0なんですよね?0x0番地のコードって…?
169(1): 02/08/03 18:45 AAS
実際のバイナリをhexdumpしないとダメっすよ。ローダがいじるに決まってるでしょ。
/boot/boot2より
00000200 eb 0e 42 54 58 01 01 80 f6 0f 80 07 00 10 00 00 |..BTX...........|
<eb> btx_hdr: . byte 0xeb
<0e> . byte 0xe
<42 54 58 > . ascii "BTX"
<01> .byte 0x1
省7
170: 02/08/03 19:30 AAS
>>実際のバイナリをhexdumpしないとダメっすよ。ローダがいじるに決まってるでしょ。
おぉ、盲点でした。
こういうのはMakefileを丁寧に追っていけばわかることですか?
今ちらっとsys/boot/i386/boot2/Makefileを見たら
ORG2に代入された0x1000がbtxldコマンドのオプションとかに使われてて
「ほうほう」と思ってたんですけど。
ソースにとらわれすぎて本質を見失ってました。
省1
171: 150=170 02/08/03 19:31 AAS
sage忘れ欝だ死のう…
172: 02/08/04 22:06 AAS
sageなくても良いんじゃない?
まぁ、強いていえば「特殊なローダを必要とする」「0x0なんて番地に飛ぼうとする」
という2点から勘を働かせた結果かな。
173(1): 見習デーモンへ 02/09/09 04:58 AAS
スレ キトク スグカエレ
〜ハハヨリ〜
174: 02/09/11 00:13 AAS
>>173
知らなかったのか?見習いデーモンは
半年前に勇者に殺されたんだぞ。
175: 02/09/15 00:10 AAS
もし!毒蛇に噛まれたら、
切り口を素早くナイフでえぐり、
急いで口で吸え!
ほら、言ってみろ!!
176: 02/09/15 00:37 AAS
虫歯がある時にそれやったら死んでしまう罠。
177: 02/09/15 01:44 AAS
ごめんなさい
クックロビンを殺したのは私です。。。。
178(1): 02/09/15 01:44 AAS
boot0.sコードので分らない部分があるのですが、
61 movw $LOAD,%sp # stack
66 movw %sp,%si # Source
67 movw $start,%di # Destination
68 movw $0x100,%cx # Word count
69 rep # Relocate
70 movsw # code
省4
179: 02/09/15 07:34 AAS
>>178
MBRが読み込み・実行される際のセレクタの値
引用してるコードの上の方で設定してるセレクタの値
セレクタとオフセットから得られる実効アドレス
について調べましょう。
# 個人的には、今さらIA32の16bitモードについて勉強しても
# 得る物はあまり多くない気がする。
180: 見習いデーモン 02/09/21 18:19 AAS
むしょうにデバイスドライバを書いてみたくなって、
外部リンク[html]:www.jp.freebsd.org
↑やってみたらすげー簡単でびっくりしました。
秋月のLCDキットとかをシリアルかなんかでつなげて、
echo "Hello" > /dev/mylcd
とかできるようになりたいんですけど、あとは↓
外部リンク[html]:www.daemonnews.org
省3
181(1): 02/09/21 23:15 AAS
おまえの見てるのデバドラのつくり方じゃねぇじゃん。(藁
182: 見習いデーモン 02/09/21 23:34 AAS
うお、もしかして空回りですか…
でもKLDでカーネル領域に自分のコード置けるとおもうとワクワクするんですが
183: 02/09/22 23:32 AAS
カーネルを再構築しても自分のコードは置けますが何か?
184: 02/09/24 00:43 AAS
>>181
ハンドブックで解説されている部分は部分はデバイスドライバ
(ツリーを形成する実デバイスを叩くもの)ではデフォルトで呼ばれる
ものがあるので気にしなくていいです。
おまいさんの目的ではどう見てもfxpを見るのは間違いだと
思いますし、そもそもシリアルならsio使ってtermios
叩いたほうが.......
省1
185: 02/09/29 01:58 AAS
spic は デバイスの仕様が不明なので、
読んでもあまりピンとこないのでは。
186: 鬼軍曹 02/11/01 04:36 AAS
============ お知らせ ==================
あー、只今よりこのスレは、見習デーモンの学習を見張るスレになりました。
====================================
187: 02/12/16 05:14 AAS
保守
188: 02/12/26 15:56 AAS
NETBSD入れたらまずカーネルハックするぞぉ!
189: 02/12/26 16:13 AAS
おまえのいうハックってカーネルの再構築のことだろ?ぷ
190: 02/12/26 23:09 AAS
千里の道も一歩から
191: 02/12/26 23:34 AAS
千里の道を一歩だけ
192: 02/12/27 01:01 AAS
千里を歩き通すのは大変だよ……。
193(2): 02/12/29 14:10 AAS
千里ちゃんって誰?
194(2): 02/12/29 15:51 AAS
外部リンク:homepage3.nifty.com
195: 193 02/12/29 16:57 AAS
>>194
そんなの僕の千里ちゃんじゃないやい。
196(1): 03/01/07 22:31 AAS
>>193
千里中央に行くには新御堂筋に一歩踏み出せばあとは
北上するだけで着くので解りやすいと言う諺だよ。
197: 03/01/09 16:29 AAS
>>196
それはちとローカルではないかと。
198: 03/01/10 08:36 AAS
なかおくんだろ?
199: 山崎渉 [(^^)sage] 03/01/15 13:10 AAS
(^^)
200: 山崎渉 [(^^)sage] 03/01/16 03:35 AAS
(^^)
201: 03/01/18 12:17 AAS
>>194
大江千里も随分としけたもんだね。オフィシャルサイトが
niftyとは。。。
202: 山崎渉 [age] 03/02/24 10:15 AAS
(^^)オレダッテ タマニハ マジデ ホシュ スルyo!!
203: 山崎渉 [(^^)] 03/04/17 12:29 AAS
(^^)
204: あぼーん [あぼーん] AAS
あぼーん
上下前次1-新書関写板覧索設栞歴
あと 174 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.015s