Binary HacksとprelinkとPythonとわたし

prelink-test

Binary Hacks ―ハッカー秘伝のテクニック100選を読み始めました。

前から気になっていたprelinkについて書かれていましたので、通勤前に試してみました。

prelinkは共有ライブラリをリンクしたプログラムの起動時間を短縮してくれるツールのようです。
書籍ではRubyスクリプトですが、(それほど難しい処理とかはないですが)Pythonの練習をかねてPythonで書き直してみました。

ダイナミックリンクで10倍くらいは速くなってますね。

% time python prelink-test.py                                           [~/py/prelinktest]
00000.c
00001.c
  :
  :
00999.c
python prelink-test.py  198.43s user 114.05s system 99% cpu 5:13.84 total
% repeat 3 time ./test-dynamic                                          [~/py/prelinktest]
./test-dynamic  11.46s user 0.24s system 99% cpu 11.724 total
./test-dynamic  11.15s user 0.20s system 99% cpu 11.353 total
./test-dynamic  11.14s user 0.22s system 99% cpu 11.389 total
% time /usr/sbin/prelink -N ./test-dynamic *.so                         [~/py/prelinktest]
/usr/sbin/prelink -N ./test-dynamic *.so  18.64s user 5.75s system 85% cpu 28.512 total
% repeat 3 time ./test-dynamic                                          [~/py/prelinktest]
./test-dynamic  1.26s user 0.22s system 97% cpu 1.514 total
./test-dynamic  0.95s user 0.21s system 99% cpu 1.166 total
./test-dynamic  0.98s user 0.19s system 100% cpu 1.172 total
% time ./test-static                                                    [~/py/prelinktest]
./test-static  0.00s user 0.00s system 76% cpu 0.005 total
% uname -a                                                              [~/py/prelinktest]
Linux zeus 2.6.20-3.ydl.2 #1 SMP Sun Mar 25 12:14:58 EDT 2007 ppc ppc ppc GNU/Linux
% cat /proc/cpuinfo                                                     [~/py/prelinktest]
processor       : 0
cpu             : 7410, altivec supported
temperature     : 1-3 C (uncalibrated)
clock           : 300.000000MHz
revision        : 0.2 (pvr 800c 1102)
bogomips        : 49.79

total bogomips  : 49.79
timebase        : 24966218
platform        : PowerMac
machine         : PowerBook3,2
motherboard     : PowerBook3,2 MacRISC2 MacRISC Power Macintosh
detected as     : 71 (PowerBook Titanium)
pmac flags      : 0000001b
L2 cache        : 1024K unified
pmac-generation : NewWorld
%                                                                       [~/py/prelinktest]
### prelink-test.py
import os

os.system("rm -f *.c *.so")
f = open("test.c", "w")
f.write('int main() { return 0; }')

objs = []
dsos = []

for i in xrange(1000):
    c_file_name = "%05d.c" % i
    print c_file_name
    f = open(c_file_name, "w")
    f.write("int func%05d() { return 0; }\n" % i)

    obj_file_name = "%05d.o" % i
    dso_file_name = "%05d.so" % i
    os.system("gcc -c %s" % c_file_name)
    os.system("gcc -fPIC -shared -o %s %s" % (dso_file_name, c_file_name))
    objs.append(obj_file_name)
    dsos.append("./" + dso_file_name)

os.system("gcc -o test-static test.c %s" % " ".join(objs))
os.system("gcc -o test-dynamic test.c %s" % " ".join(dsos))

エンジニア本

エンジニアが30歳までに身につけておくべきこと

エンジニアが30歳までに身につけておくべきこと

著者はそんなこと考えて書いていないかもしれないけど、なんか「大学<会社」みたいなものを筆致から感じました。う〜ん、そうなのか。大学の勉強も会社での仕事も重要だと思う。

あと「文系<理系」みたいなことも感じてなんかなぁ、と。
私も理系の端くれから言うと理系にがんばってほしいけど、どっちも重要でしょ。

やくに立つところも多くありますが、なんか考えが古い。

追記:
著者自身が大学教授なので、上で私が述べたようなことはちょっと見当違いだったかもしれないです。文面から私がそう思っただけです。

早朝

土曜日にやっとこタイヤ買ったので(ヤマダサイクルセンター)、自転車で動けるようになりました。

さっそく日曜の早朝に須磨方面へ。やっぱいいね、自転車は。

http://farm2.static.flickr.com/1186/1010941943_728408a0c4_m.jpg
Hyogo cycling 2007.08.05 | Flickr


土曜日大量に本を購入したのですが、感想とかは追々。
今から寝て、起きたら炊飯器で白飯を炊く予定。では。

ルートキット

Designing BSD Rootkits: An Introduction to Kernel Hacking

Designing BSD Rootkits: An Introduction to Kernel Hacking

他のいろんな本とともに注文した。到着が楽しみ。
ルートキットというのは、この書籍を知るまではあまり聞いたことがなかったのですが、クラッカーが使うバックドアツール、スニッファー、キーロガー等のツールセットらしいです。
http://www.exconn.net/Blogs/team02/archive/2005/11/02/4479.aspx
@IT:Windows TIPS -- Tips:クラッキングを手助けする“Rootkit”ツールを検出する



Linuxカーネル クイックリファレンス

Linuxカーネル クイックリファレンス

この前購入したこちらの書籍はLinuxカーネルですが、あわせて読みたいです。カーネルコンパイルとかしてみようっと。YDL(PPC)のソースとか最近のやつあるかな。

Flickrのデータとんでる?

なんかFlickrの写真が何枚か真っ白だっせ。。。

写真保存サービスとしてこれはどうなん?
かなりショックなんですが。まぁそんな大した写真じゃないけどね。

でも、写真って自分にとってはかなりどの写真も思い出がいろいろあって
何かしら頭の中を駆け抜けるものがあるので、捨ての一枚などないよ、と。
ちょっとだけ文句。一時的なものならいいのですが。。。

野宿大全

野宿大全―究極のアウトドアへの招待

野宿大全―究極のアウトドアへの招待

読了。
村上宣寛氏の野宿系新刊。大学の教科書に使えそうな心理系の書籍も多数執筆されていますが、野宿系の書籍が最高によいのです。読者を無視しているかのような無骨な文章。なのに、旅とそれをとりまく道具や方法への愛情がにじみ出ています。

アウトドア道具考―バックパッキングの世界などを経て、すべてノジュカーに捧げる一冊となったのではないでしょうか。
私は大学生の頃にアウトドア道具考―バックパッキングの世界など、村上氏の書籍を読んで瀬戸内、屋久島、種子島などを歩いて旅しました。また、自転車でも北海道、阿蘇、四万十、島根〜鳥取〜大阪横断旅行などなど、多くの地を旅しました。本当に良い経験で、いまでも良い思い出です。この本を通じて、野宿の良さを皆さんにわかってもらいたいものです。

この書籍を読んで、また野宿旅への欲望がふつふつと湧いてきました。