タグ

2014年1月28日のブックマーク (5件)

  • gccのアセンブル出力を解析する時は-gオプションが便利

    アセンブラの勉強のために、gccで-Sオプションを使用してC言語のコードからアセンブラのコードを出力していたのですが、ソースコード中の何行目がどの出力に対応するのか分かり辛く、苦労していました。 もちろん注意深く読めば対応は分かるのですが、質的でないところに時間が取られてしまい、来の解析が出来なくなってしまうので非効率です。 と思ってたのですが、コンパイル時に-gオプションをつけ、デバッグ情報を付与させると、ソースとアセンブリの対応が出力される事に最近気づきました。 以下、試してみた結果です。 こちらがテストに使ったコード #include<stdio.h> int main() { int a; int b; int c; a = 2; b = 5; c = a + b; printf( "%d\n", c ); } .file "test10.c" .section .rodata

    gccのアセンブル出力を解析する時は-gオプションが便利
  • Seeing things: A new transparent display system could provide heads-up data

    Transparent displays have a variety of potential applications — such as the ability to see navigation or dashboard information while looking through the windshield of a car or plane, or to project video onto a window or a pair of eyeglasses. A number of technologies have been developed for such displays, but all have limitations. Now, researchers at MIT have come up with a new approach that can ha

    Seeing things: A new transparent display system could provide heads-up data
    ryochack
    ryochack 2014/01/28
    透明ディスプレイ
  • LispでOSを書く

    (このエントリは、Lisp Advent Calendar 2012 の22日目である) ELIS復活祭のとき、ELISのTCP/IPプロトコルスタックを書いたという方とお話する機会があった。ELISのプロトコルスタックはもちろんLispで書かれていた。その方がおっしゃるには、「C言語はよい。BSDからソースコードを持ってくればいいのだから。しかし、Lispで書かれたプロトコルスタックなどなかった。自分で書くしかなかった」ということだった。それにしても、LispでOSを書くというのは、いったいどんな感じなのだろう? OS記述言語としてのLisp UnixがCで書かれて以来、OSは、伝統的にCとその派生言語で書かれることになった。BSDやLinuxを含むUnix-likeなシステムはもちろんCで書かれている。Windows NTはC++を使っている。BeOSもC++で書いたし、MacOS X

  • 任意のアセンブリコードを仮想マシンで実行しちゃうRuby gemを作ってみた - syuu1228's blog

    このブログエントリはカーネル/VM Advent Calendar 2013 25日目の記事です。 前回、カーネル/VM探検隊で「バインディングさえあればスクリプト言語でもゲストOSローダを実装出来る」という話をちらっとしました(資料)。 今回の記事では、ゲストOSローダではなくてもっと実験的な、簡単なアセンブリコードをRubyスクリプトからハイパーバイザへ投入する仕組みを実装したのでこれを紹介します。 ruby-virtualmachine ruby-virtualmachineというgemを作成しました。 これを用いて、任意のアセンブリコードをアセンブル・ロード・VM上で実行、までの一連の処理をわずかな行数のRubyスクリプトで行えます。 インストール BHyVeが正常動作するFreeBSD 10.0以降の環境が必要です。 インストールコマンドは以下の通りになります。 $ gem in

    任意のアセンブリコードを仮想マシンで実行しちゃうRuby gemを作ってみた - syuu1228's blog
  • ELFの動的リンク(1) - 七誌の開発日記

    これから2回に渡って、ELFの動的リンクについて見ていきます。 ※ 試験的に文中の図はインラインSVGで描いています。(ソース) ELFファイルの中はセクションとセグメントで二重に分割されています。属性が共通するセクションをグループ化したものがセグメントです。セクションはリンカ、セグメントはローダで処理することを想定したブロックです。 ELFファイルの構造 ファイルの先頭にELFヘッダがあり、その直後にセグメントの構造を示したプログラムヘッダがあります。 readelfコマンドでプログラムヘッダを確認します。ここで分析するバイナリは以下のサンプルプログラムの stest/a.out です。 https://bitbucket.org/7shi/elf-dyn ELFファイル ELF header program headers .interp .hash .dynsym .dynstr .

    ELFの動的リンク(1) - 七誌の開発日記
    ryochack
    ryochack 2014/01/28