お前ら*BSDのカーネルをハックしますか?
0222名無しさん@お腹いっぱい。NGNG
自分でnumerical recipe使って書け
0223 NGNG
プ > numerical recipe
0224*BSDハックさんNGNG
UDPのudp_inputにおいて ユニキャストとマルチキャスト・ブロードキャストで
処理が分かれいるところで、ユニキャストの方は分かるのですが、
マルチキャスト・ブロードキャストの方でUDPPCBをfor文でスキャンして
いくのはなぜですか? 同じPCBは複数存在するのですか?
0228*BSDハックさんNGNG
>>227
0229*BSDハックさんNGNG
>>227
もしよろしければブロードキャストにおける同じポートを使える
クライアントサーバのプログラムをいただけないでしょうか?
0230227NGNG
>ブロードキャストの方はaliasついてりゃ
これ嘘。複数使えるけどブロードキャスト宛を受信できなかった。

↓ブロードキャストアドレス宛は受信できるけど、ユニキャストアドレス宛は受信できない。
foreach (リモートアドレス) {
udpソケット作る。
SO_REUSEADDRする。
ローカルアドレスとしてブロードキャストアドレスにbindする。
リモートアドレスにコネクトする。
}
0232名無しさん@お腹いっぱい。NGNG
FreeBSD4.7のカーネル内の関数についてお聞きしたいんですが、

timeout(ftn, arg, to_ticks)
  timeout_t *ftn;
  void *arg;
  register int to_ticks;


において ftnの引数の数を任意の数にしたいのですが
やり方がわかりません。どなたか教えてください。よろしくお願いします。
0234名無しさん@お腹いっぱい。NGNG
>>232
できませんが、構造体を定義して、それを確保してポインタで渡すというのは
だめですか。こんな感じ

struct example_arg {
   int arg1;
   char *arg2;
};

void example_ftn(void *arg)
{
   struct example_arg *ea = arg;

   /*Some useful stuff*/
}
0237名無しさん@お腹いっぱい。NGNG
ついに
キタ━━━━━━(   )(゚  )(∀゚ )(゚∀゚)( ゚∀)(  ゚)(   )━━━━━━ !!!!!

【4.4BSDの設計と実装】
アスキー  ISBN: 4-7561-4346-6
価格: \5,800  発売日: 2003/9/18
0241名無しさん@お腹いっぱい。NGNG
【4.4BSDの設計と実装】
記念あげ
0242名無しさん@お腹いっぱい。NGNG
おまえら、洩れが書いたカーネルをハックしてどうするつもり???
0243みのる様NGNG
         みのるの超流行語では、
流行語大将になりそうな言葉を紹介していきたいと思います(^‥^)。

オヒャヒャ           僕、みのる様が使用している笑い方です。
(^‥^)          僕、みのる様が愛用している顔文字です。
トライブット        僕、みのる様のサイトがある所の偉い所の人。
みのる様ファン倶楽部    会員数がもう100億人超えた超えてます。
マヨネーズ         僕様の大好きなマヨネーズの一種です
スペシャルギニア      世界共通語で、誰でも分かります
応援ありがとう!!!    皆が僕様を応援してくれるから、僕様も返信します
           俺様の素晴らしいサイト↓
         http://minoru_god.tripod.co.jp/
        UNIX板のバカドモはこっちに来て勉強しな
                    BYE みのる様
   
0250210 ◆s3Xr4zlrpU NGNG
>>222
禿同

話は変わるけど、携帯ゲーム機"プレイステーションポータブル(PSP)

 久夛良木氏は,“PSPはゲーム業界が待ち望んだ究極の携帯機”として説明。「ここまでやるかと言われるスペックを投入した」という。
 発表によれば「PSP」は,曲面描画エンジン機能を有し,3Dグラフィックでゲームが楽しめる。
7.1chによるサラウンド,E3での発表以来,クリエイターたちにリクエストが高かった無線LANも搭載(802.11)。
MPEG-4(ACV)による美しい動画も楽しめるという。これによりゲーム以外の映画などでのニーズも期待する。
 外部端子で将来,GPSやデジタルチューナーにも接続したいとする。
また,久夛良木氏は,繰り返し「コピープロテクトがしっかりしていること」と力説。会場に集まった開発者たちにアピールしていた。
 さらに,ボタン設定なども明らかにされ,PS同様「○△□×」ボタン,R1・L1,アナログスティックが採用される。

この際、スク・エニもGBAからPSPに乗り換えたらどうでしょう。スク・エニの場合、PSPの方が実力を出しやすいような気がするんですが。
任天堂が携帯ゲーム機で圧倒的なシェアをもってるなら、スク・エニがそれを崩してみるのもおもしろいですし。かつて、PS人気の引き金となったFF7のように。

突然変なこと言い出してスマソ・・
GBAと比較してみてどうですかね?(シェアの事は抜きで)
0251名無しさん@お腹いっぱい。NGNG
カーネルソースをいじって printfでパラメータを表示しながら
状況を把握したいんですが、typescriptもパイプでファイルに
保存することもできないのですが、カーネルをイジっているひとは
どうやってプログラミングしてるんですか?

カーネルを扱うに当たって便利なやり方や、アプリケーションがあれば教えてください。
0253名無しさん@お腹いっぱい。NGNG
最近だとsimokawaさん謹製dconsって奴があるね。
特定のメモリに書いておいてIEEE1394 OHCI
ホストコントローラが勝手にDMAしにくるってやつ。
シリアルコンソールはシリアルコンソールでも
IEEE1394シリアルだから速い。
0254名無しさん@お腹いっぱい。NGNG
別に機器を買う必要があるということですか。

kgdbはカーネルのコンパイル時にしか使えないのですか?

なんとかgdbなどのデバッグツールでカーネル関数の動きを追っていきたいのですが。。。

よろしくお願いします。
0259名無しさん@お腹いっぱい。NGNG
>>254
通常のgdbのように扱えるよ
gdbのカーネルモードだからね

基本的に大きな違いはないはず。ただ、カーネルをデバッグしているから
端末が二つあった方がいいね

もし一台でデバッグできる方法があったら教えてくれ。
0263名無しさん@お腹いっぱい。NGNG
最近のはやりだとbochsやvmwareなどの仮想マシン上でデバッグする
という手もあるな。bochsにも一応デバッグ支援のための機能はある
ようだ。もっともエミュレーションに起因する問題が出る可能性は
あってどんな場合でも使えるわけじゃない。
動きを追うぐらいならそこそこ使えるかもね。

ま、詰めなきゃならん所は昔ながらのメモリ上に値を置く、かな。
0264名無しさん@お腹いっぱい。NGNG
*BSDで、一台でもある程度はできるよ。Linuxでも最近できるかな。
options DDBを入れてCtl-Alt-Breakを押すと
ddbのモードに入る。ここで、命令ごとのステップ実行
callの終了までの実行、シンボルで指定できるブレークポイント設定
変数参照、レジスタ参照、等々。ddb(8)は印刷しといたほうがいいな。
0265netniceNGNG
i heard that you can use /dev/kmem, instead of /var/crash/vmcore.*,
fore core-file argument of kgdb, though i've never tried.
just fyi.
0266名無しさん@お腹いっぱい。NGNG
カーネルモジュールはどうやってデバッグするんでしょうか?
特にインターフェース部分。
デバッグ用のシンボルはどうやっていれれば?
0267名無しさん@お腹いっぱい。NGNG
>>1
これは実際に重要なことである。
開いたソースはあなたのためになり私のためになり、可能性をもたらす。
多くの危惧の中の一つは、しばしば現実となるが、世界の協力はそれを直すだろう。
もしあなたやあなたの友人が開いたソースを悪意で使うなら、それは停止して欲しい。
0269名無しさん@お腹いっぱい。NGNG
BSDのソース読んでみようと思うんだけど、NetBSDがいいかな?
0274くだ質の534NGNG
漏れじゃネーよ(w カーネルくらい黙って読むし

でもって、NetBSDをちらっと読んでるんだけど、なんか得体の知れない
マクロだらけ…。ちゃんとヘッダファイルから読まなきゃダメか。

あと、NetBSDのカーネルハック本(和訳)って全然出てないよね?
おおまかな構造を理解してからソース読まないとサッパリだよ。
この前出た4.4BSD赤本じゃあ古すぎるような気がするので読んで
ないけど…


0279名無しさん@お腹いっぱい。NGNG
/usr/includeの下は丸暗記するぐらいの勢いで読みまくった。
これはいきなりカーネル読み始めるよりも、効率的だし、
実用的だったよ。
0280名無しさん@お腹いっぱい。NGNG
へたれプログラマなんですが、なんでそんなにヘッダファイルが重要なのか
わからないんですが、理由を教えていただけませんか?
0281名無しさん@お腹いっぱい。NGNG
>>280
これは計算機科学の教科書の練習問題だと思うぞ。
こんなものかな。採点キボンヌ(配点20点)

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



0282名無しさん@お腹いっぱい。NGNG

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

2ch的でない(奇をてらわない保守的な)回答だけど、そういう地味さにも好感。
0283280NGNG
>>281
ありがとうございます。
なんか目から鱗でした。
0284くだ質の534NGNG
そうか、ヘッダファイルってそんなに重要なんだ…。言われて
みればたしかに。

漏れも>>279みたいに凄い勢いでヘッダ読んでみまつ。勉強に
なったサンクスコ。
0287名無しさん@お腹いっぱい。NGNG
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重にキャストする意味って何?
0288 NGNG
興味ありあげ
0289名無しさん@お腹いっぱい。NGNG
BSDがSCOによって血祭りにあげられるまであと何日ですか?
0292名無しさん@お腹いっぱい。NGNG
>>290-291
おまいら何もわかってないな
技術泥棒なんだよ
ギ ジ ュ ツ ド ロ ボ ウ
わかるか?
0297名無しさん@お腹いっぱい。NGNG
ソースなんて綺麗とか汚いとかほざくまえに、
動いてるコードなんだから黙って読むんだよ!
今じゃろくなコード書けない人間までコードが
云々なんて言い出す始末だからな。もうブチキレですよ。
0298名無しさん@お腹いっぱい。NGNG
カーネルによって違うのかもしれませんが、
各種スレッドというのは、スタックセグメントだけを
スレッドごとに固有にもち、それ以外のセグメントは
プロセス内の全てのスレッドで共有するという感じなのでしょうか?
そうすると、ページディレクトリテーブルも共有で、
スタックセグメントだけを仮想メモリの機能として
別々の物理ページに割り当てるといった感じになっているのでしょうか?
それとも全てのスレッドに対してCR3を割り当てるのかな?

どうもプロセス内のスレッドとVMの関係がよく分りません。
0299名無しさん@お腹いっぱい。NGNG
>>298
実装にもよるんだろうけど、スタックも含め、スレッドがいくつあろうと
アドレス空間は1プロセスで同じもの。スタックはスレッド毎に
切り替えて違うアドレスを指してあるだけ。
0300名無しさん@お腹いっぱい。NGNG
>>298
コンテクストスイッチ発生させると、プロセスのコンテクストスイッチと
変わらんし...それじゃあ、スレッドの意味がない...
0301名無しさん@お腹いっぱい。NGNG
>>297
逆だよ。ろくにコード組めないから、綺麗なコード読みたいんだよ。
まぁ清濁併せ呑む度量があれば一番なんだが、そんな人間は黙って
読んでるよ。

0303名無しさん@お腹いっぱい。NGNG
>>302
そんなタイトルの日記があったな…
0304Win厨 NGNG
>>303
あ、それ書いてたの、おれっちです。
最近NetBSDも忙しくて触って無いからカーネルファックもご無沙汰です。
厨房でもカーネルぐらい気合で理解できること証明したかったけど、
自分にはちょっと厳しかったです。また再開したときはよろしくです。
0306名無しさん@お腹いっぱい。NGNG
バッファをたくさんとれるようにカーネルイジってたら、

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

と出るんですが、クラスタ数を多く割り当てたり、
別の目的で利用されている、クラスタを借りたりすることはできないでしょうか?
0307名無しさん@お腹いっぱい。NGNG
a.具体的に何をしていたのかを書いてみよう。
(たとえばkern.ipc.nmbclustersをほにゃららにしてみたとか
options NMBCLUSTERS = ほげ したら config におこられるとか)
b.もし、具体的な目的があるのであればそれも書いてみよう。
(たとえば 負荷が高いWebサーバーをなんとかしたいとか。)

あと環境もちゃんと書いてみよう。
0308名無しさん@お腹いっぱい。NGNG
一度の関数呼び出しで何回もパケットを
送出しようとするときインタフェースカードで
データパケットが落とされることってありますか??
もし落とされたときは、ip_outputの返値は返ってきますか?
また、それは「0」以外の値ですか?

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

原因・対策などありましたら、お願いします。
0309名無しさん@お腹いっぱい。NGNG
>>308
当然あるだろ。ip_output は if_output 呼んでるだけだから、
あとはネットワークインターフェイス依存。
etherなら、netinet/ip_output.c、net/if_ethersubr.c、
と追いかけていって、NICのデバドラまで読んでけ。

まぁ単に送信バッファ溢れてるだけだろうがな。
0310名無しさん@お腹いっぱい。NGNG
>>309
なるほど。。。参考になりました。
しかし、送信バッファがあふれても ip_outputの返値が0になるというのは問題なのでは??
ソケットバッファの場合はちゃんと制御できるのに。。。
0312名無しさん@お腹いっぱい。NGNG
>>311
ソケットが送信保証をするためには、ip_outputの返値が0である必要があるし、
ip_outputの返値で0を返すためには、ether_outputの返値が0である必要がある。

ちなみに、ネットワークに出力されたあとは、ソケットも到達保証しないよ。
仮にできるのなら、何も苦労しない。。。
0313名無しさん@お腹いっぱい。NGNG
PF_ROUTEソケットについて調べてるんですがどうもいまいち…
(いまいちなのはもちろん自分)
4.4BSDの本見てから、ソース見たけど????です

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

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

やはりRAWだから一気に生成したメッセージはどこかで落されてしまうんですかね…。
落される場所がわからない…
できれば落さないように改造してみたいんですが…
0314名無しさん@お腹いっぱい。NGNG
0317名無しさん@お腹いっぱい。NGNG
>>1 の参考
...半分ぐらい読むには読んだけど、むつかし。
ので、いったん撤退して、こっち↓に着手。

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

そのうちリベンジの予定。
0319名無しさん@お腹いっぱい。NGNG
しかし、"こっち"も...

-- 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
0320名無しさん@お腹いっぱい。NGNG
~~
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;

...
...
0321名無しさん@お腹いっぱい。NGNG
スタック
--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
なんとも...
レスを投稿する


ニューススポーツなんでも実況