Click here to load reader
Upload
hirohisa-yamaguchi
View
699
Download
1
Embed Size (px)
DESCRIPTION
K*BUG 紹介のために カーネル/VM+K*BUG勉強会@関西 ごかいめ で使ったスライド http://atnd.org/events/43501
Citation preview
FreeBSD 付属ツールの小ネタ
Hirohisa Yamaguchi@umq
カーネル/VM+K*BUG勉強会@関西 ごかいめ 2013/10/19
発表者について• 株式会社ラプラス・システム
•http://www.lapsys.co.jp
• 技術部
• 関西 *BSD ユーザ会 (K*BUG)
•http://www.kbug.gr.jp
関西 *BSD ユーザ会
• 主に関西で「BSDがちょっと気になる」ぐらいのゆるい括りの集まり
• 隔月ぐらいのペースで集まってる
• BSDネタ縛りは特にない
• 「人のケツは叩くが足は引っ張らない」
今日はカーネルもVMも関係ない話をします
FreeBSD
• BSD の派生
•今年で20年らしい
発端
• 「FreeBSD のネットワークスタックを組み込み用途に移植してて、設定もそのままコマンド類を使いたいんだけど…」
• http://lists.freebsd.org/pipermail/freebsd-hackers/2013-October/043553.html
発端
• 「FreeBSD のネットワークスタックを組み込み用途に移植してて、設定もそのままコマンド類を使いたいんだけど…」
• http://lists.freebsd.org/pipermail/freebsd-hackers/2013-October/043553.html
static const char *const argv[] = { "ifconfig", "lo0", "127.0.0.1"};ifconfig(3, &argv[0]);
みたいに
problem
• static だと、グローバル変数周りで色々問題がある
• 同時実行できない
• 呼び出しの度に初期化がいるよね
patch
• グローバル変数をstaticなコンテクスト構造体に移動
• グローバル定数はconst宣言する
• 関数、変数は可能な限りstaticにする
• https://gist.github.com/anonymous/f403849622ee51da4645
残る課題
• メモリの開放ちゃんとできてない
• exit(2)そのまま呼んでたらあかんのんやない?
• getopt(3)みたいに同様の問題抱えたものをなんとかする
てか、ライブラリに括り出しちゃえばいいんじゃねぇの?
まとめ
• FreeBSD の紹介をしました
• K*BUG ヨロシク