タグ

バイナリに関するanatofuzのブックマーク (4)

  • Ruby中間表現のバイナリ出力を改善する - クックパッド開発者ブログ

    Ruby 開発チームに4週間インターン生として参加いたしました、永山 (GitHub: NagayamaRyoga) です。 私は「Ruby中間表現のバイナリ出力の改善」という課題に取り組み、Railsアプリケーションのコンパイルキャッシュのサイズを70%以上削減することに成功しました。以下ではこの課題の概要とその成果について述べたいと思います。 InstructionSequenceの概要 まず、RubyVM 内で実行される命令の中間表現、InstructionSequence (以下 ISeq と省略) について簡単に説明します。 通常の Ruby プログラムは、以下のような手順で実行されます。 ソースコードを構文解析し、抽象構文木を作る。 抽象構文木をコンパイルして、ISeq を作る。 RubyVM (YARV) で ISeq を解釈し、実行する。 ISeq は、このように Ruby

    Ruby中間表現のバイナリ出力を改善する - クックパッド開発者ブログ
  • エンディアン - MacWiki

    エンディアン[編集] 多バイト数値データのバイナリフォーマットは、主に次の2通りに大別される。 リトルエンディアン[編集] x86、AMD64 float0 形式とも http://e-words.jp/w/E383AAE38388E383ABE382A8E383B3E38387E382A3E382A2E383B3.html ビッグエンディアン[編集] PowerPC(PowerPC 自体はリトルエンディアンにも対応しているが、Mac OS X や Linux 上ではビッグエンディアンである) float1 形式とも http://e-words.jp/w/E38393E38383E382B0E382A8E383B3E38387E382A3E382A2E383B3.html 見分け方[編集] 次のプログラムを実行して、結果が 0x78 → リトルエンディアン、0x12 → ビッグエンディア

  • Parsing Mach-O files - Low Level Bits 🇺🇦

    This article describes how to parse Mach-O file and explains its format a little bit. It’s not a definitive guide, though it might be helpful if you don’t know where to start. For more information consider reading official documentation and header files provided by operating system. What is Mach-O file Brief description taken from Wikipedia: Mach-O, short for Mach object file format, is a file for

    Parsing Mach-O files - Low Level Bits 🇺🇦
  • Mach-O - Wikipedia

    Mach-O(まーく・おー)はコンパイラが生成するオブジェクトファイルおよび実行ファイルのファイルフォーマットである。NEXTSTEPに由来し、macOSで標準のバイナリファイルフォーマットとして採用されている。 複数アーキテクチャのバイナリを保持する事が可能である。(ファットバイナリ) 以下のような構造になっている。 FatHeader アーキテクチャの数を含む。なくてもよい。 fat_arch FatHeaderの後に続く。CPUの種類などをふくむ。FatHeaderがある場合のみ存在する。 MachHeader CPUの種類、ファイルの種類、ロードコマンドの数を含む。 ロードコマンド MachHeaderの後にロードコマンドがいくつか続く。これはセグメントの情報や実行されるときのレジスタの初期値を指定する。 実行ファイルとして体をなすにはロードコマンドは少なくともセグメントコマンドと

  • 1