2006-07-01から1ヶ月間の記事一覧

未踏ユース採択

なんとVIVER、採択されました!未踏未踏! うわぁぉぇあ… ブースト会議がとっても楽しみです。

インテリジェントな検出

しまった。昨日書きかけのままだった。本日は、昨日の「1. /proc/bus/pciを使う」の方法でPCIの自動検出ツールを実装完了。 まず/proc/bus/pci/devicesを見ると、接続されているPCIデバイスすべての情報がカーネルから出力される。 1行につき1デバイスで、1…

PCIデバイスの自動検出を

いろいろネットで調べていると、どうやら/proc/pciの情報はアテにならないらしい。カーネルのバージョンアップで消されるかもしれないと。 実際、私が使っているカーネルが出力する/proc/pciは、標準的カーネルが出力する/proc/pciと全然違うことが判明した…

devicemanager.cc

class DeviceManager { std::list<DeviceNode> m_node_list; std::list<DeviceNode*> m_optical_device; std::list<DeviceNode*> m_hdd_device; std::list<PhysicalDevice> m_known_device;clas DeviceNode { major_t m_major minor_t m_minor std::vector<const char*> m_not_tested_fstype; std::string testMout(void);ブ…</const></physicaldevice></devicenode*></devicenode*></devicenode>

pipe.cc device.cc

ようやくマルチプロセスでマルチスレッドな泥沼になってしまったProcessクラスを再設計。 パイプからread()システムコールで読み込む前に、fcntl()システムコールでO_NONBLOCKフラグを設定しておくと、「読み込もうとしたけど、まだ書き込まれていない」とき…

display.cc

本日はメッセージ出力を管理するクラスを再設計、書き直し。 Display display(); display.error() << "Message " << "output" << std::endl;のように使って、エスケープシーケンスを出力してからメッセージを出力することにしていた。 以前のDisplayクラスは…

SimpleDetect

むむ。日記にブランクが。 しかし開発にブランクがあったわけではなく。 ということで、ハードウェア自動検出ツールを開発。SimpleDetect。 PCIデバイスやUSBデバイスは、自分のVendorIDやDeviceIDをアナウンスしている。それらのIDと、カーネルのコンパイル…

vi process.cc; make

またしてもprocesss.ccを。 forkした子プロセスの標準出力と標準エラー出力を親プロセスでぶんどって、ごにょごにょやろうという処理。 pipeをぶんどった後、そこからread()し続けてstringstreamにどんどん入れていくスレッドを立ち上げる。stringstreamにな…

ハードウェア自動検出

libkudzuを直接使ってやろうと思い、hwsetupを自分なりに書き直してみた。(私にはhwsetupは非常に解読しにくい… kudzuは、どうやらpci.idsファイル(PCIデバイスが教えてくれるIDと、ベンダー名や概要文などのデータベース)を読み込み、ベンダー名などを教…

差分保持

差分保持について備忘録メモ。 今のVIVER(version 0.2)では、データの書き込みを疑似的に再現するために、読み取り専用の元データに対して、ブロックデバイスレベルの差分を保存することで対応している。 ブロックデバイスレベルというところは諸刃であり、…

GFSを試してみよう準備

CentOS4で始めるGFS スタンドアローンな環境でGFSを動かすまでをありありと。とってもぴったり。 GFSはGUIで設定できるのか…。 VMにCent OSを入れよう。 そういえば、複数のVMに同じHDDイメージを接続することはできるのだろうか?VMwareだと「ロックされて…

vi process.cc

今日一番多くタイプしたコマンド、vi process.cc。…いや、lsかな? ということで、今日はVIVERのプログラミングをごそごそと。その前に昨日のIMAPサーバーの続きも。 pipeのforkのexecのreadのwaitpid。ファイルディスクリプタ、何故にistreamやostreamでは…

IMAP

今日はGLAN TANKにfetchmailやらprocmailやらdovecotやらやら入れ、方々のメールを一括管理してみるプロジェクト。まだインターネット側には公開しないで、とりあえずテスト。 IMAPは以前にCourier-IMAPを使ったことがあったので、今回はdovecotで。 …今日は…

Let's LDAP

VMが動いたところで、LinuxのPAMでLDAPを使ってみる。ずらっと作業メモ。 @IT "LDAPによるパスワードの一元管理"を読みつつ。 インストール 最近はコマンド一発でインストールできる便利な時代。 さくっと openldap-serversパッケージをインストール。自動的…

VM VM

まずは環境構築から。 少し試してみたところ、Parallels(VT-x有効)上でXenは動かなかった。ただ、Xen本体(xen.gz)の初期化は正常に完了して、Linuxカーネルの初期化時、具体的にはHDDを認識するところで止まってしまった。Parallelsのハードウェアのエミュレ…

夏休みの目標

夏休み開始。やたー。終了まであと二ヶ月。早い。 XenのLive Migrationを試してみる LDAP/PAM、LDAP/KerbersあるいはNIS+な認証システムを作ってみる GFS(GNBDになるか)を使ってみる VIVER本体をC++へ書き直し完了 経験重要。 Parallelsが非常に軽快に動いて…