« April 2005 | Main | June 2005 »

May 30, 2005

gonzui

hirosumi/にて知ったgonzuiを入れてみた。これはLXRのようなソースコード解析ツールである。現在解析中&もしかしたらいじるかも知れない、Berkeley Linux Checkpoint/Restart (BLCR)のソースコードを詳細に調べるためである。

JavaScriptによるのか、マウスカーソルを乗せている位置にある識別子と同じ識別子を一挙にハイライト表示してくれたり、なかなか使いやすいかもしれない。基本操作はlxrと同じ感じで違和感も少ない。

lxrじゃ何がダメなの、という点がよくわからないが、これはこれで導入が手軽というのは利点であろう。

追記:OCamlサポートがあるらしい!MLのやりとりを見る限り作者も取り込みに積極的で、既にCVSには入っているので、次のリリースあたりで使用可能になるだろう。うぽー。

| | Comments (0) | TrackBack (0)

May 27, 2005

デュアルコア・水冷

Pentium Dが発売されはじめたようだ。今日秋葉に行ったときも盛んに宣伝がなされていた。各社からもPentium D搭載のモデルが発表されはじめている。

Continue reading "デュアルコア・水冷"

| | Comments (2) | TrackBack (0)

HGSTに鞍替え

以前にも述べた通り俺はSeagate派だったのだが、先月のDOS/V Magazineを読んで、HGSTのSerial ATA IIモデルDeskstar T7K250がとにかく低発熱、低騒音だと書かれていたのを読んでHGSTに心奪われてしまった。記事によるとSeagateのモデルとの温度差は歴然としている。サーモグラフィーで見るとSeageteは真っ赤っか、HGSTは真っ青である。

そういうわけで、せっかくなのでウワサのモデルを買ってみた。250GBのHDT722525DLA380である。TSUKUMO Ex.館で購入。タイムセールをやっていて13,950円だった。前々から買おう買おうとは思っていたのだが、なんとなくどうしても買わないといけない理由もなくて延び延びになっていたのだが、今日学科の友人らと秋葉に行く機会ができたので勢いで買うことにした。

実はSerialATAのディスクを使うのは初めて。これまで使ったことがなかったので、SerialATAケーブルが見つからなくて焦る。よく考えたらマザーボードの箱に入れたままだった。電源は、本来はSerialATA用の電源コネクタを使うらしいのだが、HGSTのは移行措置ということでか、SerialATAタイプと旧来の4ピン電源コネクタとどちらも使用可能になっている(両方同時に繋ぐと未定義の動作となる、脅し文句が書かれていた)。これで、デスクトップのHDDはSeagateのUATA100が120GBと、HGSTのSATA2が250GBということになる。TBへの道は遠いものだな…。

繋いでフォーマットしてみた感想としては、確かに音は非常に静かだ。回転音はしてるのかもしれないが、他のファンの音にかき消されて全く聞こえない。少なくともディスクを増設したことは感じられない音だ。そして、アクセス時の音はSeagateのディスクよりも遙かに小さい。Seagate→HGSTへのファイルコピーではSeagateの音にかき消されてHGSTのアクセス音がわからなかったので、ファイルサーバーからファイルを取ってきたところようやく聞き取れた。

あと不安なのは「壊れやすいらしい」という評判だが…。まあ形あるモノはいつか壊れるものだし、最新モデルで発熱も小さいから、きっと大丈夫だろう、と根拠のない納得をして使い始めることにする。

| | Comments (1) | TrackBack (0)

おごれる人も久しからず

slashdotの記事から。

なんと日本音楽著作権協会、日本芸能実演家団体協議会、日本レコード協会、日本音楽事業者協会、音楽出版社協会、音楽製作者連盟、音楽作家団体協議会が連名で「HDDプレーヤーなども制度の対象にすべき。PC内蔵のHDDや外付けHDD、データ用CD-R/RWなどこれまで汎用機器とされてきた製品も対象に含めるべき」という趣旨の意見書を提出したというのだ。
なんというか、デジタル放送に関するコピーガードの問題も含め、最近消費者の自由を奪う話しか耳にしない。アメリカとは大きな違いである。
こういう話を聞くたびに思うのだが、映画業界、TV業界、音楽業界はなぜ未だにこんなに強い(気でいる)のだろう?
元々音楽や映像といったコンテンツは生活必需品ではなく、嗜好品である。その消費にブレーキをかけるようなことが続けば、もう音楽聴くのやめちゃうよ、テレビ見るのやめちゃうよという選択肢が、消費者にはあり得るのだ。(私的録音・録画補償金制度では誰も幸せになれない (2/2))
映画もテレビも流行の音楽もほとんど見ないし聴かない俺(*)がまだ珍しいのかもしれないが、テレビやレコードしか娯楽のなかった時代ではなく、今はその気になればネットサーフィンやゲームで永遠に時間をつぶすことだってできるのだ。地上デジタル放送は映像の質やサービスといった面でわくわくする要素も多々あるはずだが、コピーガードがらみですでにうんざりという印象がぬぐえない。たとえば地上デジタルへの移行の頃に一人暮らしを始めるとしたら、「テレビイラネ」ってことになる可能性は高い。権利団体がいつまでも独裁者気分でありえない規制を要求し続けるなら、それは自らの首を絞めるだけだとなぜ気づかないのだろうか。
そして、どんなプロテクトをかけようと必ずそれを解除しようと挑戦する人間は現れるだろう。規制を強めれば強めるほど、真面目な人間が馬鹿を見るという結果になるのである。
一連の問題は消費者側の不利益のみならず、再生機器メーカー側にも不利益をもたらしている。音楽業界の圧力を恐れてお粗末な専用フォーマットのプレイヤーを売り続けた結果、気づいた頃にはiPodに市場を席巻されていたという現状はわざわざ説明するまでもないだろう。
こうした議論はslashdotをはじめとしたいわゆる「アレゲ界」では言い尽くされているが、より広い一般消費者の間ではどういう認識なのだろうか。たとえば音楽に関していえば、iPodの普及によって以前の「一般人(CD,MD系)」と「アレゲ人(mp3等)」の溝は埋まりつつあるように思われるので、より広い議論がわき上がることを期待したいところだ。

(*)…例外は、STAR WARS、NHK、43、46、48、49、サントラ、クラシック音楽くらいか。

| | Comments (0) | TrackBack (1)

May 25, 2005

ibm-acpi

wiki@nothingより。ibm-acpiというよさげなツールがあるようだ。X40はほぼ最新機種かつ微妙に枯れてるだけあって全機能がサポートされていてすばらしい。

ACPIっていうからにはやっぱりKernel 2.6専用なんだろうなぁ。さすがにそろそろ2.4ではきつくなってきた気が。特にノートPC。Vineを捨ててFedoraあたりに行ってみようか?Vineもさすがに次はkernel 2.6に移行するとしているが、時期については不透明だし…。

| | Comments (0) | TrackBack (0)

May 24, 2005

process migration

# だから「プログラミング」カテゴリはでかすぎだと。カテゴリの分割とかできないのかな?

さて次の演習3は石川研。今日は早速ミーティングがあって課題が決まった。米澤研のまとめレポートを書きながらバージョニングファイルシステム(open~closeで1revision進むリポジトリのようなファイルシステム)なんかも夢想したが、結局やることになったのは松葉さんより提示された「シングルシステムイメージ実現のためのprocess migration機構」。おいおいマジかよ。

所詮VMの保存のためにはメモリ、ディスク、レジスタさえあればなんとかなるのであって、結構おおざっぱなステートを保存するだけでよい。が、OS内部のプロセスのとなると複雑度はオーダーが違うのである。メモリとレジスタの他にOS内部の様々な構造体について辻褄を合わせないといけない。自分で選んでおいてなんだがどえらい課題だな…。

まあ今更怖じ気づいてもしょうがないし、できたらすごいことなのは間違いなのでがんがん調べていくか。

| | Comments (0) | TrackBack (0)

演習3: 米澤研

おーくら日記に倣ってまとめ。

米澤研では、「LilyVMにcheckpoint/restart機能をつける」という課題に取り組んだ。要は仮想マシンのステートを保存して実行を中断し、後にその地点から再開するという機能である。

仮想マシンモニタ(VMM)というソフトウェアの動作についてマジメに考えたのは初めての経験だったので、いろいろなことを知った。IntelやAMDが競って導入するというウワサの仮想化技術(VT/Pacifica)がいったい何をするための機能なのかわかった。要するにOSよりも1段上のring(-1)に相当する層を新たに導入しようということだ。

LilyVMはx86マシンを部分的にエミュレートする。そのため、x86のページング機構やら例外処理なんかについてもIntelのマニュアルを落としてきてにらめっこ。それから、LilyVMはUNIXのシステムコールの上に成り立っているので、システムコールについてもいろいろ新しい知識を得た。シグナルとか、mmapとかptraceとか。

結果として、当初目標としていた程度の機能は実装することができた。途中わけがわからなくてやる気を失っていた時機もあったので正味の作業時間としては3週間くらいか?ともかく終わってみればきちんとした成果物も出せたし、楽しい演習であった。一応成果物を公開してみる。

さて、次は石川研である。いよいよカーネルか。

| | Comments (0) | TrackBack (0)

May 22, 2005

UNIXシグナル マニアックス

3年生がシェル課題をやっていたり、自分も演習3でシグナルと戯れたりして、ふとシグナルの使い方がよくわからなくなってきたので調べてみた。

そもそもsignalとかsigactionとか似たようなものが多くて意味不明なのである。と思っていたら、その辺の疑問をまとめて解決してくれるページを発見した。→Super Technique講座~シグナルとコールバック

これを読んで、
・signalを使っちゃダメでsigactionを使うべき理由
・ls | less &の後端末が壊れるのであらかじめ端末設定を保存しておいて復元しないといけない件←lessが悪い?
あたりがわかった気がする。

ところで、常日頃から公言している通り俺はシステムプログラミングは大好きだが本当はWin32のディープなシステムプログラミングがしたいのである。ネイティブAPIとかばりばり使いこなしみてぇ!なんで気づくとUNIXの調査をしてるんだろうな?


6/1追記: ほぼ同じ内容だが、筑波大版OS演習?のページにもシグナルの歴史について書かれている

| | Comments (0) | TrackBack (0)

May 20, 2005

Netscape 8

ns8Netscape 8がリリースされた。Mozilla SeamonkeyベースからMozilla Firefoxベースになったこと、GeckoエンジンとMSHTMLエンジンを自由に切り替え可能になる、などが特徴らしい。

NetscapeまでFirefoxへ行ってしまって、Mozilla Seamonkeyは本当に打ちきりなのかな?まあ、数年前にそういう方針に決まったはずだが。

話のタネにと入れてはみたものの、まあ使うことはなさそう。ちょっとさわった感触としては、UIはやはりもっさり、描画は当然のことながらFirefoxと変わらず、という感じだった。

user-agentは"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20050519 Netscape/8.0.1"であった。

| | Comments (0) | TrackBack (0)

Mac on Mac

Windows/x86でいうところのVMWareやVirtual PCに相当するような、「CPUをそのまま使う」タイプのVMってMacにないのかね。例えばTiger上でJaguarやPantherを動かしてアプリケーションの互換性を検証するとか、LinuxPPCを動かしてみるとか、それなりに使えるのでは?

と思ったら、Linux/PPC上でまさにそれをやるMac on Linux、およびそのMac OS Xへの移植であるMac on MacというソフトがGPLで開発されているようだ。みんな考えることは同じなのか。

| | Comments (0) | TrackBack (0)

May 19, 2005

kldload

昨日に続きFreeBSD版のドライバも書いた。動的に組み込めるようにlkm(loadable kernel module)で。

FreeBSD Kernel Module Exampleが大変参考になった。

今回はゲストOS空間内での開発を行った。まず2つめのディスクイメージファイルを指定してディスク領域を確保。カーネルソースがないとしょうがないので、cvsupでカーネルソースとヘッダを取得。cvsupってなかなか便利かも。そしてpkg_addでsubversionをインストールして書きかけのドライバのコードを取ってきてビルド。viで多少修正を加えて完了。LinuxでのinsmodはFreeBSDではkldloadというコマンドである。

ところで、FreeBSDのドライバはLinuxのドライバとかなり構造が違う。具体的には、openやreadなんかに渡ってくるデータが全然違う。Linuxのドライバはそれぞれシステムコールopenやreadとの関連が実によくわかる構造であったが、FreeBSDの方が間に何段階もVFSの層が入るらしく、システムコールとの類似度はかなり低い。そもそも、Linuxでは例えばreadやwriteはそれぞれ読み込み/書き込みに成功したバイト数を返していたが、FreeBSDでは成功したら0を返すという風になっているようである。途中までしか書き込みができなかったというようなケースにはどう対処するのだろう?

| | Comments (0) | TrackBack (0)

ACアダプタ

ついかっとなって、X40用ACアダプタを追加購入。これで学校に1つ、家に1つACアダプタを置いて、本体だけを持ち運べばよい。

柏のビックカメラで6,090円だった。一人目の店員にきいてみたら「取り寄せになります」と言われたが、二人目に聞いたら在庫を持ってきてくれた。なんなんだ。あやうく72Wの方を買わされそうになったので56Wに変更してもらう。X Seriesは軽さが命。

| | Comments (0) | TrackBack (0)

May 18, 2005

Linux kernel module

# いい加減、カテゴリ「プログラミング」が肥大化しすぎてると思う今日この頃。

サスペンドするのに外からシグナルを送らないといけないのは面倒くさすぎるので、ゲストOS内からサスペンドを指示するためのデバイスドライバを書いた。とりあえずは勝手知ったるLinuxのモジュールから。

なんでドライバがいるかというと、(ゲストOSの)カーネルモードで動作していないと、シグナル等がすべてゲストOSカーネルの方に行ってしまってLilyVM本体に伝わらないためである。多分。/dev/lilvm-suspというキャラクタデバイスを用意しておいて、ここに何かを書き込むと状態保存に入るようにした。

やることとしてはカーネルモードでint3を発行するだけでよいので、コード自体はなんてことない。OS演習最終課題のプリントを引っ張り出してきて書き写す。OS演習様々である。全く何もしないので、write(2)に対応するハンドラのみ登録。

ゲストOS内にはカーネルソースが入っておらずモジュールをコンパイルできないため、ホストOSの方でコンパイル。ループバックデバイスとしてゲストOSのディスクイメージファイルをマウントしてやればゲストOSのディスクにアクセス可能である。が、カーネルモジュールは対応するカーネルバージョンがモジュール内に記録されていて、それが一致しないと組み込めないようになっているらしく、ホストOS("2.4.27-0vl7.4")とゲストOS("2.4.27")の違いにはまる。とりあえずしょうがないので、/usr/include/linux/module.hをとってきてバージョン情報を埋め込んでいるところを小細工して無理矢理"2.4.27"が入るようにしてコンパイルして対処。

これで無事、
# echo hoge > /dev/lilyvm-susp
でサスペンドできるようになった。

それにしても当初予想していたよりはるかに高速に保存/復帰が可能だ。自分で言うのもなんだが結構実用的かも知れない。

あとはFreeBSD/NetBSD用のモジュールも用意しないといけないんだけど…どうやって作るんだろうね。そしてNetBSD 1.6はローダブルモジュールってあるのかな?FreeBSDはあった気がするけど。

Continue reading "Linux kernel module"

| | Comments (0) | TrackBack (0)

DSC_5391

夕方突然の雨。1時間ほどで雨はあがり、夕日が差し込んできた。そして東の空には完璧な虹が。

超広角DX Nikkorを使ってもぎりぎり。やはり空を相手にするときは魚眼だろうか。

ところでDX 12-24mmの超音波モーターの音がいつもと違った気がした。不調だろうか。AF 28mm F1.4Dもぶっ壊れたっぽいし、もうどうしたものか。

よくよく考えればどちらのレンズも一度落とし(以下略

ニコンに持って行きますかね。

| | Comments (0) | TrackBack (0)

口隹一ネ申

詳しい理由はWebサイト等で熟知すべし。

| | Comments (3) | TrackBack (0)

今度はネットワークか

sshで接続中に休止すると再開後操作が不能になる。ネットワークに関しては考慮していないので当然といえば当然だが、やはり欲が出てきてしまうな。本家にパッチを送れるレベルにはやはり全機能にわたって整合性のあるcheckpoint/restartを提供しないと。ということでネットワークまわりも調べるかね。

ところでFreeBSDのドライバってどう書くのだろうか。

| | Comments (0) | TrackBack (0)

May 17, 2005

できた

今週中にキー入力の問題をなんとかして実用に耐える機能として完成できたらうれしいのだが。
できたのである。serial_structのメンバをちゃんと保存して復帰したらOK。あとはエラーチェック書いてもっとましな保存のトリガを考えてソースコードを整理してってなとこか。

あ、浮動小数点レジスタの保存を忘れていた。

| | Comments (0) | TrackBack (0)

壮絶な一日

昨日はなかなか壮絶な一日だった。時間はだいたいの目安。

0:00 integer divide errorで落ちる件
2:00 trap 18はCPUの例外番号(マシンチェック例外)じゃなくてFreeBSDのtrap番号か。

FreeBSDにもcross-referenceあるのね。FreeBSDのtrap18はLinuxだとsignal #0。ん、つまりraise_intに何らかの原因で0が渡って普通に0除算例外が生起されているということか。

4:00 風呂に入る。風呂上がりにテレビをつけたらX-FILESをやっている。異星人怖い。
5:00 就寝
8:00 起床。発表資料が博士白紙だ。やばい。
9:00 といいつつデバッグの続きが気になる。なぜraise_intに0がいくか?

shared_data->intr_master_maskの値を保存するのを忘れていた。それでもやっぱりだめだ。というかintr_master_maskを読み込むと0しか返ってこない。なぜ?というかshared_dataってcode_c.cでは構造体変数(値)なのにlilyvm.cだとポインタじゃねーか。ポインタのポインタをfwriteに渡して正しく書けるはずがない。修正。

10:00 restartデキタ━━━━(゚∀゚)━━━━!!!! 必死で資料作りを開始。OS起動中じゃないとちゃんと再開できないという不具合があるけどまあいいや。
12:45 なんとか資料はできた気がするので家を出る。
13:00 電車の中でちょっと書き足し。
14:00 7号館着。1階のトイレが罠的にくさかった。資料を印刷。
15:00 演習3第1期最終ミーティング。X40のLinuxが罠で、サスペンドからの復帰はできないわプロジェクタに画面を出すと画面が乱れるわマウスポインタは表示されないわ出力先が液晶か外部かの択一式で使えないわで散々。デモは断念してプレゼンのみ行う。
17:00 ミーティング終了。米澤研の部屋に行って動作の様子をデモすることに。復帰後キー入力が不能になるがプログラムはきちんと動くようである。1秒ごとに数字を出力するプログラムを実行させて確認。しかし状況によっては復帰途中でSIGTRAPを食らったりそもそも状態保存の途中でSIGSEGVするケースもある。
18:00 研究室のM田さんがデバッグに付き合ってくださる。vi、objdump、nmといった俺の全く知らないツールを軽々と使いこなしていらっしゃる。あのコマンドを知っただけでも相当強くなった気分だ。ところで研究室には窓があって外が見えるのである。すごい。
19:00 状態が保存できない問題は「現在の実行モード」を強制的にカーネルモードとして認識させて保存することで解決。
20:00 再開時にSIGTRAPで落ちる問題が未だ解決せず。関数から戻るとあらぬところへ飛んでいくようである。スタック破壊?なんだか仮想メモリ空間をいじっているのが問題なようである。「スタックの位置がわるいのでは」「Cの標準ライブラリを使ってはいけない説」などいろいろ提唱される。
21:00 そもそもメモリ空間を貼り替えるのだから関数から返った際にはもとの関数のコードなどそのメモリ位置になくなっているのである。冷静に考えれば当たり前だがなんでこんなコード書いてたんだろう。
22:00 関数呼び出しでなく、親プロセスから直接ptraceでもって目的のコードを実行させるように書き換え。これまで落ちていたケースが全て正しく再開できるようになった。キー入力が効かなくなる問題は相変わらずだが割と実用になる域まではもうすぐな気もしてきた。

研究室にお邪魔したおかげで一挙に何週間分にも相当しそうなほどデバッグが進んでしまった。長々とつきあっていただきありがとうございました。あれがまさにペアプログラミングというやつか。寝不足で頭は鈍っていたが、それでもコードを人に説明しているとそれだけで矛盾に気づいたりするのである。一人の時も「鏡に向かってコードを説明せよ」などというが、かなり正しいと思う。

今週中にキー入力の問題をなんとかして実用に耐える機能として完成できたらうれしいのだが。

| | Comments (0) | TrackBack (0)

May 12, 2005

おひょ

[crisp@localhost lilyvm]$ ./start-freebsd restart=1
makeprocess: before calling restore_guest()
makeprocess: old esp: 0xbffff880 / new esp: 0xbfb00000
restore_guest: begin
restore_guest: before restoring vmem mapping
restore_guest: after restoring vmem mapping
restore_guest: end
makeprocess: suceeded!
Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
       The Regents of the University of California. All rights reserved.
FreeBSD 4.10-RELEASE #20: Fri Dec 10 19:38:43 JST 2004
    hdk@fbsd.osss.is.tsukuba.ac.jp:/usr/home/hdk/sys/compile/a
Timecounter "i8254"  frequency 1193182 Hz
Timecounter "TSC"  frequency 3828796568 Hz
CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (3828.80-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf29  Stepping = 9
  Features=0x2011<FPU,TSC,PGE>
real memory  = 67108864 (65536K bytes)
avail memory = 62877696 (61404K bytes)
Warning: Pentium 4 CPU: PSE disabled
md1: Malloc disk


Fatal trap 18: integer divide fault while in kernel mode
instruction pointer     = 0x8:0xa020e2bd
stack pointer           = 0x10:0xa029efe4
frame pointer           = 0x10:0xa029efe4
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = interrupt enabled, IOPL = 0
current process         = 0 (swapper)
interrupt mask          = net tty bio cam
trap number             = 18
panic: integer divide fault
Uptime: 0s
Automatic reboot in 15 seconds - press a key on the console to abort
--> Press a key on the console to reboot,
--> or switch off the system now.
Rebooting...

VMの起動直後に一旦止めて復帰を試みてみた。ブートは途中までうまくいっている。trap 18で落ちるのは相変わらず。原因を突き止めてなんとかしないと…。

| | Comments (0) | TrackBack (0)

Intelの技術資料が手放せない

演習3、米澤研でのLilyVMにcheckpoint/restart機構をつけようプロジェクトであるが、締め切りが迫っていてやばいやばい。

現在、メモリとレジスタとVMが持っているステートを保存して復帰することを試し中。ゲストOS(FreeBSD 4.10)は復帰した瞬間にkernel panicを起こして落ちる。"integer divide error in kernel mode"ということだが、trap no.は18となっている。18って…「マシンチェック例外」??さらには数回に一回はエミュレーションコードがページフォルトを起こして落ちたりと、挙動が謎である。うーむ。きっとまだ考慮し忘れている点があるに違いないのだが。カーネル起動付近のコードをもっとじっくり追ってみるか。

とはいえ、すぐ落ちるとはいえゲストOSのエラーハンドラはきちんと動作してメッセージを画面に出力しているわけで、ゲストOSが全く動いていないわけではない、のだろうか。とりあえず期限内に「checkpoint/restartの実装は可能である(実装で示す)」か、「不可能である(何らかの新事実を発見する)」のどちらかをきちんと示したいところではあるが。

石川研で参加しているLinuxカーネル輪講も合わせて、このところx86及びOSカーネルの構造と動作について知識が深まっているのを感じる。興味分野がどんどん下のレイヤーに潜っていっている気が…。

| | Comments (1) | TrackBack (0)

May 11, 2005

Windowsセットアップの音楽

WindowsXPを最初に起動するといろいろな初期設定をする青い(*)画面が出てくる。そこでアカウントを作ったりネットワークの設定をしたりするわけだが、そのときにBGMが流れていることに気づいた人は多いはずだ。

最初にWindowsXPを使い始めた頃からなんかいい曲だとは思っていたのだが、実体がどこにあるのかわからず、「なんかのEXEファイルかDLLのリソースとしてでも入ってるのでは」と思っていたのだが、Geckoに首っ丈によるとC:\WINDOWS\system32\oobe\images\title.wmaに存在するらしい。確かにあった。あの曲だ。おお。


(*)「青い画面」ってなんかまずい響きだな。

| | Comments (0) | TrackBack (0)

May 08, 2005

実装実装…

演習3の課題で実装。ようやく少しずつおもしろくなってきたかな?1週間前は正直何もわからなくてどうしたものかと思っていたが。しかしこんなんで本当に動くのか。

OS演習は去年の科目だったはずだが、やってることはOS演習そのもの。forkしたり、ファイルディスクリプタをごにょごにょしたり。狭いメモリ領域にコードを押し込まないといけないっぽくて、fprintfとか使えないから全部UNIXシステムコールを生で。openしてwriteしてclose。(Makefile見ると一応Cのライブラリをリンクしてはいるが、fprintfを呼ぶとリンクエラーが)

しかしCは本当に高級アセンブラですな。レジスタ割り当てやスタック操作を自動でやってくれるアセンブラ。特定のメモリ番地をリテラルとして与えてそこを読み書きとか、平気で出てくる。米澤先生の講義の内容に真っ向から逆らうようなコードだが、それを米澤研の課題でやってるというあたりがなんとも。

やはり自分はこういう泥臭いのが性に合うのだろうか。まあ俺はまったく持って頭が悪いので他にできそうな分野も思い浮かばないのだが。

| | Comments (0) | TrackBack (0)

May 06, 2005

Mac OS X: CPU情報を得る

また忘れそうなのでメモ。

Mac OS XのコマンドラインからCPU情報を得るためには、/usr/sbin/system_profilerを実行すればよい。CPUだけでなくシステムに関する状態がずらずらと、しかもやたら待ち時間を経て出てくるので気長に待たないといけない。

Tigerどうすっぺ。まああんまりメリットが感じられないし、さらに重くなってるというウワサもあり、メモリ512MBにはきつそうだから当面見送りかな。問題はいつまでPanther用のセキュリティパッチが出るかどうか、だが。

AppleのサイトってMicrosoftみたいなセキュリティ情報をまとめたページはないのかね。

| | Comments (0) | TrackBack (1)

May 02, 2005

ビットレート

これまで特に何も考えもせずmp3は128kbpsでエンコードしてきたのだが、250GBのハードディスクが1万円ちょっとで買えちゃったりするこのご時世に、20世紀に主流だったビットレートにいつまでもこだわるのもどうか?ということでそろそろ160kbpsくらいをデフォルトにしようかと思う。(昔は30MBくらいの空き領域にいかに曲を詰め込むかで必死に頑張っていた気がする…)

といっても俺はCD音質とmp3の違いもわからなかったりするので、ビットレートを闇雲に上げるのもどうかという考えもある。また、家の中で聴くのなら高ビットレートもいいかもしれないが、街中や電車の中で聴くに当たっては音質もへったくれもなく、音の崩れが目立ってこない範囲でなるべく小さい方がいいのではという話もある。

ところで近年はmp3以外にもいろいろな選択肢があるようだ。まずはWMA。後発だけに同じビットレートならmp3よりよいという説も。再生環境もWindowsだけということもなくそれなりにポータブルオーディオプレーヤーも対応していたりする。Ogg Vorbisは一時mp3のライセンス云々の話が持ち上がった際に注目されたがどうなったんだろう。少なくともポータブルオーディオプレーヤーでのサポートは絶望的?AACという名前も最近よく耳にする。圧縮率がよいのか。互換性にまだ難があるようなので少し様子見かな?

さらには、最近の大容量ディスク・広帯域の流れによって「そもそも音質を落とさなければいいんじゃね」ということで可逆圧縮で音楽を保存するなんてことも広まりつつあるというウワサである[1]。そういやWMAにも可逆オプションがあったな。

[1] Softbank publishing, DOS/V magazine 2005.6 pp.62-66

| | Comments (0) | TrackBack (1)

さらばIBM

Lenovo ノートパソコン ThinkPad

いよいよ「そのとき」がやってきた。半年近く前からわかっていたことだけに驚きも何もない。あるのはただ虚無感。

URLはIBM時代そのままだが…ページのタイトルが(つД`)それ以外はとりあえず変わっていないようだ。心配されていた旧機種のサポート情報も、試しにその昔サーバーに使っていたAptiva(Pentium/133MHzモデル)を例に検索してみたところちゃんと出てきた

さて…。

| | Comments (0) | TrackBack (0)

« April 2005 | Main | June 2005 »