トップ 最新 追記

じじぃの日記、ツッコミ可

Twitter: @jijixi_org
Xbox Live: jijixi

初心者が書いた OCaml 入門
Spotlight tips サイト内リンク集
1970|01|02|
2003|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|11|
2011|05|
2012|01|

2006-11-03 [長年日記]

% [雑談] ぶっちゃけ書くことが無い

わりと精神的に死亡気味..._no


2006-11-06 [長年日記]

% [clip] 東大、1チップで512G FLOPSを達成する512コアプロセッサ (PC Watch)

なんか夢のようなことがいっぱい書かれてて、思わず眉に唾をつけてしまうんだが、どこまでホントなんだこれは。

NECの「地球シミュレータ」クラスの演算性能はラック1本、費用は5,000万円で可能だとした。

とか、マジですかって感じなんだけど。


2006-11-08 [長年日記]

% [clip] Gmailがメールを捨てている (ただのにっき)

げげ、マジっすかー。 最近メールは全部 Gmail に転送するようにしてたからヤバいかも……

なんか対策した方が良いのかな。


2006-11-10 [長年日記]

% [Mac] Rosetta 知られてねー!!

某所とか某所とかとか。 AltiVec (SIMD 命令) に依存しているものじゃなければ、だいたい動くらしいっすよー。

……つか、なんだ、Rosetta の存在なんかを知らんでも普通に過ごせるって時点で「うまくやったなー」ってことなんだろうけど、Mac に特別興味の無い人には、これほどまでに知られてないんだなーてのは微妙にショック(苦笑

ちなみにユニバーサルバイナリのアプリケーションは、Finder の『情報を見る』からムリヤリ PPC バイナリとして動かすこともできるはず。 わしは Intel Mac 持ってないから試せないけど。

% [雑談][Mac] すでに Superbowl XLI へのカウントダウンは始まっている

そんな Dashboard Widget が公開されていた。 まったくアメリカ人てのは仕方ないやつらだな(笑

・・・うっかりインストールしそうになったわしに、人のことは言えません(の

% [雑談] ぬおっ、いつの間にか HAPPY TREE FRIENDS(グロ注意) が Podcast で配信されるようになってますよ!?

全然知らなかった。 えーと…… URL はこれなんだけど、これを……これをどうすんだ? たぶん iTunes にドラッグ。

つか、とりあえず Mac だとクリックするだけで良いような気もするんだけど、よくわからん。 よくわからん場合は iTunes Music Store で検索するのがてっとり早い気もする。


2006-11-11 [長年日記]

% [clip] バイナリアン度チェック

なぜか 80 点とか出てビビる。 実際のところ、ちゃんと答えられたのは半分くらいのもんで、残りは霊感山勘第六感なので全然わしはバイナリアンではないと思います。

って言うか、正直者プレイヤーのために各設問には『わからない』を追加すべきだと思ったり、思わなかったり。


2006-11-14 [長年日記]

% [Mac][Mach-O] Mach-O の勉強とかしてみるテスト

だって猫も杓子もエルフエルフってうるさいんだもん。 そんなに耳長長命種が好きなのかっての、いすずのトラックが好きなのかっての。 てな感じでついカッとなって。

ほんとは a.out をやろうかと思ったんだけど、最後の砦 OpenBSD が ELF に移行してほぼ死滅したと言ってよさそうなんでやめた。 パソコンの世界では残る対抗勢力は Mach-O くらいなんだろうなあ。 ともあれ、Mach-O はわりと富豪のにおいがする感じで ELF よりすっきりした構造っぽいので、わしのようなヌルい人でもなんとかなるんじゃないかなーとか思いつつ遊ぶ。

とりあえずリファレンスをにょろっと眺める。 まず、Mach-O ファイルは三つの部分からなる。

  • ヘッダ (header structure)
  • ロードコマンド (load commands)
  • データ (data)

簡単に言うと、ヘッダ部はロードコマンドのメタ情報を持ち、ロードコマンド部はデータのメタ情報を持ち、データ部に各種の実データ (実行コードなど) が格納される。 具体的にどんなものが格納されているかは、リファレンスの Data Types の項に詳しく書いてある。 Mac OS X の /usr/include/mach-o/loader.h を見れるなら、そちらを見た方がわかりやすいかも。 mach_header 構造体がヘッダ部になる。

ファイルの先頭である magic には Mach-O ファイルであることを示すマジックナンバーが入り、これは 32/64bit の判定や BOM (Byte Order Mark) としての役割も果す。

試しに以下のような C のコードをコンパイルして、バイナリエディタで開いてみよう。

% cat test.c
#include <stdio.h>

int main(void)
{
   printf("Hello, World!\n");
   return 0;
}
% gcc test.c -o ppc.out
% bvi ppc.out
00000000  FE ED FA CE 00 00 00 12 00 00 00 00 00 00 00 02 00 00 00 0A ....................
          ^^ ^^ ^^ ^^

このようになる。 これは PowerPC 用バイナリの場合で、Intel 用バイナリなら……

% gcc -isysroot /Developer/SDKs/MacOSX10.4u.sdk \
  -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -arch i386 test.c -o intel.out
% bvi intel.out
00000000  CE FA ED FE 07 00 00 00 03 00 00 00 02 00 00 00 0B 00 00 00 ....................
          ^^ ^^ ^^ ^^

こんな感じになる。 あと 64bit の場合は 0xfeedface が 0xfeedfacf に変わる。 さらにユニバーサルバイナリの場合は各アーキテクチャ用の Mach-O ファイルが、FAT 構造に包まれる形になるが、その場合もヘッダ (fat_header) の先頭にはマジックナンバー (0xcafebabe) が埋め込まれる。 どうでも良いけど、これらのマジックナンバーって英単語になるように選んでるとしか思えない。

mach_header の他のフィールドについては、まあだいたいリファレンスを見ればわかる。 ちなみに cpu_type_t, cpu_subtype_t という型の実体は int で、64bit 用のヘッダである mach_header_64 では 64bit allign にするためにお尻に詰め物がしてある。 cputype, cpusubtype の各フィールドに入れる値は /usr/include/mach/machine.h に定義されていて、CPU_TYPE_POWERPC は 18 (0x12)、CPU_TYPE_I386 は 7 になっている (上記のバイナリダンプでもそれを確かめることができるだろう)。

……だいたいこの辺でめんどくさくなってきた。 つーか、そろそろバイナリファイルからヘッダやロードコマンドをダンプするツールが欲しくなってきたんだけど見つけられなくて、自分で作るなら結局リファレンスを読み込まなきゃならなくて、あーもー、だいたい mach-o でググるとマッチョマッチョてうるさいんだよ、うがー、って感じでわりと(の

正直、たかが Hello world でロードコマンドが 10 個もあるのは何でじゃ? とか色々アレなんだけど、とりあえず Mach-O Golf するなら __TEXT セグメントの __text セクションが実行コードの格納場所だから、そこにマシン語のコード突っ込んでヘッダとロードコマンドをでっちあげる感じでいくのが基本っぽいですか? 何で疑問形? つーか、PowerPC のアセンブラとかわかんないんで試せません。

いーよいーよ、別にわしゃーバイナリアンになりたいわけじゃないし、こうやってネタ振りさえしておけば、たぶん続きはどっかの偉い人がやってくれんじゃね? (投げやり人生)

本日のツッコミ(全1件) [ツッコミを入れる]

% TrackBack [http://d.hatena.ne.jp/shotaro_tsuji/20061219/1166458799 ミル..]


2006-11-15 [長年日記]

% [reddit] ログインできない

いつの頃からか reddit にログインできなくて困ってる。 OmniWeb が 5.5.1 になって、ようやく reddit が普通に使えるようになったのに、これはあんまりだよ。 他のブラウザでもダメなんで OmniWeb のせいではないと思うんだけど、とにかくログインしようとすると『invalid login』と表示される状態。

what's my password? のページからメール出そうと思っても、『sorry, that email address isn't registered with the site』と表示されてしまう。 たぶんメールアドレスは間違ってないはずなんだけど……(いや、もしかしたらメールアドレスを登録してなかったかもしれない)

問題が出るきっかけとして思い浮ぶのって preference を少しいじったことくらいなんだけど、そのときも単に新規ウィンドウを開くかどうかのチェックを入れたくらいだったはず。 パスワードを変更した覚えは無い。

すっぱりあきらめて、新たにアカウント作るのがてっとり早いのかもしれないけど、せっかくの『jijixi』って ID を捨てるのはもったいないなあ。 うーん……どうしたもんか。


2006-11-18 [長年日記]

% [雑談] タイヤ交換 (自力)

峠越えの予定とかは無いんで、あと一週間くらいは余裕な気もするんだけど、なんか天気も良かったんでエイヤっとやっつけた。 つーか最近は適当にどっかでやってもらうのが常だったんで、自分でやったのはかなり久しぶり。 ……腰いてぇ(弱

さあ、タイヤも換えちゃったことだし、とっとと雪積もれ。 (当然、換える前は「積もるなよ」と思ってるわけで、ゲンキンなことこの上ない)


2006-11-22 [長年日記]

% [雑談][game] PS3 に縁は無いが…

まー一応ってことで PSP のファームウェアアップデートとか。

バッテリーの残量が足りません

まただよw

% [雑談][game] せっかくアップデートしたのに、速攻でバグフィックス版出てるし……

ほんともうソニーはだめぽ。 『JEANNE D'ARC』とかいうゲームを買うつもりは全然無いのでスルーだな。 めんどくさいし。

……つーか、こんな微妙な互換性問題が出るってことは、他のソフトでも何かしら問題が出そうな気がしないでもないんだが、はてさて。


2006-11-27 [長年日記]

% [tDiary] 2.0.3 にアップデート

した。 まあ、自分で何かをいじったりはしてないんで、何も考えずに lftp で mirror -R しただけだが。


トップ 最新 追記

日記ってのは本来、自分で読み返すためにあるもんだよなあ……
もしくは有名人になったら死後に本になったりとかか?

RSS はこちら

jijixi at azito.com