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


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

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



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

45 名前:名無しさん@お腹いっぱい。 mailto:sage [01/11/18 20:38]
www.mainichi.co.jp/life/family/syuppan/chronicle/1945_3.html

46 名前:名無しさん@お腹いっぱい。 mailto:sage [01/12/06 11:08]
>>43-44
変えようとかいう話も以前出てた気もするけどどーなったんだろ(w

47 名前:名無しさん@お腹いっぱい。 [01/12/31 18:04]
おせーてくださいませ。
caddr_t ってどーいう意味なのですか。
ヘッダファイル見たら core address ってコメントしてあったけど、
よくわかりませんです。

ってこれはカーネルの話題じゃないのかな?

48 名前:名無しさん@お腹いっぱい。 mailto:sage [01/12/31 18:20]
>>33
ペンギンかわいいか?目にまったく生気がなくてうつむいてるし、
ぐったりしてるように見えるんだけど。カモメの方が好きだった。

49 名前:名無しさん@お腹いっぱい。 mailto:sage [01/12/31 22:07]
正直、linuxペンギンは気持ち悪い。

50 名前:名無しさん@お腹いっぱい。 [02/01/11 07:01]
>>26
SYSINITの所で、つまずいたです。
出来れば簡単に説明して頂けるとうれしいのですが。。

51 名前:名無しさん@お腹いっぱい。 [02/01/13 20:52]
ager

52 名前:26 [02/01/14 18:50]
以下の実験は実行ファイル形式として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 名前:名無しさん@お腹いっぱい。 mailto:sage [02/01/14 18:56]
$ 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 mailto:sage [02/01/14 18:59]
みゅ。悪い。4系だと/kernelだね。

55 名前:名無しさん@お腹いっぱい。 mailto:sage [02/01/14 22:59]
Linux(ELF)でも、(おそらく)同じ結果になった。
__attribute__や__section__の定義を探して
/usr/includeなんかをfind+grepしたけど見つからない。どこかなー

56 名前:52 [02/01/15 00:31]
>>55

>>26参照。

57 名前:26 mailto:sage [02/01/15 00:34]
それから、__attribute__はgccの拡張だよ。info参照。

58 名前:歴史に名を残すかもしれない男 [02/01/15 01:59]
僕は、超研究員大学生でありウィザドですが、

既存のOSはしょーもないので新しく作ります。
そこで質問です。
FreeBSDってカーネルとか弄ったりして、
ソフトとか入れて整形したものを
Linuxのディストリビュージオンみたいに配ってもいいですか?
または、FreeBSDなどを参考にして、
一から作ったOSウォ、VokuBSDみたいに名乗ってもいいですか。

59 名前:50 mailto:sage [02/01/15 02:04]
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 名前:納期に間に合わないかもしれない男 mailto:sage [02/01/15 02:37]
>58
既存のソゥースについたBSD スタァイルのコピーライトオンを改変しなけれヴぁ
問題にないはずです。
頑張ってくださイね。

61 名前:見習いデーモン [02/01/15 02:45]
おひさしぶりです。
己の能力不足ですっかりカーネルの深海に溺れて土左衛門になって
スレに出入りすることもなかったんですが、
まだ地味に続いてたんですね。

26さんが情報提供してくださったりして、スレの雰囲気は良い方向
に向かってますね。
全然ついていけないんですけど、今MINIXいじって基本を勉強してるんで
いつか追いつければなぁと思ってます。

っつーかみなさんどうやってそんなにスキルつけたんですか。

62 名前:名無しさん@お腹いっぱい。 [02/01/15 09:06]
>>61
oskitで遊ぶ

63 名前:26 [02/01/17 00:04]
>>58

どんな簡単な物でもいいから、とりあえずドライバ書いて見たら?
今まであるドライバからコピペしたり、/usr/share/examples/にある
スクリプトを使ったテンプレートを元に書けばそんなに難しくないよ。
頭から追っていくってのは正直言うとかなり効率の悪い方法だと思う。
カーネルがprintf(9)で吐くメッセージをたよりにしたりしながら
調べるのが吉。そうすれば例えばSYSINITの実装はとりあえず理解しなくても
先に進むことが出来るし。



64 名前:名無しさん@お腹いっぱい。 mailto:sage [02/01/17 00:15]
なんか面白そうだな。
*BSD 入れたくなってきた。

65 名前:名無しさん@お腹いっぱい。 [02/01/22 08:54]
Solarisのカーネルハックもここでいいの?

66 名前:名無しさん@お腹いっぱい。 [02/01/22 14:24]
Solarisの kernel source見ると、変な copyrightに汚染されませんか?
# 会社の決算期にあたって、bladeが来ない...



67 名前:age [02/01/30 23:31]
age

68 名前:名無しさん@お腹いっぱい。 mailto:sage [02/01/31 00:12]
>>63
日本人がBSDにドライバ書くのは見飽きたにょ
VFSとかに挑んでみてくれ



69 名前:名無しさん@お腹いっぱい。 mailto:sage [02/01/31 00:33]
Uniform Driver Interfaceどうよ?

70 名前:名無しさん@お腹いっぱい。 mailto:sage [02/01/31 13:57]
えと、えと。そうしてほしいの?おにいちゃん。ってのはともかく。
要はいじりたいコンポネントからせめて行くのが得策なわけで。
頭から見ても良い事はあんまり無いと言うのが本質ですな。
他機種移植だったらそれが一番大事だけど。
(もっとも、例にだしたのがドライバなのは私がその見飽きた事を
しているからでして。)次はportalfs元にいじるかな。小さくて簡単そうだし。
kernfsあたりも簡単そうだったけど。FreeBSDからは消えたし。

UDIですかぁ。うーん。努力は認めるけど....


71 名前:68 mailto:sage [02/02/02 00:17]
>>70
個々のファイルシステムじゃなくてVFS。
VMいじれとまでは言わないっす。ドライバ書きは多いけど、そっから
昇格するやつがいないと思ったみょ。
わしも、しょうもないドライバを昔書いたけど、それいらいカーネルは
いじってないでし。(もはや一介の犬厨です)

72 名前:名無しさん [02/02/09 10:55]
ソラリスのカーネルスレッドがマッチするよう
Sparcは設計されているのですか?

73 名前:名無しさん@お腹いっぱい。 [02/02/23 09:22]
あげ



74 名前:名無しさん@お腹いっぱい。 mailto:sage [02/02/23 16:55]
ドライバ書きより VFS いじる方が格が上だとでも?
ただのレイヤ違いじゃん。


75 名前:名無しさん@お腹いっぱい。 mailto:sage [02/02/26 00:00]
>>74
本当にそう思う?
みなさまもそう思う?


76 名前:名無しさん@お腹いっぱい。 mailto:sage [02/02/26 14:20]
禿同 >>74

77 名前:74 mailto:sage [02/02/28 15:46]
>>75
心からそう思っております。


78 名前:名無しさん@お腹いっぱい。 [02/03/08 23:27]
age

79 名前:仕様書無しさん [02/03/09 17:23]
これも

80 名前:名無しさん@お腹いっぱい。 [02/03/11 00:24]
つづきプリーズ揚げ

81 名前:名無しさん [02/03/11 04:30]

BSDに誰か じゃーなりんぐできるFS実装してくれたまへ。
あと、圧縮できるFSもキボンヌ


82 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/11 04:50]
jfs4bsd.sourceforge.net/

83 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/11 06:19]
>>82
ライセンスどうするんだろ? JFSもGPLだったよね?



84 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/11 07:31]
>>83
コードの再利用をせずにスクラッチで書けば良いんではないかい?


85 名前:83 [02/03/11 10:41]
うーんやっぱそうなるよねぇ。先が長そうだ...
とりあえず応援age

86 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/11 21:46]
JFS ってわざわざスクラッチから作るほどイイの?


87 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/12 00:04]
とりあえずジャーナリングするファイルシステムがひとつは欲しい

88 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/12 16:19]
JFS for Linux を移植するよりスクラッチから書いた方が早い


89 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/12 18:17]
>>88
その情熱をLFSに注いでクレ

90 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/13 00:28]
LFSとかsoftupdateみたいなディスクへのリクエストの順序で整合性を保つ方式は
そろそろダメというのが世間のコンセンサスな気がする


91 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/13 00:49]
ジャーナリングって
ディスクへのリクエストの順番と
実際書き込まれる順番が
デタラメになっても問題ないの?


92 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/13 08:05]
>>91
そんなことはないが、ディスクキャッシュのフラッシュなどの
同期命令の発行がかなり少なくてすむ
少なくともメタデータ一個書くごとにフラッシュする必要は無い


93 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/13 08:39]
書き込み順序保証ってSCSIやATAのtagged queuingじゃダメなの?



94 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/14 00:16]
>>93
その手の機能をすべてのメタデータの書き込みに対して使うと遅いよ

95 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/14 01:15]
>>90
LFS はセグメント毎にフラッシュすれば十分なんでないの?
ダメ?


96 名前:名無しさん@お腹いっぱい。 mailto:sage [02/03/14 09:44]
>>95
そうですな。すまんかった


97 名前:名無しさん@お腹いっぱい。 [02/04/07 06:03]
age てみよう。


98 名前:名無しさん@お腹いっぱい。 [02/04/09 19:11]
勉強のため、FreeBSD 4.5-RELEASE 上で俺ファイルシステムを
作りたいと思っています。とりあえず、procfs のように、カーネルの
覗き穴的な fs がいいかなと。

が、サパーリわかりません。というわけで、fs のスケルトンが欲しい
のですが、よいスケルトンはどれでしょうか。

ファイルサイズ的に miscfs/deadfs/ かなぁと思うのですが、deadfs は
どういう目的の fs なのかがわかりません。ぜひアドバイスをお願いします。


99 名前:98 mailto:sage [02/04/09 19:26]
deadfs は mount 方法もわからないし (そもそも mount できるのか
どうかもわからん) kernfs の方がいいかな…。


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


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

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

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

よく見たら >98 はFreeBSDか。

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


103 名前:98 mailto:sage [02/04/09 20:37]
なんだこれ、ちょーかんたんじゃん! というわけでメモメモ。
 /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 mailto:sage [02/04/09 20:54]
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]
カーネルのコンパイルについて質問です。
FreeBSD4.5でカーネルをいじってmake && make installを
しているんですが不要な部分を除いてコンパイルの時間を
短くできないでしょうか?そんな都合のいい話は
ないかもしれませんがよろしくお願いします。

106 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

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



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

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

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

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

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

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

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


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

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

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



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

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

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

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

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

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

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

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

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

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


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

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

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



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


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


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

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

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

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

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

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


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

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

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

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



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

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


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

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


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

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

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

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

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

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


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

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


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



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

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






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

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

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