この記事は カーネル/VM Advent Calendar の29日目の記事です。
趣旨に合っていないとは思いますがそれはご愛嬌ということで...
間違っている所があればコメントで教えていただけると嬉しいです。
0.EFI シェルとは
BIOS(Basic Input/Output System)に取って代わるEFI (Extensible Firmware Interface)
というものがあり、EFIシェルというものが入っているそうです。(入ってないのもあるらしいのですが)
VirtualBoxでそのEFIシェルを使えるということで使ってみました。
1.VirtualBoxでEFIを有効化
EFIを有効化したい仮想マシンの設定の「システム」の「EFIを有効化」のチェックを入れるだけです。
2.起動してみる
少し放って置いたら、こんな画面が出てきます。

これでEFIシェルが起動しました。
3.遊ぶ
helpコマンドで使えるコマンドが一覧で出てきます。-bをつけると分けて表示するようになります。
helpコマンドで出てくる通り、dateやらmkdirやらmountやlsなど、普段使うようなコマンドをOSを起動することなく使えます。
中でも面白いのがeficompressで、ファイルの圧縮ができるそうです。
ただ、生成したファイルをMacのfileコマンドで調べてみると「data」としかでてこないので
フォーマットが独自(?)らしく、使い道は限られるような気がしますが。。
バイナリエディタではファイルだけでなくメモリのデータの編集もできるみたいです。
例としてフロッピーディスクに test/hello.txt を新規作成してみます。
EFIシェルが起動した後に以下のようにコマンドを打ち、ファイルを編集して保存します。
fs0:
mkdir test
cd test
edit hello.txt

すると

このようにちゃんとファイルができています。
4.EFIアプリケーション
EFI Dev Kit を使用して開発しているようです。
また、EFIシェルのソースコードはSourceforge.netで公開されています。
EFIアプリケーションではEFIシェルのpingコマンド(ソースコード)のように
NICなどを使えるので 、気分転換にTwitterクライアントの自作でもしてはいかがでしょうか。
最後に
Macで手抜きEFIアプリケーションのTwitterクライアントを作ろうとしていましたが、
何がいけないのかこのような画面が頻発するので諦めました。