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

1見習デーモン
垢版 |
NGNG
これから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より伝統あるはずなのに。
NGNG
おまえのいうハックってカーネルの再構築のことだろ?ぷ
NGNG
千里の道も一歩から
NGNG
千里の道を一歩だけ
NGNG
千里を歩き通すのは大変だよ……。
NGNG
千里ちゃんって誰?
NGNG
http://homepage3.nifty.com/senri/
195193
垢版 |
NGNG
>>194
そんなの僕の千里ちゃんじゃないやい。
NGNG
>>193
千里中央に行くには新御堂筋に一歩踏み出せばあとは
北上するだけで着くので解りやすいと言う諺だよ。
NGNG
>>196
それはちとローカルではないかと。
NGNG
なかおくんだろ?
199山崎渉
垢版 |
NGNG
(^^)
200山崎渉
垢版 |
NGNG
(^^)
NGNG
>>194
大江千里も随分としけたもんだね。オフィシャルサイトが
niftyとは。。。
202山崎渉
垢版 |
NGNG
(^^)オレダッテ タマニハ マジデ ホシュ スルyo!!
203山崎渉
垢版 |
NGNG
(^^)
204あぼーん
垢版 |
NGNG
あぼーん
205あぼーん
垢版 |
NGNG
あぼーん
206名無しさん
垢版 |
NGNG
カーネル内で、擬似的ではないランダムな値を使うにはどうすればいいですか??
NGNG
ガイガーカウンタをつないでカウントして乱数を発生させる
NGNG
ガイガーカウンタは計数するんじゃなくて時間を測るんだよね。
線源なしのバックグラウンドが相手だとパルス数が少なすぎて
ちょっとトロい。
NGNG
つーか、Intelチップセットの乱数ジェネレータとか使えばいいんでないの?
OpenBSDがサポートしてるのは知ってるけど、他はどう?
210名無しさん
垢版 |
NGNG
カーネル内で擬似的ではないランダムな値を使うためにはどうしたらいいですか??
211名無しさん
垢版 |
NGNG
すいません、ダブってしまいました。m(_ _)m
NGNG
NetBSD の場合、キーボードやシリアルその他のデバイスから
エントロピーを集めている。
この結果から得られた乱数は rnd_extract_data(9) で取得できる。
例えば sys/netinet/tcp_subr.c では、TCP の初期シーケンス番号
を、この乱数源から得るようになってるので、ここを見てみれば
使い方は分かる筈だ。
213名無しさん
垢版 |
NGNG
当方FreeBSDで「TCPの初期シーケンス番号」からヒントを得て、
そこからip識別子(ip_id)の初期化の手順へ行き、そこからシステムクロックをとるtime.tv_secを
知ることができました。

ありがとうございました。
NGNG
それちがうやろ....
215名無しさん
垢版 |
NGNG
確かに違いました。^^;
利用したい値の有効桁数が少なかったのでこれでも乱数として利用できるかと思ったんですが、
他の関数に利用する場合も考えてTCPの初期シーケンス番号の関数を利用したいと思います。
ご指摘ありがとうございました。
NGNG
>>210
どういう目的に使うの?
NGNG
>>212
「エントロピーを集める」という表現は気持ち悪いな。NetBSDの世界では普通に使うのか?
NGNG
別に NetBSD に限らず、乱数のセキュリティ方面への利用では、
普通に使います。試しに "collect entropy" でググってみるべし。
219名無しさん
垢版 |
NGNG
マルチキャスト通信においてNAKにより信頼性を持たせようと思っているのですが、
そのとき全ての受信者がNAKを出すタイミングが重なるとトラフィックが一気に
増大するのでそのタイミングをずらすために乱数が必要となりました。
アプリケーションプログラムと違い、カーネルでの乱数の求め方がわかりませんでした。^^;
NGNG
ただいまBSDのKernel SoruceをReadしてるので
Context Switchするわけにはいかぬ。
NGNG
擬似的でない乱数って…
222名無しさん@お腹いっぱい。
垢版 |
NGNG
自分でnumerical recipe使って書け
223 
垢版 |
NGNG
プ > numerical recipe
224*BSDハックさん
垢版 |
NGNG
UDPのudp_inputにおいて ユニキャストとマルチキャスト・ブロードキャストで
処理が分かれいるところで、ユニキャストの方は分かるのですが、
マルチキャスト・ブロードキャストの方でUDPPCBをfor文でスキャンして
いくのはなぜですか? 同じPCBは複数存在するのですか?
225あぼーん
垢版 |
NGNG
あぼーん
226あぼーん
垢版 |
NGNG
あぼーん
NGNG
>>224
ブロードキャストの方はaliasついてりゃ、それぞれ同じポートつかえる。
マルチキャストは良くわからない。
228*BSDハックさん
垢版 |
NGNG
>>227
229*BSDハックさん
垢版 |
NGNG
>>227
もしよろしければブロードキャストにおける同じポートを使える
クライアントサーバのプログラムをいただけないでしょうか?
230227
垢版 |
NGNG
>ブロードキャストの方はaliasついてりゃ
これ嘘。複数使えるけどブロードキャスト宛を受信できなかった。

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

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


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

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

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

   /*Some useful stuff*/
}
235あぼーん
垢版 |
NGNG
あぼーん
236あぼーん
垢版 |
NGNG
あぼーん
NGNG
ついに
キタ━━━━━━(   )(゚  )(∀゚ )(゚∀゚)( ゚∀)(  ゚)(   )━━━━━━ !!!!!

【4.4BSDの設計と実装】
アスキー  ISBN: 4-7561-4346-6
価格: \5,800  発売日: 2003/9/18
NGNG
>>237
おお、とうとう出るのか。
ソースが見たいな。
NGNG
自分で調べてみたけど、確かに出るみたいだね。
http://www.fukkan.com/sell/index.php3?mode=detail&i_no=14024728
NGNG
復刊??
241名無しさん@お腹いっぱい。
垢版 |
NGNG
【4.4BSDの設計と実装】
記念あげ
242名無しさん@お腹いっぱい。
垢版 |
NGNG
おまえら、洩れが書いたカーネルをハックしてどうするつもり???
243みのる様
垢版 |
NGNG
         みのるの超流行語では、
流行語大将になりそうな言葉を紹介していきたいと思います(^‥^)。

オヒャヒャ           僕、みのる様が使用している笑い方です。
(^‥^)          僕、みのる様が愛用している顔文字です。
トライブット        僕、みのる様のサイトがある所の偉い所の人。
みのる様ファン倶楽部    会員数がもう100億人超えた超えてます。
マヨネーズ         僕様の大好きなマヨネーズの一種です
スペシャルギニア      世界共通語で、誰でも分かります
応援ありがとう!!!    皆が僕様を応援してくれるから、僕様も返信します
           俺様の素晴らしいサイト↓
         http://minoru_god.tripod.co.jp/
        UNIX板のバカドモはこっちに来て勉強しな
                    BYE みのる様
   
NGNG
訳が糞だって聞いたけど、そのへんも直して出るのかね?
NGNG
それはむりだろう
英語読め
246244
垢版 |
NGNG
改訂するって書いてるから直るかと思ったんだけど。
http://www.fukkan.com/column/?msgdate=msg030815

で、だれかこれ読んだ人いない?
http://www.amazon.co.jp/exec/obidos/ASIN/1589950046/ref=sr_aps_eb_/249-5632084-1864337
NGNG
砂ちゃん監訳だから、翻訳しなおしたんじゃないか?
248あぼーん
垢版 |
NGNG
あぼーん
249あぼーん
垢版 |
NGNG
あぼーん
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と比較してみてどうですかね?(シェアの事は抜きで)
251名無しさん@お腹いっぱい。
垢版 |
NGNG
カーネルソースをいじって printfでパラメータを表示しながら
状況を把握したいんですが、typescriptもパイプでファイルに
保存することもできないのですが、カーネルをイジっているひとは
どうやってプログラミングしてるんですか?

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

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

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

よろしくお願いします。
NGNG
>>254
( ´д)ヒソ(´д`)ヒソ(д` )
256あぼーん
垢版 |
NGNG
あぼーん
257あぼーん
垢版 |
NGNG
あぼーん
NGNG
知らなかったよ。kgdbを使ってカーネルのコンパイルができるのか.....
NGNG
>>254
通常のgdbのように扱えるよ
gdbのカーネルモードだからね

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

もし一台でデバッグできる方法があったら教えてくれ。
NGNG
誰も自分の死体を見ることはできないというお話ですた。
NGNG
死体は見れるよ。来世で。
できないのは、自分自身の解剖。
NGNG
いや、自分の癌の摘出をやった外科医はいたし、ある程度は可能だろう
NGNG
最近のはやりだとbochsやvmwareなどの仮想マシン上でデバッグする
という手もあるな。bochsにも一応デバッグ支援のための機能はある
ようだ。もっともエミュレーションに起因する問題が出る可能性は
あってどんな場合でも使えるわけじゃない。
動きを追うぐらいならそこそこ使えるかもね。

ま、詰めなきゃならん所は昔ながらのメモリ上に値を置く、かな。
264名無しさん@お腹いっぱい。
垢版 |
NGNG
*BSDで、一台でもある程度はできるよ。Linuxでも最近できるかな。
options DDBを入れてCtl-Alt-Breakを押すと
ddbのモードに入る。ここで、命令ごとのステップ実行
callの終了までの実行、シンボルで指定できるブレークポイント設定
変数参照、レジスタ参照、等々。ddb(8)は印刷しといたほうがいいな。
265netnice
垢版 |
NGNG
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.
266名無しさん@お腹いっぱい。
垢版 |
NGNG
カーネルモジュールはどうやってデバッグするんでしょうか?
特にインターフェース部分。
デバッグ用のシンボルはどうやっていれれば?
267名無しさん@お腹いっぱい。
垢版 |
NGNG
>>1
これは実際に重要なことである。
開いたソースはあなたのためになり私のためになり、可能性をもたらす。
多くの危惧の中の一つは、しばしば現実となるが、世界の協力はそれを直すだろう。
もしあなたやあなたの友人が開いたソースを悪意で使うなら、それは停止して欲しい。
NGNG
>>267

269名無しさん@お腹いっぱい。
垢版 |
NGNG
BSDのソース読んでみようと思うんだけど、NetBSDがいいかな?
NGNG
(´-`).。oO(でっかい釣り針がぶら下がっております…)
NGNG
inferno
NGNG
inferno
NGNG
くだ質スレからの流れでしょう。
NGNG
漏れじゃネーよ(w カーネルくらい黙って読むし

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

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


NGNG
>>274
今までどんなの読んでたの?
得体の知れないマクロってのはbus_spaceとかの事かな。
NGNG
ヘッダファイルこそがソースの肝なのに。。。
NGNG
NetBSD のカーネルハック本(和訳)って、
BSD Magazine の Vol.13 のことじゃないのか?
NGNG
>>276
そうなんだよね。本当に。
NGNG
/usr/includeの下は丸暗記するぐらいの勢いで読みまくった。
これはいきなりカーネル読み始めるよりも、効率的だし、
実用的だったよ。
NGNG
へたれプログラマなんですが、なんでそんなにヘッダファイルが重要なのか
わからないんですが、理由を教えていただけませんか?
NGNG
>>280
これは計算機科学の教科書の練習問題だと思うぞ。
こんなものかな。採点キボンヌ(配点20点)

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



NGNG

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

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

漏れも>>279みたいに凄い勢いでヘッダ読んでみまつ。勉強に
なったサンクスコ。
NGNG
重要は重要だけど、本で言えば目次だけ読むようなもんだから
偏食にならないようにネ
NGNG
>>280
頭(head)だからです。
頭だけとか体だけとかは駄目なんです。
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重にキャストする意味って何?
288
垢版 |
NGNG
興味ありあげ
289名無しさん@お腹いっぱい。
垢版 |
NGNG
BSDがSCOによって血祭りにあげられるまであと何日ですか?
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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