unix

BIND 9.4.0 Release

atomic処理の効率化による性能向上が取り込まれたバージョンの 9.4.0が正式にリリースされた模様。 以前 9.4.0a5 の時に確認した限りでは 2〜3 割は高速化が確認できた。 有効にするconfigureオプションはこの辺 --enable-atomic enable machine specific at…

バイナリエディタ

スクリプト書いてバイナリ置換したりするのが面倒になってきたので バイナリエディタを探していたら、bviという物を見つけた。 普段はエディタにはvi系列を使っているので親和性が高くて良い感じ。 http://sourceforge.net/projects/bvi/

rcsidとgcc最適化

gccの-Oオプションで消えるというのを聞いたので確認してみる。 なんか、古いコンパイラしか使ってないのがバレバレ。 ソースはこんなの static const char rcsid[] = "$Id: xxxxxxxxxxxxxxxx $"; int main(int argc,char ** argv){ return 0; } 各バージョ…

volatileとgcc

追加した機能が元で最適化の問題をを踏んだ。 何故か呼ばれるはずの関数が飛ばされるので何でかと思ったら volatileつけ忘れが原因。 どの程度最適化掛けると飛ばされるようになるのか気になったのでサンプル書いて実験。 踏んだプログラムはthread使ってた…

PIEバイナリとLD_PRELOAD

PIE (位置独立実行形式) を作成する - bkブログ この辺読んでたらPIEはPLT経由の呼出じゃ無い為LD_PRELOADで上書き不可 と書いてあったので、どうなってるのだろうと思い実験してみる。対象コード $ cat test.c int main(int argc, char ** argv){ printf("a…

関数呼び出しの引数の数特定

新年早々何やってるんだという気がしないでもないが... stripされていても外部ライブラリを呼んでる都合上シンボルは残ってるので readelf -s で特定可能。 シンボル名が判ったら objdump -d で disassemble した後call箇所を特定。 IA32なので大体こんな様…

ltrace

linux上でマルチスレッドプログラムのトレースをしようとしてはまる。 ターゲットはdaemonプログラムなのでforkした後にpthread_createしてるけど forkは追従できてもpthread_createはダメっぽい。 どうやらメインスレッドのみしか追いかけて無い模様。 この…

b2con 2006 資料

Binary 2.0カンファレンス 2006 発表資料とレポート - bkブログ 講演資料が公開された模様。 以下個人的興味 Some notes on lock-free and wait-free algorithms | Ross Bencina Non-blocking algorithm - Wikipedia Computer Laboratory – Systems Research…

ircd 再び

昨日の続きでdlopen出来ない問題。 何のことは無くて、dlopenがiauth側で宣言しているGlobal変数のシンボルを 検索対象にしていなかった。 なのでiauthのコンパイル時に-rdynamicを付けてグローバルシンボルを 解決対象に突っ込んで問題解決。 そもそも、直…

ircd

iauthモジュール書いてたり。以下踏んだ罠 NO_IDENTをdefineすると認証系丸ごと無効化される identモジュールはどう頑張っても設定で外せない rfc931と913が混在(多分typo) 外部モジュールが undefined symbol: cldata とかでロード出来ない ここまでidentを…

openssh brute force 対策

未だにbrute forceネタが取り上げられてる事が多いので。 根本的解決になってないけど、以下のパッチ当ててlibsshを弾いておくと 大体のscannerはお帰り頂ける様です。多分最近のバージョンにも当たるはず。 Greetingを変更すれば突破できるけど、わざわざ変…

Linuxのext3上でquota

usrjquotaとかどうなんだろう。有効な場合は fs/ext3/super.c:ext3_quota_write あたりで処理している模様。これが無い場合でも以下のような処理は入っているので 意識はしてるのだろうけど。 /* Always do at least ordered writes for quotas */ err = ext…

前日の日付を取得

相対指定して-1dとか出来ない環境用。 シェルスクリプト以外使えば楽だけどそのためにperl -eとかするのは負けた気がするので。 $ date +%Y%m%d 20061124 $ TZ=JST+15 date +%Y%m%d 20061123

LinuxのOOM-Killer

昔から色々悪名の高いOOM-Killer 素のkernelには直接無効化する手段が無いですが、RHEL系はパッチ当たってるので sysctlで無効化できます。SRPMの中のパッチを見れば該当処理は解ると思いますが、 結構やっつけなので、頻発するようなら各種パラメータを見直…

disk quota @ linux

昔の手順でやっていたらいつの間にかaquotaになっていてはまる。 何年前だというのはさておきquota.userを消してquotacheck -avmuとかで解決。

再起動無しにホスト名変更

多分gethostnameが返してくる名前が変わってるだけ。 動かしてるアプリによっては発狂したりするの居そうだなぁ。 #FreeBSD sysctl -w kern.hostname=xxx #Linux sysctl -w kernel.hostname=xxx

シェルスクリプトにおける変数のクォート

遊んでいたらはまったので備忘録を兼ねて記述。 変数名が被っていてかつnestして呼んでいると、どのスコープの変数なのか分からなくなる ことがあったり。 その1 シェルスクリプト内部で設定した変数をawkに食わせて判定したいとき。 内外でダブルクォートし…

compile

CUI環境から更新するため環境整備してみたり。 ついでなので色々古かったw3m,vim,screen等をガシガシとコンパイル。こんな環境なので寝る前に仕掛けてから寝ます。 失敗してたらまた明日。 $ cat /proc/cpuinfo cpu : ROSS HyperSparc RT625 or RT626 fpu : …