投稿

2012の投稿を表示しています

漫画サイトいくつか

・ワンパンマン http://galaxyheavyblow.web.fc2.com/ 村田先生の書くワンパンマンのリンクもここに。 ・ヒトクイ http://comichitokui.web.fc2.com/index.html ・魔法陣グルグル2 http://www.ganganonline.com/comic/guruguru2/ ・裏サンデー http://urasunday.com/index.html 平日毎日更新。 ・ろくでなしの詩 http://rokudena-shi.com/top.html ・戦勇。 http://seiga.nicovideo.jp/comic/1

LLVM debug

適当にディレクトリを作る。 mkdir llvm-debug そのディレクトリに入って、svn でソースを引っ張ってくる。 svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm 引っ張ってきたソース内で、 cd llvm/tools svn co http://llvm.org/svn/llvm-project/cfe/trunk clang cd llvm/projects svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suite 最初に作ったディレクトリ(ex.llvm-debug)と同階層に、ビルド用のディレクトリを作る。 mkdir build その中で configure する。 cd build ../llvm/configure --disable-optimized --enable-debug-runtime --enable-debug-symbols --prefix=/(置きたいディレクトリ)/ make で、gdb で実行すればデバッグできる。 参考 LLVM を GDB でデバッグする

尚巴志ハーフマラソン報告

 前回の記事で話した尚巴志ハーフマラソンですが、無事に走り切ることが出来ました。  開始 5km から 7km にあった急な上り坂と、13km から 15km くらいの下り坂がめちゃくちゃ大変でした。膝を傷めないか心配です。  ですが、情報系の学生としても、走り切れたことは体力にある程度自信が出ます。    一緒に走った学生もほぼ完走しているので、良い感じです。  ……しかし、12月にある那覇マラソンが、ハーフマラソンに出たことによって現実味のある非現実的な長さに感じます……。  那覇マラソンはフルマラソン。42.195km を走ります。ハーフマラソンで体ガタガタなのに、その2倍とか……無理なんじゃ……みたいな思考に押しつぶされそうです。が、一応頑張ってみます。  今回出場した方も、お疲れ様でした。

尚巴志マラソン

 出場します。出動?  開催日は今週の日曜。南城市で行われます。ハーフマラソンなので距離は 20km 。  いやー。あの、あれです。超長い。  2年ほど前から、せめて一ヶ月に1回以上は走ろう、と習慣づけていました。そして去年、那覇マラソンが行われたことを受けて、同級生と「来年出場するか。一年もあればトレーニングして 42km 走れるだろう」ということから、出場を決意。  気がつけば3月。研究室配属も終わり、研究室での机も割り当てられ、研究テーマも決まりそれに向けて走る。でもトレーニングでは走らない。  7月。夏寸前。少しでも走ろうと、2週間に一回くらい走るようになりました。  そしていま。1週間に2回、頑張って走っています。10km ちょいしか走れないのですが。走れないのですが!!  20km ってやばくないですか。しに長い。しかも12月には那覇マラソンが控えています。42,195 km 。なにその途方も無い数字。  今日も走って来ました。でも 10km ちょい。あと1回か2回は走って、体力回復して本番に望みます……。

最近やったものとか

デモンズソウル 一周しました。200回死にました。これは死にすぎ。ほかのやつより低レベルでクリアしよう、とアクションゲームセンスの無い自分にしては無茶な挑戦でした。結果、他にやってるやつより倍近く死にました。低レベルも言うほど低レベルではなく、レベル80ちょい必要なところを60でクリア、というなんとも中途半端な挑戦。こいつを倒せばクリアに等しい敵に20~30回は殺されているのでは、というくらいボコボコにされました。 いやあれ、ちょっと話題はそれるけれど、もしソードアート・オンラインの世界に自分が行ったら、攻略組として出張るも調子に乗りすぎて、一人で間違って強敵にあって負けて死ぬというパターンになりそう。序盤で。 何が言いたいのかというと、ろくに装備も整えず必要な武器も揃えずアイテムの効果も考えず、なのに低レベルで敵の攻撃確1確2のダンジョンに突っ込んでいくという愚行をこなしていた結果でした。YOU DIED という文字が無情。特に、近道のないダンジョン最下部まで行ってボスやボス手前で死んだ時の精神的ダメージが大きい。なにせダンジョンの一番最初に戻るのだから。「また、あの強敵どもを倒し無視してあそこまでいくのか」と思うと、その日は笑顔でPS3の電源を切ったのでした。 ダークソウル まだ購入していません。 デモンズソウルの続編——ではなく、操作が同じだがゲームシステムがちょっと変わる別世界が舞台です。10/25にステージが追加されたアペンド版が出るそうなので、それを待つ感じ。いま本編購入して、アペンドの部分のみDLCから購入するというのも手ではあるのだけれど、なんと今月末は中間発表。口頭発表はしないのですが、書くべき原稿があるのでゲームしてる場合じゃない。でも早くやりたい。 めだかボックス外伝 グッドルーザー球磨川『水槽にうごめく脳だらけ』 買った次の日には読み終わってました。少年誌の外伝なのに、この内容はどうなのかという疑問がちょろちょろ出てきます。球磨川節炸裂。めだかボックス信者な俺としては、めいいっぱい精一杯楽しめました。「大嘘憑き」最盛期、水槽学園時のスピンオフ漫画「グッドルーザー球磨川」のその後。語り部がいい味だしています。 めだかボックス信者ならぜひご一読。そして読んだ人は飲みに行こう(カルピスとか)

Unity

Unity については大して書いてません。ただの雑記。 最近はめっきりソースコードと戯れる(たむわれるってうって修正した、恥ずかしい)ことが多くなって、良い感じに情報系の人間のような振る舞いをみせています。  ひっそりと参加しているプロジェクトの足を引っ張っているので、ここをなんとかしつつ、更にいい加減学会に発表したいですね。  後輩が授業の実験で、 Unity を使ってゲーム作成するようなのですが、どんな苦難が待ち受けているのやら。 http://japan.unity3d.com/  上記が Unity 。遊び半分でインストールして起動して怯えました。高精細なグラフィックがいきなり出てきます。遊び半分なまま Unity 閉じました。教官に「情けない」と言われそうです。  まぁでもどのみち結局、手伝いはしそうなのでちょこちょこいじってみようかと思います。

台風17号

 2週間毎に台風が来るので、2週間毎にいろいろ中止になります。  中止になることで別に困ることはないイベントが多いのですが、3回連続で「歴史的な強さ」という称号を持って沖縄に突っ込んでくるのはそろそろ勘弁して欲しくなります。毎回大したことのない被害なので助かってはいますが。  いい加減なにか成果を挙げないといけないのですが、なぜかやる気が起きません。いろいろ詰まっています。しっかり考えて動かなければ。

台風16号

 15号の時もそうでしたが、台風直撃コースです。  ここのところ毎日アルバイトに勤しんでいたので、日曜に設定していたアルバイトの予定が中止になったときは少しだけ嬉しかったような気がします。お金が足りないことには変わりないので来週にいれましたが。  15号同様、今回の台風も接近前は騒がれていましたが、実際に通過している時は、普通の台風より少し強いかな、くらいの感想です。  ちなみに今現在も暴風域です。  15時には暴風域から抜けそうです。溜まってる仕事片付けないと。

Ruby on Rails の勉強用サイト。

Documentation Ruby on Rails Documentation Tutorial Ruby on Rails Tutorial チュートリアル。 まとめ 【初学者】Ruby On Rails習得最短ルートまとめ [NAVER まとめ] このあたりを使って Rails 勉強していきます。

grub2 install

実行環境は VMware Fusion 5 上の Fedora17。 grub2 を 適当なHDDにインストールします。 % sudo grub2-install /dev/[hddname] のような感じでインストールできます……が、なぜかパーティションまで指定すると、エラーが出ました。 例えば、 % sudo grub2-install /dev/sdb2 のようにするとエラーでした。ちゃんと接続されてない扱いされていたみたいです。 %sudo grub2-install /dev/sdb だと成功。こんなものなのでしょうか。

grub2

grub2 のコマンドいろいろ。 >ls 接続されているデバイスとパーティションの表示。 >set root=([device],[filesystem]) root にセットするデバイスとパーティションの指定。 上記の ls コマンドで表示されたものが指定できる。 >linux [linux] Linux をロードする。 >multiboot [kernelname] >multiboot2 [kernelname] multiboot specification / multiboot specification 2 に準拠したOSを設定する。

missing files (mercurial)

Mercurial は、 % hg remove [ファイル名] としないと、ファイルを消したことを認識してくれません。 というか、一応認識してはくれるんですが、commit 時に nothing changed (2 missing files, see 'hg status') とかいうメッセージが出てしまいます。 そういう時は、メッセージに書かれている通り % hg status として、先頭に「!」がついているファイルを、上記の hg remove を使って Mercurial にファイルを消去したことを教えます。 そうすると、 % hg commit -m "commit massage" % hg push というように通ります。

Fate / Zero iPhone4/4S ケース

これは欲しい……! 今使ってる iPhone ケースがもう少しだめになったら買ってもいいかもしれません。 原作からアニメまで見て、それでも飽きさせない作品だったので。

カタン・ドミニオン

昨日から今日にかけて、友だちの家に泊まって遊んできました。 ボードゲームと、P4U をやったのですが、ボードゲームで幾つか印象に残ったものがあります。 以上の2つと、「カタン」というゲームです。 カタン以外は初めてやりました。 テキサスゾンビーズ 「テキサスゾンビーズ」は、「道具」と「状況」の2つの山札があり、一人3枚「道具」手札を持ちます。一人のターンに一回、「状況」の山札をめくり、その札に書いてあることを手元の「道具」の札で切り抜けます。 ただ、その「状況」に対して自分の「道具」の手札が効果的な道具であるとは限りません。しかし、その道具をつかってどう切り抜けるかを、他のプレイヤーが納得するように説明します。最後に他のプレイヤーに、納得できたかそうでなかったかを判定してもらい、多数決で決めます。多数決で納得だとでたら、その「状況」の札を貰うことができます。 最終的に、「状況」の札の中に終わりが示されたカードが現れるとそこで終了し、ランダムな2つのグループに分かれて、グループ内の合計の「状況」札の数を競います。 このゲームの難しいところは、「相手をどう納得させるか?」です。ってそりゃそうなんですが。面白ければよいという人もいれば、理屈が通ってないと駄目、という人もいる。この「理屈」も、通っていると思っていても他の人には無理があると思われたりします。その、他人の境界線を見定めながら説明することが大切です。 自分は苦手なゲームだろうな、とするまえに想像していましたが、やっぱり苦手でした。 ドミニオン 有名なボードゲームみたいです。 目的は「デッキの構築」という、カードゲームをやったことのある人が少し驚くタイプです。 ゲームをデッキを構築しながら進めていきます。 コイン、勝利点、アクションカードがあります。コインカードは金貨、銀貨、銅貨があり、アクションカードは勝利点カード、コインカードなどを購入数することができます。アクションカードはデッキや他のプレイヤーにたいしてなんらかのアクションを行うことができ、勝利点カードは最終的にデッキの中に勝利点カードの合計点数がどれだけ残っているかで勝利が決まります。 1回しかプレイできなかったので、何がコツでなにが要らないのか、どうすれば効率が良くなるのかはわかりませんでした。とりあ

TYPE‐MOON 10th Anniversary Phantasm

見てからすぐに注文しました。 TYPE-MOON ファンとしてすごく楽しみにしてます。

Mac OS X Mountain Lion で gcc make

command line tools を install したあとの Mountain lion で、 % ls -l /usr/bin/ | grep gcc lrwxr-xr-x 1 root wheel 12 Jul 28 15:48 gcc -> llvm-gcc-4.2 lrwxr-xr-x 1 root wheel 28 Jul 28 15:48 gcov-4.2 -> ../llvm-gcc-4.2/bin/gcov-4.2 lrwxr-xr-x 1 root wheel 52 Jul 28 15:50 i686-apple-darwin11-llvm-g++-4.2 -> ../llvm-gcc-4.2/bin/i686-apple-darwin11-llvm-g++-4.2 lrwxr-xr-x 1 root wheel 52 Jul 28 15:50 i686-apple-darwin11-llvm-gcc-4.2 -> ../llvm-gcc-4.2/bin/i686-apple-darwin11-llvm-gcc-4.2 lrwxr-xr-x 1 root wheel 32 Jul 28 15:50 llvm-cpp-4.2 -> ../llvm-gcc-4.2/bin/llvm-cpp-4.2 lrwxr-xr-x 1 root wheel 32 Jul 28 15:50 llvm-g++ -> ../llvm-gcc-4.2/bin/llvm-g++-4.2 lrwxr-xr-x 1 root wheel 32 Jul 28 15:50 llvm-g++-4.2 -> ../llvm-gcc-4.2/bin/llvm-g++-4.2 lrwxr-xr-x 1 root wheel 32 Jul 28 15:50 llvm-gcc -> ../llvm-gcc-4.2/bin/llvm-gcc-4.2 lrwxr-xr-x 1 root wheel 32 Jul 28 15:50

イタリアン。トマト克服への道02

モウ、というお店に行って来ました。イタリアンです。 メインの料理はパスタやピザ。でた料理の名前は覚えていませんが……。 ブログ書く気あるのか、って感じなのですがまぁ日記です。 トマトと生ハムの冷製パスタを食べました。 ……前の記事でも書いたのですが、私はトマトが大の苦手。グレープフルーツくらい苦手です。 「生ハム美味しそうだな」 と思い 「じゃ、これにします」 って言ったあとに気が付きました。しかし目の前にいるのは、「トマト苦手なのは子供」とおっしゃった方。これはやばい。あとに引くにも引けず、注文を通してしまいました。 注文通したあとはお冷。なんとお冷がおしゃれな、まるでワインが入っていたかのようなボトルに入れられて出てきました。飲むと酔いそうです。グラスもワイングラス。場違いな気がしてなりません。 少し雑談して、一番最初に他の人の野菜のクリームパスタが届きます。いやあ、それにすればよかった。本当に。 特にこの瞬間は心からそう感じました。味見させてもらって美味しかったし。羨ましい。 暫くして、ついに冷製パスタテーブル着。赤い。とてつもなく赤い。ソーメンのような麺に、大量にかかった真っ赤な何か。いえトマト。小さめに切られたミニトマトの飾り付けがおしゃれです。余計なことを……。 生のトマトは苦手ですし、もちろんミニトマトも苦手。というかむしろミニトマトのほうが苦手。なんかトマトの酸っぱさというか、トマト特有の味が強い気がします。 恐る恐る口に運んでみます。小学生の頃は生のトマトを食べると、「うぇっ」っていうゲップのような吐くのを堪えたような感じになったのですが、今日はそういうリアクションをするわけにも行かないので、覚悟して食べます。 ……ん、そんなにトマト酸っぱさというか、の風味がない? もちろん「そんなに」なので多少はありますし、自分の苦手とするものではあるのです……が、これは薄い。もっとえっちらおっちら食べるハメになるのかと思っていたのですが、結構するする食べることができました。 曰く、日本のトマトは酸っぱい傾向にあり、海外のトマトのほうが美味しいそうです。海外の農家の採りたてトマトの美味しさときたら、とんでもないものだそうです。イタリアのトマトとか。 という話を聞いていたので、実はこの店海外のトマト使っているのだろうか。

Mac OS X Lion で x86_64 ELF

64bit の ELFプログラムを、Mac OS X で開発するための過程です。 英語のサイト参考にしていますが、日本語の訳が適当だったり間違ってたりする恐れ有ります……。 用意するのは以下の2つ。 binutils gcc 例えば、 $HOME/cross というディレクトリを作って、 mkdir build-gcc build-binutils COMMON_INSTALL とかする。 gcc はソースコードとは別のディレクトリで configure 、 make する。 binutils クロス開発環境に必要なツール群。gcc より先に make する。 ../configure --prefix-$HOME/cross/COMMON_INSTALL --target=x86_64-elf --enable-64-bit-bfd make install --enable-64-bit-bfd BFD library を使用。 BFD library は binutils がすべてのファイルにアクセスすることに使われるメソッド。 gcc 言わずと知れた gnu コンパイラ。 newlib をダウンロード、コンパイルし、そのディレクトリの位置にシンボリックリンクを貼る。 ln -s newlib-x.x.x $HOME/cross/build-gcc ../configure --prefix=$HOME/cross/COMMON_INSTALL --target=x86_64-elf --disable-bootstrap --enable-languages=c --enable-checking=tree,rtl,assert,types --disable-nls --with-newlib --without-headers --disable-libssp --disable-libquadmath make install --with-newlib シンボリックリンクの貼られた newlib を使用。 --disable-bootstrap ブートストラップビルド(ビルドしたプログラムを使って再ビルド)をさせない。 --without-headers gcc

トマト克服への道01

私はトマトが苦手です。 あの独特な風味と、潰れるような食感が苦手です。食わず嫌いではなく、普通に食べて普通に苦手です。 なんですが、あることがあって、トマト嫌いを克服しようと思いました。 研究室の教授と先輩と、ご飯を食べに行った時のこと。 頼んだ定食に生のトマトが付いており、それを見て教授さんが気になったらしく、 教授「トマト嫌いなの?」 私「そうですねー、苦手ですね」 教授「ふーん。トマト食べられないってのさ、ガキっぽいよねー」 ——くっ! 教授「トマト食べられない人と、お酒呑めない人は子供っぽいよ」 私「…………」 両方でした。 一応、トマトは生でなければ食べられはします。ちょっと加工されたものなら。スパゲッティミートソース美味しいし。 お酒は大体一杯ないし二杯(見栄)くらいで限界を向かえます。強烈な頭痛に襲われ、吐き気を催します。その強烈さから、酔わない程度に飲もうとするので大体1杯、もしくは誤魔化し誤魔化しで一杯も飲まないまま飲み会を過ごすときもしばしば。 とりあえずその場は、 「今日は置いといて、明日から本気出します」 みたいなことを言って、誤魔化せた(?)ので、次回には何とかできてなければならないし、そこまで言われて黙っていられるほど大人でもありませせん。あれ?子供って認めた? 「お酒は克服できるものではない、お酒の弱さは持って生まれた物」という噂を聞いたことがあるので、お酒は諦めてせめてトマトくらいは克服しよう、と行動を起こしました。 というわけで、料理に(自分より)詳しい hiyoko 君(仮名、男)の力を借りて、トマトに挑戦。 作り方はとっても簡単です。 1.トマト輪切りにする。 2.モッツァレラチーズのせる。 3.オリーブオイルかける。 4.塩コショウかける。 以上! 食べてみました。最初の一口はフルーツみたいな感じ。甘い。で、次から塩コショウの風味があって、もろにトマトの風味が。恐らくしかたのないことだとは思うのですが、苦手な風味が鼻を貫きます。 克服には時間がかかりそうです……。

Ubuntu 12.04 for python 3

Ubuntu 12.04 で Python3.2 使いたいと思ったけれど、Ubuntu で Python 3.2 を探してもソースコードからコンパイルしか無い……って悩んでいたが、普通にありました。 sudo apt-get install python3 でインストールできます。 % python3.2 Python 3.2.3 (default, May 3 2012, 15:51:42) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 参考 http://askubuntu.com/questions/134747/how-do-i-run-python-3-2-3

安定期。

親が少しだけ自分の生活環境を作れてきてるようなので安心。今年はじめにいろいろとパタパタして、大変だったんだけれど自分の生活を安定させることができたようで。県外に働きに行きたいと考えているけれど、親の面倒は誰が見るのかという問題はいまだに残ってる。というか県内に残ることになりそう。  所々の事情のせいで、普通「子供には旅をさせろ」という言葉に則り親は若いうちから県外に行ってこい、と言いそうなものだが私の家庭はちょっと反対。片親のせいでもある。母子家庭。  たくさん勉強している気でいたが、実はあまりしてないことが判明していてよろしく嬉しくない。  英語が必要で、英語の授業をとっているのだが、課題提出のためのメールに割かれる時間が多い。一応リスニングの課題が多いため、微に入り細を穿ち聴きこまなければならないのでリスニングの力は上がっている。先週 TOEFL を受けてみて、確かに聞こえるようになって入ると実感した……が、意味はわからない。  次の課題は「聞いて意味がわかるようになること」。結構距離がある。  寝付きが悪くなり、最近は結構絶望的に起きる。10時に寝て、2時とかに起きて寝れずにそのまま4時辺りでやっと寝て、9時に起きる。上のたくさん勉強している気でいたというのも、この眠りのせい。夜起きて英語さわるも、2時間しないうちに眠くなる。痒くなる。風呂に入りたくなる。  そうだよ、ないんだよ集中力!  そして眠りが中途半端だから、更にまた早い時間に眠くなり……という悪いサイクルを繰り返している。こういうのは無理やり起きるか無理やり寝るかを選択して一日過ごせば、くるりと良好なリズムに戻るのでそろそろ狙って行きたい。 「10時から2時の間に疲れがとれ、4時までは内臓の修復」という情報を耳にした。ソースの確認はしていない。10時に寝られる20代はあまりいないと思う。無理した生活リズムになるような気がするが、受けられる恩恵を考えると挑戦してみたい気もする。周りもそういう環境でなければならない。あと課題を毎日ちゃんと少しづつ進めないと、寸前になってバカ起きることになる。  やっぱり守るのは難しい。 ともあれ寝付きのせいで遅刻やサボりが多いのが難点。授業全部出席する意気込みの真面目学生な私でも、寝過ごす。一限は早い。もう少し遅くできないのだろうか。高校の生活リ

make error "Circular"

Circular start.o <- start.o dependency dropped. make のエラーでこういうのが出ました。 参考のサイトを調べてみると、依存性が循環しちゃってるみたいでした。 というわけで Makefile を見てみると、 start.o: start.c start.o main.o おおい、start.o 生成するのに start.o が使えるわけねーじゃん! という可哀想なオチでした。 参考 http://www.ecoop.net/coop/translated/GNUMake3.77/make_16.jp.html

linux kernel 3.3

linux kernel の 64bit mode への移行はどうやら、 linux-3.3/arch/x86/boot/compressed で行われているようです。 どこかのサイトで arch/x86/kernel/head.S の様にあったものは、head_32.S と head_64.S というように分割されたみたいです。 まだしっかりアセンブラのソースを読めているわけでは無いですが。 long mode に関する書籍や資料があまり見つかりません……。

金環日食

確かに欠けてました。  沖縄でも無事見ることができました。  綺麗な金環では無いですが……。

Windows にいれるもの

再インストールするときの覚書。 Skype Windows Live Messenger Evernote Drop box Tera Term Thunder bird Google 日本語入力 Google Chrome Win SCP VMware Player Lhaplus Cygwin mikatype kbdapple(bootcamp の場合のみ)

Mac OS X にいれるもの

Mac OS X 再インストール用覚書。 文書編集 Evernote Google 日本語入力 ブラウザ GoogleChrome ユーティリティ Alfred Drop box GrandPerspective コミュニケーション Twitter.app Skype Thunder bird ソースコード編集 iTerm2 Eclipse Xcode 動画閲覧 MplayerX 仮想化 Virtual box 画像編集 Pixelmator OmniGraffle FreeMind

使用したコマンドまとめ

使ったコマンドをまとめていきます。 記事が長くなったら分割するかもしれません。 dd if=/dev/zero of=fd.img bs=1k count=1440 if を of にコピーする。入力に /dev/zero を使用しているので全データ NULL のファイルが作成できる。 ファイルサイズは count x bs 。count がブロックサイズ数、bs がブロックサイズ。 参考URL dd http://x68000.q-e-d.net/~68user/unix/pickup?dd

情報セキュリティスペシャリスト試験・終了

明けて次の日になりました。 意外とできたんじゃないかなぁ、と言うのが感想ですが、この感想を抱いたときは大抵悲しい結末で終わったりするので笑えます。 午前IIで落ちてたりとか。 採点自体はまだやってません。時間を見つけてやってみます。 選んだのは 午後I:問2 問3 午後II:問1 でした。 難易度自体は簡単なように感じましたが他の人はどうだったんでしょう。 とりあえず一仕事おえて、ゼミの準備に入ります。

情報セキュリティスペシャリスト

明日(今日)は国家試験です。 情報セキュリティスペシャリスト。 受かる気がしません。 もうちょっと勉強すればよかったです。 今までの戦績は 一回目 午後II落ち 二回目 午後I落ち 今回は三回目です。 午後の対策はほとんどしていません。午前は終わりました。 前期の授業でセキュリティがあるので、これ終わってから受けたかったなぁとか。 いえいえ、全て怠けた自分の言い訳です。 さーて、どうなるんでしょう。

Mac OS X Lion による EFI 開発環境

ただの悩みまとめです。 32 bit 環境は以下のページを参考に構築出来ました。 http://osxbook.com/book/bonus/chapter4/efiprogramming/ gnu-efi 自体の make install は正しく通りませんが、「hello.efi」形式を出力することは出来ました。 ただ、私が欲しいのはEFI 64bit 開発環境なので、これではまだ足りません。 Mac OS X Lion は 64bit EFI 対応なので、Apple が Mac OS X を使って Mac OS X を開発しているならこの問題を解決していると思いますが……。 上のページを真似て gcc binutils glibc gnu-efi の最新版をインストールしようとしたら、glibc の make でこのプラットフォームは対応していないので開発グループに参加してはどうかと進められます。 やっぱりどうにかして EDK II を Mac OS X でビルドするしかないのかなー。

VMware Player で xv6

前回 Fedora で make した xv6 を、VMware Player で動かしてみます。 変換 もともと raw 形式なので、vmdk に変換します。 これは Fedora 上で実行しています。 % qemu-img convert -f raw xv6.img -O vmdk xv6.vmdk % qemu-img convert -f raw fs.img -O vmdk fs.vmdk 2014/06/07追記 上記ではできず、下記で出来るようになっています。 % qemu-img convert -f raw -O vmdk xv6.img xv6.vmdk % qemu-img convert -f raw -O vmdk fs.img fs.vmdk qemu の機能を利用します。 vm 同士の形式を変換するコマンドがついてる。 VMware Player で起動 Windows7 へ Fedora から コンバートした上の2つの xv6.vmdk と fs.vmdk を WinSCP をつかって移動します。 VMware Player を起動します。 その後、 新規仮想マシンの作成 →あとでOSをインストールを選択→次へ →ゲストOS、バージョンをその他に→次へ →適当に仮想マシンの名前をつける→次へ →特に触らず次へ→完了 とします。 できた仮想マシンの設定を開き、「追加」を押します。 →ハードディスクを選択→次へ →「既存の仮想ディスクを使用」を選択→次へ →ディスクファイルに、先程 Fedora から持ってきたコンバートし終えた「xv6.vmdk」を選択→完了 とします。fs.vmdk も同じようにハードディスクとして追加します。 終わったらできた仮想マシンを起動し、BIOSの設定画面を開きます。 xv6.vmdk → fs.vmdk の順に boot するように設定して起動します。

xv6

MIT の教育用OS xv6 を Fedora 15 で make した時のメモ。 普通に make しても通らないので、エラー文をみると -lgcc が見つからない、と言われます。 実はそれ、/lib の下の libgcc_s.so.1 の事なので、そこにシンボリックリンクを作成します。 % ln -s /usr/lib/libgcc_s.so /lib/libgcc_s.so.1 みたいなかんじ。 fedora に ssh アクセスしているのなら、 % make qemu-nox のようにやると良いみたいです。

Java Pathfinder

久々の更新です。課題で使って引っかかったので、今回は Java Pathfinder ( JPF ) の使い方。 環境は Mac OS X Lion です。 Java のバージョンは Java6 。まだ Java7 では動かない模様。 +追記 03/10 動くみたいです。java7 。 JPF公式サイト http://babelfish.arc.nasa.gov/trac/jpf がっつり英語です。 Mercurial から Mercurial が必要です。 % hg clone http://babelfish.arc.nasa.gov/hg/jpf/jpf-core 実行した階層に、jpf-core というディレクトリが作られます。 site.properties ファイルを作る ホームディレクトリの下に、.jpf というディレクトリを作ってその中に入れます。 % cd ~ % mkdir .jpf とかってやります。 下記のように、site.properties を作って編集。 下記は projects の下に hg clone してます。 # JPF site configuration jpf-core = ${user.home}/projects/jpf/jpf-core # numeric extension jpf-numeric = ${user.home}/projects/jpf/jpf-numeric # annotation-based program properties extension jpf-aprop = ${user.home}/projects/jpf/jpf-aprop extensions=${jpf-core},${jpf-aprop} #... and all your other installed projects Build jpf-core へ移動します。 % bin/ant test やってみます。私はこれが通らなかったけど使えるようにはなりました。 使い方 % [jpf-core path]/bin/jpf +classpath=. [package name].[main class name]

研究

大学の研究で、OS書きます。 遠い道のりそうだけど、せいぜい頑張る。

OpenMPI

授業で必要だったので、 MacBook で OpenMPI を使ってみました。 使う前に「あぁ、でかいなぁ」とか思う感じで。 インストール とりあえず OpenMPI をインストール。 安定の MacPorts ……ではなく、そろそろ Homebrew にしてもいいかなぁとか考えてます。 ……が、MacPorts で。 sudo port install openmpi とかそんな感じで。 めっちゃ時間取ります。測ってはいませんが、体感時間は20分とかでした。 超絶。ずっとMacBookがあほみたいに悲鳴上げます。port のせいなのですかねぇ。 MacBook Pro の Core i5 ですが。 使用 open mpi のコマンドがいくつか。 openmpig++ openmpicc openmpirun とかあります。 使うのはC言語なので、 openmpicc でコンパイル。 その後、 openmpirun -np 5 のように実行します。実行時は上記の場合5スレッドで、同じプログラムを動かします。 なのでSPMDでコードを書くのになれないといけないようです。

Windows 7 でのCapsLock を Control に

イメージ
レジストリをいじるので、Windows の挙動がおかしくなるかもしれません。 自己責任でお願いします。 レジストリエディタ スタートメニューから検索で regedit と検索し、 regeedit.exe を起動。 レジストリエディタが起動します。 編集 左側のフォルダを、 HKEY_LOCAL_MACHINE→SYSTEM→CurrentControlSet→Control→Keyboard Layout と降りていき、Keyboard Layout の上で右クリック。 下に2つほどフォルダが見えるけど気にしなくていいです。 そこから、 新規→バイナリ と選んで、Scancode Map と名前をつけます。その後そのファイルを開き、 値のデータ欄に 0000 00 00 00 00 00 00 00 00 0008 03 00 00 00 1D 00 3A 00 0010 00 00 00 00 00 00 00 00 0018 と入力し、OKをクリックしてPCを再起動します。 参考 <http://www.papepopc.com/windows7/2009/11/0003.html> <http://uguisu.skr.jp/Windows/winCaps.html>

相互インクルード対策

C++ を使っていて、相互にインクルードしなければならない状況が起きた。 相互にインクルードするとたくさんエラーが出たので片方を抜いた。 そうすると、片方は定義されておらずもう片方が多重定義、みたいな状態に。 Task.h taskQueue.h 以外にもソースファイルがあるので、それらも関係して多重定義担っている模様。 In file included from taskQueue.h:1, from Run.h:2, from Run.cc:5: Task.h:24: error: ‘taskQueue’ has not been declared In file included from Run.h:2, from Run.cc:5: taskQueue.h:5: error: expected unqualified-id before ‘[’ token In file included from Run.cc:6: Task.h:4: error: redefinition of ‘class Task’ Task.h:5: error: previous definition of ‘class Task’ 修正前 taskQueue.h #include "Task.h" class taskQueue { Task task; } Task.h #include "taskQueue" class Task { taskQueue task_list; } と言った感じ。 どうにもエラーが取れないので、いつも通り Google 先生にお伺いを立てる。 こういったページを見つけた。 <http://d.hatena.ne.jp/arvitos/20090213/1234519302> これを解決するには、前方宣言という方法を使う必要があるらしい。 という訳で、上の2つのファイルを修正。 修正後 taskQueue.h class Task; class taskQueue { Task task; } Task.h class taskQueue; class Task { taskQueue task_list

マルチブート

Ubuntu と Windows 7 のマルチブートしてたんだけど、親も使うということなので Windows 7 のみにしようとして行った作業。 MiniTool Partition Wizard Home Edition を使って Ubuntu のパーティションを削除して、はいさようなら。 というわけには行きませんでした。 再起動すると、 grub rescue > なんてものが。 なんだろう、と思ってとりあえず Google さんにお尋ね。 ここを参考にすると、 <http://blog.livedoor.jp/braahmana/archives/1590075.html> するとどうやら、boot loader を Ubuntu の grub が乗っ取ってるっぽい。 一応、 grub rescue > ls で見たあと、 grub rescue > (root partition)/boot/grub とかで選べるっぽいが、Ubuntu のパーティション限定。 自分は Ubuntu のパーティション消したから手遅れ。 なので別の手はないかな、と調べてみたら、 <http://anond.hatelabo.jp/20091031011858> に行き着いた。なるほど。 という訳で、 言われたとおりに ・Windows 7 のインストールディスク投入 ・言語、時間、キーボード ・左下の修復ツール ・完了を押す ・「コマンドプロンプト」を選択 そして開いたコマンドプロンプトに、 bootsect /nt60 ALL /mbr といれると成功。