お前ら*BSDのカーネルをハックしますか?
1 :見習デーモン :01/10/17 18:35.net これから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より伝統あるはずなのに。
2 :2 :01/10/17 20:24.net 2
3 :名無しさん@お腹いっぱい。 :01/10/17 20:33.net > これからsys/kern/init_main.c読んでみます。 つーか、sys/arch/${MACHINE}/${MACHINE}/locore.s の start か、 せめて sys/arch/${MACHINE}/${MACHINE}/machdep.c の initなんとか() の 方を先に読んだほうがいいぞ。init_main.c の main() は、locore.s から 呼ばれてるわけだが、locore の初期化処理と initなんとか() の方が main() より先に走って、機種依存の低レベルの初期化を行うので。 上のパス名は NetBSD の場合だけど、FreeBSD や OpenBSD でも、 だいたい似たような場所でしょ。
4 :見習デーモン :01/10/17 20:38.net >>3 アセンブラはちょっとしんどいかな、と思って。(もちろん理解する努力はしますが) とりあえずカーネルの動きの概要がしりたいんで、init_main.cからかな?と思って読んでます。 #GLOBALでタグ作るのに意外と時間かかった・・・
5 : :01/10/17 21:46.net >>1 そんな根性があるんだったら、フリーのエロゲー作ってよ。 OpenGLバリバリ使って動くやつをお願い。
6 :見習デーモン :01/10/17 21:49.net >>5 http://piza2.2ch.net/test/read.cgi/tech/996199538/l50
7 :見習デーモン :01/10/17 23:13.net VM_*の定義追いかけてたらCPU寄りなところまできてしまった・・・ 結局>>3 さんが言う通り機種依存なところも目を通してみたり。
8 :名無しさん@お腹いっぱい。 :01/10/17 23:57.net デバドラ書きたい君です 手っ取り早く書けるようになるには何を読むべきですか? sys 以下、書籍、URL 問わず。 ターゲットは NetBSD/i386
9 :名無しさん@お腹いっぱい。 :01/10/18 00:22.net > 手っ取り早く書けるようになるには何を読むべきですか? 似たような種類のデバイスドライバのソース。 で、ハードウェア仕様的に違う部分だけ書き換える。 できるだけ移植物じゃなくて、NetBSD で書き下ろされたデバイス、 それもバス依存部と、バス独立部がちゃんと分離されている奴を 参考にすると良い。 ただし、既にサポートされているデバイスの中に、仕様的に似たチップがある かどうか (同じチップメーカからの新版とか、メーカは違うけど、互換品があ るとか) を、まず最初に調べるべき。そもそもデバイスドライバを書かなくて 済むとか、既存のドライバに処理を付け加えるだけで済むことも多いので。 あと、悪魔本は全く読まくてもなんとかなる気もするけど、Bach 本 ("UNIX カーネルの設計"、Maurice J.Bach、共立出版) くらいは常識として、ざっと 流し読みしておいた方がいいと思われ。もはや実装は全然違うので、細かい部 分は全く違うんだけど、それなりに役にたつぞ。 あとは、section 9 の man page と、一般的な基礎知識と、気合いがあれば なんとかなるだろう。
10 :名無しさん@お腹いっぱい。 :01/10/18 00:54.net >>8 鶏と卵になるけど、とりあえず書いちゃえば、書けますよ。 仮想デバイスとか小一時間あればできちゃうし、思ったより 敷居は低いと思います。
11 :見習デーモン :01/10/18 01:08.net >>9 man 9 盲点でした。見てみたら情報の宝庫だ・・・ (日本語訳されてるともっとうれしいんだけど) man のあるsectionの一覧を得る方法ってあります? とりあえず本家サイトに一覧あったんでそれでみたんですけど、 ローカルでも何かコマンドで見れそうな気が・・・
12 :sage :01/10/18 01:13.net ところで、「お前ら○○しますか?」というフレーズが 微妙に流行ってるのか?
13 :名無しさん@お腹いっぱい。 :01/10/18 01:44.net >>12 すでに微妙に流行遅れ。
14 :login:Penguin :01/10/18 01:44.net こっちにも飛び火してます http://mentai.2ch.net/test/read.cgi/network/1003037538/
15 :名無しさん@お腹いっぱい。 :01/10/18 01:46.net >>11 /usr/manとかそのあたり探してみれば?
16 :見習デーモン :01/10/18 01:55.net >>15 鬱だ・・・単純に覗けばいいんだった・・・ init_main.c:start_init()がなんとなくわかってきた。 prepare_usermode()の定義が見つからないのが鬱だけど、そろそろ寝よう
17 :あへあへ :01/10/23 22:25.net あへ
18 :見習デーモン :01/10/23 23:36.net #先日の情報処理試験のためハック休んでました。今日から再開。 /sbin に myinit を作って(へろーわーるどの後whileで停止するだけ)、 start_init() の init 探すパスを myinit 指すように書き換えてみたけど、 kern_exit.c の exit1() で止まるねぇ。 どういう経路でここまで来たのかまだちょっとわからん。 global + Namazu 駆使して頑張ります。おー
19 :見習デーモン :01/10/25 03:59.net kern_exec.c: execve() の exit1() で止まることがわかった。 vmspace_destroyedフラグがたっちゃってるのね。 image_params にセットされる値追いかけなくちゃ・・・
20 : :01/10/25 20:20.net おやおや、こんなスレが。僕もちょうど読もうとしてた(のに2ヶ月間ほ ったらかしてた)から参加しよう。 arch/include/pmap.h 以外で、全arch共通の pmap インタフェースを記述 した文書なりファイルってありますか?
21 :名無しさん@お腹いっぱい。 :01/10/26 18:02.net あげ
22 :名無しさん@お腹いっぱい。 :01/10/26 22:27.net man page に pmap(9) がある。(NetBSD-current の場合)
23 :名無しさん@お腹いっぱい。 :01/10/30 17:50.net BSDマガジンの第4号はカーネル初心者必携です。
24 :nana4 :01/10/30 18:31.net ソフトウェアRAIDなのですが /dev/hda5 7GB (/home) /dev/hdb1 7GB (linuxraid) としたばあいで RAID0を組みたいのですが 詳しいページご存知無いでしょうか? 赤帽7.1を使っているのですが… /etc/raidtabが変なようで 起動時にこけます raidtabを一旦削除した後の再起動でまともに起動しますが RAID0は手動でしか動きません
25 : :01/10/30 18:34.net >>22 おお、ありがとう。でもこれってuvmのやつだよね。 http://cvsweb.netbsd.org/bsdweb.cgi/sharesrc/share/man/man9/pmap.9?rev=1.9&content-type=text/x-cvsweb-markup NetBSDを読む機会があったら参考にするよ。 >>24 板&スレ違い。
26 :名無しさん@Emacs :01/10/30 23:45.net >>3 えっと、もうmain()って名前じゃなくてmi_startup()という 名前に代わってるよん>init_main.cの関数。 FreeBSDの場合だと、mi_startup()はSYSINITマクロで作られた配列を 順番に実行するように作られてます。割と追いにくいです。 /sys/sys/linker_set.h /sys/sys/kernel.h あたりに小細工があります。
27 :名無しさん@Emacs :01/10/31 01:14.net >>19 あのー、ルートファイルシステムは切ってあります? 切ってあればld-elf.so並びに共有ライブラリにアクセス できてないんじゃないの?
28 :名無しさん@お腹いっぱい。 :01/11/01 15:22.net ttp://unix.za.net/~kobz/freebsd.jpg デーモン萌え
29 :名無しさん@お腹いっぱい。 :01/11/01 20:42.net そういやビルくんを f*** する画像もどっかにあったな... しかしスレ違いでは。 GNUのウシ http://pc.2ch.net/test/read.cgi/unix/1002725230/ が適切か?(w
30 :名無しさん@お腹いっぱい。 :01/11/03 01:52.net で〜もん君のイラストって、キモくないですか? BSD関連のよさげな本には(よさげでない本にもですが)必ずあれが あって鬱になるんですけど。
31 :名無しさん@お腹いっぱい。 :01/11/13 12:40.net >>30 オレもそう思う。
32 :名無しさん@お腹いっぱい。 :01/11/13 15:39.net 8頭身のデーモンはキモい!
33 :名無しさん@お腹いっぱい。 :01/11/13 17:03.net 確かになー Linuxのペンギンのがかわいいよなぁ
34 :名無しさん@お腹いっぱい。 :01/11/13 17:17.net 僕は linux user だがデーモン君の方が好きだな.
35 :login:Penguin :01/11/14 00:53.net netbsdのサイトのメイン画面は好きだよ
36 :名無しさん@お腹いっぱい。 :01/11/14 02:08.net >>35 あれは誰かがバタくさいといってて笑った.
37 :名無しさん@お腹いっぱい。 :01/11/15 03:03.net >>36 あれはアメリカ軍の硫黄島占領をパクったもので、だいぶ前に 「他にいい絵があったら差し替えてもいいよー」 という話になってますが、いまだに代わりになる「いい絵」がないようです。
38 :名無しさん@お腹いっぱい。 :01/11/17 11:18.net >>37 これか。 ttp://shinkiro.com/paro/191/ ttp://www.fsinet.or.jp/~news101/usa11.htm ttp://www.ne.jp/asahi/hp/sumei/anno/art/m_iwojima.htm
39 :名無しさん@お腹いっぱい。 :01/11/18 07:07.net >>37 なんかのパロディっぽいとは思ってたけど、勉強になりました。 アメリカ人ならみんな知ってる有名な銅像なのだろうか。
40 :名無しさん@お腹いっぱい。 :01/11/18 07:11.net >>39 銅像より元ネタになった報道写真のほうが 著名なんではないかと。
41 :デフォルトの名無しさん :01/11/18 07:13.net そもそも元ネタがヤラセなんだよねw?
42 :名無しさん@お腹いっぱい。 :01/11/18 07:17.net ヤラセっつーより仕込みのような。 報道写真なんてそんなもの〜♪
43 :名無しさん@お腹いっぱい。 :01/11/18 10:47.net そんな絵を使ってるのに日本人 committer の多い NetBSD 萌え。
44 :名無しさん@お腹いっぱい。 :01/11/18 14:52.net そういう絵だったのか...
45 :名無しさん@お腹いっぱい。 :01/11/18 20:38.net http://www.mainichi.co.jp/life/family/syuppan/chronicle/1945_3.html
46 :名無しさん@お腹いっぱい。 :01/12/06 11:08.net >>43-44 変えようとかいう話も以前出てた気もするけどどーなったんだろ(w
47 :名無しさん@お腹いっぱい。 :01/12/31 18:04.net おせーてくださいませ。 caddr_t ってどーいう意味なのですか。 ヘッダファイル見たら core address ってコメントしてあったけど、 よくわかりませんです。 ってこれはカーネルの話題じゃないのかな?
48 :名無しさん@お腹いっぱい。 :01/12/31 18:20.net >>33 ペンギンかわいいか?目にまったく生気がなくてうつむいてるし、 ぐったりしてるように見えるんだけど。カモメの方が好きだった。
49 :名無しさん@お腹いっぱい。 :01/12/31 22:07.net 正直、linuxペンギンは気持ち悪い。
50 :名無しさん@お腹いっぱい。 :02/01/11 07:01.net >>26 SYSINITの所で、つまずいたです。 出来れば簡単に説明して頂けるとうれしいのですが。。
51 :名無しさん@お腹いっぱい。 :02/01/13 20:52.net ager
52 :26 :02/01/14 18:50.net 以下の実験は実行ファイル形式としてELFを使用しgccをコンパイラとして 利用している事が前提である。 実験1. まず以下のソースをコンパイルし結果を見よ。 --------a.c extern int __start_b; extern int __stop_b; static int a1 __attribute__((__section__("b"))) = 0; main() { int *a; for(a = &__start_b; a < &__stop_b; a++){ printf("%d\n",*a); } } ------- 実験2 上のソースと次に挙げるソースをリンクし、結果を見よ。 ----b.c int a2 __attribute__((__section__("b")))=1; int a3 __attribute__((__section__("b")))=2; ----- 実験3 /boot/kernel/kernelと、今作った実行ファイルそれぞれに対し objdump --all-headers をかけて結果を見よ。 考察欄
53 :名無しさん@お腹いっぱい。 :02/01/14 18:56.net $ objdump --all-headers /boot/kernel/kernel /usr/libexec/elf/objdump: /boot/kernel/kernel: No such file or directory $ uname -sr FreeBSD 4.4-RELEASE
54 :52 :02/01/14 18:59.net みゅ。悪い。4系だと/kernelだね。
55 :名無しさん@お腹いっぱい。 :02/01/14 22:59.net Linux(ELF)でも、(おそらく)同じ結果になった。 __attribute__や__section__の定義を探して /usr/includeなんかをfind+grepしたけど見つからない。どこかなー
56 :52 :02/01/15 00:31.net >>55 >>26 参照。
57 :26 :02/01/15 00:34.net それから、__attribute__はgccの拡張だよ。info参照。
58 :歴史に名を残すかもしれない男 :02/01/15 01:59.net 僕は、超研究員大学生でありウィザドですが、 既存のOSはしょーもないので新しく作ります。 そこで質問です。 FreeBSDってカーネルとか弄ったりして、 ソフトとか入れて整形したものを Linuxのディストリビュージオンみたいに配ってもいいですか? または、FreeBSDなどを参考にして、 一から作ったOSウォ、VokuBSDみたいに名乗ってもいいですか。
59 :50 :02/01/15 02:04.net 26さん、ありがとう!! objdump --all-headersの出力は、はっきり言って分からなかった んですが、ヒントは掴めたです。 ______________________________ // a.c extern int __start_my; extern int __stop_my; static void test1(void) { printf("test1\n"); } static void test2(void) { printf("test2\n"); } static void (*__p1)(void) __attribute__ ((section ("my"))) = test1; static void (*__p2)(void) __attribute__ ((section ("my"))) = test2; int main(void) { void (**p)(void); for (p = &__start_my; p < &__stop_my; p++) { (**p)(); } return 0; } ______________________________ // b.c static void test3(void) { printf("test3\n"); } static void test4(void) { printf("test4\n"); } static void (*__p3)(void) __attribute__ ((section ("my"))) = test3; static void (*__p4)(void) __attribute__ ((section ("my"))) = test4; が動いて一人感動しております。 最初、関数のコード部分もmyセクションに入れてしまって core吐きまくったです。
60 :納期に間に合わないかもしれない男 :02/01/15 02:37.net >58 既存のソゥースについたBSD スタァイルのコピーライトオンを改変しなけれヴぁ 問題にないはずです。 頑張ってくださイね。
61 :見習いデーモン :02/01/15 02:45.net おひさしぶりです。 己の能力不足ですっかりカーネルの深海に溺れて土左衛門になって スレに出入りすることもなかったんですが、 まだ地味に続いてたんですね。 26さんが情報提供してくださったりして、スレの雰囲気は良い方向 に向かってますね。 全然ついていけないんですけど、今MINIXいじって基本を勉強してるんで いつか追いつければなぁと思ってます。 っつーかみなさんどうやってそんなにスキルつけたんですか。
62 :名無しさん@お腹いっぱい。 :02/01/15 09:06.net >>61 oskitで遊ぶ
63 :26 :02/01/17 00:04.net >>58 どんな簡単な物でもいいから、とりあえずドライバ書いて見たら? 今まであるドライバからコピペしたり、/usr/share/examples/にある スクリプトを使ったテンプレートを元に書けばそんなに難しくないよ。 頭から追っていくってのは正直言うとかなり効率の悪い方法だと思う。 カーネルがprintf(9)で吐くメッセージをたよりにしたりしながら 調べるのが吉。そうすれば例えばSYSINITの実装はとりあえず理解しなくても 先に進むことが出来るし。
64 :名無しさん@お腹いっぱい。 :02/01/17 00:15.net なんか面白そうだな。 *BSD 入れたくなってきた。
65 :名無しさん@お腹いっぱい。 :02/01/22 08:54.net Solarisのカーネルハックもここでいいの?
66 :名無しさん@お腹いっぱい。 :02/01/22 14:24.net Solarisの kernel source見ると、変な copyrightに汚染されませんか? # 会社の決算期にあたって、bladeが来ない...
67 :age :02/01/30 23:31.net age
68 :名無しさん@お腹いっぱい。 :02/01/31 00:12.net >>63 日本人がBSDにドライバ書くのは見飽きたにょ VFSとかに挑んでみてくれ
69 :名無しさん@お腹いっぱい。 :02/01/31 00:33.net Uniform Driver Interfaceどうよ?
70 :名無しさん@お腹いっぱい。 :02/01/31 13:57.net えと、えと。そうしてほしいの?おにいちゃん。ってのはともかく。 要はいじりたいコンポネントからせめて行くのが得策なわけで。 頭から見ても良い事はあんまり無いと言うのが本質ですな。 他機種移植だったらそれが一番大事だけど。 (もっとも、例にだしたのがドライバなのは私がその見飽きた事を しているからでして。)次はportalfs元にいじるかな。小さくて簡単そうだし。 kernfsあたりも簡単そうだったけど。FreeBSDからは消えたし。 UDIですかぁ。うーん。努力は認めるけど....
71 :68 :02/02/02 00:17.net >>70 個々のファイルシステムじゃなくてVFS。 VMいじれとまでは言わないっす。ドライバ書きは多いけど、そっから 昇格するやつがいないと思ったみょ。 わしも、しょうもないドライバを昔書いたけど、それいらいカーネルは いじってないでし。(もはや一介の犬厨です)
72 :名無しさん :02/02/09 10:55.net ソラリスのカーネルスレッドがマッチするよう Sparcは設計されているのですか?
73 :名無しさん@お腹いっぱい。 :02/02/23 09:22.net あげ
74 :名無しさん@お腹いっぱい。 :02/02/23 16:55.net ドライバ書きより VFS いじる方が格が上だとでも? ただのレイヤ違いじゃん。
75 :名無しさん@お腹いっぱい。 :02/02/26 00:00.net >>74 本当にそう思う? みなさまもそう思う?
76 :名無しさん@お腹いっぱい。 :02/02/26 14:20.net 禿同 >>74
77 :74 :02/02/28 15:46.net >>75 心からそう思っております。
78 :名無しさん@お腹いっぱい。 :02/03/08 23:27.net age
79 :仕様書無しさん :02/03/09 17:23.net これも
80 :名無しさん@お腹いっぱい。 :02/03/11 00:24.net つづきプリーズ揚げ
81 :名無しさん :02/03/11 04:30.net BSDに誰か じゃーなりんぐできるFS実装してくれたまへ。 あと、圧縮できるFSもキボンヌ
82 :名無しさん@お腹いっぱい。 :02/03/11 04:50.net http://jfs4bsd.sourceforge.net/
83 :名無しさん@お腹いっぱい。 :02/03/11 06:19.net >>82 ライセンスどうするんだろ? JFSもGPLだったよね?
84 :名無しさん@お腹いっぱい。 :02/03/11 07:31.net >>83 コードの再利用をせずにスクラッチで書けば良いんではないかい?
85 :83 :02/03/11 10:41.net うーんやっぱそうなるよねぇ。先が長そうだ... とりあえず応援age
86 :名無しさん@お腹いっぱい。 :02/03/11 21:46.net JFS ってわざわざスクラッチから作るほどイイの?
87 :名無しさん@お腹いっぱい。 :02/03/12 00:04.net とりあえずジャーナリングするファイルシステムがひとつは欲しい
88 :名無しさん@お腹いっぱい。 :02/03/12 16:19.net JFS for Linux を移植するよりスクラッチから書いた方が早い
89 :名無しさん@お腹いっぱい。 :02/03/12 18:17.net >>88 その情熱をLFSに注いでクレ
90 :名無しさん@お腹いっぱい。 :02/03/13 00:28.net LFSとかsoftupdateみたいなディスクへのリクエストの順序で整合性を保つ方式は そろそろダメというのが世間のコンセンサスな気がする
91 :名無しさん@お腹いっぱい。 :02/03/13 00:49.net ジャーナリングって ディスクへのリクエストの順番と 実際書き込まれる順番が デタラメになっても問題ないの?
92 :名無しさん@お腹いっぱい。 :02/03/13 08:05.net >>91 そんなことはないが、ディスクキャッシュのフラッシュなどの 同期命令の発行がかなり少なくてすむ 少なくともメタデータ一個書くごとにフラッシュする必要は無い
93 :名無しさん@お腹いっぱい。 :02/03/13 08:39.net 書き込み順序保証ってSCSIやATAのtagged queuingじゃダメなの?
94 :名無しさん@お腹いっぱい。 :02/03/14 00:16.net >>93 その手の機能をすべてのメタデータの書き込みに対して使うと遅いよ
95 :名無しさん@お腹いっぱい。 :02/03/14 01:15.net >>90 LFS はセグメント毎にフラッシュすれば十分なんでないの? ダメ?
96 :名無しさん@お腹いっぱい。 :02/03/14 09:44.net >>95 そうですな。すまんかった
97 :名無しさん@お腹いっぱい。 :02/04/07 06:03.net age てみよう。
98 :名無しさん@お腹いっぱい。 :02/04/09 19:11.net 勉強のため、FreeBSD 4.5-RELEASE 上で俺ファイルシステムを 作りたいと思っています。とりあえず、procfs のように、カーネルの 覗き穴的な fs がいいかなと。 が、サパーリわかりません。というわけで、fs のスケルトンが欲しい のですが、よいスケルトンはどれでしょうか。 ファイルサイズ的に miscfs/deadfs/ かなぁと思うのですが、deadfs は どういう目的の fs なのかがわかりません。ぜひアドバイスをお願いします。
99 :98 :02/04/09 19:26.net deadfs は mount 方法もわからないし (そもそも mount できるのか どうかもわからん) kernfs の方がいいかな…。
100 :名無しさん@お腹いっぱい。 :02/04/09 19:32.net procfs を換骨奪胎すればいいのでは?
101 :名無しさん@お腹いっぱい。 :02/04/09 19:57.net やっぱnullfsが基本では。 procfsはpseudofsレイヤができたから応用ききづらいかも。
102 :100 :02/04/09 20:21.net nullfs は読むのに layerfs と行ったり来たりしなきゃ いけないので面倒かもと思ったので。(NetBSD) よく見たら >98 はFreeBSDか。 てゆーか msdosfs あたりでも見たほうがむしろ分りやすいかもとか 思ったり。
103 :98 :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!
104 :98 :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 で行くことにしましたっす。
105 :名無しさん :02/04/09 21:59.net カーネルのコンパイルについて質問です。 FreeBSD4.5でカーネルをいじってmake && make installを しているんですが不要な部分を除いてコンパイルの時間を 短くできないでしょうか?そんな都合のいい話は ないかもしれませんがよろしくお願いします。
106 :あぼーん :あぼーん.net あぼーん
107 :名無しさん@お腹いっぱい。 :02/04/09 22:47.net >>105 パソコンかえればはやくなるんじゃないかな。 PentiumIII1G以上だったら1分ぐらいで終わるし。
108 :名無しさん@お腹いっぱい。 :02/04/09 22:51.net >>105 本来スレ違いなんだけど… http://www.jp.freebsd.org/www.FreeBSD.org/ja/handbook/kernelconfig.html さらに何か疑問があればFreeBSD質問スレにGo
109 :名無しさん@お腹いっぱい。 :02/04/20 02:22.net NULLFSは正直お勧めできない。 あれは、スタッカブルファイルシステムのテンプレ。 そうそう。Linuxネタだけど、これどうよ。(カーネル空間でORBit動かす) http://korbit.sourceforge.net/ これ一瞬移植しようかと思ったけど、geom入ったせいで glibと名前空間がぶつかりそう。
110 :名無しさん@お腹いっぱい。 :02/04/21 00:27.net うーん。 NetBSDからスタッカブルファイルシステム系全部持ってきたほうが 面白いかなぁ。
111 :名無しさん@お腹いっぱい。 :02/04/21 16:04.net >>109 ORBit カーネルで動かすとなんかいいことあるの? > you can write Linux device drivers in Perl とか言われてもなあ(w
112 :学生 :02/05/08 22:11.net カーネル書けるとスゴいって書き込みよく見かけますが 学生で書けたらすごいですか? ウチの教授は書けますかね?
113 :名無しさん@お腹いっぱい。 :02/05/08 22:27.net >>112 そんな書き込みどこで見かけた? 2ちゃんねるぢゃあないよな?
114 :名無しさん@お腹いっぱい。 :02/05/08 22:39.net >>113 ここと思われ: Free Unix での経験は職歴に入らないか? (428) http://pc.2ch.net/test/read.cgi/unix/995637081/12
115 :学生 :02/05/08 23:02.net ビンゴです。 あと、以前他のスレでも見ました。 で、どうなんですか。 カーネルは上級のプロじゃないと書けないんですか? お前ら真面目にレス下さい。
116 :名無しさん@お腹いっぱい。 :02/05/08 23:10.net >>115 べつにプロである必要はこれっぽっちもないわけだが
117 :学生 :02/05/08 23:19.net >>116 どのくらい難しいのでしょうか 3年間くらい勉強すれば学生でもかけますか
118 :名無しさん@お腹いっぱい。 :02/05/08 23:21.net >>117 やってみりゃ自分でわかるだろ? つべこべ言ってないでさっさとカーネルをハク汁
119 :名無しさん@お腹いっぱい。 :02/05/08 23:24.net >>117 自分の頭の中のフローチャートを実際にプログラムに 起こせる人間であれば、多分1年くらいで出来ると思う。 漏れは3年くらいかかったけど(鬱
120 :名無しさん@お腹いっぱい。 :02/05/08 23:27.net >>117 学生かどーかは関係ないし。 1ヶ月くらいやってみて無理そうなら当分無理。
121 :117 :02/05/08 23:37.net レスありがとうございます。 ここで言う「書ける」というのは、白紙からの状態から自分で書けるという意味ですよね? 既存のプログラムを改造するとか、書籍を見て書くとか、そういう意味ではないですよね?
122 :名無しさん@お腹いっぱい。 :02/05/08 23:38.net >>115 むしろカーネルをスクラッチから書くなんてこと 学生にしかできないから、今のうちに頑張れ。 「上級のプロ」にそんな暇なんてありません。
123 :名無しさん@お腹いっぱい。 :02/05/08 23:41.net >>122 UNIX使いになるためには、やっといて損はないですか?
124 :名無しさん@お腹いっぱい。 :02/05/08 23:44.net >>123 人によって"損"の感じ方が異なります 私の損とあなたの損は違います
125 :名無しさん@お腹いっぱい。 :02/05/08 23:46.net >>124 うーん 将来ネットワーク関係のソフトウェアを開発したいのですけども。 そーゆー人にとっては有益でしょうか?
126 :T大理系 :02/05/08 23:49.net みんな理系? 凄いです 尊敬します
127 :名無しさん@お腹いっぱい。 :02/05/08 23:59.net >>125 そういう具体的な目標があるのなら、カーネルに拘らずに最初から ネット周りのプログラムをハクした方がいいと思われ。 カーネル書ける奴はスゴイが、カーネル書ける奴だけがスゴイわけじゃない。
128 :名無しさん@お腹いっぱい。 :02/05/09 00:08.net 俺的にはドライバをバリバリ書き捲くってるような人が プログラマとして尊敬に値すると思ってる。 カーネルはどっちかって言うと設計するものって感じだしねぇ。
129 :名無しさん@お腹いっぱい。 :02/05/09 00:10.net >>128 実務家っぽい御意見…
130 :名無しさん@お腹いっぱい。 :02/05/09 00:11.net 人に訊いてからじゃないと始められない奴は結局何もできない。 hackなんてのは気づいたらやっているか、やらないと夜が明けないかのどちらかだ。
131 :名無しさん@お腹いっぱい。 :02/05/09 01:13.net >>125 ネットゲーのサーバとかのように、非同期に発生する大量の要求を うまく捌かなければならないプログラムを書くのは、 カーネルを書くのと似たようなセンスが必要な気がする。 # RDBMSとかもそうだな。 こういうシステムをうまく設計できる奴は 非常に使えるね。
132 :名無しさん@お腹いっぱい。 :02/05/09 12:11.net >>130 がいいこと言った。
133 :学生 :02/05/10 19:33.net みなさんどうもありがとう ところでみなさん理系ですか? もしくはコンピュータで飯を食っている人達ですか?
134 :名無しさん@お腹いっぱい。 :02/05/10 19:44.net >>133 理系かそうでないかなんてどうでもいいことだ。 とりあえずやってみろ >>130 どっかで聞いた気がするが、イイね
135 :名無しさん@お腹いっぱい。 :02/05/10 20:22.net >>133 俺も学生。経営情報学科というとこにいる。 理系だか文系だかわからん。
136 :名無しさん@お腹いっぱい。 :02/05/11 05:29.net あーあ カーネルいじって遊んでたら もー朝だよ... 寝よーっと。
137 :名無しさん@お腹いっぱい。 :02/05/11 14:10.net カーネル・ハッカースおじさんのAAキボンヌ
138 :名無しさん@お腹いっぱい。 :02/05/21 11:26.net hack より fuck だと最近痛感 おっかけさぼりすぎで make world 不能状態
139 :26=52=..... :02/05/25 03:44.net 某誌のネタにしますた。
140 :名無しさん@お腹いっぱい。 :02/06/03 01:15.net 保守age
141 :名無しさん@お腹いっぱい。 :02/06/03 01:59.net 見習いデーモンは死んだのか?
142 :名無しさん@お腹いっぱい。 :02/06/09 05:21.net ど な たか、いらっしゃい ま せ ん か ?
143 :名無しさん@お腹いっぱい。 :02/06/21 07:49.net 誰かハックしてる人いますかー。 BSDのkernel読み始めるとしたら、手をつけるところは どこがおすすめですかねぇ
144 :名無しさん@お腹いっぱい。 :02/06/21 08:28.net >>143 過去ログ
145 :名無しさん@お腹いっぱい。 :02/06/21 09:23.net >>143 current の SMPng
146 :名無しさん@お腹いっぱい。 :02/06/25 23:38.net >>143 まぁ、過去ログにもいろいろあるけど、手足から見て行くのがいいと思うね。 デバイスドライバ、ファイルフォーマット毎のプロセス実行サブシステム(imgact_*)、 簡単なファイルシステム、低水準の初期化部あたりは割とコンパクトに まとまってて読みやすいんじゃないの? >>145 ほぅ。じゃぁ、具体的に何処のファイルがSMPngに関係してるのか言ってみ。 PERFORCEのリポジトリは見てるんだろうね。
147 :名無しさん@お腹いっぱい。 :02/06/26 00:06.net >>146 の後半 ネタにマジレスカコワルイ
148 :名無しさん@お腹いっぱい。 :02/06/26 00:28.net >>146 FreeBSD以外の*BSDってperforce使っているんですか? FreeBSDのperforce treeってanonymousでソースを取れるんでしょうか? できるんなら見てみたいと思っています。
149 :名無しさん@お腹いっぱい。 :02/06/26 01:08.net >>148 他の*BSDでは使ってないです。 でもSMPngっていったらFreeBSDでしょ。 リポジトリのブラウズならここでどうぞ。 http://people.freebsd.org/~peter/p4db/ 手元に置きたければ http://people.freebsd.org/~peter/p4cookbook.txt に取り方が書いてある。
150 :名無しさん@お腹いっぱい。 :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をロードしてるようなんですが、 なんかえらくまわりくどくないですか?私の読みが浅いだけでしょうか。
151 :@夜勤雀棟 ◆YaKINcTg :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
152 :名無しさん@お腹いっぱい。 :02/07/03 21:52.net 良サイト宣伝中〜〜。 http://www.interone.jp/~game-k/ 注)私はサイト関係者とは無関係ですよ。
153 :名無しさん@お腹いっぱい。 :02/07/04 03:20.net >>152 BSD カーネルのハックに関する良サイトかと思って見に行っちゃったよ :-)
154 :名無しさん@お腹いっぱい。 :02/07/04 05:05.net アドレスの最後の方のgameがgmakeに見えて、見に行っちゃったよ。。
155 :名無しさん@お腹いっぱい。 :02/07/06 20:57.net >>151 その通り。なぜ、&= ~(0xff000000)じゃないのかよう分からんけど。 で、じゃあ何故ELFヘッダの開始番地が0x100XXXなんかじゃ無くて 0xc01000XXになってるかっていうと、paging開始後はカーネル仮想メモリ アドレスは全て0xc0000000以降になっていて、 カーネルで使用している メモリアドレスは全てそこにマップされるから。(リンカとELFフォーマット の機能を使えばそういう状況にも実は対応できたりするような気もするけど) 特にkernelとISAメモリ空間は(物理アドレス+0xc0000000)の位置にマップされます。 locore.sでページングを開始するまでに絶対アドレッシングが必要な 時は #define R(foo) ((foo)-KERNBASE) 定義されるマクロを使ってアクセスしてます。
156 :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へマップするのはあってるんですよね?
157 :@夜勤雀棟 ◆YaKINcTg :02/07/06 22:25.net >>156 > off = - (off & 0xff000000u); /* i386 relocates after locore */ スマソ。コードを読み違えました。 off -= (off & 0xff000000u); だったら最上位バイトのクリアですね。
158 :150 :02/07/06 23:16.net >>157 まぁ「保証はしない」っておっしゃってましたしね =) さてすっきりしたところでつぎはbtx.sでものぞいてみますか…
159 :名無しさん@お腹いっぱい。 :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へ?) ぐらいまで読めましたが、そっからどうなってるのかわかりますか?
160 :名無しさん@お腹いっぱい。 :02/07/19 00:02.net 上から来るぞ! 気をつけろ! TCP は置いといてとりあえず UDP 追ってみては?
161 :名無しさん@お腹いっぱい。 :02/07/21 04:14.net おい、>>160 ,見習いデーモン,生きてるか? udpの場合ip_inputの後 udp_input@udp_usrreqで配送先のプロセスを探して、sowakeupで起こす そうすると、sbwait()で待ってた soreceive()(uipc_socket.c)->recvit()でcopyoutされ、 recvitからはrecvfromに戻ってシステムコール完了と言った感じですか。
162 :名無しさん@お腹いっぱい。 :02/07/29 19:56.net ここなかなか良さそう。ただしSimplified Chinese。 http://opensource.zjonline.com.cn/
163 :150 :02/07/30 09:23.net おはようございます。 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 :名無しさん@お腹いっぱい。 :02/07/30 10:45.net 基本的にはbtxではタスク切替え使ってない筈。(そんな豪勢なことする ほどのサイズも無いし)単純に、EFLAGSもPOPすることで、 特権を切替えてbtx_hdrにあるモニタルーチンのエントリーへ 飛んでるだけのことと思う。
165 :@夜勤雀棟 ◆YaKINcTg :02/07/30 15:06.net >>163 この場合はTSSは関係ないですね。(V86用に使うだけ) 割り込みが起こったことにしてiretしているだけです。
166 :150=163 :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>>0 xc # Paging control .word break-start # Text size .long 0x0 # Entry address ←ここですか? 特権を切替えて、また同じコードを辿ってくってこと???
167 :@夜勤雀棟 ◆YaKINcTg :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に'$'が付いていないことに留意。
168 :150 :02/08/03 14:17.net >>これは間接参照でbtx_hdr+0xc番地の内容(long)をpushするという意味です。 にしても、特権切替えたあとはどのコードが走るのか全然わからないです。 EIPが0x0なんですよね?0x0番地のコードって…?
169 :名無しさん@お腹いっぱい。 :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>>0 xc <80 07> .word break-start <00 10 00 00> .long 0x00001000 簡単にするならコメントを信じて次のbtxクライアント(boot2又は/boot/loader本体) へ進めってことです。ちなみに/boot/loaderは更にbtxldrが走ったりするっす。
170 :名無しさん@お腹いっぱい。 :02/08/03 19:30.net >>実際のバイナリをhexdumpしないとダメっすよ。ローダがいじるに決まってるでしょ。 おぉ、盲点でした。 こういうのはMakefileを丁寧に追っていけばわかることですか? 今ちらっとsys/boot/i386/boot2/Makefileを見たら ORG2に代入された0x1000がbtxldコマンドのオプションとかに使われてて 「ほうほう」と思ってたんですけど。 ソースにとらわれすぎて本質を見失ってました。 でも>>169 さんのおかげでまた少し前進できそうです。ありがとうございました。
171 :150=170 :02/08/03 19:31.net sage忘れ欝だ死のう…
172 :名無しさん@お腹いっぱい。 :02/08/04 22:06.net sageなくても良いんじゃない? まぁ、強いていえば「特殊なローダを必要とする」「0x0なんて番地に飛ぼうとする」 という2点から勘を働かせた結果かな。
173 :見習デーモンへ :02/09/09 04:58.net スレ キトク スグカエレ 〜ハハヨリ〜
174 :名無しさん@お腹いっぱい。 :02/09/11 00:13.net >>173 知らなかったのか?見習いデーモンは 半年前に勇者に殺されたんだぞ。
175 :名無しさん@お腹いっぱい。 :02/09/15 00:10.net もし!毒蛇に噛まれたら、 切り口を素早くナイフでえぐり、 急いで口で吸え! ほら、言ってみろ!!
176 :名無しさん@お腹いっぱい。 :02/09/15 00:37.net 虫歯がある時にそれやったら死んでしまう罠。
177 :名無しさん@お腹いっぱい。 :02/09/15 01:44.net ごめんなさい クックロビンを殺したのは私です。。。。
178 :名無しさん@お腹いっぱい。 :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バイトの領域にコピーする という意味なのでしょうか?
179 :名無しさん@お腹いっぱい。 :02/09/15 07:34.net >>178 MBRが読み込み・実行される際のセレクタの値 引用してるコードの上の方で設定してるセレクタの値 セレクタとオフセットから得られる実効アドレス について調べましょう。 # 個人的には、今さらIA32の16bitモードについて勉強しても # 得る物はあまり多くない気がする。
180 :見習いデーモン :02/09/21 18:19.net むしょうにデバイスドライバを書いてみたくなって、 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 なんかのぞいてみて頭から煙だしたりしてます…
181 :名無しさん@お腹いっぱい。 :02/09/21 23:15.net おまえの見てるのデバドラのつくり方じゃねぇじゃん。(藁
182 :見習いデーモン :02/09/21 23:34.net うお、もしかして空回りですか… でもKLDでカーネル領域に自分のコード置けるとおもうとワクワクするんですが
183 :名無しさん@お腹いっぱい。 :02/09/22 23:32.net カーネルを再構築しても自分のコードは置けますが何か?
184 :名無しさん@お腹いっぱい。 :02/09/24 00:43.net >>181 ハンドブックで解説されている部分は部分はデバイスドライバ (ツリーを形成する実デバイスを叩くもの)ではデフォルトで呼ばれる ものがあるので気にしなくていいです。 おまいさんの目的ではどう見てもfxpを見るのは間違いだと 思いますし、そもそもシリアルならsio使ってtermios 叩いたほうが....... で、ご希望にそえるものなら例えば、spic(4)あたり簡単そうかな?
185 :名無しさん@お腹いっぱい。 :02/09/29 01:58.net spic は デバイスの仕様が不明なので、 読んでもあまりピンとこないのでは。
186 :鬼軍曹 :02/11/01 04:36.net ============ お知らせ ================== あー、只今よりこのスレは、見習デーモンの学習を見張るスレになりました。 ====================================
187 :名無しさん@お腹いっぱい。 :02/12/16 05:14.net 保守
188 :名無しさん@お腹いっぱい。 :02/12/26 15:56.net NETBSD入れたらまずカーネルハックするぞぉ!
189 :名無しさん@お腹いっぱい。 :02/12/26 16:13.net おまえのいうハックってカーネルの再構築のことだろ?ぷ
190 :名無しさん@お腹いっぱい。 :02/12/26 23:09.net 千里の道も一歩から
191 :名無しさん@お腹いっぱい。 :02/12/26 23:34.net 千里の道を一歩だけ
192 :名無しさん@お腹いっぱい。 :02/12/27 01:01.net 千里を歩き通すのは大変だよ……。
193 :名無しさん@お腹いっぱい。 :02/12/29 14:10.net 千里ちゃんって誰?
194 :名無しさん@お腹いっぱい。 :02/12/29 15:51.net http://homepage3.nifty.com/senri/
195 :193 :02/12/29 16:57.net >>194 そんなの僕の千里ちゃんじゃないやい。
196 :名無しさん@お腹いっぱい。 :03/01/07 22:31.net >>193 千里中央に行くには新御堂筋に一歩踏み出せばあとは 北上するだけで着くので解りやすいと言う諺だよ。
197 :名無しさん@お腹いっぱい。 :03/01/09 16:29.net >>196 それはちとローカルではないかと。
198 :名無しさん@お腹いっぱい。 :03/01/10 08:36.net なかおくんだろ?
199 :山崎渉 :03/01/15 13:10.net (^^)
200 :山崎渉 :03/01/16 03:35.net (^^)
201 :名無しさん@お腹いっぱい。 :03/01/18 12:17.net >>194 大江千里も随分としけたもんだね。オフィシャルサイトが niftyとは。。。
202 :山崎渉 :03/02/24 10:15.net (^^)オレダッテ タマニハ マジデ ホシュ スルyo!!
203 :山崎渉 :03/04/17 12:29.net (^^)
204 :あぼーん :あぼーん.net あぼーん
205 :あぼーん :あぼーん.net あぼーん
206 :名無しさん :03/06/04 18:51.net カーネル内で、擬似的ではないランダムな値を使うにはどうすればいいですか??
207 :名無しさん@お腹いっぱい。 :03/06/04 19:01.net ガイガーカウンタをつないでカウントして乱数を発生させる
208 :名無しさん@お腹いっぱい。 :03/06/05 00:53.net ガイガーカウンタは計数するんじゃなくて時間を測るんだよね。 線源なしのバックグラウンドが相手だとパルス数が少なすぎて ちょっとトロい。
209 :名無しさん@お腹いっぱい。 :03/06/05 01:09.net つーか、Intelチップセットの乱数ジェネレータとか使えばいいんでないの? OpenBSDがサポートしてるのは知ってるけど、他はどう?
210 :名無しさん :03/06/05 01:52.net カーネル内で擬似的ではないランダムな値を使うためにはどうしたらいいですか??
211 :名無しさん :03/06/05 01:53.net すいません、ダブってしまいました。m(_ _)m
212 :名無しさん@お腹いっぱい。 :03/06/05 02:34.net NetBSD の場合、キーボードやシリアルその他のデバイスから エントロピーを集めている。 この結果から得られた乱数は rnd_extract_data(9) で取得できる。 例えば sys/netinet/tcp_subr.c では、TCP の初期シーケンス番号 を、この乱数源から得るようになってるので、ここを見てみれば 使い方は分かる筈だ。
213 :名無しさん :03/06/06 00:25.net 当方FreeBSDで「TCPの初期シーケンス番号」からヒントを得て、 そこからip識別子(ip_id)の初期化の手順へ行き、そこからシステムクロックをとるtime.tv_secを 知ることができました。 ありがとうございました。
214 :名無しさん@お腹いっぱい。 :03/06/06 00:30.net それちがうやろ....
215 :名無しさん :03/06/06 02:30.net 確かに違いました。^^; 利用したい値の有効桁数が少なかったのでこれでも乱数として利用できるかと思ったんですが、 他の関数に利用する場合も考えてTCPの初期シーケンス番号の関数を利用したいと思います。 ご指摘ありがとうございました。
216 :名無しさん@お腹いっぱい。 :03/06/06 02:31.net >>210 どういう目的に使うの?
217 :名無しさん@お腹いっぱい。 :03/06/06 02:38.net >>212 「エントロピーを集める」という表現は気持ち悪いな。NetBSDの世界では普通に使うのか?
218 :名無しさん@お腹いっぱい。 :03/06/06 02:43.net 別に NetBSD に限らず、乱数のセキュリティ方面への利用では、 普通に使います。試しに "collect entropy" でググってみるべし。
219 :名無しさん :03/06/06 03:14.net マルチキャスト通信においてNAKにより信頼性を持たせようと思っているのですが、 そのとき全ての受信者がNAKを出すタイミングが重なるとトラフィックが一気に 増大するのでそのタイミングをずらすために乱数が必要となりました。 アプリケーションプログラムと違い、カーネルでの乱数の求め方がわかりませんでした。^^;
220 :名無しさん@お腹いっぱい。 :03/06/08 05:50.net ただいまBSDのKernel SoruceをReadしてるので Context Switchするわけにはいかぬ。
221 :名無しさん@お腹いっぱい。 :03/06/10 01:05.net 擬似的でない乱数って…
222 :名無しさん@お腹いっぱい。 :03/06/15 00:29.net 自分でnumerical recipe使って書け
223 : :03/06/15 04:05.net プ > numerical recipe
224 :*BSDハックさん :03/06/17 05:58.net UDPのudp_inputにおいて ユニキャストとマルチキャスト・ブロードキャストで 処理が分かれいるところで、ユニキャストの方は分かるのですが、 マルチキャスト・ブロードキャストの方でUDPPCBをfor文でスキャンして いくのはなぜですか? 同じPCBは複数存在するのですか?
225 :あぼーん :あぼーん.net あぼーん
226 :あぼーん :あぼーん.net あぼーん
227 :名無しさん@お腹いっぱい。 :03/06/17 11:44.net >>224 ブロードキャストの方はaliasついてりゃ、それぞれ同じポートつかえる。 マルチキャストは良くわからない。
228 :*BSDハックさん :03/06/18 01:42.net >>227
229 :*BSDハックさん :03/06/18 01:50.net >>227 もしよろしければブロードキャストにおける同じポートを使える クライアントサーバのプログラムをいただけないでしょうか?
230 :227 :03/06/18 14:12.net >ブロードキャストの方はaliasついてりゃ これ嘘。複数使えるけどブロードキャスト宛を受信できなかった。 ↓ブロードキャストアドレス宛は受信できるけど、ユニキャストアドレス宛は受信できない。 foreach (リモートアドレス) { udpソケット作る。 SO_REUSEADDRする。 ローカルアドレスとしてブロードキャストアドレスにbindする。 リモートアドレスにコネクトする。 }
231 :あぼーん :あぼーん.net あぼーん
232 :名無しさん@お腹いっぱい。 :03/08/09 17:06.net FreeBSD4.7のカーネル内の関数についてお聞きしたいんですが、 timeout(ftn, arg, to_ticks) timeout_t *ftn; void *arg; register int to_ticks; において ftnの引数の数を任意の数にしたいのですが やり方がわかりません。どなたか教えてください。よろしくお願いします。
233 :名無しさん@お腹いっぱい。 :03/08/09 17:16.net マルチuzeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee!!!!!!!!!!!!!!!!!!!!!!!!!
234 :名無しさん@お腹いっぱい。 :03/08/12 14:34.net >>232 できませんが、構造体を定義して、それを確保してポインタで渡すというのは だめですか。こんな感じ struct example_arg { int arg1; char *arg2; }; void example_ftn(void *arg) { struct example_arg *ea = arg; /*Some useful stuff*/ }
235 :あぼーん :あぼーん.net あぼーん
236 :あぼーん :あぼーん.net あぼーん
237 :名無しさん@お腹いっぱい。 :03/08/15 04:24.net ついに キタ━━━━━━( )(゚ )(∀゚ )(゚∀゚)( ゚∀)( ゚)( )━━━━━━ !!!!! 【4.4BSDの設計と実装】 アスキー ISBN: 4-7561-4346-6 価格: \5,800 発売日: 2003/9/18
238 :名無しさん@お腹いっぱい。 :03/08/15 06:27.net >>237 おお、とうとう出るのか。 ソースが見たいな。
239 :名無しさん@お腹いっぱい。 :03/08/15 07:15.net 自分で調べてみたけど、確かに出るみたいだね。 http://www.fukkan.com/sell/index.php3?mode=detail&i_no=14024728
240 :名無しさん@お腹いっぱい。 :03/08/15 07:34.net 復刊??
241 :名無しさん@お腹いっぱい。 :03/08/15 08:21.net 【4.4BSDの設計と実装】 記念あげ
242 :名無しさん@お腹いっぱい。 :03/08/15 10:05.net おまえら、洩れが書いたカーネルをハックしてどうするつもり???
243 :みのる様 :03/08/15 13:42.net みのるの超流行語では、 流行語大将になりそうな言葉を紹介していきたいと思います(^‥^)。 オヒャヒャ 僕、みのる様が使用している笑い方です。 (^‥^) 僕、みのる様が愛用している顔文字です。 トライブット 僕、みのる様のサイトがある所の偉い所の人。 みのる様ファン倶楽部 会員数がもう100億人超えた超えてます。 マヨネーズ 僕様の大好きなマヨネーズの一種です スペシャルギニア 世界共通語で、誰でも分かります 応援ありがとう!!! 皆が僕様を応援してくれるから、僕様も返信します 俺様の素晴らしいサイト↓ http://minoru_god.tripod.co.jp/ UNIX板のバカドモはこっちに来て勉強しな BYE みのる様
244 :名無しさん@お腹いっぱい。 :03/08/15 16:57.net 訳が糞だって聞いたけど、そのへんも直して出るのかね?
245 :名無しさん@お腹いっぱい。 :03/08/15 17:51.net それはむりだろう 英語読め
246 :244 :03/08/15 18:04.net 改訂するって書いてるから直るかと思ったんだけど。 http://www.fukkan.com/column/?msgdate=msg030815 で、だれかこれ読んだ人いない? http://www.amazon.co.jp/exec/obidos/ASIN/1589950046/ref=sr_aps_eb_/249-5632084-1864337
247 :名無しさん@お腹いっぱい。 :03/08/15 18:28.net 砂ちゃん監訳だから、翻訳しなおしたんじゃないか?
248 :あぼーん :あぼーん.net あぼーん
249 :あぼーん :あぼーん.net あぼーん
250 :210 ◆s3Xr4zlrpU :03/08/18 21:46.net >>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 :名無しさん@お腹いっぱい。 :03/08/19 00:48.net カーネルソースをいじって printfでパラメータを表示しながら 状況を把握したいんですが、typescriptもパイプでファイルに 保存することもできないのですが、カーネルをイジっているひとは どうやってプログラミングしてるんですか? カーネルを扱うに当たって便利なやり方や、アプリケーションがあれば教えてください。
252 :名無しさん@お腹いっぱい。 :03/08/19 00:52.net 出力先をシリアルポートやら、メモリやら。
253 :名無しさん@お腹いっぱい。 :03/08/19 01:35.net 最近だとsimokawaさん謹製dconsって奴があるね。 特定のメモリに書いておいてIEEE1394 OHCI ホストコントローラが勝手にDMAしにくるってやつ。 シリアルコンソールはシリアルコンソールでも IEEE1394シリアルだから速い。
254 :名無しさん@お腹いっぱい。 :03/08/20 01:17.net 別に機器を買う必要があるということですか。 kgdbはカーネルのコンパイル時にしか使えないのですか? なんとかgdbなどのデバッグツールでカーネル関数の動きを追っていきたいのですが。。。 よろしくお願いします。
255 :名無しさん@お腹いっぱい。 :03/08/20 01:33.net >>254 ( ´д)ヒソ(´д`)ヒソ(д` )
256 :あぼーん :あぼーん.net あぼーん
257 :あぼーん :あぼーん.net あぼーん
258 :名無しさん@お腹いっぱい。 :03/08/20 02:48.net 知らなかったよ。kgdbを使ってカーネルのコンパイルができるのか.....
259 :名無しさん@お腹いっぱい。 :03/08/20 05:30.net >>254 通常のgdbのように扱えるよ gdbのカーネルモードだからね 基本的に大きな違いはないはず。ただ、カーネルをデバッグしているから 端末が二つあった方がいいね もし一台でデバッグできる方法があったら教えてくれ。
260 :名無しさん@お腹いっぱい。 :03/08/20 05:37.net 誰も自分の死体を見ることはできないというお話ですた。
261 :名無しさん@お腹いっぱい。 :03/08/20 05:41.net 死体は見れるよ。来世で。 できないのは、自分自身の解剖。
262 :名無しさん@お腹いっぱい。 :03/08/20 05:58.net いや、自分の癌の摘出をやった外科医はいたし、ある程度は可能だろう
263 :名無しさん@お腹いっぱい。 :03/08/20 13:19.net 最近のはやりだとbochsやvmwareなどの仮想マシン上でデバッグする という手もあるな。bochsにも一応デバッグ支援のための機能はある ようだ。もっともエミュレーションに起因する問題が出る可能性は あってどんな場合でも使えるわけじゃない。 動きを追うぐらいならそこそこ使えるかもね。 ま、詰めなきゃならん所は昔ながらのメモリ上に値を置く、かな。
264 :名無しさん@お腹いっぱい。 :03/08/21 00:34.net *BSDで、一台でもある程度はできるよ。Linuxでも最近できるかな。 options DDBを入れてCtl-Alt-Breakを押すと ddbのモードに入る。ここで、命令ごとのステップ実行 callの終了までの実行、シンボルで指定できるブレークポイント設定 変数参照、レジスタ参照、等々。ddb(8)は印刷しといたほうがいいな。
265 :netnice :03/08/28 10:19.net 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 :名無しさん@お腹いっぱい。 :03/10/11 12:05.net カーネルモジュールはどうやってデバッグするんでしょうか? 特にインターフェース部分。 デバッグ用のシンボルはどうやっていれれば?
267 :名無しさん@お腹いっぱい。 :03/10/11 12:22.net >>1 これは実際に重要なことである。 開いたソースはあなたのためになり私のためになり、可能性をもたらす。 多くの危惧の中の一つは、しばしば現実となるが、世界の協力はそれを直すだろう。 もしあなたやあなたの友人が開いたソースを悪意で使うなら、それは停止して欲しい。
268 :名無しさん@お腹いっぱい。 :03/10/12 17:57.net >>267 ?
269 :名無しさん@お腹いっぱい。 :03/10/23 21:10.net BSDのソース読んでみようと思うんだけど、NetBSDがいいかな?
270 :名無しさん@お腹いっぱい。 :03/10/23 21:23.net (´-`).。oO(でっかい釣り針がぶら下がっております…)
271 :名無しさん@お腹いっぱい。 :03/10/23 22:15.net inferno
272 :名無しさん@お腹いっぱい。 :03/10/23 22:16.net inferno
273 :名無しさん@お腹いっぱい。 :03/10/23 22:22.net くだ質スレからの流れでしょう。
274 :くだ質の534 :03/10/24 17:08.net 漏れじゃネーよ(w カーネルくらい黙って読むし でもって、NetBSDをちらっと読んでるんだけど、なんか得体の知れない マクロだらけ…。ちゃんとヘッダファイルから読まなきゃダメか。 あと、NetBSDのカーネルハック本(和訳)って全然出てないよね? おおまかな構造を理解してからソース読まないとサッパリだよ。 この前出た4.4BSD赤本じゃあ古すぎるような気がするので読んで ないけど…
275 :名無しさん@お腹いっぱい。 :03/10/24 17:20.net >>274 今までどんなの読んでたの? 得体の知れないマクロってのはbus_spaceとかの事かな。
276 :名無しさん@お腹いっぱい。 :03/10/24 18:08.net ヘッダファイルこそがソースの肝なのに。。。
277 :名無しさん@お腹いっぱい。 :03/10/24 20:59.net NetBSD のカーネルハック本(和訳)って、 BSD Magazine の Vol.13 のことじゃないのか?
278 :名無しさん@お腹いっぱい。 :03/10/25 02:44.net >>276 そうなんだよね。本当に。
279 :名無しさん@お腹いっぱい。 :03/10/26 10:15.net /usr/includeの下は丸暗記するぐらいの勢いで読みまくった。 これはいきなりカーネル読み始めるよりも、効率的だし、 実用的だったよ。
280 :名無しさん@お腹いっぱい。 :03/10/26 13:48.net へたれプログラマなんですが、なんでそんなにヘッダファイルが重要なのか わからないんですが、理由を教えていただけませんか?
281 :名無しさん@お腹いっぱい。 :03/10/26 14:31.net >>280 これは計算機科学の教科書の練習問題だと思うぞ。 こんなものかな。採点キボンヌ(配点20点) ヘッダファイルにはデータ構造、関数定義など、モジュール間のインターフェイスと なるものが記述されており実装の詳細を見ずに全体を把握する事が可能である。 また、一つのプロジェクト内のモジュールのインターフェイスというだけでなく、 異なるシステムとの間の相互運用性を確保するためにも必要である。
282 :名無しさん@お腹いっぱい。 :03/10/26 19:07.net ↑ 俺の採点だと20点満点。素直に。 敢えてアラ探しやればできるだろが、練習問題という設定なら十分な回答だろ。 2ch的でない(奇をてらわない保守的な)回答だけど、そういう地味さにも好感。
283 :280 :03/10/27 08:00.net >>281 ありがとうございます。 なんか目から鱗でした。
284 :くだ質の534 :03/10/27 14:29.net そうか、ヘッダファイルってそんなに重要なんだ…。言われて みればたしかに。 漏れも>>279 みたいに凄い勢いでヘッダ読んでみまつ。勉強に なったサンクスコ。
285 :名無しさん@お腹いっぱい。 :03/10/27 16:22.net 重要は重要だけど、本で言えば目次だけ読むようなもんだから 偏食にならないようにネ
286 :名無しさん@お腹いっぱい。 :03/10/28 11:09.net >>280 頭(head)だからです。 頭だけとか体だけとかは駄目なんです。
287 :名無しさん@お腹いっぱい。 :03/11/04 23:33.net 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 : :03/11/19 22:40.net 興味ありあげ
289 :名無しさん@お腹いっぱい。 :03/11/23 13:51.net BSDがSCOによって血祭りにあげられるまであと何日ですか?
290 :名無しさん@お腹いっぱい。 :03/11/23 19:47.net BSDによってSCOが血祭り、なんだろうな
291 :名無しさん@お腹いっぱい。 :03/11/23 20:15.net というか既に血まみれで死にそうなSCOが あちこちに血しぶきを撒き散らして嫌がらせしてるんだろ。
292 :名無しさん@お腹いっぱい。 :03/11/23 22:11.net >>290-291 おまいら何もわかってないな 技術泥棒なんだよ ギ ジ ュ ツ ド ロ ボ ウ わかるか?
293 :名無しさん@お腹いっぱい。 :03/11/23 22:21.net >>292 煽り乙。どうせなら犬板のSCOスレ逝った方が人多くて楽しいと思われ
294 :名無しさん@お腹いっぱい。 :03/11/25 00:18.net 同感
295 :名無しさん@お腹いっぱい。 :03/12/01 01:14.net BSDのカーネル読むにはどのBSDのソースがとっつきやすいですか?
296 :名無しさん@お腹いっぱい。 :03/12/01 03:31.net あなたの使っているものが一番じゃない?
297 :名無しさん@お腹いっぱい。 :03/12/06 12:38.net ソースなんて綺麗とか汚いとかほざくまえに、 動いてるコードなんだから黙って読むんだよ! 今じゃろくなコード書けない人間までコードが 云々なんて言い出す始末だからな。もうブチキレですよ。
298 :名無しさん@お腹いっぱい。 :03/12/09 18:58.net カーネルによって違うのかもしれませんが、 各種スレッドというのは、スタックセグメントだけを スレッドごとに固有にもち、それ以外のセグメントは プロセス内の全てのスレッドで共有するという感じなのでしょうか? そうすると、ページディレクトリテーブルも共有で、 スタックセグメントだけを仮想メモリの機能として 別々の物理ページに割り当てるといった感じになっているのでしょうか? それとも全てのスレッドに対してCR3を割り当てるのかな? どうもプロセス内のスレッドとVMの関係がよく分りません。
299 :名無しさん@お腹いっぱい。 :03/12/09 19:45.net >>298 実装にもよるんだろうけど、スタックも含め、スレッドがいくつあろうと アドレス空間は1プロセスで同じもの。スタックはスレッド毎に 切り替えて違うアドレスを指してあるだけ。
300 :名無しさん@お腹いっぱい。 :03/12/09 22:30.net >>298 コンテクストスイッチ発生させると、プロセスのコンテクストスイッチと 変わらんし...それじゃあ、スレッドの意味がない...
301 :名無しさん@お腹いっぱい。 :03/12/09 23:19.net >>297 逆だよ。ろくにコード組めないから、綺麗なコード読みたいんだよ。 まぁ清濁併せ呑む度量があれば一番なんだが、そんな人間は黙って 読んでるよ。
302 :名無しさん@お腹いっぱい。 :03/12/19 20:33.net おまいらカーネル**ckしてますね。
303 :名無しさん@お腹いっぱい。 :03/12/19 21:11.net >>302 そんなタイトルの日記があったな…
304 :Win厨 :03/12/19 23:11.net >>303 あ、それ書いてたの、おれっちです。 最近NetBSDも忙しくて触って無いからカーネルファックもご無沙汰です。 厨房でもカーネルぐらい気合で理解できること証明したかったけど、 自分にはちょっと厳しかったです。また再開したときはよろしくです。
305 :名無しさん@お腹いっぱい。 :04/01/14 17:37.net あげてみる
306 :名無しさん@お腹いっぱい。 :04/02/13 00:25.net バッファをたくさんとれるようにカーネルイジってたら、 All mbuf clusters exhausted, please see tuning(7). と出るんですが、クラスタ数を多く割り当てたり、 別の目的で利用されている、クラスタを借りたりすることはできないでしょうか?
307 :名無しさん@お腹いっぱい。 :04/02/13 03:27.net a.具体的に何をしていたのかを書いてみよう。 (たとえばkern.ipc.nmbclustersをほにゃららにしてみたとか options NMBCLUSTERS = ほげ したら config におこられるとか) b.もし、具体的な目的があるのであればそれも書いてみよう。 (たとえば 負荷が高いWebサーバーをなんとかしたいとか。) あと環境もちゃんと書いてみよう。
308 :名無しさん@お腹いっぱい。 :04/02/16 05:49.net 一度の関数呼び出しで何回もパケットを 送出しようとするときインタフェースカードで データパケットが落とされることってありますか?? もし落とされたときは、ip_outputの返値は返ってきますか? また、それは「0」以外の値ですか? ループバック関数で戻ってきたパケットは欠如していません。 別のマシンでキャプチャーすると欠落しています。 原因・対策などありましたら、お願いします。
309 :名無しさん@お腹いっぱい。 :04/02/16 06:11.net >>308 当然あるだろ。ip_output は if_output 呼んでるだけだから、 あとはネットワークインターフェイス依存。 etherなら、netinet/ip_output.c、net/if_ethersubr.c、 と追いかけていって、NICのデバドラまで読んでけ。 まぁ単に送信バッファ溢れてるだけだろうがな。
310 :名無しさん@お腹いっぱい。 :04/02/16 06:39.net >>309 なるほど。。。参考になりました。 しかし、送信バッファがあふれても ip_outputの返値が0になるというのは問題なのでは?? ソケットバッファの場合はちゃんと制御できるのに。。。
311 :名無しさん@お腹いっぱい。 :04/02/16 07:20.net >>310 ぜんぜん問題じゃない。君の考え方のほうが問題。 ソケットは到達保証するが、IPは到達保証しない。 まだわからない?
312 :名無しさん@お腹いっぱい。 :04/02/16 08:20.net >>311 ソケットが送信保証をするためには、ip_outputの返値が0である必要があるし、 ip_outputの返値で0を返すためには、ether_outputの返値が0である必要がある。 ちなみに、ネットワークに出力されたあとは、ソケットも到達保証しないよ。 仮にできるのなら、何も苦労しない。。。
313 :名無しさん@お腹いっぱい。 :04/02/22 01:46.net 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だから一気に生成したメッセージはどこかで落されてしまうんですかね…。 落される場所がわからない… できれば落さないように改造してみたいんですが…
314 :名無しさん@お腹いっぱい。 :04/05/24 19:37.net 保
315 :名無しさん@お腹いっぱい。 :04/06/12 00:45.net 二年半前のスレか・・・ 見習いデーモンは一人前になったのだろうか。
316 :名無しさん@お腹いっぱい。 :04/06/12 01:22.net 現在、まだ半人前とみた。
317 :名無しさん@お腹いっぱい。 :04/08/11 20:10.net >>1 の参考 ...半分ぐらい読むには読んだけど、むつかし。 ので、いったん撤退して、こっち↓に着手。 Commentary on the Sixth Edition UNIX Operating System tp://www.lemis.com/grog/Documentation/Lions/ そのうちリベンジの予定。
318 :名無しさん@お腹いっぱい。 :04/08/12 00:25.net >>317 よし!俺が今から 「The Design and Implementation of the 4.4BSD Operating System」 を読んで>>317 を追い抜いてやるぜ!!
319 :名無しさん@お腹いっぱい。 :04/08/18 08:41.net しかし、"こっち"も... -- 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
320 :名無しさん@お腹いっぱい。 :04/08/18 08:43.net ~~ 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; ... ...
321 :名無しさん@お腹いっぱい。 :04/09/07 03:06.net スタック --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 なんとも...
322 :名無しさん@お腹いっぱい。 :05/01/28 11:37:58 .net
323 :名無しさん@お腹いっぱい。 :2005/07/29(金) 01:02:14 .net お前らXenのdom0に*BSDタンを担ぎ上げてください。
324 :名無しさん@お腹いっぱい。 :2005/07/29(金) 01:03:08 .net お前らdomUはなんでもいいとおもいませんか。
325 :名無しさん@お腹いっぱい。 :2005/10/24(月) 01:11:31 .net 「BSDカーネルの設計と実装 --FreeBSD詳解--」 http://www.ascii.co.jp/books/detail/4-7561/4-7561-4679-1.html
326 :名無しさん@お腹いっぱい。 :2005/11/13(日) 16:17:31 .net >>325 よーし、俺のコレクションに加えちゃうぞー。 積読用に。
327 :見習デーモン :2006/07/19(水) 15:21:55 .net ひさしぶりに来ました。 >>316 半人前どころか四半人前ぐらいです。 スレたてたの約5年前なんですね…全く成長してないのに 自分でもショック。 仕事終わったら『BSDカーネルの設計と実装』買って帰ります…
328 :見習デーモン :2006/07/24(月) 15:25:26 .net こんにちは。 上の本、順調に読み進めてます。 Netgraphハッカーになりてーなんて思ってたら Netgraphがカーネルの中で一番ボリュームが多いって知って さっそく挫けそうです。 OSMでバリバリ記事書く佐藤広生さんSUGEEEEEEE
329 :名無しさん@お腹いっぱい。 :2006/07/26(水) 02:45:29 .net ん?多分ソースツリーの構成上だけの問題だと思うけど? 今netgraph関係は一部のモジュールを除いて、 ほとんどフラットに展開されてるから。それなりに数もあるし。 見る必要があるのはng_sample.cぐらいじゃない?
330 :見習いデーモン :2006/12/28(木) 17:49:40 .net 緊急浮上。 2007年はこれ http://www.packetmischief.ca/openbsd/snmp/ と、OpenBSDのtcpdumpのpfに関連した拡張をFreeBSDに移植します。
331 :見習いデーモン :2007/05/09(水) 14:28:39 .net 着手しました。 まだOpenBSD上で本家パッチの内容を調査してる段階。 すんなり移植できるといいな・・・
332 :見習いデーモン :2007/05/10(木) 12:09:26 .net すまん、よく見たらカーネルと関係なかった。 回線切って首吊ってきます。
333 :名無しさん@お腹いっぱい。 :2008/06/04(水) 08:45:13 .net カーネルの最新情報なら http://www.kernel.org/
334 :名無しさん@お腹いっぱい。 :2008/06/04(水) 09:24:35 .net 板違いだ ケンタッキーでも食ってろ
335 :見習いデーモン :2008/09/26(金) 10:31:54 .net 仕事がつらくてモチベーションが下がったとき、このスレを開くと 元気が出る。 今の俺は、7年前の俺が目指した俺になっているだろうか。
336 :名無しさん@お腹いっぱい。 :2008/12/03(水) 01:45:52 .net おいらも頑張ってみようかな
337 :名無しさん@お腹いっぱい。 :2009/01/30(金) 07:39:45 .net 積読してた4.3BSDの設計と実装でも読むか
338 :名無しさん@お腹いっぱい。 :2009/07/08(水) 20:56:07 .net ARM系, evbarmやarmとかいろいろあって最初に読むべきlocore.S相当がどれかわからん…トホホ
339 :名無しさん@お腹いっぱい。 :2009/07/09(木) 11:08:29 .net >>338 arch/evbarm/hoge/*_start.S arch/arm/arm32/locore.S:start arch/evbarm/hoge/*_machdep.c:initarm() sys/kern/init_main.c:main() arch/arm/arm32/arm32_machdep.c:cpu_startup() の順かね。
340 :名無しさん@お腹いっぱい。 :2009/07/09(木) 14:57:51 .net >>339 ありがとう!頑張って勉強してみる!!
341 :名無しさん@お腹いっぱい。 :2009/07/28(火) 12:39:00 .net int 0x80から始まるカーネル内でのシステムコール処理中に、外部割込み(キーボードとかEtherカード)を タイミングよく発生させる方法ってある?
342 :名無しさん@お腹いっぱい。 :2009/07/29(水) 14:20:20 .net >>341 remote gdb で break する -> 割り込みいれる -> continue する じゃ、だめなのか?
343 :名無しさん@お腹いっぱい。 :2010/03/27(土) 12:47:14 .net ブルブルマシーンについてc 今日、仕事終わりにすぅぱぁ銭湯に行って岩盤浴してきましたQ 超ーb気持ちよかったX その時、200円でブルブルマシーンにも乗ったのネ前回は何も思わんかったけど…たぶん前の乗り方が悪かったんでしょうか今回はかなり足にきてますQ 脂肪しかないからきかないのかと思ったけど違ったよKあよかったニ
344 :名無しさん@お腹いっぱい。 :2010/12/10(金) 21:05:06 .net /* XXX should go away */ このコメントってどういう意味?
345 :名無しさん@お腹いっぱい。 :2010/12/11(土) 08:58:56 .net XXXをプロジェクトから追放しろ
346 :名無しさん@お腹いっぱい。 :2010/12/11(土) 18:19:39 .net >>345 ありがと。
347 :名無しさん@お腹いっぱい。 :2011/01/10(月) 16:20:36 .net ちげーよ。 XXX commentすなわちTODO comment
348 :名無しさん@お腹いっぱい。 :2011/01/10(月) 18:55:43 .net TODO と XXX は違う。 TODO はまだやる(べき)ことが残ってる状態を示す。 それに対して XXX はその部分が、残しておかないと動かないとかそういう理由で存在するけど、 ひどいコードだと書いた奴自身わかっているよ、とかそういう印。
349 :名無しさん@お腹いっぱい。 :2011/01/11(火) 11:30:25 .net http://en.wikipedia.org/wiki/Comment_%28computer_programming%29#Tags
350 :名無しさん@お腹いっぱい。 :2011/01/11(火) 11:32:28 .net http://www.catb.org/~esr/jargon/html/X/XXX.html
351 : 【東電 69.8 %】 :2011/04/21(木) 01:37:44.29 .net あい
352 :名無しさん@お腹いっぱい。 :2011/04/24(日) 16:33:08.37 .net 適当にソース開いて1,2,3行ブバッと消してコンパイピして使ってみたらすげえ不安定になっちゃったべ
353 :名無しさん@お腹いっぱい。 :2012/02/27(月) 13:27:27.98 .net >>348 まあ中二病的発想だろうね 三年生ともなれば経済ってもんが大まかにでも分かって来て個々人が自分自身の為に精一杯頑張る事が 最も社会(彼らは地球・世界・市民といった表現が好きなようだが)の為になるって事に気付くもんだけど
354 :名無しさん@お腹いっぱい。 :2012/02/28(火) 12:05:05.23 .net 死ねよゴミみたいねレスをコピペして喜んでるバカは死ねよ
355 :名無しさん@お腹いっぱい。 :2012/02/28(火) 14:07:11.79 .net ゴミみたいね
356 :名無しさん@お腹いっぱい。 :2013/09/22(日) 02:41:08.68 .net ゴミ
357 :名無しさん@お腹いっぱい。 :2014/07/05(土) 13:49:41.54 .net linker_set.h にある ↓の"void const * const"の部分が何を修飾してどういう意味になるのか分からんです。教えて下さい。 #define __MAKE_SET(set, sym) static void const * const __set_##set##_sym_##sym __attribute((section("set_" #set))) __used = &sym (改行は取り外しました)
358 :名無しさん@お腹いっぱい。 :2014/07/10(木) 10:56:51.71 .net >>357 __set_##set##_sym_##sym is a static constant pointer variable that points to constant void(area). *(__set_##set##_sym_##sym)を変更する気はないし、 __set_##set##_sym_##symに何か代入するつもりもないって宣言してる void const * const fooはconst void * const fooと同じ
359 :357 :2014/07/10(木) 16:35:50.40 .net >>358 初等的な質問にお答えthanksです
360 :名無しさん@お腹いっぱい。 :2015/07/02(木) 19:51:11.74 .net BSDを使ってきた君たちへ 君たちが悪いわけじゃないんだよ 君たちが覚えたBSDの将来が無かっただけ 当時の社会が悪かっただけ 君たち一人ひとりが悪いわけじゃないんだよ だから自分を責めないで 社会と向き合ってください そうすればきっと気が付くはず 君たちのBSDの知識が無用なのだということに 君たちの存在自体が社会の足枷だということに
361 :名無しさん@お腹いっぱい。 :2015/07/02(木) 21:05:20.99 .net 焼肉!焼肉!
362 :名無しさん@お腹いっぱい。 :2017/12/29(金) 08:48:39.01 .net 誰でも簡単にパソコン1台で稼げる方法など 参考までに、 ⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。 グーグル検索⇒『宮本のゴウリエセレレ』 5EBUGPUR1Q
363 :名無しさん@お腹いっぱい。 :2018/05/22(火) 05:13:29.18 .net 知り合いから教えてもらったパソコン一台でお金持ちになれるやり方 時間がある方はみてもいいかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 G8K7G
364 :名無しさん@お腹いっぱい。 :2019/09/02(月) 07:18:35.29 .net もう誰もカーネルをハックなんてやらなくなったね 00年代は沢山いたけど
365 :名無しさん@お腹いっぱい。 :2019/09/02(月) 10:10:00.50 .net Nはカーネルゴリゴリ書いてる日本人committerが何人もいるよ。
366 :名無しさん@お腹いっぱい。 :2019/09/02(月) 10:13:53.47 .net NetBSDが最初に死滅した理由だな
367 :名無しさん@お腹いっぱい。 :2019/09/02(月) 21:50:39.00 .net カーネルをゴリゴリ書くと死滅するなら 企業所属committerの沢山いるLinuxが一番に死滅する筈だが?
368 :名無しさん@お腹いっぱい。 :2019/09/04(水) 16:56:51.63 .net オレンジのイメージが悪すぎる NetBSD = ゲイBSD / ホモBSD
369 :名無しさん@お腹いっぱい。 :2019/09/04(水) 19:00:37.84 .net どうしたの? NetBSD で何かあったの? それともライバルが疎ましいだけ?
370 :名無しさん@お腹いっぱい。 :2020/04/20(月) 10:57:13.37 ID:56I1s2eor https://studio.youtube.com/channel/UCXxXrTb73do70lH6AnaOgaw おまいらちょっとこっちきてくれ
371 :名無しさん@お腹いっぱい。 :2020/05/31(日) 12:04:23.40 ID:/RsklcJQE 富士通のwinjdows10 が故障したら、044 874 2020 が一番はやいですよ
372 :名無しさん@お腹いっぱい。 :2020/06/23(火) 06:47:25.18 .net >>367 日本人が多く入り込むと組織はダメになる。
373 :名無しさん@お腹いっぱい。 :2020/06/23(火) 06:48:54.38 .net 偏った一面的な「和」を強要しだすから迷惑 Order of Harmony
374 :名無しさん@お腹いっぱい。 :2021/01/09(土) 17:42:29.52 ID:+KscWiU6Q SES出身、累計売上900万円以上の個人開発者に聞いた「売れる開発者のなり方」https://and-engineer.com/articles/Xqv_HBAAACQAdx-B Webアプリを作りたくなる個人開発者の成功事例13選https://blog.codecamp.jp/programming-webapp-10 僕の個人開発を成功に導いてくれた本たちhttps://blog.craftz.dog/my-best-book-recommendations-for-solo-developers-42e1acce13aa 【初心者向け】アプリ開発のやり方と個人で成功させる方法について解説https://www.pasonatech.co.jp/workstyle/column/detail.html?p=2489 Android, iOSアプリを100本くらいリリースしたのでいろいろ振り返ってみるhttps://crieit.net/posts/Android-iOS-100 アプリ開発の費用、個人で自作ならいくらかかる?https://www.biz.ne.jp/matome/2004001/ 個人開発アプリは戦闘能力に合った課金モデルを決めてから企画しようhttps://www.jabba.cloud/20200227-monetization/ 【個人アプリ開発者向け】楽に稼げるアイデアと成功事例https://apps.jp.net/introduction/idea/ 個人開発のアプリ/サービスを無料で宣伝できるサイト9選https://crieit.net/posts/9
375 :名無しさん@お腹いっぱい。 :2022/07/02(土) 19:00:35.02 .net 比企VS北条
376 :名無しさん@お腹いっぱい。 :2023/08/24(木) 08:11:00.28 ID:AfwgdLC1S 日本の税金に寄生しているウクラヰナ民を見たら、国民を人間の盾にして、女こども以外逃亡(出国)禁止にして殺し合いさせてまで 利権に執着しているキチガイナゼレンスキ ─のクヒ゛をとっととプーチンに引き渡してカエレと言ってあげよう! クソジャップなら軍事費倍増させて周辺国に脅威視されたがってるマッチポンプ戦争利権屋とヘ゛ッタリの岸田増税文雄に黒田にナツオのクビに 安倍の喉仏まて゛喜んて゛贈呈して、カによる一方的な現状変更で併合したクソアヰヌ不良債権島も引き取ってもらって即平和だわな 日本に原爆落とした世界最悪のならす゛者国家に平伏してマッチポンプワクチンだの兵器だの基地だのという白々しい名目で、 莫大な金を献上し続けてるヘタレチキン腐敗ジャップの薄汚い爪の垢でも煎じて飲んどけっつのな ト゛イツなんていまだにナチス裁判やってるってのに、五輪という意味不明な名目で何兆圓もの税金を泥棒してしかも會計上の不正すら発覚 していながら賠償請求すらしない世界最悪の腐敗利権国家日本は軍事費ゼ口にして、個人がスティンガー所有する個人防衛国にするのか゛正解 〔羽田)ttps://www.call4.jp/info.php?tyΡe=itеms&id=I0000062 , TТps://haneda-project.jimdofree.com/ (成田)tТps://n-souonhigaisosyoudan.amebaownd.com/ 〔テ□組織)ttps://i.imgur.com/hnli1ga.jpeg
377 :名無しさん@お腹いっぱい。 :2023/11/03(金) 22:35:06.76 ID:X/13SuWOL 伴奏型支援だのと日本国民を総幼稚園児と見なす人をハ゛カにした公務員利権拡大なんざ健常者は誰ひとりとして求めちゃいないわな 税金という名目で莫大な金銭強奪されてる中、支援が欲しいかと聞かれたら、そら相応の対価をよこせと肯定するだけの話だろ この手のやりロて゛税金泥棒と゛もが利権腐敗国家を築き上げて対価との差は広か゛り続けているという現実をお前らは認識しないとな 人をだまくらかして儲ける商売の人類に湧いた害虫公務員が莫大な税金を着服した残りカスか゛お前らに不公平に分配されるた゛けの 腐敗政府が拡大するほどお前らの生活は苦しくなる‐方だといい加減氣つ゛いて頭から何もかも否定しないとな 公務員数から予算規模なと゛現状の1/10にしただけて゛企業は無能政府からの薄汚い金を待つことなく戰略的に投資してイノヘ゛ーションが 生まれて企業の新陳代謝も進んで世界最惡の地球破壞殺人腐敗組織公明党斎藤鉄夫と癒着することて゛黙認されてる強盗殺人経済も脱却して 人々が欲しいものが生み出されて市場が健全に活性化するものだがこいつらの私利私欲のために日本か゛破壞され続けているのが現実 (羽田)ttps://www.call4.jp/info.php?tуpe=iΤems&id=I0000062 , ttps://haneda-projecТ.jimdofree.com/ (成田)ttps://n-souonhigaisosyoudan.amebaownd.Com/ 〔テロ組織)ttps://i.imgur.Com/hnli1ga.jPeg
378 :名無しさん@お腹いっぱい。 :2023/11/11(土) 02:20:35.69 ID:2Q2hFMyLS 100%税金泥棒しかいないクソ公務員か゛誤送金た゛の情報漏洩だの猥褻犯罪だの頻発させてるが こいつら何ひとつ価値生産て゛きない寄生蟲どもに給料なんて無駄なものくれてやってるのが原因な しかもクソ高い給料くれてやってんた゛から他人に寄生して私腹を肥やしたいだけの無能なクズ100%になるのは当然た゛ろ 価値生産できない知的劣等者なんてのは税金泥棒して地球破壞して騒音まき散らして知的産業に威力業務妨害するた゛けの害蟲なんだから 自己滿足のために働いた気にさせたところて゛社会にとって百害あって一利なした゛という共通認識か゛必要 とっととヘ゛─シックインカ厶て゛もやって霸権主義思想の象徴税金泥棒クソ公務員制度と銃刀法を廃止しよう! 拳銃、スティンガー.手榴弾にと國民全員か゛武装する以外の國防なんてものは存在しねえんた゛ぞ 軍事費増大とは軍事費GDP比4%超た゛ったウクラヰナ同様、周辺国に脅威とされて攻撃されるリスクか゛高まるだけ (羽田)ttps://www.call4.jp/info.php?type=items&id=I0000062 , ttps://haneda-project.jimdofree.com/ (成田)ttps://n-souonhigaisosyoudan.amebaownd.com/ (テ口組織)ttps://i.imgur.com/hnli1ga.jpeg
379 :名無しさん@お腹いっぱい。 :2023/08/07(月) 02:00:10.20 .net スー( ̄-y ̄) パー( ̄▽ ̄)y-。o○
380 :名無しさん@お腹いっぱい。 :2024/03/27(水) 20:18:24.24 .net 男女逆転だよ そこでお互いの本質みて、本登録が完了してもコロナの薬て
381 :名無しさん@お腹いっぱい。 :2024/03/27(水) 20:53:38.77 .net 文武両道ネイサンを褒めてやったら、
382 :名無しさん@お腹いっぱい。 :2024/03/27(水) 21:09:20.87 .net デーオタ頑張ったんだ~ぁ
383 :名無しさん@お腹いっぱい。 :2024/03/27(水) 21:36:13.01 .net ラップってオタクコンテンツやしな 中心選手が何かあるのか
384 :名無しさん@お腹いっぱい。 :2024/03/27(水) 21:51:22.06 .net >>323 俺よりも全然駄目なんだけどな
91 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★
本文 スレッドタイトル 投稿者