最近よくシステム障害が起きているようなので,書き留めておきたいと思います.
●ロンドン証券取引所
-障害から復旧まで:
2009/11/25(英国時間) 障害発生(接続障害).取引停止.
-参照:
ロンドン証券取引所がシステム障害で取引停止 - ニュース:ITpro
●東京工業品取引所
-障害から復旧まで:
2009/11/27 障害発生.各取引を停止
取引システムの開発・運用保守を担当するNTTデータとともに原因究明
開発元のOMXテクノロジーにソフトの修正を依頼
テストで動作確認
2009/11/30 システム復旧
-原因:
受け付けた注文件数が最多となった際に,潜在バグが表面化したことによる
・メモリリーク
「気配値」の計算に使うプログラムが,使用したメモリ領域を削除していなかったために生じた.
注文を受信するにつれメモリの使用可能領域が減少し,計算が不可能となった.
・フェイルオーバーの際の切り替えシステムのバグ
取引システムは現用系と待機系のホットスタンバイ方式で二重化してある.
メモリ不足を受けた際に,本番処理が待機系に自動で切り替わるはずだったが,バグによりメモリ上の一部データを正常に引き継げなかった.
その結果,待機系システムでも気配値の計算が不可能となった.
-参照:
東工取のシステム障害、原因はナスダックOMX子会社製ソフトのバグ - ニュース:ITpro
●新幹線のエクスプレス予約
-障害から復旧まで:
2009/12/3 10:00 障害発生.
システムのサーバーを再起動し,自動改札機などとのデータの整合性や動作を確認
2009/12/3 13:00 システム復旧
-損害:
この3時間のシステム停止時間中,約1万人がシステムを利用不可能となった
-原因(12/5現在):
不明
-参照:
[続報]3時間後に復旧、新幹線のエクスプレス予約システム障害 - ニュース:ITpro
●その他(オマケ)
-秋はシステム障害の季節か:ITpro
:システム障害の詳細を開示しない企業が多いが,近年は情報公開をすることで高信頼システムを築いていこうとしている動きが多いとのこと.
こういう記事に目を通すことって大切だなぁと改めて思いました.
2009年11月19日木曜日
システムコールの追加
Linux2.6.25カーネルにシステムコールの追加をするのでメモメモ.
ちなみにその時にx86? bit数?とかかなり初歩的なことが分かっていないことが発覚したので,それについても近いうちにまとめます.
●システムコールの追加のためにすること
1)システムコール番号の登録
2)システムコールテーブルに登録
3)追加するシステムコールのオブジェクトファイル名をMakefileに追記
4)ヘッダファイルの作成
5)システムコール本体の作成
6)カーネルの再構築
以下,詳しくやることを書いていきます.
1)システムコール番号の登録
include/asm/unistd_32.h に
#define __NR_システムコール名 システムコール番号
を追加.
/usr/include/asm/unistd_32.hにも同様に追記する
/*62bitb版OSの場合は,unistd_64.hに追記する*/
/*OSのbit数は$uname -iで調べました*/
2)システムコールテーブルに登録
arch/x86/kernel/syscall_table_32.S に
.long sys_システムコール名
を追加.
3)追加するシステムコールのオブジェクトファイル名をMakefileに追記
arch/x86/kernel/Makefile のobj-yの項目に
システムコール名.o
を追加.
4)ヘッダファイルの作成
4-1)カーネル空間用
include/linux/システムコール名.h を作成
#ifndef NR_システムコール名_H
#define NR_システムコール名_H
#include <linux/unistd.h>
#include <linux/linkage.h>
#define システムコール名(arg1) syscall(__NR_システムコール名, arg1)
#endif
4-2)ユーザ空間用
/usr/include/linux/システムコール名.h を作成
4-1で作成したヘッダファイルの#include <linux/linkage.h>を#include <linux/syscall.h>に変更したものを作成する
5)システムコール本体の作成
システムコール名.cというファイルを以下のように作成し,arch/x86/kernel/以下に保存する.
#include <linux/システムコール名.h>
asmlinkage 関数型 sys_システムコール名 (引数){
/* システムコールの内容を記述 */
}
6)カーネルの再構築
make bzImage && make install をした後に再起動!
システムコールをユーザモードプロセスから利用する場合は,ファイル内に#include <linux/システムコール名.h>を記述して利用する
これでいけるハズ
ちなみにその時にx86? bit数?とかかなり初歩的なことが分かっていないことが発覚したので,それについても近いうちにまとめます.
●システムコールの追加のためにすること
1)システムコール番号の登録
2)システムコールテーブルに登録
3)追加するシステムコールのオブジェクトファイル名をMakefileに追記
4)ヘッダファイルの作成
5)システムコール本体の作成
6)カーネルの再構築
以下,詳しくやることを書いていきます.
1)システムコール番号の登録
include/asm/unistd_32.h に
#define __NR_システムコール名 システムコール番号
を追加.
/usr/include/asm/unistd_32.hにも同様に追記する
/*62bitb版OSの場合は,unistd_64.hに追記する*/
/*OSのbit数は$uname -iで調べました*/
2)システムコールテーブルに登録
arch/x86/kernel/syscall_table_32.S に
.long sys_システムコール名
を追加.
3)追加するシステムコールのオブジェクトファイル名をMakefileに追記
arch/x86/kernel/Makefile のobj-yの項目に
システムコール名.o
を追加.
4)ヘッダファイルの作成
4-1)カーネル空間用
include/linux/システムコール名.h を作成
#ifndef NR_システムコール名_H
#define NR_システムコール名_H
#include <linux/unistd.h>
#include <linux/linkage.h>
#define システムコール名(arg1) syscall(__NR_システムコール名, arg1)
#endif
4-2)ユーザ空間用
/usr/include/linux/システムコール名.h を作成
4-1で作成したヘッダファイルの#include <linux/linkage.h>を#include <linux/syscall.h>に変更したものを作成する
5)システムコール本体の作成
システムコール名.cというファイルを以下のように作成し,arch/x86/kernel/以下に保存する.
#include <linux/システムコール名.h>
asmlinkage 関数型 sys_システムコール名 (引数){
/* システムコールの内容を記述 */
}
6)カーネルの再構築
make bzImage && make install をした後に再起動!
システムコールをユーザモードプロセスから利用する場合は,ファイル内に#include <linux/システムコール名.h>を記述して利用する
これでいけるハズ
2009年10月19日月曜日
kmalloc()/kfree()
カーネル内でメモリを確保/解放するための関数
●使い方
#include <slab.h>
void* kmalloc( size_t size, int flags );
void kfree( void* ptr );
sizeには確保したいバイト数,flagsには以下のどちらかを指定.
GFP_KERNEL:即座にメモリ領域を用意できない場合、メモリ管理機能がスワップアウト 等によって領域を確保するまでスリープする可能性がある
GFP_ATOMIC:スリープせずにメモリ領域を確保しようとする。 必要な領域が確保できない場合は失敗する。 割り込みハンドラやタスクレット、タイムアウトハンドラ等の プロセスコンテキストと無関係に実行される箇所ではこれを使う
●例
u8 *buffer;
buffer = kmalloc(1000, GFP_ATOMIC);
if (!buffer)
return -ENOMEM;
kfree(buffer);
/*u8とは符号なし1バイト整数型(0~255)を表す基本型.
<linux/types.h>をincludeして利用する*/
●参照ページ:
カーネルモジュールを作る
●使い方
#include <slab.h>
void* kmalloc( size_t size, int flags );
void kfree( void* ptr );
sizeには確保したいバイト数,flagsには以下のどちらかを指定.
GFP_KERNEL:即座にメモリ領域を用意できない場合、メモリ管理機能がスワップアウト 等によって領域を確保するまでスリープする可能性がある
GFP_ATOMIC:スリープせずにメモリ領域を確保しようとする。 必要な領域が確保できない場合は失敗する。 割り込みハンドラやタスクレット、タイムアウトハンドラ等の プロセスコンテキストと無関係に実行される箇所ではこれを使う
●例
u8 *buffer;
buffer = kmalloc(1000, GFP_ATOMIC);
if (!buffer)
return -ENOMEM;
kfree(buffer);
/*u8とは符号なし1バイト整数型(0~255)を表す基本型.
<linux/types.h>をincludeして利用する*/
●参照ページ:
カーネルモジュールを作る
2009年9月30日水曜日
RDMSR / WRMSR in C
MSR(Model Specific Register)を読み書きするための命令
どちらも実行できるのは特権モード(ring 0)のみ
これらを C の中で使うには gcc インラインアセンブラを用いればOK
#ちなみにこのへんの記述は perfctr では /usr/include/asm-x86/msr.h にありますね
●インラインアセンブラ表記法
asm volatile ("アセンブラテンプレート"
: "出力オペランド"
: "入力オペランド"
: "アセンブラの実行で変更されてしまうもの");
出力オペランドは "=a" (出力先変数),
入力オペランドは "a" (入力) のように表記する.
ここで,各レジスタは以下のように表記する.
"a" eax
"b" ebx
"c" ecx
"d" edx
"A" edx:eax(上位bitにedx,下位bitにeax)
"g" gccが適当なレジスタに割り当てる
●RDMSR
ecx レジスタに MSR のアドレスを指定すると,edx:eax レジスタに MSR の内容を読み込む(上位 32bit が edx ,下位 32bit が eax に入る)
e.g.
asm volatile("rdmsr" : "=a"(low), "=d"(high) : "c"(msr_addr));
asm volatile("rdmsr" : "=A"(val) : "c"(msr_addr));
●WRMSR
ecx レジスタに指定した MSR のアドレスに,edx:eax レジスタの内容を書き込む(〃)
e.g.
asm volatile("wrmsr" : : "c"(msr_addr), "=a"(low), "=d"(high) : "memory");
asm volatile("wrmsr" : : "c"(msr_addr), "=A"(val) : "memory");
参照ページ:
ほげほげまん: gccインラインアセンブラ
ほげほげまん: RDMSR / WRMSR
ほげほげまんめっちゃ分かりやすい.お世話になってますw
どちらも実行できるのは特権モード(ring 0)のみ
これらを C の中で使うには gcc インラインアセンブラを用いればOK
#ちなみにこのへんの記述は perfctr では /usr/include/asm-x86/msr.h にありますね
●インラインアセンブラ表記法
asm volatile ("アセンブラテンプレート"
: "出力オペランド"
: "入力オペランド"
: "アセンブラの実行で変更されてしまうもの");
出力オペランドは "=a" (出力先変数),
入力オペランドは "a" (入力) のように表記する.
ここで,各レジスタは以下のように表記する.
"a" eax
"b" ebx
"c" ecx
"d" edx
"A" edx:eax(上位bitにedx,下位bitにeax)
"g" gccが適当なレジスタに割り当てる
●RDMSR
ecx レジスタに MSR のアドレスを指定すると,edx:eax レジスタに MSR の内容を読み込む(上位 32bit が edx ,下位 32bit が eax に入る)
e.g.
asm volatile("rdmsr" : "=a"(low), "=d"(high) : "c"(msr_addr));
asm volatile("rdmsr" : "=A"(val) : "c"(msr_addr));
●WRMSR
ecx レジスタに指定した MSR のアドレスに,edx:eax レジスタの内容を書き込む(〃)
e.g.
asm volatile("wrmsr" : : "c"(msr_addr), "=a"(low), "=d"(high) : "memory");
asm volatile("wrmsr" : : "c"(msr_addr), "=A"(val) : "memory");
参照ページ:
ほげほげまん: gccインラインアセンブラ
ほげほげまん: RDMSR / WRMSR
ほげほげまんめっちゃ分かりやすい.お世話になってますw
2009年9月28日月曜日
コンテキストスイッチのソースコード
今後手を加える予定なのでここにメモしときます.
(Linux2.6.25 kernel)
●コンテキストスイッチをしている箇所
kenrel/sched.c 内 context_switch()
switch_mm() によってプロセス空間の切り替え,switch_to() によって各種レジスタの切り替えを行っている.
●コンテキストを切り替える際に保存する情報
task_structに格納している
:定義は include/linux/sched.h l994
更に,CPU依存の低レベルな実行コンテキストは thread_struct に格納している
:定義は include/asm-x86/processor.h l315
以下はソースコードコピペ(長すぎて邪魔だったので消しましたw 09/10/15)
(Linux2.6.25 kernel)
●コンテキストスイッチをしている箇所
kenrel/sched.c 内 context_switch()
switch_mm() によってプロセス空間の切り替え,switch_to() によって各種レジスタの切り替えを行っている.
●コンテキストを切り替える際に保存する情報
task_structに格納している
:定義は include/linux/sched.h l994
更に,CPU依存の低レベルな実行コンテキストは thread_struct に格納している
:定義は include/asm-x86/processor.h l315
以下はソースコードコピペ(長すぎて邪魔だったので消しましたw 09/10/15)
2009年9月23日水曜日
富士登山
やっと念願の富士登山に行ってきました!
友人との予定が合わず,9月下旬の登山になってしまったこと,そして最近運動不足で体力に自信がなかったこともあり,結構不安でした..
が!
ゆっくり休憩をとりながらコツコツ登り続けること計8時間.
天候にも恵まれ,高山病にもならず(若干の頭痛はずーっとありましたが),無事に登頂を果たし,ご来光を見ることができました.
登った日はおじいちゃんの命日だったから,きっとおじいちゃんが見守っていてくれたんだと思う.
ご来光だけでなく,雲海に映る影富士や夕焼けの空,真夜中の満天の星など…
普段見ることのできない幻想的な世界を堪能できました.
それになんだか,元気を貰いました.
コツコツやっていればちゃんと達成できるんだなぁと.
毎日コツコツ,時間を大切にしなくちゃいけないなと改めて感じました.
またこんな晴れ晴れした気持ちを味わえるように!
今日も充実してたなーと毎日思えるように!
毎日を過ごしていきたいと思います.
富士山ありがとう!
/*ここからメモ*/
●登山に持って行って良かったもの
・ヘッドライト
・ゼリー状の飲み物
・帽子,手袋,ホッカイロ
・チョコレート(甘い物は元気が出る!)
●持って行けば更に良かったなぁというもの
・冷えピタ
・マスク
あとやっぱり9月だからか,これでもかってくらい防寒してちょうど良かったです.
私の場合,山頂ではTシャツ+長袖シャツ+ジャージ+フリース+防水ジャケットでもこもこでしたw
あと,山頂の神社に行けなかったのはちょっと残念でした(8月20日までだったみたい)
以上!
せっかくグッズも集めたことだし,また登山に挑戦したいです♪
友人との予定が合わず,9月下旬の登山になってしまったこと,そして最近運動不足で体力に自信がなかったこともあり,結構不安でした..
が!
ゆっくり休憩をとりながらコツコツ登り続けること計8時間.
天候にも恵まれ,高山病にもならず(若干の頭痛はずーっとありましたが),無事に登頂を果たし,ご来光を見ることができました.
登った日はおじいちゃんの命日だったから,きっとおじいちゃんが見守っていてくれたんだと思う.
ご来光だけでなく,雲海に映る影富士や夕焼けの空,真夜中の満天の星など…
普段見ることのできない幻想的な世界を堪能できました.
それになんだか,元気を貰いました.
コツコツやっていればちゃんと達成できるんだなぁと.
毎日コツコツ,時間を大切にしなくちゃいけないなと改めて感じました.
またこんな晴れ晴れした気持ちを味わえるように!
今日も充実してたなーと毎日思えるように!
毎日を過ごしていきたいと思います.
富士山ありがとう!
/*ここからメモ*/
●登山に持って行って良かったもの
・ヘッドライト
・ゼリー状の飲み物
・帽子,手袋,ホッカイロ
・チョコレート(甘い物は元気が出る!)
●持って行けば更に良かったなぁというもの
・冷えピタ
・マスク
あとやっぱり9月だからか,これでもかってくらい防寒してちょうど良かったです.
私の場合,山頂ではTシャツ+長袖シャツ+ジャージ+フリース+防水ジャケットでもこもこでしたw
あと,山頂の神社に行けなかったのはちょっと残念でした(8月20日までだったみたい)
以上!
せっかくグッズも集めたことだし,また登山に挑戦したいです♪
2009年9月17日木曜日
クロスリファレンスLXR
カーネルのソースコードを参照しやすくするために入れました.
入れ方&使い方は全てここに集約されています.
ViVa! Saborigineer. - クロスリファレンス
とりあえず使い方だけメモメモ
1.lxr/sourceにソースファイルを展開
lxr/source/バージョン名/sourceとなるようにして作成
2.genxrefを使って、lxr/source/バージョン名/にデータベース(fileidx,xref)を作成
$ ../../bin/genxref source/
3.fileidx、xrefのアクセス権の変更
$ chmod 644 fileidx xref
4."freetext search"、"file search"用のインデックスを作成
$ cd /var/www/html/lxr/source/バージョン名/
$ glimpseindex -H . source
$ chmod 644 .glimpse_*
5.versionsにバージョン名を追加
デフォルトのバージョン名を変更する場合は、defversionを変更
とり急ぎメモだけ.
入れ方&使い方は全てここに集約されています.
ViVa! Saborigineer. - クロスリファレンス
とりあえず使い方だけメモメモ
1.lxr/sourceにソースファイルを展開
lxr/source/バージョン名/sourceとなるようにして作成
2.genxrefを使って、lxr/source/バージョン名/にデータベース(fileidx,xref)を作成
$ ../../bin/genxref source/
3.fileidx、xrefのアクセス権の変更
$ chmod 644 fileidx xref
4."freetext search"、"file search"用のインデックスを作成
$ cd /var/www/html/lxr/source/バージョン名/
$ glimpseindex -H . source
$ chmod 644 .glimpse_*
5.versionsにバージョン名を追加
デフォルトのバージョン名を変更する場合は、defversionを変更
とり急ぎメモだけ.
2009年6月17日水曜日
PostgreSQL on WindowsXP
再インストール→インストールする際に気をつけること
プログラムの追加と削除からpostgreSQLを削除するだけではアンインストールできたとは言えないようで,他にも色々消さなければいけませんでした.
#インストールの際に"アカウント名とセキュリティ id の間のマッピングは実行されませんでした。"なんていうエラーが出た
・コマンドプロンプトで net user とし,postgresユーザが存在したら削除
# net user postgres /delete
・C:\Program Files内,PostgreSQLフォルダ削除
・Document and Settings内postgresフォルダ削除
あとは,インストールの際に,"ユーザ名"にはpostgresを,"ドメイン"にはインストールしたコンピュータの名前を入れること!
これでちゃんとインストールできた…はずです(@_@;)
めんどくさい課題はさっさと片付けちゃおう...
プログラムの追加と削除からpostgreSQLを削除するだけではアンインストールできたとは言えないようで,他にも色々消さなければいけませんでした.
#インストールの際に"アカウント名とセキュリティ id の間のマッピングは実行されませんでした。"なんていうエラーが出た
・コマンドプロンプトで net user とし,postgresユーザが存在したら削除
# net user postgres /delete
・C:\Program Files内,PostgreSQLフォルダ削除
・Document and Settings内postgresフォルダ削除
あとは,インストールの際に,"ユーザ名"にはpostgresを,"ドメイン"にはインストールしたコンピュータの名前を入れること!
これでちゃんとインストールできた…はずです(@_@;)
めんどくさい課題はさっさと片付けちゃおう...
Project Natal
tex のコマンド検索してたはずが謎にこんなのを発見しましたw
Microsoftが発表したコントローラが必要ないゲームらしいのですが…
これどうなってるんですかね?!
カメラとかセンサとかどのくらい使ってるんだろう…
どのくらい誤検知するのかも気になっちゃいますw
ゲーム得意じゃないのであまりやりませんが,これはぜひ見てみたいです.
Microsoftが発表したコントローラが必要ないゲームらしいのですが…
これどうなってるんですかね?!
カメラとかセンサとかどのくらい使ってるんだろう…
どのくらい誤検知するのかも気になっちゃいますw
ゲーム得意じゃないのであまりやりませんが,これはぜひ見てみたいです.
2009年6月11日木曜日
壁紙
MacDesktops
Mac Tricks and Tips, Wallpapers and Applications for Mac Users
Mac向けの可愛い壁紙が結構ありました.
他サイトでは素敵!と思ったものの1440*900のサイズのってあんまりなくて…
ちなみに今の壁紙はこれです.
評判も良くてお気に入りです♪
それにしても最近更新怠ってるなぁ(*_*;)
Mac Tricks and Tips, Wallpapers and Applications for Mac Users
Mac向けの可愛い壁紙が結構ありました.
他サイトでは素敵!と思ったものの1440*900のサイズのってあんまりなくて…
ちなみに今の壁紙はこれです.
評判も良くてお気に入りです♪
それにしても最近更新怠ってるなぁ(*_*;)
2009年4月27日月曜日
Unix errno一覧
他サイトで見つけたのですが,現在とちょっと違っているようなので自分で調べてまとめてみました.
とりあえずmanページと,返ってきたエラーコードのみの少ない情報ですが(^^;)
(Fedora9 Kernel:2.6.25)
エラーが起きたときにreturnされる値(-1など)と,errnoって違うんですね.
知らなかったです.
参考ページ:
PC覚え書き | Unix系errno一覧
とりあえずmanページと,返ってきたエラーコードのみの少ない情報ですが(^^;)
(Fedora9 Kernel:2.6.25)
1 | EPERM | Operation not permitted (POSIX.1) |
2 | ENOENT | No such file or directory (POSIX.1) |
3 | ESRCH | No such process (POSIX.1) |
4 | EINTR | Interrupted function call (POSIX.1) |
5 | EIO | Input/output error (POSIX.1) |
6 | ENXIO | No such device or address (POSIX.1) |
7 | E2BIG | Argument list too long (POSIX.1) |
8 | ENOEXEC | Exec format error (POSIX.1) |
9 | EBADF | Bad file descriptor (POSIX.1) |
10 | ECHILD | No child processes (POSIX.1) |
11 | EAGAIN | Resource temporarily unavailable (may be the same value as EWOULDBLOCK)(POSIX.1) |
11 | EWOULDBLOCK | Operation would block (may be same value as EAGAIN) (POSIX.1) |
12 | ENOMEM | Not enough space (POSIX.1) |
13 | EACCES | Permission denied (POSIX.1) |
14 | EFAULT | Bad address (POSIX.1) |
15 | ENOTBLK | Block device required |
16 | EBUSY | Device or resource busy (POSIX.1) |
17 | EEXIST | File exists (POSIX.1) |
18 | EXDEV | Improper link (POSIX.1) |
19 | ENODEV | No such device (POSIX.1) |
20 | ENOTDIR | Not a directory (POSIX.1) |
21 | EISDIR | Is a directory (POSIX.1) |
22 | EINVAL | Invalid argument (POSIX.1) |
23 | ENFILE | Too many open files in system (POSIX.1) |
24 | EMFILE | Too many open files (POSIX.1) |
25 | ENOTTY | Inappropriate I/O control operation (POSIX.1) |
26 | ETXTBSY | Text file busy (POSIX.1) |
27 | EFBIG | File too large (POSIX.1) |
28 | ENOSPC | No space left on device (POSIX.1) |
29 | ESPIPE | Invalid seek (POSIX.1) |
30 | EROFS | Read-only file system (POSIX.1) |
31 | EMLINK | Too many links (POSIX.1) |
32 | EPIPE | Broken pipe (POSIX.1) |
33 | EDOM | Mathematics argument out of domain of function (POSIX.1 |
34 | ERANGE | Result too large (POSIX.1 |
35 | EDEADLK | Resource deadlock avoided (POSIX.1) |
35 | EDEADLOCK | Synonym for EDEADLK |
36 | ENAMETOOLONG | Filename too long (POSIX.1) |
37 | ENOLCK | No locks available (POSIX.1) |
38 | ENOSYS | Function not implemented (POSIX.1) |
39 | ENOTEMPTY | Directory not empty (POSIX.1) |
40 | ELOOP | Too many levels of symbolic links (POSIX.1) |
42 | ENOMSG | No message of the desired type (POSIX.1) |
43 | EIDRM | Identifier removed (POSIX.1) |
44 | ECHRNG | Channel number out of range |
45 | EL2NSYNC | Level 2 not synchronized |
46 | EL3HLT | Level 3 halted |
47 | EL3RST | Level 3 halted |
49 | EUNATCH | Protocol driver not attached |
51 | EL2HLT | Level 2 halted |
52 | EBADE | Invalid exchange |
53 | EBADR | Invalid request descriptor |
54 | EXFULL | Exchange full |
56 | EBADRQC | Invalid request code |
57 | EBADSLT | Invalid slot |
60 | ENOSTR | Not a STREAM (POSIX.1 (XSI STREAMS option)) |
61 | ENODATA | No message is available on the STREAM head read queue (POSIX.1) |
62 | ETIME | Timer expired (POSIX.1 (XSI STREAMS option))(POSIX.1 says STREAM ioctl(2) timeout) |
63 | ENOSR | No STREAM resources (POSIX.1 (XSI STREAMS option)) |
64 | ENONET | Machine is not on the network |
65 | ENOPKG | Package not installed |
66 | EREMOTE | Object is remote |
67 | ENOLINK | Link has been severed (POSIX.1) |
70 | ECOMM | Communication error on send |
71 | EPROTO | Protocol error (POSIX.1) |
72 | EMULTIHOP | Multihop attempted (POSIX.1) |
74 | EBADMSG | Bad message (POSIX.1) |
75 | EOVERFLOW | Value too large to be stored in data type (POSIX.1) |
76 | ENOTUNIQ | Name not unique on network |
77 | EBADFD | File descriptor in bad state |
78 | EREMCHG | Remote address changed |
79 | ELIBACC | Cannot access a needed shared library |
80 | ELIBBAD | Accessing a corrupted shared library |
81 | ELIBSCN | lib section in a.out corrupted |
82 | ELIBMAX | Attempting to link in too many shared libraries |
83 | ELIBEXEC | Cannot exec a shared library directly |
84 | EILSEQ | Illegal byte sequence (POSIX.1 |
85 | ERESTART | Interrupted system call should be restarted |
86 | ESTRPIPE | Streams pipe error |
87 | EUSERS | Too many users |
88 | ENOTSOCK | Not a socket (POSIX.1) |
89 | EDESTADDRREQ | Destination address required (POSIX.1) |
90 | EMSGSIZE | Message too long (POSIX.1) |
91 | EPROTOTYPE | Protocol wrong type for socket (POSIX.1) |
92 | ENOPROTOOPT | Protocol not available (POSIX.1) |
93 | EPROTONOSUPPORT | Protocol not supported (POSIX.1) |
94 | ESOCKTNOSUPPORT | Socket type not supported |
95 | ENOTSUP | Operation not supported (POSIX.1) |
95 | EOPNOTSUPP | Operation not supported on socket (POSIX.1)(ENOTSUP and EOPNOTSUPP have the same value on Linux |
96 | EPFNOSUPPORT | Protocol family not supported |
97 | EAFNOSUPPORT | Address family not supported (POSIX.1) |
98 | EADDRINUSE | Address already in use (POSIX.1) |
99 | EADDRNOTAVAIL | Address not available (POSIX.1) |
100 | ENETDOWN | Network is down (POSIX.1) |
101 | ENETUNREACH | Network unreachable (POSIX.1) |
102 | ENETRESET | Connection aborted by network (POSIX.1) |
103 | ECONNABORTED | Connection aborted (POSIX.1) |
104 | ECONNRESET | Connection reset (POSIX.1) |
105 | ENOBUFS | No buffer space available (POSIX.1 (XSI STREAMS option)) |
106 | EISCONN | Socket is connected (POSIX.1) |
107 | ENOTCONN | The socket is not connected (POSIX.1) |
108 | ESHUTDOWN | Cannot send after transport endpoint shutdown |
110 | ETIMEDOUT | Connection timed out (POSIX.1) |
111 | ECONNREFUSED | Connection refused (POSIX.1) |
112 | EHOSTDOWN | Host is down |
113 | EHOSTUNREACH | Host is unreachable (POSIX.1) |
114 | EALREADY | Connection already in progress (POSIX.1) |
115 | EINPROGRESS | Operation in progress (POSIX.1) |
116 | ESTALE | Stale file handle (POSIX.1) |
117 | EUCLEAN | Structure needs cleaning |
120 | EISNAM | Is a named type file |
121 | EREMOTEIO | Remote I/O error |
122 | EDQUOT | Disk quota exceeded (POSIX.1) |
123 | ENOMEDIUM | No medium found |
124 | EMEDIUMTYPE | Wrong medium type |
125 | ECANCELED | Operation canceled (POSIX.1) |
126 | ENOKEY | Required key not available |
127 | EKEYEXPIRED | Key has expired |
128 | EKEYREVOKED | Key has been revoked |
129 | EKEYREJECTED | Key was rejected by service |
エラーが起きたときにreturnされる値(-1など)と,errnoって違うんですね.
知らなかったです.
参考ページ:
PC覚え書き | Unix系errno一覧
2009年3月24日火曜日
卒業
無事,大学を卒業しました.
4年間,色々なことがありました.
最初の2年間は本当に,低迷期でした.
今思うと,自分が自分でなかったような,ふよふよした2年間を過ごし,随分自分勝手をして親にも心配をかけちゃいました.
サークルで代表をやったことで,たくさん悩み,自分の力不足を感じ,周囲の人への不信感も抱いた.
高校が守られた環境すぎた分,色んな人がいることを学ぶことができたし,自分が理想とする姿・だめなところのギャップを学べた良い機会だったと思っています.
3年からは専門科目が増え,勉強が楽しくなってきて.
大学の友達とも更に仲良くなって一緒に勉強をしたり,将来について話したり,学校が楽しかった.
4年から研究室生活が始まり,今までの知識を生かすことが多くなりました.
やっぱり4年生が1番私の中では大きい1年だったかな.
自分の知識不足・勉強不足を痛感した1年でした.
けれど,先輩方の助けを借り,無事に卒業研究を終えることができ,これから更に頑張っていきたいと,モチベーションが上がりました.
やっと,少し将来が近づいた気がします.
うちの厳しい家計で,良い学校に行かせてくれた両親には本当に感謝しています.
また,こんなへっぽこを指導してくださった先輩方・指導教員の先生.
色んなことを教えてくれる賢い同期のみんな.
うちの研究室ほど良い環境の研究室はないと思います.w
いつも応援してくれていた祖父母.
もう他界してしまいましたが….
おばあちゃんに袴姿を見てもらいたかったな.
いつでも味方でいてくれて,背中を押してくれる親友.
そして,いつもくだらない話を聞いてくれる友達や妹.w
思い出してみると,本当にいろんな人の支えがあってここまでこれたなって思います.
みんなみんなに感謝です!!
そうだ,友達のブログで知ったスティーブ・ジョブズのスピーチ.
感動したのでマネして貼っておこう.
自分が愛する仕事に出会いたいです.
あと2年間,ものすごく大切にしないとな.
4年間,色々なことがありました.
最初の2年間は本当に,低迷期でした.
今思うと,自分が自分でなかったような,ふよふよした2年間を過ごし,随分自分勝手をして親にも心配をかけちゃいました.
サークルで代表をやったことで,たくさん悩み,自分の力不足を感じ,周囲の人への不信感も抱いた.
高校が守られた環境すぎた分,色んな人がいることを学ぶことができたし,自分が理想とする姿・だめなところのギャップを学べた良い機会だったと思っています.
3年からは専門科目が増え,勉強が楽しくなってきて.
大学の友達とも更に仲良くなって一緒に勉強をしたり,将来について話したり,学校が楽しかった.
4年から研究室生活が始まり,今までの知識を生かすことが多くなりました.
やっぱり4年生が1番私の中では大きい1年だったかな.
自分の知識不足・勉強不足を痛感した1年でした.
けれど,先輩方の助けを借り,無事に卒業研究を終えることができ,これから更に頑張っていきたいと,モチベーションが上がりました.
やっと,少し将来が近づいた気がします.
うちの厳しい家計で,良い学校に行かせてくれた両親には本当に感謝しています.
また,こんなへっぽこを指導してくださった先輩方・指導教員の先生.
色んなことを教えてくれる賢い同期のみんな.
うちの研究室ほど良い環境の研究室はないと思います.w
いつも応援してくれていた祖父母.
もう他界してしまいましたが….
おばあちゃんに袴姿を見てもらいたかったな.
いつでも味方でいてくれて,背中を押してくれる親友.
そして,いつもくだらない話を聞いてくれる友達や妹.w
思い出してみると,本当にいろんな人の支えがあってここまでこれたなって思います.
みんなみんなに感謝です!!
そうだ,友達のブログで知ったスティーブ・ジョブズのスピーチ.
感動したのでマネして貼っておこう.
自分が愛する仕事に出会いたいです.
あと2年間,ものすごく大切にしないとな.
2009年3月17日火曜日
Macでショートカットキーにトラックパッドでの操作割り当て
をする便利なツールを友達に教えてもらいました!とにょ
その名はMultiClutch.
ダウンロードは以下のサイトから.
Download MultiClutch for Mac - Assign custom keyboard shortcuts in a given app to a given gesture. MacUpdate Mac System Software Downloads
とりあえず,firefoxでのタブ切り替え・ズームイン/アウトは,トラックパッド上での2指・3指での操作でできるようになって便利♪
ちなみに,firefoxでのショートカットキー一覧は以下のサイト.
キーボードショートカット
こんなにあったんだ…w
その名はMultiClutch.
ダウンロードは以下のサイトから.
Download MultiClutch for Mac - Assign custom keyboard shortcuts in a given app to a given gesture. MacUpdate Mac System Software Downloads
とりあえず,firefoxでのタブ切り替え・ズームイン/アウトは,トラックパッド上での2指・3指での操作でできるようになって便利♪
ちなみに,firefoxでのショートカットキー一覧は以下のサイト.
キーボードショートカット
こんなにあったんだ…w
2009年3月16日月曜日
Macでsynergy1.3系を使いたい
Intel版のMacだとsynergy 1.3系はBus Errorでうまく起動できない模様.
そこで,前のバージョンの1.2.8をMacに入れてクライアント側として使ってみようとしたら,エラーもはかずに途中で固まる(*_*;)
ーサーバであるLinunxに入れてるsynergyのバージョンが1.3.1でずれているせい??
そこで,
IntelMacでSynergy2を動かす
に載っているバイナリを利用させてもらった.
すると,クライアント側のオプションに-fつけてフォアグラウンドで動かすと順調に動くのに,デフォルトで起動するとうまく動かないっぽい?というか起動してない??
謎.
ーサーバ側で「Address already in use」というエラーをはく.
別にsynergy動かしてるターミナル閉まっちゃえばいい話だけど.
元々MacBook Proのタッチパッド使いやすいからマウス使わなくてもいいんだけど.
でもクリップボードにコピーしたもの共有できるの便利だしな.
というぼやきでした.
解決してない話なのにブログに書くっていう(*_*;;)
そこで,前のバージョンの1.2.8をMacに入れてクライアント側として使ってみようとしたら,エラーもはかずに途中で固まる(*_*;)
ーサーバであるLinunxに入れてるsynergyのバージョンが1.3.1でずれているせい??
そこで,
IntelMacでSynergy2を動かす
に載っているバイナリを利用させてもらった.
すると,クライアント側のオプションに-fつけてフォアグラウンドで動かすと順調に動くのに,デフォルトで起動するとうまく動かないっぽい?というか起動してない??
謎.
ーサーバ側で「Address already in use」というエラーをはく.
別にsynergy動かしてるターミナル閉まっちゃえばいい話だけど.
元々MacBook Proのタッチパッド使いやすいからマウス使わなくてもいいんだけど.
でもクリップボードにコピーしたもの共有できるの便利だしな.
というぼやきでした.
解決してない話なのにブログに書くっていう(*_*;;)
2009年3月5日木曜日
周りのみんな,自分のこと
なんだか最近,やたら周りの人がすごく感じます.
…っというか実際すごい人だらけなのですがw
研究室の周りは,頭良くていろんなことに詳しくてプログラミングマスターばっかりだし,
(その中には学科の首席もいるしw)
もうすでに英語の論文書いてる人も何人かいるし,
T大の院に進む人もいるし,
なんだか自分の本を出した人もいるみたいだし…!!
高校の友達も,
法学院(っていうのかな?)決まった人もいるし,
会計士になった人もいるし,
医者になる人もいるし,
自分が行きたい会社に入れたってやる気満々の人も多い.
みんなめっちゃしっかりしてる.目指しているものがハッキリしてる.
すごくカッコいい.
…で,私は?
というと,目標が漠然としすぎてて,なにもない気がするww
成長している気がしない><
最近先輩が就活している姿とか,こういう周りのすごい人達の姿を見て,
やたら焦りを感じます.
けれど,焦っても何もいいことないからなってこの間やっと実感できたので,
マイペースに,今目の前にあることを1つ1つちゃんとやらなきゃなって思います.
周りがこういうすごい人達だらけなのは,
自分との差を感じて凹むこともあるけどw,
すごくいい刺激を受けて,私も頑張らなきゃ!!って気持ちになれるから
ありがたいことだなって思う♪
まだまだ甘いぞ~~自分(*_*;)!!
そう考えると,本当,私はつくづく友達や環境に恵まれている子だな~と思うので,
感謝!!!
今自分に良い影響を与えてくれている人達に感謝を忘れず,
自信と,心のゆとりを持てる大人になっていこうという気合の日記でした!笑
…っというか実際すごい人だらけなのですがw
研究室の周りは,頭良くていろんなことに詳しくてプログラミングマスターばっかりだし,
(その中には学科の首席もいるしw)
もうすでに英語の論文書いてる人も何人かいるし,
T大の院に進む人もいるし,
なんだか自分の本を出した人もいるみたいだし…!!
高校の友達も,
法学院(っていうのかな?)決まった人もいるし,
会計士になった人もいるし,
医者になる人もいるし,
自分が行きたい会社に入れたってやる気満々の人も多い.
みんなめっちゃしっかりしてる.目指しているものがハッキリしてる.
すごくカッコいい.
…で,私は?
というと,目標が漠然としすぎてて,なにもない気がするww
成長している気がしない><
最近先輩が就活している姿とか,こういう周りのすごい人達の姿を見て,
やたら焦りを感じます.
けれど,焦っても何もいいことないからなってこの間やっと実感できたので,
マイペースに,今目の前にあることを1つ1つちゃんとやらなきゃなって思います.
周りがこういうすごい人達だらけなのは,
自分との差を感じて凹むこともあるけどw,
すごくいい刺激を受けて,私も頑張らなきゃ!!って気持ちになれるから
ありがたいことだなって思う♪
まだまだ甘いぞ~~自分(*_*;)!!
そう考えると,本当,私はつくづく友達や環境に恵まれている子だな~と思うので,
感謝!!!
今自分に良い影響を与えてくれている人達に感謝を忘れず,
自信と,心のゆとりを持てる大人になっていこうという気合の日記でした!笑
2009年2月8日日曜日
DBDesigner4 + MySQL5.0
データベースを作ろーっということで,ER図とかを可視化できるツールを!
と思い,早速評判の良いDBDesigner4をインストールして使ってみたところ…
MySQLと接続ができない!!!
ぐぐってみたところ,
「DBDesigner4からMySQL4.1以降に接続するとき、ユーザー・パスワードが正しいのに接続できない、という現象が起こることがあります。」
しかし,以下のページで解決可能でした!
参照ページ:
空想具現化プログラミング DBモデリングツールDBDesigner4の後継は?
私が接続できなかった原因はファイアーウォールのせいでした…
『システム > 管理 > ファイアーウォール』内の,その他のポートで,3306ポートを選択することで外部からの接続がOKになりました.
めでたしめでたし.
と思い,早速評判の良いDBDesigner4をインストールして使ってみたところ…
MySQLと接続ができない!!!
ぐぐってみたところ,
「DBDesigner4からMySQL4.1以降に接続するとき、ユーザー・パスワードが正しいのに接続できない、という現象が起こることがあります。」
しかし,以下のページで解決可能でした!
参照ページ:
空想具現化プログラミング DBモデリングツールDBDesigner4の後継は?
私が接続できなかった原因はファイアーウォールのせいでした…
『システム > 管理 > ファイアーウォール』内の,その他のポートで,3306ポートを選択することで外部からの接続がOKになりました.
めでたしめでたし.
IPアドレスを固定にする(Fedora9ネットワークマネージャの罠)
DHCPの設定でインストールしてしまったため,固定のIPアドレスにしなくちゃと思い,
『システム > 管理 > ネットワーク』内の『デバイス』のeth0の情報を編集.
しかしこれが謎なことに,固定のIPアドレスをちゃんと設定してeth0をリスタートしても,ネットワークにつなげません.
(LANにはつなげるのに)
また,DHCPにしてるときでも,
『システム > 管理 > ネットワーク』内の『デバイス』のeth0の情報で,
『Network Managerで管理』のチェックを外していると,
-firefoxがオフラインモードで起動する
-『コンピュータ起動時にデバイスを起動』にチェックしてるのに,起動してくれない
という迷惑なことが起きるのです……
なんでなんで?
…と思ったら記事発見.
昨日は日本語入力できなーい!って悩んでたけど,これもバグだったんですねー
【重要】『Fedora9』について
というわけで,ネットワークマネージャをサヨウナラしたところ,あっさり動作してくれました.
それにしてもぐじゃぐじゃ悩んだ…><;
デフォルトゲートウェイ?ネットワークアドレス?ブロードキャストアドレス?
全用語を確認しなおして自分のネットワークに関する浅い知識を補う良い機会となりましたw
ちなみに,このネットワークの設定は,
/etc/sysconfig/network-scripts/ifcfg-eth0ファイルに記述されてるみたい.
だから,ここを書き換えるだけでもIPアドレスの設定などが可能でした.
(BOOTPRONTOの値をdhcpからstaticもしくはnoneに変えて,IPADDR・NETMASK・GATEWAYの3つの値を登録すればOK)
『システム > 管理 > ネットワーク』内の『デバイス』のeth0の情報を編集.
しかしこれが謎なことに,固定のIPアドレスをちゃんと設定してeth0をリスタートしても,ネットワークにつなげません.
(LANにはつなげるのに)
また,DHCPにしてるときでも,
『システム > 管理 > ネットワーク』内の『デバイス』のeth0の情報で,
『Network Managerで管理』のチェックを外していると,
-firefoxがオフラインモードで起動する
-『コンピュータ起動時にデバイスを起動』にチェックしてるのに,起動してくれない
という迷惑なことが起きるのです……
なんでなんで?
…と思ったら記事発見.
昨日は日本語入力できなーい!って悩んでたけど,これもバグだったんですねー
【重要】『Fedora9』について
というわけで,ネットワークマネージャをサヨウナラしたところ,あっさり動作してくれました.
それにしてもぐじゃぐじゃ悩んだ…><;
デフォルトゲートウェイ?ネットワークアドレス?ブロードキャストアドレス?
全用語を確認しなおして自分のネットワークに関する浅い知識を補う良い機会となりましたw
ちなみに,このネットワークの設定は,
/etc/sysconfig/network-scripts/ifcfg-eth0ファイルに記述されてるみたい.
だから,ここを書き換えるだけでもIPアドレスの設定などが可能でした.
(BOOTPRONTOの値をdhcpからstaticもしくはnoneに変えて,IPADDR・NETMASK・GATEWAYの3つの値を登録すればOK)
2009年1月15日木曜日
論文を書くときに気をつけること
せっかくだから,先輩に注意されたことをまとめておこうと.
当たり前のことかもしれないけれど,文章力のない私には必要.
(随時追加する)
・1文を短く分かりやすく
・「もの」を使わず具体的に.
比較対象なども分かりやすく.
・「〜が,〜」→「〜.しかし,〜」と2文に分けてシンプルに.
ー「〜が,〜」は基本逆接だが順接にもとることができるため.
・主張→理由→例 の流れ
ー「〜である.なぜなら〜.例えば,〜」がわかりやすい.
・アブストとイントロは実験のところ以外は未来形.まとめは過去形
・関連研究
背景はいらない.どのような手法で何を示したか.
・提案
抽象的→具体的
・実験
目的→手法→実験環境→結果→結論
当たり前のことかもしれないけれど,文章力のない私には必要.
(随時追加する)
・1文を短く分かりやすく
・「もの」を使わず具体的に.
比較対象なども分かりやすく.
・「〜が,〜」→「〜.しかし,〜」と2文に分けてシンプルに.
ー「〜が,〜」は基本逆接だが順接にもとることができるため.
・主張→理由→例 の流れ
ー「〜である.なぜなら〜.例えば,〜」がわかりやすい.
・アブストとイントロは実験のところ以外は未来形.まとめは過去形
・関連研究
背景はいらない.どのような手法で何を示したか.
・提案
抽象的→具体的
・実験
目的→手法→実験環境→結果→結論
登録:
投稿 (Atom)