13

Click here to load reader

FreeBSD の小ネタ

Embed Size (px)

DESCRIPTION

K*BUG 紹介のために カーネル/VM+K*BUG勉強会@関西 ごかいめ で使ったスライド http://atnd.org/events/43501

Citation preview

Page 1: FreeBSD の小ネタ

FreeBSD 付属ツールの小ネタ

Hirohisa Yamaguchi@umq

カーネル/VM+K*BUG勉強会@関西 ごかいめ 2013/10/19

Page 2: FreeBSD の小ネタ

発表者について• 株式会社ラプラス・システム

•http://www.lapsys.co.jp

• 技術部

• 関西 *BSD ユーザ会 (K*BUG)

•http://www.kbug.gr.jp

Page 3: FreeBSD の小ネタ

関西 *BSD ユーザ会

• 主に関西で「BSDがちょっと気になる」ぐらいのゆるい括りの集まり

• 隔月ぐらいのペースで集まってる

• BSDネタ縛りは特にない

• 「人のケツは叩くが足は引っ張らない」

Page 4: FreeBSD の小ネタ

今日はカーネルもVMも関係ない話をします

Page 5: FreeBSD の小ネタ

FreeBSD

• BSD の派生

•今年で20年らしい

Page 6: FreeBSD の小ネタ

発端

• 「FreeBSD のネットワークスタックを組み込み用途に移植してて、設定もそのままコマンド類を使いたいんだけど…」

• http://lists.freebsd.org/pipermail/freebsd-hackers/2013-October/043553.html

Page 7: FreeBSD の小ネタ

発端

• 「FreeBSD のネットワークスタックを組み込み用途に移植してて、設定もそのままコマンド類を使いたいんだけど…」

• http://lists.freebsd.org/pipermail/freebsd-hackers/2013-October/043553.html

Page 8: FreeBSD の小ネタ

static const char *const argv[] = { "ifconfig", "lo0", "127.0.0.1"};ifconfig(3, &argv[0]);

みたいに

Page 9: FreeBSD の小ネタ

problem

• static だと、グローバル変数周りで色々問題がある

• 同時実行できない

• 呼び出しの度に初期化がいるよね

Page 10: FreeBSD の小ネタ

patch

• グローバル変数をstaticなコンテクスト構造体に移動

• グローバル定数はconst宣言する

• 関数、変数は可能な限りstaticにする

• https://gist.github.com/anonymous/f403849622ee51da4645

Page 11: FreeBSD の小ネタ

残る課題

• メモリの開放ちゃんとできてない

• exit(2)そのまま呼んでたらあかんのんやない?

• getopt(3)みたいに同様の問題抱えたものをなんとかする

Page 12: FreeBSD の小ネタ

てか、ライブラリに括り出しちゃえばいいんじゃねぇの?

Page 13: FreeBSD の小ネタ

まとめ

• FreeBSD の紹介をしました

• K*BUG ヨロシク