アーカイブ

  • Transformers

    Transformers(実写映画)- wikipedia

    観てきた。
    今日の昼休みくらいから無性に気になってきて、仕事を放り出してレイトショー観てきた。

    なんつーか、子供のころ、友達の家にあったコンボイの玩具ロボとか、
    ファミコンの激ムズゲーム(コンボイの謎だったか)で遊んでいた記憶しかなくて、
    予備知識とかほとんど無しに観たんだけども、知らなくても何の問題も無かった。

    とにかく、どーなってんのかよく分からんけど、メカ達がギュルギュルと変形していくCGが痛快。

    気になったのが、コンピュータをクラッキングしていく様子が何度か表現されていたが、
    システムが乗っ取られていく様子がリアルタイムに分かったり、
    操作端末全部にウィルスアラートがあがったりしていて、
    人々が想像するコンピュータの世界の描写だなあと思った。コンソールは黒背景に緑文字のCUIだったし(笑)
    実際のところ、軍事機密とかを管理しているシステム群って、どんなテクノロジーで動いてんだろ。

    2007年 8月 20日 | Filed under Movie
  • 国際運転免許証

    9月にカナダ旅行に行くことになった。
    旅先でレンタカーを借りてドライブをする予定なので、国際免許を取得した。
    国際免許を取得しに行く前に、ネットで準備するものなどいろいろと調べてみたけれど、
    不親切な説明が多いので、結局よくわからずに不安なまま免許センターに行ってしまった。
    今後のために、また、これから取得する人のために、とり方をまとめておくことにする。

    準備するもの

    運転免許証
    当然ながら、自分が持っている免許以外の車両は運転できない。

    パスポート
    まだなければ、渡航の証明になるものがあればOK(旅行のプランなど)。

    証明写真
    縦5cm×横4cm 免許センターで撮ってくれた。

    収入証紙
    2650円 もちろん免許センターで買った。

    免許証とパスポートがあればとりあえず免許センターに行ってOK。
    免許センターによっては、印鑑が必要なところもあるらしい。

    免許センターでの流れ

    1.免許センターに入ると「国際免許」の案内のある窓口があるので行く
    2.申し込み用紙が置いてあるので、それに必要事項を記入する
    3.収入証紙の窓口に行き2650円分買う
    4.申し込み用紙に証紙を貼る
    5.証明写真が無ければ、免許センター内にスピード写真コーナーがあるので撮ってもらう
    6.全て準備ができたら、国際免許窓口に行き、申し込み用紙、写真、免許証、パスポートを提出
    7.しばらく待たされた後、名前を呼ばれ、国際運転免許証が手に入る
    8.受け取った国際運転免許証にローマ字で氏名をサインして終了
    手続きは意外と楽で、時間もかからなかった。
    社会人なら、半休とって行けば大丈夫だと思う(自分は休暇にしたけれど)。
    免許の有効期間は発給から1年間なので、次に旅行に行くときにはまた取ることになると思う。

    2007年 8月 19日 | Filed under General
  • MySQLを少しずつ勉強していくよ

    カーネル勉強も行き詰ってきたことだし、MySQLを少しずつ勉強していくことにした。
    後で実際に環境構築とかの作業をする予定だけど、まずは概要から。

    ・MySQLアーキテクチャの概念

    大きく分けてこのような3層構造になっている模様。
    1.接続処理とか認証
    2.クエリ構文解析、最適化、キャッシュ、組み込み関数など
    3.ストレージエンジン
    ストレージエンジンはテーブルの機能?なので、それぞれの機能について調べていきたい。
    また、1つのデータベース内のそれぞれのテーブルごとに異なるストレージエンジンを
    使っても良い。

    ・ストレージエンジン

    以下のようなエンジンが使えて、それぞれ特徴がある。(全部じゃない、と思う)
    EXAMPLE以下がMySQL5から搭載されたもの。
    MyISAM   デフォルト。テーブルロック
    Heap    メモリに格納
    BDB    ページ単位のロック
    InnoDB   行ロック
    EXAMPLE  評価用
    NDB    クラスタ用
    FEDERATED 物理的に別のサーバのテーブルをマウントできる
    ARCHIVE  大量の大きなデータを小さい容量で扱える
    CSV    CSVファイルにデータを格納する
    BLACKHOLE 挿入してもデータが格納されない?テーブル
    それぞれの特徴について、もう少し葉堀り根堀りしていったほうがよさそう。
    選択肢は多けれど、どんなときに何を使っていいものか分からない。
    次回以降、それぞれのストレージエンジンについて見ていくことにする(予定)。

    2007年 8月 15日 | Filed under Linux
  • glibcのシステムコール発行手続き

    「Linuxカーネル2.6解読室」より
    理解している内容が浅いけどとりあえずメモしておく。

    1.プロセスがライブラリ関数を呼び出す
    2.ライブラリが準備をしてカーネルを呼び出す
    3.CPUは特権モードに移行し、使用するスタックが切り替わる
    4.プロセスのレジスタ値を保存
    5.指定されていれば、システムコールを発行したことをデバッグプロセスに通知
    6.実際に必要な処理を行う
    7.指定されていれば、システムコールの処理結果をデバッグプロセスに通知
    8.プリエンプト要求が発生していれば、プロセスの切り替えを行う
    9.シグナルが配送されていれば、シグナル処理をする
    10.システムコール発行前のレジスタを復元し、ユーザーモードに戻る
    11.ライブラリ結果を解釈し、エラーならばerrnoにエラーコードを、戻り値に-1を設定
    12.関数呼び出しを終了する
    CPUの特権モード
    0:特権あり(カーネル)~3:特権なし(プロセス)
    レベル1、2は使用しない
    CPU特権レベルの変更方法
    ・ソフトウェア割り込みを使用(int n命令(int 0×80)を使用)
    ・コールゲートを使用
    ・タスクゲートを使用
    ・sysenter命令を使用
    システムコールエントリーテーブル
    arch/i386/kernel/syscall_table.S

    2007年 8月 14日 | Filed under Linux
  • timer.cのdo_timer()からsched.cのnr_active()まで追ってみる

    以前、他人のブログを見ながらロードアベレージの計算を学んだが、
    おさらい兼ねて、実際にLinuxカーネル2.6.22のtimer.cから順番に処理を見てみる。(本も見ながら)

    kernel/timer.cのdo_timer()

    void do_timer(struct pt_regs *regs)
    {
    jiffies_64++;
    update_times();
    softlockup_tics(regs);
    }
    static inline viod update_times(void)
    {
    unsigned long ticks;
    ticks = jiffies – wall_jiffies;
    if (ticks) {
    wall_jiffies – wall_jiffies;
    update_wall_times(ticks);
    }
    calc_load(ticks);
    }

    1.システム起動後に発生したタイマー割り込み回数をjiffies_64に1を加算
    2.update_times関数でLinux内部時計を進める
    3.calc_load(ticks)でロードアベレージを計算
    calc_load()

    static inline void calc_load(unsigned long ticks)
    {
    unsigned long active_tasks; /* fixed-point */
    static int count = LOAD_FREQ;
    count -= ticks;
    if (unlikely(count < 0)) {
    active_tasks = count_active_tasks();
    do {
    CALC_LOAD(avenrun[0], EXP_1, active_tasks);
    CALC_LOAD(avenrun[1], EXP_5, active_tasks);
    CALC_LOAD(avenrun[2], EXP_15, active_tasks);
    count += LOAD_FREQ;
    } while (count < 0);
    }
    }

    count_active_tasks()の結果をactive_tasksに入れ、1分、5分、15分の平均値をavenrun[]に入れている。
    これが多分、/proc/loadavgに反映されてるんだろう。
    count_active_tasks()

    static unsigned long count_active_tasks(void)
    {
    return [...]

    2007年 8月 12日 | Filed under Linux
Archive for 2007年 8月