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


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

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



1 名前:見習デーモン [01/10/17 18:35.net]
これから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より伝統あるはずなのに。

101 名前:名無しさん@お腹いっぱい。 mailto:sage [02/04/09 19:32.net]
procfs を換骨奪胎すればいいのでは?


102 名前:名無しさん@お腹いっぱい。 [02/04/09 19:57.net]
やっぱnullfsが基本では。

procfsはpseudofsレイヤができたから応用ききづらいかも。

103 名前:100 mailto:sage [02/04/09 20:21.net]
nullfs は読むのに layerfs と行ったり来たりしなきゃ
いけないので面倒かもと思ったので。(NetBSD)

よく見たら >98 はFreeBSDか。

てゆーか msdosfs あたりでも見たほうがむしろ分りやすいかもとか
思ったり。


104 名前:98 mailto:sage [02/04/09 20:37.net]
なんだこれ、ちょーかんたんじゃん! というわけでメモメモ。
 /sys/conf/files に追加。
  miscfs/orefs/orefs_vfsops.c standard
  miscfs/orefs/orefs_vnops.c standard
 /sys/sys/vnode.h に VT_OREFS を追加。
  enum vtagtype {
   ...
   VT_OREFS, /* 追加 */
  };

 # mkdir /sys/miscfs/orefs && cp /sys/miscfs/kernfs/* /sys/miscfs/orefs
 /sys/miscfs/orefs/* を片っ端から s/kern/ore/
 # cd /sys/i386/conf && config GENRIC && cd ../../compile/GENERIC
 # make depend && make make install
 # ln -s /sbin/mount_kernfs mount_orefs
 # reboot
 # mkdir /ore
 # mount_orefs orefs /ore
 # ls -l /ore
 -r--r--r-- 1 root wheel 9 Apr 9 20:30 oresama
 # cat /ore/oresama
 oresama!


105 名前:98 mailto:sage [02/04/09 20:54.net]
UNIX 使い始めて はや7年。やっとカーネルの世界にちょっとだけ足を踏み入れる
ことができたかな…。漏れみたいなヘタレには一生無理かとおもてたよ。感激。

というわけで、とりあえずの目標は
 rootvfs/da0s1a -> vnode/1
 rootvfs/ad0c -> vnode/2
 vnode/1/v_flag
 vnode/1/v_count
みたいな (まだわかってないので構成は適当)、各種構造体をマッピングした
ファイルシステムを作ろうと思います。

> やっぱnullfsが基本では。

nullfs の本来の使い方がいまいちわからないので、
一番サイズの小さい kernfs で行くことにしましたっす。


106 名前:名無しさん [02/04/09 21:59.net]
カーネルのコンパイルについて質問です。
FreeBSD4.5でカーネルをいじってmake && make installを
しているんですが不要な部分を除いてコンパイルの時間を
短くできないでしょうか?そんな都合のいい話は
ないかもしれませんがよろしくお願いします。

107 名前:あぼーん mailto:あぼーん [あぼーん.net]
あぼーん

108 名前:名無しさん@お腹いっぱい。 [02/04/09 22:47.net]
>>105
パソコンかえればはやくなるんじゃないかな。
PentiumIII1G以上だったら1分ぐらいで終わるし。



109 名前:名無しさん@お腹いっぱい。 mailto:sage [02/04/09 22:51.net]
>>105
本来スレ違いなんだけど…

www.jp.freebsd.org/www.FreeBSD.org/ja/handbook/kernelconfig.html

さらに何か疑問があればFreeBSD質問スレにGo



110 名前:名無しさん@お腹いっぱい。 [02/04/20 02:22.net]
NULLFSは正直お勧めできない。
あれは、スタッカブルファイルシステムのテンプレ。
そうそう。Linuxネタだけど、これどうよ。(カーネル空間でORBit動かす)
korbit.sourceforge.net/
これ一瞬移植しようかと思ったけど、geom入ったせいで
glibと名前空間がぶつかりそう。

111 名前:名無しさん@お腹いっぱい。 [02/04/21 00:27.net]
うーん。
NetBSDからスタッカブルファイルシステム系全部持ってきたほうが
面白いかなぁ。

112 名前:名無しさん@お腹いっぱい。 mailto:sage [02/04/21 16:04.net]
>>109
ORBit カーネルで動かすとなんかいいことあるの?

> you can write Linux device drivers in Perl
とか言われてもなあ(w


113 名前:学生 [02/05/08 22:11.net]
カーネル書けるとスゴいって書き込みよく見かけますが
学生で書けたらすごいですか?
ウチの教授は書けますかね?

114 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 22:27.net]
>>112
そんな書き込みどこで見かけた?

2ちゃんねるぢゃあないよな?

115 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 22:39.net]
>>113
ここと思われ:

Free Unix での経験は職歴に入らないか? (428)
pc.2ch.net/test/read.cgi/unix/995637081/12

116 名前:学生 [02/05/08 23:02.net]
ビンゴです。
あと、以前他のスレでも見ました。

で、どうなんですか。
カーネルは上級のプロじゃないと書けないんですか?
お前ら真面目にレス下さい。

117 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 23:10.net]
>>115
べつにプロである必要はこれっぽっちもないわけだが

118 名前:学生 [02/05/08 23:19.net]
>>116
どのくらい難しいのでしょうか
3年間くらい勉強すれば学生でもかけますか

119 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 23:21.net]
>>117
やってみりゃ自分でわかるだろ?
つべこべ言ってないでさっさとカーネルをハク汁



120 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 23:24.net]
>>117
自分の頭の中のフローチャートを実際にプログラムに
起こせる人間であれば、多分1年くらいで出来ると思う。

漏れは3年くらいかかったけど(鬱

121 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 23:27.net]
>>117
学生かどーかは関係ないし。
1ヶ月くらいやってみて無理そうなら当分無理。


122 名前:117 [02/05/08 23:37.net]
レスありがとうございます。
ここで言う「書ける」というのは、白紙からの状態から自分で書けるという意味ですよね?
既存のプログラムを改造するとか、書籍を見て書くとか、そういう意味ではないですよね?

123 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 23:38.net]
>>115
むしろカーネルをスクラッチから書くなんてこと
学生にしかできないから、今のうちに頑張れ。
「上級のプロ」にそんな暇なんてありません。

124 名前:名無しさん@お腹いっぱい。 [02/05/08 23:41.net]
>>122
UNIX使いになるためには、やっといて損はないですか?

125 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 23:44.net]
>>123
人によって"損"の感じ方が異なります
私の損とあなたの損は違います


126 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 23:46.net]
>>124
うーん
将来ネットワーク関係のソフトウェアを開発したいのですけども。
そーゆー人にとっては有益でしょうか?


127 名前:T大理系 [02/05/08 23:49.net]
みんな理系?
凄いです
尊敬します

128 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/08 23:59.net]
>>125
そういう具体的な目標があるのなら、カーネルに拘らずに最初から
ネット周りのプログラムをハクした方がいいと思われ。

カーネル書ける奴はスゴイが、カーネル書ける奴だけがスゴイわけじゃない。

129 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/09 00:08.net]
俺的にはドライバをバリバリ書き捲くってるような人が
プログラマとして尊敬に値すると思ってる。
カーネルはどっちかって言うと設計するものって感じだしねぇ。



130 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/09 00:10.net]
>>128
実務家っぽい御意見…

131 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/09 00:11.net]
人に訊いてからじゃないと始められない奴は結局何もできない。
hackなんてのは気づいたらやっているか、やらないと夜が明けないかのどちらかだ。


132 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/09 01:13.net]
>>125
ネットゲーのサーバとかのように、非同期に発生する大量の要求を
うまく捌かなければならないプログラムを書くのは、
カーネルを書くのと似たようなセンスが必要な気がする。
# RDBMSとかもそうだな。

こういうシステムをうまく設計できる奴は
非常に使えるね。

133 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/09 12:11.net]
>>130 がいいこと言った。

134 名前:学生 [02/05/10 19:33.net]
みなさんどうもありがとう
ところでみなさん理系ですか?
もしくはコンピュータで飯を食っている人達ですか?

135 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/10 19:44.net]
>>133
理系かそうでないかなんてどうでもいいことだ。
とりあえずやってみろ

>>130
どっかで聞いた気がするが、イイね


136 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/10 20:22.net]
>>133
俺も学生。経営情報学科というとこにいる。
理系だか文系だかわからん。

137 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/11 05:29.net]
あーあ
カーネルいじって遊んでたら
もー朝だよ...
寝よーっと。


138 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/11 14:10.net]
カーネル・ハッカースおじさんのAAキボンヌ

139 名前:名無しさん@お腹いっぱい。 mailto:sage [02/05/21 11:26.net]
hack より fuck だと最近痛感 おっかけさぼりすぎで make world 不能状態



140 名前:26=52=..... mailto:sage [02/05/25 03:44.net]
某誌のネタにしますた。

141 名前:名無しさん@お腹いっぱい。 [02/06/03 01:15.net]
保守age

142 名前:名無しさん@お腹いっぱい。 mailto:sage [02/06/03 01:59.net]
見習いデーモンは死んだのか?

143 名前:名無しさん@お腹いっぱい。 [02/06/09 05:21.net]


たか、いらっしゃい
        ま
        せ
        ん
        か
        ?

144 名前:名無しさん@お腹いっぱい。 mailto:sage [02/06/21 07:49.net]
誰かハックしてる人いますかー。


BSDのkernel読み始めるとしたら、手をつけるところは
どこがおすすめですかねぇ

145 名前:名無しさん@お腹いっぱい。 mailto:sage [02/06/21 08:28.net]
>>143
過去ログ

146 名前:名無しさん@お腹いっぱい。 mailto:sage [02/06/21 09:23.net]
>>143
current の SMPng

147 名前:名無しさん@お腹いっぱい。 [02/06/25 23:38.net]
>>143
まぁ、過去ログにもいろいろあるけど、手足から見て行くのがいいと思うね。
デバイスドライバ、ファイルフォーマット毎のプロセス実行サブシステム(imgact_*)、
簡単なファイルシステム、低水準の初期化部あたりは割とコンパクトに
まとまってて読みやすいんじゃないの?

>>145

ほぅ。じゃぁ、具体的に何処のファイルがSMPngに関係してるのか言ってみ。
PERFORCEのリポジトリは見てるんだろうね。

148 名前:名無しさん@お腹いっぱい。 mailto:sage [02/06/26 00:06.net]
>>146 の後半
ネタにマジレスカコワルイ


149 名前:名無しさん@お腹いっぱい。 mailto:sage [02/06/26 00:28.net]
>>146
FreeBSD以外の*BSDってperforce使っているんですか?

FreeBSDのperforce treeってanonymousでソースを取れるんでしょうか?
できるんなら見てみたいと思っています。




150 名前:名無しさん@お腹いっぱい。 [02/06/26 01:08.net]
>>148 他の*BSDでは使ってないです。
でもSMPngっていったらFreeBSDでしょ。
リポジトリのブラウズならここでどうぞ。
people.freebsd.org/~peter/p4db/
手元に置きたければ
people.freebsd.org/~peter/p4cookbook.txt
に取り方が書いてある。

151 名前:名無しさん@お腹いっぱい。 [02/07/03 03:05.net]
FreeBSDのブートについて質問させてください。

sys/boot/common/load_elf.c を読んでるんですが、
/kernelのエントリアドレス(当方では0xc012b130)に0xff000000をマスクして
符号反転してオフセット(off)を0x40000000にしている意味がわからないです。
コメントの「i386 relocates after locore」っていうのも呪文ですし…

で、結局/kernelのプログラムヘッダの仮想アドレス(当方では0xc0100000)と
さっきのoffを加算して桁あふれさせて0x100000にして、
最終的にはこのアドレスに/kernelをロードしてるようなんですが、
なんかえらくまわりくどくないですか?私の読みが浅いだけでしょうか。

152 名前:@夜勤雀棟 ◆YaKINcTg mailto:sage [02/07/03 05:48.net]
>>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-)へ展開しておき、
locore.sにおいて適切なアドレス(0xc0100000-)へmapするのだと思われます。
(locore.s内でページングをenableにしている)

#ざっと眺めただけなので保証はしませんが :-p

153 名前:名無しさん@お腹いっぱい。 mailto:age [02/07/03 21:52.net]
良サイト宣伝中〜〜。

www.interone.jp/~game-k/

注)私はサイト関係者とは無関係ですよ。

154 名前:名無しさん@お腹いっぱい。 mailto:sage [02/07/04 03:20.net]
>>152
BSD カーネルのハックに関する良サイトかと思って見に行っちゃったよ :-)


155 名前:名無しさん@お腹いっぱい。 mailto:sage [02/07/04 05:05.net]
アドレスの最後の方のgameがgmakeに見えて、見に行っちゃったよ。。

156 名前:名無しさん@お腹いっぱい。 [02/07/06 20:57.net]
>>151
その通り。なぜ、&= ~(0xff000000)じゃないのかよう分からんけど。
で、じゃあ何故ELFヘッダの開始番地が0x100XXXなんかじゃ無くて
0xc01000XXになってるかっていうと、paging開始後はカーネル仮想メモリ
アドレスは全て0xc0000000以降になっていて、 カーネルで使用している
メモリアドレスは全てそこにマップされるから。(リンカとELFフォーマット
の機能を使えばそういう状況にも実は対応できたりするような気もするけど)
特にkernelとISAメモリ空間は(物理アドレス+0xc0000000)の位置にマップされます。
locore.sでページングを開始するまでに絶対アドレッシングが必要な
時は
#define R(foo) ((foo)-KERNBASE)
定義されるマクロを使ってアクセスしてます。


157 名前:150 [02/07/06 21:47.net]
>>151, >>155

お二人のレスを見ると自分がはずしまくってるのかニアミスなのか
すげぇ悩みます。
load_elf.cに↓のようにコード追加して

--
228行目あたり
if (kernel) {
printf("before [%p]\n", (void *)off); ←これを追加
#ifdef __i386__
off = - (off & 0xff000000u); /* i386 relocates after locore */
printf("after [%p]\n", (void *)off); ←これを追加
--

# make
# make install

として祭起動すると

before [0xc012b130]
after [0x40000000]

となるんで、あぁそうかと思ってたんですけど、お二人は
最上位の1バイトをクリアしてるとおっしゃてますし。
でも/kernelを0x100000へマップするのはあってるんですよね?

158 名前:@夜勤雀棟 ◆YaKINcTg mailto:sage [02/07/06 22:25.net]
>>156
> off = - (off & 0xff000000u); /* i386 relocates after locore */

スマソ。コードを読み違えました。
off -= (off & 0xff000000u);
だったら最上位バイトのクリアですね。

159 名前:150 mailto:sage [02/07/06 23:16.net]
>>157
まぁ「



160 名前:保証はしない」っておっしゃってましたしね =)

さてすっきりしたところでつぎはbtx.sでものぞいてみますか…
[]
[ここ壊れてます]

161 名前:名無しさん@お腹いっぱい。 [02/07/18 02:40.net]
せっかくだから俺は、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へ?)
ぐらいまで読めましたが、そっからどうなってるのかわかりますか?


162 名前:名無しさん@お腹いっぱい。 mailto:sage [02/07/19 00:02.net]
上から来るぞ! 気をつけろ!
TCP は置いといてとりあえず UDP 追ってみては?


163 名前:名無しさん@お腹いっぱい。 [02/07/21 04:14.net]
おい、>>160,見習いデーモン,生きてるか?
udpの場合ip_inputの後
udp_input@udp_usrreqで配送先のプロセスを探して、sowakeupで起こす
そうすると、sbwait()で待ってた
soreceive()(uipc_socket.c)->recvit()でcopyoutされ、
recvitからはrecvfromに戻ってシステムコール完了と言った感じですか。


164 名前:名無しさん@お腹いっぱい。 [02/07/29 19:56.net]
ここなかなか良さそう。ただしSimplified Chinese。
opensource.zjonline.com.cn/

165 名前:150 mailto:FreeBSD 4.6R です。 [02/07/30 09:23.net]
おはようございます。
PICの解説で参考になるページ見つけたんで貼っておきます。
www.asahi-net.or.jp/~WR7S-NKMR/BeOS/Documents/IRQ.html
www.cqpub.co.jp/column/books/2001a/34331PC_Legacy/default.htm

で、また質問させてください。
sys/boot/i386/btx/btx/btx.s を読んでるんですが、
220行目あたりの「Launch user task」からがサッパリわかりません。

TSSの働きとタスク切替えがよく理解できてないからだと思うんですが、
248行目のiret命令で何が起こるのかわかりません。
(コメントには「To user mode」って書いてあるんですが…)

iretでタスクを切替える場合はフラグレジスタにNTビットがセットされて
なければならない、とインテルのマニュアルにも「はじめて読む486」にも
書いてあるんですが、248行目に到達するまでにNTビットがセットされたような
様子もないんですが…

何かヒントだけでもお願いします。



166 名前:名無しさん@お腹いっぱい。 [02/07/30 10:45.net]
基本的にはbtxではタスク切替え使ってない筈。(そんな豪勢なことする
ほどのサイズも無いし)単純に、EFLAGSもPOPすることで、
特権を切替えてbtx_hdrにあるモニタルーチンのエントリーへ
飛んでるだけのことと思う。


167 名前:@夜勤雀棟 ◆YaKINcTg mailto:sage [02/07/30 15:06.net]
>>163
この場合はTSSは関係ないですね。(V86用に使うだけ)
割り込みが起こったことにしてiretしているだけです。

168 名前:150=163 mailto:sage [02/07/31 19:46.net]
レスどうもです。

はやとちりしてました。iretはタスク切替えだけで使うものではなかったんですね。
インテルのマニュアルの命令リファレンスで確認しました。

でも、pushしておいたEIP(btx_hdr+0xc)がiretで特権を切替えたあと
実行される番地みたいですけど、btx_hdr+0xcって

btx_hdr: .byte 0xeb # Machine ID
.byte 0xe # Header size
.ascii "BTX" # Magic
.byte 0x1 # Major version
.byte 0x1 # Minor version
.byte BTX_FLAGS # Flags
.word PAG_CNT-MEM_ORG>>0xc # Paging control
.word break-start # Text size
.long 0x0 # Entry address ←ここですか?

特権を切替えて、また同じコードを辿ってくってこと???


169 名前:@夜勤雀棟 ◆YaKINcTg mailto:sage [02/07/31 20:21.net]
>>166
>でも、pushしておいたEIP(btx_hdr+0xc)がiretで特権を切替えたあと
>実行される番地みたいですけど

>pushl btx_hdr+0xc# Set EIP

これは間接参照でbtx_hdr+0xc番地の内容(long)をpushするという意味です。
# operandに'$'が付いていないことに留意。



170 名前:150 mailto:sage [02/08/03 14:17.net]
>>これは間接参照でbtx_hdr+0xc番地の内容(long)をpushするという意味です。
にしても、特権切替えたあとはどのコードが走るのか全然わからないです。
EIPが0x0なんですよね?0x0番地のコードって…?


171 名前:名無しさん@お腹いっぱい。 mailto:sage [02/08/03 18:45.net]
実際のバイナリを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
<01> . byte 0x1
<80> .byte BTX_FLAGS
<f6 0f> .word PAG_CNT-MEM_ORG>>0xc
<80 07> .word break-start
<00 10 00 00> .long 0x00001000
簡単にするならコメントを信じて次のbtxクライアント(boot2又は/boot/loader本体)
へ進めってことです。ちなみに/boot/loaderは更にbtxldrが走ったりするっす。


172 名前:名無しさん@お腹いっぱい。 [02/08/03 19:30.net]
>>実際のバイナリをhexdumpしないとダメっすよ。ローダがいじるに決まってるでしょ。

おぉ、盲点でした。
こういうのはMakefileを丁寧に追っていけばわかることですか?
今ちらっとsys/boot/i386/boot2/Makefileを見たら
ORG2に代入された0x1000がbtxldコマンドのオプションとかに使われてて
「ほうほう」と思ってたんですけど。

ソースにとらわれすぎて本質を見失ってました。
でも>>169さんのおかげでまた少し前進できそうです。ありがとうございました。

173 名前:150=170 mailto:sage [02/08/03 19:31.net]
sage忘れ欝だ死のう…

174 名前:名無しさん@お腹いっぱい。 [02/08/04 22:06.net]
sageなくても良いんじゃない?

まぁ、強いていえば「特殊なローダを必要とする」「0x0なんて番地に飛ぼうとする」
という2点から勘を働かせた結果かな。


175 名前:見習デーモンへ [02/09/09 04:58.net]
スレ キトク スグカエレ

           〜ハハヨリ〜


176 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/11 00:13.net]
>>173
知らなかったのか?見習いデーモンは
半年前に勇者に殺されたんだぞ。

177 名前:名無しさん@お腹いっぱい。 [02/09/15 00:10.net]
もし!毒蛇に噛まれたら、
切り口を素早くナイフでえぐり、
急いで口で吸え!

ほら、言ってみろ!!

178 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/15 00:37.net]
虫歯がある時にそれやったら死んでしまう罠。

179 名前:名無しさん@お腹いっぱい。 [02/09/15 01:44.net]
ごめんなさい
クックロビンを殺したのは私です。。。。



180 名前:名無しさん@お腹いっぱい。 [02/09/15 01:44.net]
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
この部分は、MBRを再配置するコードだと考えているのですが、
アドレスLOAD(0x7c00)からの512バイトの領域を、現在実行して
いるstartで表されるアドレスからの512バイトの領域にコピーする
という意味なのでしょうか?

181 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/15 07:34.net]
>>178
MBRが読み込み・実行される際のセレクタの値
引用してるコードの上の方で設定してるセレクタの値
セレクタとオフセットから得られる実効アドレス

182 名前:
について調べましょう。

# 個人的には、今さらIA32の16bitモードについて勉強しても
# 得る物はあまり多くない気がする。
[]
[ここ壊れてます]

183 名前:見習いデーモン mailto:sage [02/09/21 18:19.net]
むしょうにデバイスドライバを書いてみたくなって、
www.jp.freebsd.org/www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/x10069.html
↑やってみたらすげー簡単でびっくりしました。

秋月のLCDキットとかをシリアルかなんかでつなげて、
echo "Hello" > /dev/mylcd
とかできるようになりたいんですけど、あとは↓
www.daemonnews.org/200010/blueprints.html
とか読んどけばできるようになりますか?

実際のドライバってどんななんだろうと思って/sys/dev/fxp/if_fxp.c
なんかのぞいてみて頭から煙だしたりしてます…


184 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/21 23:15.net]
おまえの見てるのデバドラのつくり方じゃねぇじゃん。(藁

185 名前:見習いデーモン mailto:sage [02/09/21 23:34.net]
うお、もしかして空回りですか…

でもKLDでカーネル領域に自分のコード置けるとおもうとワクワクするんですが

186 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/22 23:32.net]
カーネルを再構築しても自分のコードは置けますが何か?

187 名前:名無しさん@お腹いっぱい。 [02/09/24 00:43.net]
>>181
ハンドブックで解説されている部分は部分はデバイスドライバ
(ツリーを形成する実デバイスを叩くもの)ではデフォルトで呼ばれる
ものがあるので気にしなくていいです。

おまいさんの目的ではどう見てもfxpを見るのは間違いだと
思いますし、そもそもシリアルならsio使ってtermios
叩いたほうが.......
で、ご希望にそえるものなら例えば、spic(4)あたり簡単そうかな?





188 名前:名無しさん@お腹いっぱい。 mailto:sage [02/09/29 01:58.net]
spic は デバイスの仕様が不明なので、
読んでもあまりピンとこないのでは。


189 名前:鬼軍曹 [02/11/01 04:36.net]
============ お知らせ ==================

あー、只今よりこのスレは、見習デーモンの学習を見張るスレになりました。

====================================



190 名前:名無しさん@お腹いっぱい。 [02/12/16 05:14.net]
保守

191 名前:名無しさん@お腹いっぱい。 [02/12/26 15:56.net]
NETBSD入れたらまずカーネルハックするぞぉ!


192 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/26 16:13.net]
おまえのいうハックってカーネルの再構築のことだろ?ぷ

193 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/26 23:09.net]
千里の道も一歩から

194 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/26 23:34.net]
千里の道を一歩だけ

195 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/27 01:01.net]
千里を歩き通すのは大変だよ……。


196 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/29 14:10.net]
千里ちゃんって誰?


197 名前:名無しさん@お腹いっぱい。 mailto:sage [02/12/29 15:51.net]
homepage3.nifty.com/senri/

198 名前:193 mailto:sage [02/12/29 16:57.net]
>>194
そんなの僕の千里ちゃんじゃないやい。


199 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/07 22:31.net]
>>193
千里中央に行くには新御堂筋に一歩踏み出せばあとは
北上するだけで着くので解りやすいと言う諺だよ。



200 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/09 16:29.net]
>>196
それはちとローカルではないかと。

201 名前:名無しさん@お腹いっぱい。 mailto:sage [03/01/10 08:36.net]
なかおくんだろ?






[ 続きを読む ] / [ 携帯版 ]

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

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