2009-01-01から1年間の記事一覧
void process_mp_configuration(void) { /* Scan MP table and find some information about MP configuration */ u32_t next; int cpu_count, bus_count, apic_count, ioint_count, lint_count; int i=mph.mpch_entry_count; u8_t this_entry; struct io_ap…
int load_mph(void) { /* Find and load a valid MP config header struct. Return noncero on success */ unsigned addr; phys_copy ( fps.fp_mp_table , vir2phys(&mph) , sizeof(mph) ); if (test_mptable_checksum()) return 1; ADDS_MP_STATUS("MP conf…
調べているのはここにあるソース。 http://gsd.unex.es/projects/minixsmp/ void mp_start() { /* Load MP configuraton and wake up each CPU in the system */ u32_t trampoline_addr; int cpu; /* Start messaging to console */ MP_STATUS[0]=0; ADDS_MP…
minixsmpの実装勉強はmp.cに入っていく。まず最初は、enable_cpu()。 PUBLIC void enable_cpu(int cpu, int echo) { /* Mark a CPU as usable, enables it, and open interrupts. If echo is nonzero, print a message of successfully enabling */ if (cpu_…
miniz2.0.0でsmpを実装した人がいるので、その人の資料を参考に読み進める。 #minix3.1.0に適用できそうなのか知りたいのでこちらの実装も合わせて見ていく。 もともとminixはmp対応してないので、APICとかの仕様も調べないといけない。minix2.0.0との変更点…
先週届いたJames Whittakerの本を読みつつtwitterにつぶやいているので、今まで書いた分のまとめを貼っ付けておく。 # Exploratory Software Testing 2章もうちょいで読み終わり。9:48 PM Sep 17th from web # Manual TestingとScripted Manual Testingの違…
久々にoopsが出たので貼り付け。 多分下のコマンド実行中でのoops発生と思う。 sudo dd if=/dev/zero of=/dev/sdf bs=1M [287041.483833] INFO: task hald-addon-stor:19153 blocked for more than 120 seconds. [287041.483841] "echo 0 > /proc/sys/kernel…
まずはMINIXから。オペレーティングシステム第3版のP449でminixはページングは使ってないと書いてあるのでminix3.1.0だとページング機能は未使用。 qemuでminix起動後のcr3レジスタの値をみても0なので、確かにページングは使ってなかった。。Linuxは0.10と2…
ファンクションキーを使って情報表示させているのはisサーバでソースはservice/is。 関数を追加したい場合はisディレクトリにあるdmp.c、proto.hを変更する。 dmp.cの中で変更するのはNHOOKの数と、hook_entry構造体を初期化している箇所。 #define NHOOKS 1…
自分が持ってるオペレーティングシステムの第2版のP127によると、minixがメッセージの送受信に使うメッセージの構造体はtype.hとなってるけど、3.1.4だとminix/ipc.hにあった。 typedef struct {int m1i1, m1i2, m1i3; char *m1p1, *m1p2, *m1p3;} mess_1; t…
久々に遭遇。再現できるかと思って試したけど再現しなかったので、ログだけ貼っ付けとく。 Jul 26 22:05:33 localhost kernel: [45852.371020] ============================================= Jul 26 22:05:33 localhost kernel: [45852.371026] [ INFO: po…
というわけで、まずは/usr/src/servers/vm/mmap.cにあるmmapの動作をみてます。 mmapの本体はかなり小さめ。linuxのsys_mmap()も小さいけど中で呼んでるdo_mmap_pgoff()がメインの処理っぽいとも言えると思うけど、minixはほぼdo_mmapで完結してるもよう。 /…
やっぱり関数型言語も覚えてみたかったので、金曜にアキバのヨドバシにある有隣堂で本を探してきました。 そんで、買ったのは「やさしいEmacs-Lisp講座」と言う本。Emacs-Lispなら~/.emacsいじるとかemacsの拡張が出来るし便利かなと思ったってゆうのが大き…
スライドショーで表示する時間が3秒固定だったりして色々アレであるが、一応スライドショーにはなるしこれで良いや( ̄ー ̄)ニヤリ diff -uprN old/gpicview-0.2.0/src/main-win.c new/gpicview-0.2.0/src/main-win.c --- old/gpicview-0.2.0/src/main-win.c 200…
git format-patchで時系列に沿った形の一連のパッチ作成。リポジトリを初期化して、ファイルを追加 [masami@moon:~/build/hello]% git init Initialized empty Git repository in /home/masami/build/hello/.git/ [masami@moon:~/build/hello]% emacs hello.…
ソフトウェア品質関連のシンポジウムっす。スモークテストとテスト自動化戦略に関して発表しますんでよろしくお願いします。 まだスライド1枚も書けてないけど(゚Д゚)ゴルァ! 一般発表募集に対して提出したアブストラクトは査読者の方々にきちんと査読された上…
テスト環境はこんな感じです。 [masami@moon:~/build/debug_test]% uname -a Linux moon 2.6.30-rc7-x86tip-tip #1 SMP Tue May 26 23:41:24 JST 2009 x86_64 GNU/Linux [masami@moon:~/build/debug_test]% gcc -v Using built-in specs. Target: x86_64-lin…
この前のDebug Hacks Nightで実演していたemacs + gdbの組み合わせは便利!! 今まではタブが使えるターミナルで一個目のタブでemacs、2個目のタブでgdbとゆう感じでやってたけど1画面で見れるし、 gdbでの実行状態とemacs上のカーソルが連携してくれるから…
BTSでのやりとりはここ発端は久々にIRCでもと思ってxchatをデスクトップのメニュー(当時はfluxboxだったような)からxchatを選択しても起動しなかったのがきっかけ。起動失敗した理由が得られなかったのでコマンドラインから打てば分かるだろうということで…
こういったイベントとか勉強会に参加すると新しい知識や気づきとかを得たり、 色んな人との出会いがあって良いですね。 個人的にはそれらの結果としてモチベーションが上がるってのも参加する理由の一つです。 発表者はもちろん、参加者も意欲的な人が多いか…
Linuxはカーネル2.6系からシステムコールのテーブルを使って任意のシステムコールをフックしづらくなったのでその方法のメモ。 #configのメニューでどこかをいじれば2.4系と同じようにもできるらしいけど。 テスト環境はx86_64マシン。 やってることはmmap()…
使っているカーネルはこんなバージョン。 [masami@moon:~]% uname -a Linux moon 2.6.30-rc5-x86tip-tip #1 SMP Sat May 9 22:38:05 JST 2009 x86_64 GNU/Linuxやっていることは何の変哲もないddコマンドなんだけど、killコマンドすら受け付けん。。 [masami…
#写真は前に撮った大崎駅近くからの夕焼けkernelnewbiesメーリングリストで非SMPマシンでレースコンディションを作りたいと言うスレッドがあって、その中でtask_structの扱いが話題になっていたので調べてみた。ソースはlxrにある2.6.29を参照しつつ 入り口…
STAREASTで一番話を聞きたかったJames Whittakerのチュートリアルは非常に面白かった。一番印象にのこっているのはCapabilityを考えることが重要と言っていたこと。 チュートリアル後に彼の手法について質問も出来たし、参加初日にして目的はほぼ達成。質問…
パッケージのページはここ。自分がco-maintainerになって初のバージョン。動作確認はlibsafe付属のexploitで可能。でも、libsafeはdebianに入っていないので(;∀;) アップストリームから要ダウンロード。 mars:/home/masami/libsafe-2.0-16/exploits# ls ca…
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <assert.h> struct foobar { int length; char str[0]; }; void *xmalloc(size_t size) { void *p = malloc(size); assert(p != NULL); return p; } int main(int argc, char **argv) { struct foobar *p = NULL; int len = 0;</assert.h></stdlib.h></string.h></stdio.h>…