アセンブラの勉強方法 3
前回(アセンブラの勉強方法 2)の続きです。わかりづらいud2、cli、sti命令を紹介します。
初めて見ると、add、movとは違い予想しづらい命令ですが、簡単で知っていればダンプからソースのどの箇所か特定するときの助けにもなります。
![]() |
|
日本発のリナックス企業、ミラクル・リナックスで奮闘する社員のブログです。
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 |
前回(アセンブラの勉強方法 2)の続きです。わかりづらいud2、cli、sti命令を紹介します。
初めて見ると、add、movとは違い予想しづらい命令ですが、簡単で知っていればダンプからソースのどの箇所か特定するときの助けにもなります。
前回の(crashコマンド ライブシステム)では現在のプロセス情報を見るだけでした。
今回はcrashライブシステムで起動中のカーネルに書き込みもしたいと思います。書き込みをすることでデバッグ情報を、あるときだけ出力させます。またカーネル内の関数コールシーケンスを出力させてみます。
十何年ごしのプロジェクトであるWineがついに1.0RCにたどり着きました。
ほぼ1年ぶりにWine触ってみましたが、大幅に良くなっていると思います。
いくつか触ってみたので、さらさらと感想を書いてみます。
5/1 メーデーに特に何かをした事がない tmorimoto です。中国・韓国は共に 5/1(木) は祝日になるようです。中国は、翌日の金曜日も休みにして今年は3連休になったようです。ここで3連休と言うのがポイントです。実は、日曜日の休みを金曜日に振り替えして、日曜日は振替出勤となるそうです。振替出勤という概念が(法律的に)日本にはないなとカルチャーショックを受けました。
この頃、「寝食を忘れて、、、」と言うのが少なくなった tmorimoto です。標題の設定ですが、何気なく10時頃から始めて、完了して気付いたら14時でした。「お昼ご飯ぐらいは忘れてたぞっ!」と、遅めの昼食にデザートも付けてみました(^ ^;;
最近、自転車通勤を始めた tmorimoto です。新橋・汐留周辺には公共の駐輪場がなく、仕方なく浜松町の駐輪場にとめて、そこから歩いています。しかしながら、この浜松町の駐輪場は、地下にあるため雨曝しになることはなく、管理人さんが常駐しているので盗難の心配もありません。また、午前4:30〜翌1:30 までが1日分の料金で済みます。お気に入りです。
カフェ好きの tmorimoto です。たまたま行った門前仲町でおいしい珈琲を発見しました。カフェ東亜サプライ の1F の方のお店です(2F もカフェのようですが違うお店になるそうです)。レトロ感のある店内で、マスターのこだわり珈琲がご馳走になれます。
友人の家へ遊びに行って、チョコレイト・ディスコを初めて見た tmorimoto です。結婚式の余興のために練習し始めたところだそうです。ちょうど良い動画がニコニコ動画さんにありました。素人っぽいところも含めて、練習風景はこんなイメージでした。青の人の自信無さげなところがまたそっくり(^ ^;;
先日、Redgate 社のエンジニアと初めてメールのやり取りをした tmorimoto です。(メールではありますが)初対面なのに、いきなりメールに顔文字を入れて返信してきたことにショックを受けました。幾らパートナー企業と言っても、日本では普通、有り得ないことだと思うのですが、、、個人的には別に良いのですが、、、
OSC2008 Tokyo/Spring の Linux crash dump 読み方入門 にこっそり受講登録している tmorimoto です。dump を取ったことも、読んだこともないので「この頃の若いもんは、dump の読み方も知らんのか」と言われる前に勉強してこようと思います。期待です。
先日、豆乳鍋を生まれて初めて食べた tmorimoto です。鍋の具材は、白菜、春菊、長ネギ、椎茸、木綿豆腐、鶏肉、豚肉、つくね、銀だら、マロニー。そのまま食べてもおいしいですが、やや味付けが物足りないので、味/ゆずぽんをつけてもグーです。豆乳が魚の生臭さを消してくれるせいか、銀だらがおいしかったです。写真撮っておけば良かった(- -#
CDCで行っていたある業務を一時的に引き継ぐことになった tmorimoto です。その業務の関係者は3人。業務引き継ぎのため IRC で質問していました。なるべく3人に分散して質問していたつもりだったのですが、ある時「 tmorimoto is full of questions :)」と呆れられてしまいました、えへっ(*^ ^*)
昨年末から挑戦していた内線電話構築 ですが、だいぶ形になってきました。
現在のところ、Asianuxラボ、Miracle Linux社、Haansoft社間での接続が完了しています。
今後は、RedFlag社、無錫オフィス、ベトナムとの接続を順次行っていく予定です。
最近、また自炊し始めた tmorimoto です。ふと、肉じゃがを作ろうと思い立ち、材料を準備して、鍋にセットし、煮込み始めて気付きました。「砂糖がない!」、仕方ないので水の代わりにアップルジュースを甘味に入れてみました。意外と、それっぽい味付けにはなりました(^ ^;;
Synergy を使い始めて、すっかり虜になってしまった tmorimoto です。何が便利って、複数のマシン間で、クリップボードのコピー&ペーストが使えるところ(うまく動作しない時もありますが)。PC 環境の移行のために使い始めたのに、快適過ぎてこのまま移行する気が起きません。(p -)o
2007年ももうすぐ終わりですね。
今年はAsianuxにとって大きな変化がいくつかあった年でした。
まずは、北京にある開発ラボの引越し。
Asianuxにとって四番目の参加企業となるベトナム企業の参加。
そして、Asianux Corporationの設立などですね。
こんにちは。最近 synergy (*1) を使いはじめ、すっかり気に入ってしまった kyagi です。
先日、ひょんなことからシェルスクリプトで(エセ)連想配列を使う方法を調べました。今日はその方法をご紹介します。
前回は、番外編の前座(笑)として、ブートフロッピーについて書きました。今回はgrubへの入れ替えをしてみます。
前回のblogのネタを書くにあたって、ML21のカーネルがそのままでは立ち上がらない理由をいろいろと試したわけですが、最初に試したのは「古〜いliloがアヤシイ」ということで、grubに変えてみることでした。(カーネル自体にXenとの不整合がある、とは最初は考えなかったわけです。)
実際のところこれはハズレだったわけですが、そのおかげでML21でgrubという、妙な体験をすることができました。liloをgrubへ入れ替える過程において、ブートフロッピーでちょいと詰まったので、まずはそれをネタに書こうと思います。
前回、前置きだけで終わったので、さすがにまずいと思い、その後も検証を続けたのでさっさと続きを書くことにします。
今回はハードウェア編です。次の作業を行うと、一応Xen上でMIRACLE LINUX V2.xが作動するはずです。
blogの中身全般に共通ですが、ここに書かれた内容はMIRACLE LINUXではサポートしていません。At your own riskでお願いします。
先日、Asianux Server 3がめでたく発売開始となりました。サポートポリシーを見ると分かるとおり、弊社ではまじめに7年間サポート体制を組んでいるので、現時点でサポートしているディストリビューションはこれで
のなんと7つになっています。実際のところ、MIRACLE LINUX V1.0とV1.1についてはスポット対応に限りなく近いレベル3サポート段階で、実際にサポートを利用されるお客様もごくわずかなのですが、MIRACLE LINUX V2.0やV2.1のお客様はまだまだいらっしゃいます。
他の国に比べると、日本は一度作ったシステムを長く使う傾向があります。昔は下手をするとハードウェアが壊れるまで使う、というような風潮がありました。しかし、最近は古いシステムはセキュリティリスクもあり、特にオープンソースでは開発者が誰も旧バージョンに愛着を感じなくなるとサポートが難しくなるということもあって、提供する側、される側両方にとって得策とはいえない状況です。また、PCのアーキテクチャは未だめまぐるしく世代交代するので、ハードウェアが壊れて交換しようとしても見つからず、また新しいハードウェアで古いOSを動かそうとしても動かない可能性があります。
やはりソフトウェア・ハードウェア双方のサポート期間を鑑みて計画的に更新を行いたいものです。
とはいえ。
こんにちは moriyama です。
convmv というファイル名文字コード変換ツールがあります。
この convmv は、Perl で記述されていて MacOS X の Decomposed UTF-8 (Modified NFD) を変換できるように、--nfc と --nfd オプションが指定できるようになっています。それぞれ、Perl の Unicode::Normalize モジュールの NFC および NFD の正規化処理を呼び出しています。
Unicode::Normalize モジュールは、Unicode 規格の正規化処理をそのまま実装したものですのですので、前回の記事 MacOS X とのファイル共有 で書いたように、U+2000~U+2FFF、U+F900~U+FAFF、U+2F800~U+2FAFF の扱いが MacOS X のファイル名と正規化の方法が異なり注意する必要があります。
具体的にどのような所に注意する必要があるのか調べてみました。
調査対象とした文字集合
おひさしぶりです。moriyama です。
今回は、Linux でファイルサーバーを構築する際に、Windows 以外にも MacOS X も接続してファイル共有する場合の日本語ファイル名の扱いについて書こうと思います。
ごぶさたしてました、rkです。
Asianux Server 3開発もRCに入り、大分落ち着いてきました。
今回の開発で個人的に気に入ったのは、翻訳の充実でしょうか。Asianux 2.0の時(はまだこの会社にいなかったのですが...)はヘルプが英文のままになっているツールがあって「こんなディストリ認められん!」と勝手に一人憤っていたのですが(笑) そのせいかAXS3ではとことん翻訳に時間をかけました。どうも、弊社Linuxのお客様にはLinuxのプロフェッショナルが多いらしく、使わないツールの翻訳に時間かけてもあまりお客様から評価されないという風潮があったように思えます。しかし今後は翻訳を含めたドキュメントの品質に気をつかっていきたいです。OSSのツールの翻訳の品質はまちまちなので、既に翻訳されているものも含めて底上げしていきたいと思います。
さて、前置きが長くなりました。
弊社内におけるコンピュータの構成を見ますと、圧倒的にIA-32マシンが大多数を占めています。また、AsianuxプロジェクトとしてはIA-64もPPC64もやっているので、これらのマシンも若干あります。ところがなぜか、一台PowerMac (正確に言うとmacmini) がぽつねんと存在していました。これはPPC32なので、Asianuxをインストールすることもできません。しかし、元Mac党の私としては、まだ十分現役可能なMacが片隅に追いやられているというのは納得がいかず、時間を作ってAsianuxのインストールに挑戦してみました。
初投稿の tmorimoto です。今月から本ブログに投稿することになりましたが、特に何かネタがあるわけでもないので、自身の学習過程を綴っていきます。今、私にとって、最もホットな話題が awk です。「何で今頃 awk ?」えぇ、えぇ、毎日、隣の kyagi さんから言われてますよ(-_-#
前回はcrashコマンド ライブシステムでカレントプロセスのバックトレースを見ましたが、
SysRqキーでも可能です。その方法を紹介します。
SysRqキーを使用するとバックトレース以外もいろんな情報を取得できます。
カーネルのデバッグでは特に便利です。
世の中仮想化といえばXenの話が多いのですが、私の日常の課題といえば、いかに楽しみ、いかに学ぶかがテーマだったりします。そこで、LinuxをWindows上で動かして、Windows上で遊びつつ、Linux上で学ぶというのがだらだら休日の理想です。Xenだとどうもこの用途には向いていません。そこで、私はVirtualBoxを使っています。
crashコマンドではダンプファイルを解析するのに使用しますが、ダンプがなくても現時点のカーネルの状態をcrashのlive systemで確認することができます。
crashのlive systemではカレントプロセスのバックトレースを表示させることができませんが、今回はそれを無理矢理 表示させる方法を紹介します。
6月30日(土)に東京大学駒場キャンパスにてPythonのイベントがあります。発表型のセミナーだけではなく、来場者にPCを持参頂いてのハンズオンセミナーもあります。
手元のPanasonic Let's note CF-W4をFedora Core 6 からFedora 7にアップデートしました。
こんにちは。最近「C級さらりーまん講座」の大江戸課長のファンになった kyagiです。現在、江戸っ子のきっぷの良さと話しかたを勉強中です。
今回は社内のちょっといい話を紹介したいと思います。
先日バックエンドチームの nakabayashi さんから
「ある検証のために /etc 配下の rc ファイルをいじって毎回リブートさせてるんだけど 10 分以上かかった場合はリブートを止めるようにしたいけどどうすればいいかなぁ?」
前回(アセンブラの勉強方法)のテストプログラムではmov、cmp、jmp、add命令など見ることができましたが、少し足りないのでもう少し見てみます。
久々のWine毒^H独演会コーナーです。
さて、皆さんはWineのBugzillaに登録したことがありますか?
WineのBugzillaを除くと、実にさまざまな内容が登録されています。一番多いのは
「XXXが動かない!」
というユーザーの叫びですが、Wineの開発者は実に地道で、このようなユーザーの声一つ一つにコメントをつけています。
それはともかく、バグのカテゴリの中に、Wine 1.0までに修正すべきバグ、というのが挙げられています。裏を返せば、Wine 1.0ではこれらが実現されているわけですね。
では、何年後になるか分からない、Wine 1.0ではどんなものになるのか、先走って宣伝してみましょう。
みなさんは、Linuxでのメディアプレーヤーとして何を使っていますか? 私は、デスクトップKDEとの親和性から kaffeine を使っています。デザインも非常に気に入っていますが、タグがSJIS等で書かれたmp3ファイルを再生リストに追加した時、曲名やアーティスト名が文字化けしてしまうのが残念です。今回は、この問題の解決に挑戦します。
ダンプを解析するときなどはアセンブラを理解していないといけません。勉強しようと思っても最初は意味不明でやりづらいのですが、簡単でわかりやすい方法があります。実務的にはこれで十分だと思いますのでご紹介します。
この方法ではLinuxマシンを用意すればいいだけです。(本を探したり、購入する必要もなし)
私が普段使用している.bashrcです。 Webから情報をこつこつと集めて、更新しつづけたものです。一部でもどなたかの参考になれば幸いです。
今回は、前回(python + glade)の続きを書きたいと思います。前回はgladeのツールを使用して、GUIのデザイン(といってもボタンだけですけど)し、その内容をxml形式で保存しました。今回はそのxmlファイルを使用して、実際にGUI画面を出力して、ボタンをおすと"Hello World"と出力されるようにするpythonプログラムを作成します。前回のxmlファイルはhello.gladeとして保存されていることとします。
「Linuxカーネル解析入門」にある便利なコマンドを紹介します。
私は便利で結構使用しているので、参考までに。
カーネルのコンフィグを見る場合、/proc/config.gz ファイルを見ることができます。
カーネル構築(make)で使用する.configファイルと同じものです。
これはカーネル2.6だとコンフィグがカーネルの中に含んでいるので、起動したカーネルの
コンフィグをprocファイルシステムで取得できるのですが、これはあくまで起動している
カーネル自身のしか見ることができません。
他のカーネルのコンフィグが見たい場合はカーネルソースにあるextract-ikconfigコマンドを
使用すれば見ることができます。
最近のコメント