« January 2009 | Main | March 2009 »

2009.02.25

就活むずい

http://d.hatena.ne.jp/yuki_neko_nyan/20090225/1235549390から流行っているみたいなので、やってみました。

・UNIX
 ・使用 OS は何か (FreeBSD/Linux/Solaris/UNIX)
  FreeBSDが一番多い。次Minix、ISEが落ちるので仕方なくLinux
 ・grep/tar/find の使用経験★
  grepは秀丸から、tar -xvzf派、findはlocateで見つからないときのみ。
 ・cron 設定経験★
  無し
 ・パーミッション (chmod 777, chmod rwx など) の意味★
  777で全開
 ・ディレクトリに対する r/w/x はそれぞれどういう意味を持つか (ファイルに対するr/w/x との違いは何か)
  やってみれば分かると思う。
 ・1755・2755・4755 それぞれの意味は何か★
  スティッキー?
 ・パッケージ管理には何を使っているか
 ports
 ・configure からアプリケーションをコンパイルしたことがあるか
  いろいろ。systemcとか。
 ・共有ライブラリとは何か
  共有しているライブラリ。DLLの事。組み込みじゃ使わない。
 ・シェルの役割を示せ (sh や csh が以下の入力を得た後、何を行うか)★
  ・第一段階: コマンドラインにて ls とタイプしたとき
  ・第二段階: コマンドラインにて ls | sort とタイプしたとき
  MINIXの記憶をたどると基本はfork(),exec()、次にパイプ処理
 ・fork/exec する簡単なシェルを書けるか
  簡単なシェルの作り方が載っている本は持っている。
 ・子プロセスが親プロセスから引き継ぐもの、引き継がないものを、それぞれ数点あげよ  
  環境変数と入出力は引き継いだと思う。あと、誰が作ったかの情報。引き継がない物はPID、CPU time。

 ・言語
 ・どの言語が好きか。使用している言語のバージョンは(言語共通)★
  C99じゃないC、組み込みのC
 ・Perl
  ・どのモジュールが好きか
   memoize、HOPで出てきたから
  ・print と syswrite の違いは何か★
   ラクダの本みたらわかる。
  ・Web フレームワークには何を使っているか
   使ってません
 ・Java
  ・Web フレームワークには何を使っているか
   使ってません
  ・「クラス変数/インスタンス変数/ローカル変数のうち、スレッド
    セーフなのはローカル変数だけである」とはどういう意味か
    ローカル変数だけがスレッドセーフ><。
    多分ローカル変数だけ、スレッド毎のスタックに取るんだよね。

 ・PHP
  ・Web フレームワークには何を使っているか
   例えば避ける
  ・PEAR で利用しているパッケージは何か
   美味しいです
  ・php.ini で定義できる以下のディレクティブの違いを述べよ。★
   わかりません
 ・Ruby
  ・Ruby に対する熱い思いのたけを述べよ
   2chのスレはいつも楽しみに読んでます。
 ・C
  ・リンクリストを書けるか
   書ける。
  ・可変長引数な関数を記述したことがあるか
   やり方があるのは知っているが使った事はない。
   可変長の引数が入った領域のポインターを渡して、その先を自力で場合分けしたことはある。
  ・malloc(3)/realloc(3) にて、動的メモリ管理ができるか
   納品物ではしません。しなくてすむ方法を考えます。
   CreateHeap()は使った事がある。Tronでもなんかしたけど、malloc()ではなかったはず。
  ・printf(3) と write(2) の違いは何か
   標準関数とシステムコール
  ・Makefile を書けるか
   適当で良ければ
  ・コンパイル・アセンブル・リンクとは何か
   説明するにはスペースが足りないが、Cとアセンブラ限定なら詳しく説明出来る方だと思う。C++は駄目です。
  ・二乗を返すマクロ #define MY_POW(x) ((x)*(x)) の問題点は何か★
   マクロにするというセンス。まいぱうという響きと((x)*(x))がちょっと卑猥。

・コンピュータ基本素養
 ・エンコーディングとは。文字集合とは (ISO-2022-JP と JIS X 0208 を
  説明できるか)
  エンコーディングは符号化すること。文字はわからない。
 ・RFC を読んだことはあるか。
  鳩のやつは読んだ。
 ・テキスト領域とは何か。スタックとは何か。ヒープとは何か。
  CPUから見れば全部メモリ上のデータ
 ・ブラウザに URL を入力してから、ページが表示されるまでのステップを示せ
  リターンキーを押す→表示される
 ・BNF (拡張BNF) とは何か。簡単な例をあげよ★
  PASS

僕も採用ダメです><

| | Comments (3) | TrackBack (0)

2009.02.24

elfの思い出

http://shinh.skr.jp/m/?date=20090223
ごめんなさい。正直elfを舐めてました。

僕にとってelfヘッダーはROM化するにあたって削除しないといけない程度の物だったのですが、バイナリアンを目指すにはもっと大事に扱わないといけません。http://shinh.skr.jp/binary/shdr.htmlを三回読んで反省しているところです。

とはいえ、これはおかしい気がするんだ。努力の方向として。
http://shinh.skr.jp/binary/fsij061115/index.cgi?i=0

そんなこんなでelfに関する思い出(俺語り)のはじまりはじまり。

お仕事でFPGAでプロセッサを動かすという作業をするのですが、プロセッサは何かしらのプログラムが無いと動かなくて、そのプログラムはお客さんから提供して頂く、もしくは自力でハンドアセンブルするの2択になっています。

お客さんからプログラムを提供してもらう場合、FPGAですぐに動く状態でもらえることはまれです。こちらは純正の開発環境を用意しているのに、もらったファイルがgccで作ったelfというのはときどきあります。半導体作っている所は純正の環境があるんだけど、ソフト部隊はgccを使っていてるのでしょう。ソフト部隊が別会社だったりすると「ROMのイメージでください」が簡単にお願いできなくて、自力で何とかしないといけません。半導体作っている所とソフト部隊がお互い子会社な状況の場合、第三者にソースを開示するには2社の担当者同士では決めれず、ソースが出てくる事も期待できません。バイナリデータは出てくるのに不思議。

この手の仕事はネットワークに繋がらない場所での軟禁作業が基本になるので、elfでもらっちゃうとelfのフォーマットを調べる方法がありません。しょうがないので、最初の命令のbitパターンとプログラムのサイズだけ教えてもらって、そこからプログラム(.text)を抜き出します。現地でツールを作ったりしても、作業最終日に作業用PCのHDDを全部フォーマットして帰るので、そこでツールは消えてしまいます。非常に残念です。撤退後にその手のツールをもう一度作ろうとも思うのですが、今度はターゲットCPUのelfファイルが手元にないとか、プロセッサ動いてからが本当の地獄とかなんとか理由つけて、ようはやる気がでないわけです。

shinhさんの言われるように、行き当たりばったりなやり方は止めて、きっちり勉強して何来てもOKな状態にしておけば良いんでしょうね。今回の件で一つ賢くなって、向こうがターゲットCPUのgcc使っているのが分かれば、ROMのバイナリを送って逆アセしてもらう事はできそうです。ここもしっかり手順化して「ROMのイメージがもらえると思ったら、elfフォーマットで来たでござるの巻」で標準化して資料を持ち込めば良いんだ。そうしよう。

せっかくだから、FPGAで最初の命令がフェッチできないパターンの紹介。
FPGAに向かっている時点でRTLのバグはまず無いので、FPGAに落としたときに間違えているか作業者の勘違いがほとんど。

・CPUのアドレスと外部バスのアドレスがずれている仕様をしらずにROMを直結している。・ROMの0番地からではなく、オフセットをつけてプログラムを配置しないと駄目
・エンディアンが逆
・自作ROMのビット幅とCPUのモード(外部端子設定)が一致していない。
・リセット時のPCの値が予想と違う。
 (いったんSOC内の小さいBootコードを通ってから、外部のROMにアクセスしにいくとか)
このあたりの内部資料も見せてもらえないわけで、試行錯誤をしながら最初の命令を思われるbitをちゃんとフェッチできているかどうかがチェックポイントになります。

というわけで、もっともっとelfヘッダーを大事にしようという話でした。

| | Comments (0) | TrackBack (0)

2009.02.22

モバ環境を作った

自宅のレッツノートがPCMCIAの部分がいかれたみたいでAirHを認識しなくなった。
新しいノートPCを買うお金が無いので、2週間ほど家でメールが見れなかったが、村正を出してきてようやくメールが見れるようになった。

FreeBSDマシーンとして長く眠っていた割には、辞書環境が整備されていて何気に快適。
しばらくはこれでごまかす。

| | Comments (0) | TrackBack (0)

2009.02.11

せっかく覚えたのに

休みが取れて、ようやく上の娘とプリキュアごっこができるようになった。娘のお気に入りはキュアローズなので「キュアローズ出てきたら教えて」と一緒にTVを見た。

シリーズ変わってるやんorz。
クリスマスとお年玉でグッズ買わせて、すぐに新シリーズとは。これはきつい。

次はの台詞はこれだ。「ピンクのハートは愛ある印 もぎたてフレッシュキュアピーチ☆」。胸でハートマークがポイント

======================================================

土曜日の原稿作成はここまで

| | Comments (0) | TrackBack (0)

2009.02.07

Kyoto.lisp.debugger.verilog 開催のお知らせ

Shibuya.lispに対抗して、Kyoto.lisp.debugger.verilogという名の新年会を開催します。

日時:2月14日 18:00~
場所:京都駅アバンティ地下
内容:
18:00  開会の言葉(なつたん)
18:03  Lispについて(特別ゲスト1)
18:04  デバッガについて(特別ゲスト2)
18:05~ 娘自慢(なつたん)

※内容は予告無く変更になる可能性があります。

あと2名程枠が開いているのですが、一緒に飲んでも良いよという方がいれば YRW03704@nifty.com までメールください。

ぶっちゃけ、ただの飲み会です><

| | Comments (2) | TrackBack (0)

« January 2009 | Main | March 2009 »