これから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より伝統あるはずなのに。
探検
お前ら*BSDのカーネルをハックしますか?
1見習デーモン
NGNG126T大理系
NGNG みんな理系?
凄いです
尊敬します
凄いです
尊敬します
NGNG
NGNG
俺的にはドライバをバリバリ書き捲くってるような人が
プログラマとして尊敬に値すると思ってる。
カーネルはどっちかって言うと設計するものって感じだしねぇ。
プログラマとして尊敬に値すると思ってる。
カーネルはどっちかって言うと設計するものって感じだしねぇ。
NGNG
>>128
実務家っぽい御意見…
実務家っぽい御意見…
NGNG
人に訊いてからじゃないと始められない奴は結局何もできない。
hackなんてのは気づいたらやっているか、やらないと夜が明けないかのどちらかだ。
hackなんてのは気づいたらやっているか、やらないと夜が明けないかのどちらかだ。
NGNG
>>125
ネットゲーのサーバとかのように、非同期に発生する大量の要求を
うまく捌かなければならないプログラムを書くのは、
カーネルを書くのと似たようなセンスが必要な気がする。
# RDBMSとかもそうだな。
こういうシステムをうまく設計できる奴は
非常に使えるね。
ネットゲーのサーバとかのように、非同期に発生する大量の要求を
うまく捌かなければならないプログラムを書くのは、
カーネルを書くのと似たようなセンスが必要な気がする。
# RDBMSとかもそうだな。
こういうシステムをうまく設計できる奴は
非常に使えるね。
NGNG
>>130 がいいこと言った。
133学生
NGNG みなさんどうもありがとう
ところでみなさん理系ですか?
もしくはコンピュータで飯を食っている人達ですか?
ところでみなさん理系ですか?
もしくはコンピュータで飯を食っている人達ですか?
NGNG
NGNG
NGNG
あーあ
カーネルいじって遊んでたら
もー朝だよ...
寝よーっと。
カーネルいじって遊んでたら
もー朝だよ...
寝よーっと。
NGNG
カーネル・ハッカースおじさんのAAキボンヌ
NGNG
hack より fuck だと最近痛感 おっかけさぼりすぎで make world 不能状態
13926=52=.....
NGNG 某誌のネタにしますた。
140名無しさん@お腹いっぱい。
NGNG 保守age
NGNG
見習いデーモンは死んだのか?
142名無しさん@お腹いっぱい。
NGNG ど
な
たか、いらっしゃい
ま
せ
ん
か
?
な
たか、いらっしゃい
ま
せ
ん
か
?
NGNG
誰かハックしてる人いますかー。
BSDのkernel読み始めるとしたら、手をつけるところは
どこがおすすめですかねぇ
BSDのkernel読み始めるとしたら、手をつけるところは
どこがおすすめですかねぇ
NGNG
>>143
過去ログ
過去ログ
NGNG
>>143
current の SMPng
current の SMPng
146名無しさん@お腹いっぱい。
NGNGNGNG
NGNG
>>146
FreeBSD以外の*BSDってperforce使っているんですか?
FreeBSDのperforce treeってanonymousでソースを取れるんでしょうか?
できるんなら見てみたいと思っています。
FreeBSD以外の*BSDってperforce使っているんですか?
FreeBSDのperforce treeってanonymousでソースを取れるんでしょうか?
できるんなら見てみたいと思っています。
149名無しさん@お腹いっぱい。
NGNG >>148 他の*BSDでは使ってないです。
でもSMPngっていったらFreeBSDでしょ。
リポジトリのブラウズならここでどうぞ。
http://people.freebsd.org/~peter/p4db/
手元に置きたければ
http://people.freebsd.org/~peter/p4cookbook.txt
に取り方が書いてある。
でもSMPngっていったらFreeBSDでしょ。
リポジトリのブラウズならここでどうぞ。
http://people.freebsd.org/~peter/p4db/
手元に置きたければ
http://people.freebsd.org/~peter/p4cookbook.txt
に取り方が書いてある。
150名無しさん@お腹いっぱい。
NGNG FreeBSDのブートについて質問させてください。
sys/boot/common/load_elf.c を読んでるんですが、
/kernelのエントリアドレス(当方では0xc012b130)に0xff000000をマスクして
符号反転してオフセット(off)を0x40000000にしている意味がわからないです。
コメントの「i386 relocates after locore」っていうのも呪文ですし…
で、結局/kernelのプログラムヘッダの仮想アドレス(当方では0xc0100000)と
さっきのoffを加算して桁あふれさせて0x100000にして、
最終的にはこのアドレスに/kernelをロードしてるようなんですが、
なんかえらくまわりくどくないですか?私の読みが浅いだけでしょうか。
sys/boot/common/load_elf.c を読んでるんですが、
/kernelのエントリアドレス(当方では0xc012b130)に0xff000000をマスクして
符号反転してオフセット(off)を0x40000000にしている意味がわからないです。
コメントの「i386 relocates after locore」っていうのも呪文ですし…
で、結局/kernelのプログラムヘッダの仮想アドレス(当方では0xc0100000)と
さっきのoffを加算して桁あふれさせて0x100000にして、
最終的にはこのアドレスに/kernelをロードしてるようなんですが、
なんかえらくまわりくどくないですか?私の読みが浅いだけでしょうか。
151@夜勤雀棟 ◆YaKINcTg
NGNG >>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
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
NGNG
NGNG
NGNG
アドレスの最後の方のgameがgmakeに見えて、見に行っちゃったよ。。
155名無しさん@お腹いっぱい。
NGNG >>151
その通り。なぜ、&= ~(0xff000000)じゃないのかよう分からんけど。
で、じゃあ何故ELFヘッダの開始番地が0x100XXXなんかじゃ無くて
0xc01000XXになってるかっていうと、paging開始後はカーネル仮想メモリ
アドレスは全て0xc0000000以降になっていて、 カーネルで使用している
メモリアドレスは全てそこにマップされるから。(リンカとELFフォーマット
の機能を使えばそういう状況にも実は対応できたりするような気もするけど)
特にkernelとISAメモリ空間は(物理アドレス+0xc0000000)の位置にマップされます。
locore.sでページングを開始するまでに絶対アドレッシングが必要な
時は
#define R(foo) ((foo)-KERNBASE)
定義されるマクロを使ってアクセスしてます。
その通り。なぜ、&= ~(0xff000000)じゃないのかよう分からんけど。
で、じゃあ何故ELFヘッダの開始番地が0x100XXXなんかじゃ無くて
0xc01000XXになってるかっていうと、paging開始後はカーネル仮想メモリ
アドレスは全て0xc0000000以降になっていて、 カーネルで使用している
メモリアドレスは全てそこにマップされるから。(リンカとELFフォーマット
の機能を使えばそういう状況にも実は対応できたりするような気もするけど)
特にkernelとISAメモリ空間は(物理アドレス+0xc0000000)の位置にマップされます。
locore.sでページングを開始するまでに絶対アドレッシングが必要な
時は
#define R(foo) ((foo)-KERNBASE)
定義されるマクロを使ってアクセスしてます。
156150
NGNG >>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へマップするのはあってるんですよね?
お二人のレスを見ると自分がはずしまくってるのかニアミスなのか
すげぇ悩みます。
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へマップするのはあってるんですよね?
157@夜勤雀棟 ◆YaKINcTg
NGNG >>156
> off = - (off & 0xff000000u); /* i386 relocates after locore */
スマソ。コードを読み違えました。
off -= (off & 0xff000000u);
だったら最上位バイトのクリアですね。
> off = - (off & 0xff000000u); /* i386 relocates after locore */
スマソ。コードを読み違えました。
off -= (off & 0xff000000u);
だったら最上位バイトのクリアですね。
159名無しさん@お腹いっぱい。
NGNG せっかくだから俺は、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へ?)
ぐらいまで読めましたが、そっからどうなってるのかわかりますか?
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へ?)
ぐらいまで読めましたが、そっからどうなってるのかわかりますか?
NGNG
上から来るぞ! 気をつけろ!
TCP は置いといてとりあえず UDP 追ってみては?
TCP は置いといてとりあえず UDP 追ってみては?
161名無しさん@お腹いっぱい。
NGNG おい、>>160,見習いデーモン,生きてるか?
udpの場合ip_inputの後
udp_input@udp_usrreqで配送先のプロセスを探して、sowakeupで起こす
そうすると、sbwait()で待ってた
soreceive()(uipc_socket.c)->recvit()でcopyoutされ、
recvitからはrecvfromに戻ってシステムコール完了と言った感じですか。
udpの場合ip_inputの後
udp_input@udp_usrreqで配送先のプロセスを探して、sowakeupで起こす
そうすると、sbwait()で待ってた
soreceive()(uipc_socket.c)->recvit()でcopyoutされ、
recvitからはrecvfromに戻ってシステムコール完了と言った感じですか。
162名無しさん@お腹いっぱい。
NGNG ここなかなか良さそう。ただしSimplified Chinese。
http://opensource.zjonline.com.cn/
http://opensource.zjonline.com.cn/
163150
NGNG おはようございます。
PICの解説で参考になるページ見つけたんで貼っておきます。
http://www.asahi-net.or.jp/~WR7S-NKMR/BeOS/Documents/IRQ.html
http://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ビットがセットされたような
様子もないんですが…
何かヒントだけでもお願いします。
PICの解説で参考になるページ見つけたんで貼っておきます。
http://www.asahi-net.or.jp/~WR7S-NKMR/BeOS/Documents/IRQ.html
http://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ビットがセットされたような
様子もないんですが…
何かヒントだけでもお願いします。
164名無しさん@お腹いっぱい。
NGNG 基本的にはbtxではタスク切替え使ってない筈。(そんな豪勢なことする
ほどのサイズも無いし)単純に、EFLAGSもPOPすることで、
特権を切替えてbtx_hdrにあるモニタルーチンのエントリーへ
飛んでるだけのことと思う。
ほどのサイズも無いし)単純に、EFLAGSもPOPすることで、
特権を切替えてbtx_hdrにあるモニタルーチンのエントリーへ
飛んでるだけのことと思う。
166150=163
NGNG レスどうもです。
はやとちりしてました。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 ←ここですか?
特権を切替えて、また同じコードを辿ってくってこと???
はやとちりしてました。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 ←ここですか?
特権を切替えて、また同じコードを辿ってくってこと???
167@夜勤雀棟 ◆YaKINcTg
NGNG >>166
>でも、pushしておいたEIP(btx_hdr+0xc)がiretで特権を切替えたあと
>実行される番地みたいですけど
>pushl btx_hdr+0xc# Set EIP
これは間接参照でbtx_hdr+0xc番地の内容(long)をpushするという意味です。
# operandに'$'が付いていないことに留意。
>でも、pushしておいたEIP(btx_hdr+0xc)がiretで特権を切替えたあと
>実行される番地みたいですけど
>pushl btx_hdr+0xc# Set EIP
これは間接参照でbtx_hdr+0xc番地の内容(long)をpushするという意味です。
# operandに'$'が付いていないことに留意。
168150
NGNG >>これは間接参照でbtx_hdr+0xc番地の内容(long)をpushするという意味です。
にしても、特権切替えたあとはどのコードが走るのか全然わからないです。
EIPが0x0なんですよね?0x0番地のコードって…?
にしても、特権切替えたあとはどのコードが走るのか全然わからないです。
EIPが0x0なんですよね?0x0番地のコードって…?
NGNG
実際のバイナリを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が走ったりするっす。
/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が走ったりするっす。
170名無しさん@お腹いっぱい。
NGNG >>実際のバイナリをhexdumpしないとダメっすよ。ローダがいじるに決まってるでしょ。
おぉ、盲点でした。
こういうのはMakefileを丁寧に追っていけばわかることですか?
今ちらっとsys/boot/i386/boot2/Makefileを見たら
ORG2に代入された0x1000がbtxldコマンドのオプションとかに使われてて
「ほうほう」と思ってたんですけど。
ソースにとらわれすぎて本質を見失ってました。
でも>>169さんのおかげでまた少し前進できそうです。ありがとうございました。
おぉ、盲点でした。
こういうのはMakefileを丁寧に追っていけばわかることですか?
今ちらっとsys/boot/i386/boot2/Makefileを見たら
ORG2に代入された0x1000がbtxldコマンドのオプションとかに使われてて
「ほうほう」と思ってたんですけど。
ソースにとらわれすぎて本質を見失ってました。
でも>>169さんのおかげでまた少し前進できそうです。ありがとうございました。
171150=170
NGNG sage忘れ欝だ死のう…
172名無しさん@お腹いっぱい。
NGNG sageなくても良いんじゃない?
まぁ、強いていえば「特殊なローダを必要とする」「0x0なんて番地に飛ぼうとする」
という2点から勘を働かせた結果かな。
まぁ、強いていえば「特殊なローダを必要とする」「0x0なんて番地に飛ぼうとする」
という2点から勘を働かせた結果かな。
173見習デーモンへ
NGNG スレ キトク スグカエレ
〜ハハヨリ〜
〜ハハヨリ〜
NGNG
175名無しさん@お腹いっぱい。
NGNG もし!毒蛇に噛まれたら、
切り口を素早くナイフでえぐり、
急いで口で吸え!
ほら、言ってみろ!!
切り口を素早くナイフでえぐり、
急いで口で吸え!
ほら、言ってみろ!!
NGNG
虫歯がある時にそれやったら死んでしまう罠。
177名無しさん@お腹いっぱい。
NGNG ごめんなさい
クックロビンを殺したのは私です。。。。
クックロビンを殺したのは私です。。。。
178名無しさん@お腹いっぱい。
NGNG 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バイトの領域にコピーする
という意味なのでしょうか?
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バイトの領域にコピーする
という意味なのでしょうか?
NGNG
>>178
MBRが読み込み・実行される際のセレクタの値
引用してるコードの上の方で設定してるセレクタの値
セレクタとオフセットから得られる実効アドレス
について調べましょう。
# 個人的には、今さらIA32の16bitモードについて勉強しても
# 得る物はあまり多くない気がする。
MBRが読み込み・実行される際のセレクタの値
引用してるコードの上の方で設定してるセレクタの値
セレクタとオフセットから得られる実効アドレス
について調べましょう。
# 個人的には、今さらIA32の16bitモードについて勉強しても
# 得る物はあまり多くない気がする。
180見習いデーモン
NGNG むしょうにデバイスドライバを書いてみたくなって、
http://www.jp.freebsd.org/www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/x10069.html
↑やってみたらすげー簡単でびっくりしました。
秋月のLCDキットとかをシリアルかなんかでつなげて、
echo "Hello" > /dev/mylcd
とかできるようになりたいんですけど、あとは↓
http://www.daemonnews.org/200010/blueprints.html
とか読んどけばできるようになりますか?
実際のドライバってどんななんだろうと思って/sys/dev/fxp/if_fxp.c
なんかのぞいてみて頭から煙だしたりしてます…
http://www.jp.freebsd.org/www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/x10069.html
↑やってみたらすげー簡単でびっくりしました。
秋月のLCDキットとかをシリアルかなんかでつなげて、
echo "Hello" > /dev/mylcd
とかできるようになりたいんですけど、あとは↓
http://www.daemonnews.org/200010/blueprints.html
とか読んどけばできるようになりますか?
実際のドライバってどんななんだろうと思って/sys/dev/fxp/if_fxp.c
なんかのぞいてみて頭から煙だしたりしてます…
NGNG
おまえの見てるのデバドラのつくり方じゃねぇじゃん。(藁
182見習いデーモン
NGNG うお、もしかして空回りですか…
でもKLDでカーネル領域に自分のコード置けるとおもうとワクワクするんですが
でもKLDでカーネル領域に自分のコード置けるとおもうとワクワクするんですが
NGNG
カーネルを再構築しても自分のコードは置けますが何か?
184名無しさん@お腹いっぱい。
NGNG >>181
ハンドブックで解説されている部分は部分はデバイスドライバ
(ツリーを形成する実デバイスを叩くもの)ではデフォルトで呼ばれる
ものがあるので気にしなくていいです。
おまいさんの目的ではどう見てもfxpを見るのは間違いだと
思いますし、そもそもシリアルならsio使ってtermios
叩いたほうが.......
で、ご希望にそえるものなら例えば、spic(4)あたり簡単そうかな?
ハンドブックで解説されている部分は部分はデバイスドライバ
(ツリーを形成する実デバイスを叩くもの)ではデフォルトで呼ばれる
ものがあるので気にしなくていいです。
おまいさんの目的ではどう見てもfxpを見るのは間違いだと
思いますし、そもそもシリアルならsio使ってtermios
叩いたほうが.......
で、ご希望にそえるものなら例えば、spic(4)あたり簡単そうかな?
NGNG
spic は デバイスの仕様が不明なので、
読んでもあまりピンとこないのでは。
読んでもあまりピンとこないのでは。
186鬼軍曹
NGNG ============ お知らせ ==================
あー、只今よりこのスレは、見習デーモンの学習を見張るスレになりました。
====================================
あー、只今よりこのスレは、見習デーモンの学習を見張るスレになりました。
====================================
187名無しさん@お腹いっぱい。
NGNG 保守
188名無しさん@お腹いっぱい。
NGNG NETBSD入れたらまずカーネルハックするぞぉ!
NGNG
おまえのいうハックってカーネルの再構築のことだろ?ぷ
NGNG
千里の道も一歩から
NGNG
千里の道を一歩だけ
NGNG
千里を歩き通すのは大変だよ……。
NGNG
千里ちゃんって誰?
NGNG
NGNG
>>196
それはちとローカルではないかと。
それはちとローカルではないかと。
NGNG
なかおくんだろ?
199山崎渉
NGNG (^^)
200山崎渉
NGNG (^^)
NGNG
202山崎渉
NGNG (^^)オレダッテ タマニハ マジデ ホシュ スルyo!!
203山崎渉
NGNG (^^)
204あぼーん
NGNGあぼーん
205あぼーん
NGNGあぼーん
206名無しさん
NGNG カーネル内で、擬似的ではないランダムな値を使うにはどうすればいいですか??
NGNG
ガイガーカウンタをつないでカウントして乱数を発生させる
NGNG
ガイガーカウンタは計数するんじゃなくて時間を測るんだよね。
線源なしのバックグラウンドが相手だとパルス数が少なすぎて
ちょっとトロい。
線源なしのバックグラウンドが相手だとパルス数が少なすぎて
ちょっとトロい。
NGNG
つーか、Intelチップセットの乱数ジェネレータとか使えばいいんでないの?
OpenBSDがサポートしてるのは知ってるけど、他はどう?
OpenBSDがサポートしてるのは知ってるけど、他はどう?
210名無しさん
NGNG カーネル内で擬似的ではないランダムな値を使うためにはどうしたらいいですか??
211名無しさん
NGNG すいません、ダブってしまいました。m(_ _)m
NGNG
NetBSD の場合、キーボードやシリアルその他のデバイスから
エントロピーを集めている。
この結果から得られた乱数は rnd_extract_data(9) で取得できる。
例えば sys/netinet/tcp_subr.c では、TCP の初期シーケンス番号
を、この乱数源から得るようになってるので、ここを見てみれば
使い方は分かる筈だ。
エントロピーを集めている。
この結果から得られた乱数は rnd_extract_data(9) で取得できる。
例えば sys/netinet/tcp_subr.c では、TCP の初期シーケンス番号
を、この乱数源から得るようになってるので、ここを見てみれば
使い方は分かる筈だ。
213名無しさん
NGNG 当方FreeBSDで「TCPの初期シーケンス番号」からヒントを得て、
そこからip識別子(ip_id)の初期化の手順へ行き、そこからシステムクロックをとるtime.tv_secを
知ることができました。
ありがとうございました。
そこからip識別子(ip_id)の初期化の手順へ行き、そこからシステムクロックをとるtime.tv_secを
知ることができました。
ありがとうございました。
NGNG
それちがうやろ....
215名無しさん
NGNG 確かに違いました。^^;
利用したい値の有効桁数が少なかったのでこれでも乱数として利用できるかと思ったんですが、
他の関数に利用する場合も考えてTCPの初期シーケンス番号の関数を利用したいと思います。
ご指摘ありがとうございました。
利用したい値の有効桁数が少なかったのでこれでも乱数として利用できるかと思ったんですが、
他の関数に利用する場合も考えてTCPの初期シーケンス番号の関数を利用したいと思います。
ご指摘ありがとうございました。
NGNG
>>210
どういう目的に使うの?
どういう目的に使うの?
NGNG
>>212
「エントロピーを集める」という表現は気持ち悪いな。NetBSDの世界では普通に使うのか?
「エントロピーを集める」という表現は気持ち悪いな。NetBSDの世界では普通に使うのか?
NGNG
別に NetBSD に限らず、乱数のセキュリティ方面への利用では、
普通に使います。試しに "collect entropy" でググってみるべし。
普通に使います。試しに "collect entropy" でググってみるべし。
219名無しさん
NGNG マルチキャスト通信においてNAKにより信頼性を持たせようと思っているのですが、
そのとき全ての受信者がNAKを出すタイミングが重なるとトラフィックが一気に
増大するのでそのタイミングをずらすために乱数が必要となりました。
アプリケーションプログラムと違い、カーネルでの乱数の求め方がわかりませんでした。^^;
そのとき全ての受信者がNAKを出すタイミングが重なるとトラフィックが一気に
増大するのでそのタイミングをずらすために乱数が必要となりました。
アプリケーションプログラムと違い、カーネルでの乱数の求め方がわかりませんでした。^^;
NGNG
ただいまBSDのKernel SoruceをReadしてるので
Context Switchするわけにはいかぬ。
Context Switchするわけにはいかぬ。
NGNG
擬似的でない乱数って…
222名無しさん@お腹いっぱい。
NGNG 自分でnumerical recipe使って書け
224*BSDハックさん
NGNG UDPのudp_inputにおいて ユニキャストとマルチキャスト・ブロードキャストで
処理が分かれいるところで、ユニキャストの方は分かるのですが、
マルチキャスト・ブロードキャストの方でUDPPCBをfor文でスキャンして
いくのはなぜですか? 同じPCBは複数存在するのですか?
処理が分かれいるところで、ユニキャストの方は分かるのですが、
マルチキャスト・ブロードキャストの方でUDPPCBをfor文でスキャンして
いくのはなぜですか? 同じPCBは複数存在するのですか?
225あぼーん
NGNGあぼーん
226あぼーん
NGNGあぼーん
レスを投稿する
ニュース
- 【速報】習主席とトランプ大統領が電話会談 台湾問題について★3 [ニョキニョキ★]
- 【速報】トランプ大統領、中国の習近平国家主席を「国賓」として招待することに [ニョキニョキ★]
- 人生初黒星の神童、那須川天心がリング上で土下座 [牛丼★]
- 米中電話会談、トランプ氏は「米国側は中国にとっての台湾問題の重要性を理解する」 [1ゲットロボ★]
- 【音楽】「なんでこんなバカが国のトップなの?」 若者に人気のバンド「GEZAN」のマヒトゥ・ザ・ピーポーが高市総理に苦言 [シャチ★]
- 中国人「『日本は危ないから行かないように』と言われたが、日本に来たらとても安全だった」 [お断り★]
- トランプおやびん「米中関係は極めて強固」高市早苗「」 [834922174]
- 【高市悲報】来年、習近平主席がアメリカに「国賓」として訪米。どうするんだよ高市・・・アメリカも敵に回すのか? [483862913]
- 【号外】習近平、米大統領のトランプと首脳会談を行う!日本のの武力による台湾脅しついて共有の追及をする意思統一でおこなう [339712612]
- 【悲報】八田與一容疑者、海に入って大陸へ逃げた可能性😲wwwwwwwwwww [232136196]
- 【高市悲報】トランプおやびん「偉大な指導者である習近平首席、米国は中国にとっての台湾問題の重要性を理解しています」 [115996789]
- 【速報】高市「アタシぜっったい謝らないからッ!!」→中国焦る [308389511]
