2007-01-01から1年間の記事一覧

ゲストOSへのVStoolsのインストール

11/28現在の最新版(version 4)での対応OSは次の通り。 * RHEL 3 U8 32-bit * Red Hat Enterprise Linux 4 U4 and U5 32- and 64-Bit * Oracle Unbreakable Linux 4 U4 and U5 32- and 64-Bit * SUSE Linux Enterprise Server 9 SP3 32- and 64-Bit * Windows…

VStoolsとは

VStooslとはVirtual IronなるXenベースの仮想化環境サーバーを使う際に、ゲストOSの高速化を行う為のカーネルモジュールである。

Macportsでユニバーサルバイナリを作る

ユニバーサルバイナリを作る際にはリンクする共有ライブラリもユニバーサルバイナリでなければならない。Mac OS Xに標準でインストールされているライブラリは全てユニバーサルバイナリだが、Macportsなどパッケージ管理ソフトウェアを用いてインストールし…

configureスクリプトを用いた場合のユニバーサルバイナリのビルド方法

CFLAGSとCXXFLAGSとLDFLAGSで動かしたいアーキテクチャを指定する。また、configureスクリプトの--disable-dependency-trackingオプションを指定する。 > CFLAGS="-arch i386 -arch ppc -arch x86_64 -arch ppc64" CXXFLAGS="-arch i386 -arch ppc -arch x86…

コマンドラインからユニバーサルバイナリを生成する

コマンドラインからgcc/g++を起動してユニバーサルバイナリを生成するにはプログラムを動作させたいアーキテクチャを-arch target オプションをつけて指定する。

ユニバーサルバイナリを作る

コードから実行ファイルを生成する際にユニバーサルバイナリを生成するとPowerPC MacであれIntel Macであれ、32bitであれ64bitであれどのMac OS X上でも動く実行ファイルを生成できる。

空きメモリ量の取得

空きメモリ量を取得する際にはvm_statistics構造体を用いる。 #include <mach/vm_statistics.h> struct vm_statistics { integer_t free_count; integer_t active_count; integer_t inactive_count; integer_t wire_count; integer_t zero_fill_count; integer_t reactivations; in</mach/vm_statistics.h>…

総メモリ量を取得

次のhost_basic_info構造体を用いる。 #include <mach/host_info.h> struct host_basic_info { integer_t max_cpus; integer_t avail_cpus; vm_size_t memory_size; cpu_type_t cpu_type; cpu_subtype_t cpu_subtype; }; 前エントリのhost_info関数をflavorをHOST_BASIC_INFOに</mach/host_info.h>…

Load Average を取得

Load averageはhost_load_info構造体のaverun[]というメンバーに格納される。avenrunには5,15,60秒間でのload averageが格納されている。 #include <mach/host_info.h> #define CPU_STATE_USER 0 #define CPU_STATE_SYSTEM 1 #define CPU_STATE_IDLE 2 struct host_load_info {</mach/host_info.h>…

Macのシステムコール

Mac OS XでPOSIX以外のシステムコールについての情報が中々無かったので、ここに文書化しておく。http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/ このページといくつかのオープソースのソースコードを参考にした。