
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
insertモードで、CTRL-Rでregisterの中身を挿入できる。
# :help ^R^Wで出て来るhelpページの数行上に書いてある
で、CTRL-R + %で、ファイル名も挿入できる。
それを利用して、#ifndef __FILE__挿入mapを作った。
map <F11> <Esc>O\.^R%.<Esc>:s/^.*\\//g<CR>:s/\./_/g<CR>I#ifndef <Esc>wgU$yyp0lcwdefine<Esc>o<Esc>Go<CR>#endif<CR><Esc><C-o>
置換の時、パターンが見付からないとmapの実行がその時点で止まるので、
必ずpattern matchingが成功するように、最初にファイル名と一緒に\と.
を挿入している。
BSDスタイルで、関数のreturn typeと関数名を別の行に書いていたら
void
func(int a, int b)
のように、return typeがインデントされてしまう。キーッ!
俺は
void
func(int a, int b)
のように書きたいんじゃー!
set cino=t0 (set cinoptions)
で解決した。
sonyが、生分解プラスチックを4000円のWALKMANに採用したとのこと。
これからは廃棄物をメーカーが回収する(その分価格に跳ね返る)から、
生分解プラスチックを使用して回収時のコストを下げる狙いが
あるのだろうな。きっと。
これからは、テレビ等いろいろな家電に生分解プラスチックが
採用されて行くに違いない。
<http://watch.impress.co.jp/av/docs/20020829/sony.htm>
pool_cacheは、construct済みのobjectのリストと
考えればいいのか。
そう考えれば、pool_cacheからbackendのpoolに戻される時に
destructorが呼ばれるのは当り前か。
plain2では、図も作成できるらしい。
ChangeLog以外のコンテンツは、plain2で作ろうかな。
<http://www.asahi-net.or.jp/~vw4k-kbys/plain2/readme.html>
<http://ftp.debian.or.jp/debian-jp/pool/main/p/plain2/>
<http://shika.aist-nara.ac.jp/products/plain2/plain2-j.html>
-pool_cache_getは、cacheに何も無い時はpool_getし、constructorを
コールする。pool_cacheにobjectがある場合は、それを返す。
-pool_cache_putは、pool_cacheにobjectを返す(その時に
destructorは呼ばない)。一つのpool_cacheには16個のobject(の
ポインタ)を格納できるが、足りなくなったらcacheをallocateする。
-destructorが呼ばれるのは、pool_cacheからbackendのpoolに戻される時。
-pageが残り少なくなって来たら、pagedaemon(uvm)がpool_drain()を
コールする。すると、未使用pool_cacheが破棄される。
関数のcalleeで、callerの情報(ファイル名と行番号)を知る方法。
void func()がcalleeとする。
func.h
void func(void);
#ifdef DISANOSTIC
void _func(const char * file, long line);
#define func() _func(__FILE__, __LINE__)
#endif
func.c
#include "func.h"
#ifdef DIAGNOSTIC
void _func(const char * file, long line) { ... };
#undef func() (*1)
#endif
void func(void) { ... };
#define func() _func(__FILE, __LINE__) (*2)
*1 ここで、undefしないと下のfuncの定義がおかしくなる
*2 これ以降func()をcallしないならば、必要ない
なお、以下のように、関数の中身は一緒にして、signatuereだけを
変えるという手もある。
func.c
#include "func.h"
#ifdef DIAGNOSTIC
void _func(const char * file, long line)
#else
void func(void)
#endif
{ ... };
この場合、引数fileとlineがunusedになり、warningが出る可能性がある。
sys/pool.hより
ようやくqueue.hを理解した。
LIST : 双方向リスト
SLIST : singly-linked list。remove時に前の要素のnextポインタの
設定のため、前の要素をlistをたどって検索する必要あり
SIMPLEQ : SLISTと基本的には同じだが、headが最後の要素の
nextへのポインタを持っているため、INSERT_TAILが可能。
SLISTと異なり、removeはREMOVE_HEADしか用意されていない。
TAILQ : LISTで、headが最後の要素へのポインタを持っている。
TAILQ_FOREACH_REVERSEは、varの一つ前の要素を指すために、
prevのprevのnextというように、逆順にたどって行く。
CIRCLEQ : headも含んだ双方向リスト。ただ、他のリストとは異なり、
prevは、前の要素のnextへのポインタ(**)ではなく、
要素へのポインタ(*)である。
また、headはfirstとlastへのポインタを持っている。
subr_pool.cを読むのは、明日にしよう。
NetBSDのqueueのentryは、
struct xxx {
struct yyy *next;
struct yyy **prev;
};
と、なっている。図示すると、
elm1 elm2
+-------+ --->+-------+
+field+ | | +field+
| next----- | | |
| ↑------------prev|
+-+-----+ +-+-----+
分りにくいな・・・
nextは、次の要素(elm2)を指している。
prevは、前の要素(elm1)を指す必要は無くて、前の要素のnextポインタさえ
指していれば、リスト操作ができる。
nextも次の要素のnextポインタを指してしまうと、リスト操作はできるが
elmの他の要素を(ストレートには)見ることができなくなってしまう。
# linuxではそのようになっていて、offsetof()でnextからelmの位置を
# 無理矢理出していたような気がする
メインマシンのマウスカーソルを以下に変えた
「windows 反転色(大きいフォント)(システム設定)」
大きくて反転色なので、目立って予想外に見やすい。これはいいかも。
Xのマウスカーソル、すぐにどこにあるのか分らなくなるんだよね。
debianではOneko(cat)を使用しているけど、たまに猫が邪魔になる。
Xでマウスカーソルを変えるにはどうしたら良いのだろう。
news groupsの*.dは、discussionの略で、*の内容に関しての
討論の場らしい。
例:
fj.jokes
fj.jokes.d
<http://www.ceres.dti.ne.jp/~manbou/fj/fj_4.html>
OpenBSDは、Theo(セオ)氏の揉め事がきっかけで、NetBSDから分裂
したものらしい。
<http://freebsd.flathill.gr.jp/~flathill/FreeBSD/chat/log/1999/log990531-0601.html>
<http://cruel.org/openbsd/>
uvm_glue.cで、以下のコードを見付けた
#if DEBUG
if (swapdebug & SDB_PAGEIN) {
...
}
#endif
debug変数は、if (debug > 5)などとレベルで使用する方法しか
みたことがなかったが、この使い方はよさげ。
init_main()は、uvm_scheduler()をコールして、proc0(swapper)となる。
swapper(#0)は、どれか一つのプロセスのpageinを行う(uvm_swapin(proc))。
phys memが残り少なくなっていたら、pagedaemon(#1)をwakeする(uvm_wait())。
ある数が2のべき乗かどうかの判定
if (x & (x-1)) = 0
2のべき乗
else
2のべき乗でない
<http://seclan.dll.jp/dt199906.htm>
^z c : create
^z d : detach
^z n : next
^z p : prev
^z A : title変更
^z G : ベル変更
^z K : 閉じる
^z w : window一覧
screen -rで、デタッチしていたのをアタッチ
screen -xで、multiモード
<http://risky-safety.org/~zinnia/screen/index.html>
<http://risky-safety.org/~zinnia/screen/contribute1/text.html>
<http://www.watakatsu.com/unix/screen.html>
<http://www.gentei.org/~yuuji/rec/pc/intro-screen.html>
w3mの設定も行った。これでタブブラウザの気分。
Mでnew windowでext browserで開く
ESC-Mで現在のページをext browserで開く
CRTモニタは、入力と出力がリニアではなく、
出力値 = 入力値**gamma
という特性を持っている。
これを打ち消して、モニタ表示をリニアにするには、
ガンマ補正値 = RGB値**(1/gamma)
をかければ良い。
<http://www.asahi-net.or.jp/~xn6t-ogr/colors/colornotes.html>
<http://www.cgsd.com/papers/gamma.html>
gamma correction Java Applet
<http://www.cs.berkeley.edu/~efros/java/gamma/gamma.html>
TeraTermでlinuxにログインした場合に、viでカラー表示を
するには、
% screen vim
と、screenで立ち上げれば良い
<http://cocoa.2ch.net/unix/kako/1001/10019/1001966406.html>
<http://www.dekaino.net/screen>
startでは、ほんとに限られた事しかしていない(MIPSの場合。
他のportのソースはまだ見ていない)
-割り込み禁止
-SPのセット
-コプロのenable/disable
-CPUid、FPUidの取得
-_C_LABEL(mach_init)をコール
-SPをproc0のstackにセットし直す
-_C_LABEL(main)をコール
Porting BSD UNIX to a New Platform
by Lawrence Kesteloot
<http://tofu.alt.net/~lk/291.paper/291.paper.html>
NetBSDでのカーネルの構築の方法
<http://www.jp.netbsd.org/ja/Documentation/kernel/>
Linux(debian)の構築方法は、何回見ても覚えれなかったが、
これなら覚えれそう。
15:33に、make開始。
16:04終了。30分しかかかってないけど、こんなもんなのか?
昔は、一晩とかかかっていたような気がするんだけど・・・
softc構造体とは、Software Contextの略で、
デバイスのプライベートな情報を格納するらしい。
<http://www.ht.sfc.keio.ac.jp/move/momodoc/usbdriver>
webページのアップロードに"mirror"を使用する事にした。
<http://www.zdnet.co.jp/help/tips/linux/l0518.html>
どうでも良いけど、検索しにくいコマンド名は止めて欲しい・・・
globalとかも。
NetBSDのtelnetdを有効にした。
# vi /etc/inetd.conf
で、telnetの項のコメントアウトを外し、
# /etc/rc.d/inetd restart
としただけ。
NetBSDのrcスクリプトは、スクリプト間の依存関係が記述されている。
そのため、rc.0, rc.1や、010inetc等のように、ファイル名や
ランレベルで依存関係を処理しなくて良い。
<http://www.jp.netbsd.org/ja/Documentation/rc/>
/etc/rcを見てみると、rcorderコマンドで、実際に
起動する順序をきめているようだ。
次期Athlonでは、FSBが266から333に引き上げられるらしい。
FSB266はPC100/133のころは十分だったが、メモリの高速化に伴い
266MHzでは不十分になっているらしい。 (Pen4は既に533MHz)
今AMDがFSBを上げる理由は・・・
-AMDがメインとしているDesktop用途では、そんなに高価で
高速なメモリが必要とされなかった。(serverではないので)
-モデルナンバーが定着してきたので、FSBを上げてモデルナンバー
を上げるのが得策と判断した。
-FSBを上げるだけの余裕が今まで無かった。
こんな所か。
次号は9/13発売。NetBSDの内部構造の解説があるらしい。
絶対に買わねば
特集1 NetBSDの設計と実装
特集2 セキュアプログラミングのすすめ
<http://www.ascii.co.jp/BSDmag/next/index.html>
GNU Hurdは、Mach kernelらしい。
<http://www.gnu.org/software/hurd/gnumach-doc/mach.html>
*BSDでのsplxxxは、spin lockではなく、
Set Priority Levelの略だと知った。
追記 NetBSDのmanによると、system priority levelの略かも。
論文を読んでいて、気の付いた事
-COWは、map entryの属性であり、pageの属性ではない
COW属性は変わる事はない。read-onlyなどは、pageの属性。
mutt-jaが一時期woodyからなくなっていて、potato版を使用していた
気がするんだけど、気のせいかなあ?
mutt-jaだけholdしていた気がするのだが・・・
emaillab
LinuxJapan掲載記事などもある。
<http://www.emaillab.org/mutt/>
そういえば連休中にCobraのblue roseと、black knight BATを
購入した。
black knight BATは、つまらなくはないが、ちょいいまいち。
blue roseは、寺沢ワールド全開と言う感じで、面白かった。
あと持っていないもの
-cobra 1 THE PSYCHOGUN 上
-cobra 2 THE PSYCHOGUN 下
-cobra 11 MAGIC DOLL
-ゴクウ(handy版はまだか?)
遂に、windowsのvimでglobalが使えるようになった。
-bash.batの作成
cygwin% cat bash.bat
@ECHO OFF
set path=.;c:\cygwin\bin
%1 %2 %3 %4 %5 %6 %7 %8 %9
-_vimrcの変更
cygwin% tail _vimrc
set shell=c:\\bin\\bash.bat
set shellcmdflag=
set shellxquote=
set grepprg=global\ -t
set grepformat=%m\TAB%f\TAB%l
-はまった事
vimでvimrcを編集すると、^I(tab)がうまく入力できなかった。なぜ?
なので、_vimrc(のgrepformat)の編集は、メモ帳で行った。
DOS promptでglobalを実行すると、
「入力ファイルが2度指定されました」などというエラーがでて
いたが、どうやら、c:\winnt\system32\等にパスが通っているせいで
globalが内部で実行するコマンド(findとか?)がエラーを出していた
らしい。
連休明けでやる気が起きない…
<http://www.gnu.org/software/global/globaldoc.html#SEC34>より
set grepprg=global\ -t
set grepformat=%m\TAB%f\TAB%l
# TABの所は、タブで入力する
これでunixではうまく言ったんだが、windowsのvimでは
「入力ファイルが2度指定されています」とかなんとか言われて
うまく動作しない。
動作している人もいるようなのだが・・・
<http://www.geocities.com/shankara_c/global.html>
一応UVMのページを書いておこう
<http://ccrc.wustl.edu/pub/chuck/tech/uvm/>
webでUVMの資料をさがしたが、これくらいしか見付からなかった。
英語のページなら、いろいろあるのかも知れないが。
ちなみに、
<http://www.delorie.com/djgpp/dl/ofc/simtel/v2gnu/glo431b.zip/>
に、djgpp版があったが、そのときはどのファイルをDLすればいいのか
わからなかったため、djgpp版は試していない。
cygwin版のglobalを発見。
<http://www2.raidway.ne.jp/~yzone/dists/cygwin/global/>
公開してくれている方に感謝
使い方
% global hoge
hogeの定義を検索
% global -x hoge
hogeの定義を詳しく検索
% global -rx hoge
hogeをコールしている箇所を検索
% global -s DEBUG
シンボル検索
UVMの勉強中
<http://www.netbsd.org/Documentation/kernel/uvm.html>
にある、Charles Cranorのpaperを読んでみるが、英語なので
眠くなって来る・・・
イギリスドーセットの巨人の地上絵
豊穣のシンボルだそうで
<http://www.england-in-particular.info/cerne.html>
vforkは、copy on writeが無かった時代のもの。
forkでメモリのコピー後にexecすると、コピーが無駄になるの。
vforkは、コピーを行わない。
現在ではcopy on writeされるので、vforkのメリットはあまりない。
(それでも、page tableのcopyは無いので、多少高速)
BSD Magazine No.4で勉強中
-splは、SMPでのlockだと思い込んでいたか、実は
割り込み禁止だった。
-BSD系のフリーOSは、kernelはpriemptyveではない。
-kernel内でspl以外のlockが必要になるのは、何らかのかたちで
自発的にコンテクスト切替え(tsleepなど)を行っている場合である。
-preemptとは、無理矢理割り込む場合で、自発的にコンテクスト切替え
はpreemptではない(と思う)。もともと、話を割り込むとかそういう
感じの意味らしい。
-trapとsystem callは、それを発行したユーザープロセスに対応する
カーネルプロセスのコンテクストで実行される。(プロセスのコンテキスト)
-割り込みは、割り込み発生時点のユーザープロセスとは必ずしも
関係しない。(割り込みコンテキスト)
-timeoutはcalloutとも言うようだ
-UNIXでは原則的に、プロセスの数だけページテーブルが存在する
-text setctionやdata sectionは、ファイルの裏打ち(backing store)
がある、名前付きメモリ。(named memory)
BSSやstackは、裏打ちのないanonymous memory。
dataセクションに書き込みをすると、裏打ちを失い、anonymous
memoryにすり変わる。
Cobraファンのページを見付けてしまった
<http://f1.aaacafe.ne.jp/~tarbeige/start.htm>
topページにビキニの女性の絵がででーんと二つもあるので、
アクセスするのがちとはずかしい。
Cobraのカラー版は、古い話に着色しただけのものがあり
どれを買えばいいのかわからなかったが、
<http://www1.plala.or.jp/K2VEGA/comic/buichi.html>
によると、以下の話が新しいらしい
1 THE PSYCHOGUN 上
2 THE PSYCHOGUN 下
4 GALAXY NIGHTS (持ってる)
6 TIME DRIVE (持ってる)
8 BLUE ROSE
11 MAGIC DOLL
以下のMLに加入した。
-tech-kern
-current-users
他には、流量がほとんど0のMLも多数あり、上の二つがよさげだった。
<http://mail-index.netbsd.org>
Lion's commentary on UNIXを読みたくなったが、
-知りたいのは、ソースの書き方であり、UNIXのしくみを知るのが
第一の目的ではない。
ので、NetBSDのカーネル読みを続ける。
nocola.txtそのままでは、"ほ"が出ず、"゜"も出しにくかったので
ちょっとnicola.txtを書き換えた。
"z"で"゜"がでるようにした。
シフト動作にまだ慣れない。
漢直は感じを覚えるのが大変だし、AZIKも使っているが何かしっくり来ない。
中指ニコラを導入してみる
<http://www.ops.dti.ne.jp/~cake-smd/wiki/NakayibiNicola.html>
% mkromdic nicola.txt
.cannaに以下を追加
(setq romkana-table "nicola.txt")
メインマシンのネットワーク(6)が良く不調になる。
4のネットワークからは外にでれるんだけど・・・
どうやら、DNSを引けていないような気がする。
メインマシンのプライマリDNSサーバーがlinuxマシン(4)と
違ったので、同じにしてみた。
16MBのCF(Pin memory)をsecter per clusterが1のFAT16でformatしたら、
win2000では8MBのCFに見えてしまう。
なぜだか分らないが、secter per clusterを2にしたら解消した。
FreewarePalm
<http://www.freewarepalm.com>
NetBSDのmsdosfs.hより。
union bootsector {
struct bootsector33 bs33;
struct bootsector50 bs50;
struct bootsector710 bs710;
}
こうしておいて、関数の引数では、union bootsectorを使用する。
全然フォーマットの異なる物を受け取りたい場合は、unionを
使用すれば良い。
言われると当り前だけど、なるほどねー。
QのアップデートDVDがpanasonicから届いたので、
ファームのアップデートをした。
話によると、千と千尋の再生時に不具合が出るらしい。
<http://www.panasonic.co.jp/customer/dvd/faq/sck/>
壊れたBPBが書いてあるCFをwindows2000で見ようとしたら、
OSが落ちた・・・
しかもその後、windowsのログオンパスワードを忘れていて、
ログオンできなくてしばらく悩んだ。
/sbin/newfs_msdos
のソースがみたいので、
ftp://core.ring.gr.jp/pub/NetBSD/NetBSD-release-1-5/tar_files/src/
から、sbin.tar.gzをDLする。
ちなみに、new_fsは、linuxでいうところのmkfs。
ceilの整数での計算方法
ceil(a/b) = (a - 1 + b) / b
# ceil(a/b) = a/b + 1 ではない。
例: b=3の時
a/b (a-1+b)/b
a=0 0 1
a=1 0 1
a=2 0 1
a=3 1 1
a=4 1 2
a=5 1 2
- a-1の-1によって、a=3の場合の扱いを変えている
試してガッテンより。
ソーセージは、赤みと脂がまざり、一種の霜降り状態を形成している。
まぜるときは、低温(4℃とか)で混ぜないと、脂が混じってしまう。
茹でる時(薫製のものもあるが)は、70℃くらいでないと、
脂がとけだしてしまう。
<http://www.tldp.org/HOWTO/Large-Disk-HOWTO-6.html>
昔のIBM PS/2では、HDの後ろに欠陥クラスタ情報を格納していた。
そのため、fdiskは最終シリンダを使用しないようにしていた。
BIOSも念のため、1少ないシリンダ数をかえしていた。
合計で、最後の2シリンダが使用されない。
とまあ、こんな感じらしい。
windows2000/XPにはfdiskは付属していない。
かわりに"diskmgmt.msc"を実行すると、ディスク管理ツールが起動する。
<http://homepage2.nifty.com/winfaq.fdiskhowto.html>
aliasing ruleについて。
ある特定のメモリの一ヶ所を、2つの別々の型を持っている
と(intとfloatとか)みなすのが良くないらしい。
sockaddr_inとsockaddrをキャストするのは、どうやら問題ないようだ。
(同じ箇所は、同じ基本型でアクセスしているので)
<http://gcc.gnu.org/ml/gcc/1999-09n/msg/00495.html>
<http://gcc.gnu.org/ml/gcc/1999-09n/msg00519.html>
を実行してみる。
-fstrict-aliasingは、-O2をつけないと動作しないような気がする。なぜ?
しかも、動作結果も正しくない用に思える・・・
しかも、warningがでない。出るようにするにはどうしたら良い?
aliasing ruleについて調べる。gcc.gnu.orgにいいものを発見。
<http://gcc.gnu.org/ml/gcc/1999-08n/msg00646.html>より引用
If a program attempts to access the stored value of an object
through an lvalue of other than one of the following types the
behavior is undefined:
--the dynamic typed of the object
you can use an `int *' to refer to an `int'.
--a cv-qualified version of the dynamic type of the object,
you can also use a `const int *' to read an 'int'.
--a type that is the signed or unsigned type corresponding to the
dynamic type of the object,
Or an 'unsigned int *.
--a type that is the signed type corresponding ty a cv-
qualified version of the dynamic type of the object,
Or a `const unsigned int*'.
--an aggregate or union type that includes one of the aforementioned
types among its members (including, recursively, a member of a
sub-aggregate of contained union),
You can read or write an entire structure, thereby accessing all of
its fields.
--a type that is a (possibly cv-qualified) base class type of the
dynamic type of the object,
This one is c++-specific. You can read or write an entire base class
of the actual type of the object.
-- a char or unsigned char type
You can use a `char *', `unsigned char *', `volatile char *',
`unsigned const volatile char *', etc. to read or write from
anywhere.
All pointer types here can be replaced with reference types as well
itojunさんの、aliasing ruleの問題を避けるためのpatch
NetBSD ML 07914より引用
aliasing ruleの事は考えなくても、こっちの方が分りやすい。
- u_int16_t answer = 0;
+ union {
+ u_int16_t w;
+ u_int8_t b[2];
+ } answer;
:
if (nleft == 1) {
- *(u_char *) (&answer) = *(u_char *)w ;
- sum += answer
+ answer.w = 0;
+ answer.b[0] = *(u_char *)w;
+ sum += answer.w
}
NetBSD ML 07913より引用
> if (nleft == 1) {
> *(u_char *) (&answer) = *(u_char *)w ;
> sum += answer
> }
バイト列(以下、値は16進数)で、
12 34 56 78 90 AB CD EF 20
と並んでいると、big endianでは、
1234 + 5678 + 90AB + CDEF + 2000 = 1E746
little endianでは、
3412 + 7856 + AB90 + EFCD + 20 = 247E5
となります。ポイントは奇数のときの最後の1バイト分についての、
あのキャストの組み合わせた処理にあるわけです。
そして、桁溢れたした分は下位に足して、16ビットを越えた分を捨てるので、
big endian E747
little endian 47E7
となり、結局これらのメモリ上での並は一緒になります。
C aliasing ruleと言う物があるのを知った。
違う型なら、違うメモリ空間に配置されていると仮定すると、
(例えば、intはdouble*でアクセスはされない)
その分最適化を行えるらしい。
例えば、以下のようなコード
unsigned short *w = (void *)&tmp;
参考
<http://www.jp.netbsd.org/ja/JP/ml/port-powerpc-ja/200207/msg00035.html>
Xで日本語を多量に表示すると重くなるが、
<http://www.zukeran.org/shin/linux/x-tt/>
を参考に、/etc/X11/fs-xtt/configに
deferglyphs=all
を入れてみた。効果はまだ分らず。
Xのしくみ
<http://www.tcp-ip.or.jp/~ikken/intra/xwindow.txt>
-Xはクライアントサーバーモデルで動作するが、
X端末が"サーバー"であり、動作させるプログラム(xeyesなど)が
クライアントである。
westy% xeyes -display westy:0.0 表示サーバーとして、westyを指示
cobra% xhost +westy サーバーは、クライアントwestyを許可
windows2000 CDのsupport/tools/setup.exeを実行して、DiskProbeを
インストールした。
diskのセクタの読み書きが行えるので、MBRなども見れる。
デフォルトでdiskへのアクセスはread onlyなので、安心。
Multi-Boot Info.
<http://www.remus.dti.ne.jp/~ponya/multi_boot0.html>
MBRの構造、ドライブレターの順序、SYSコマンドとFDISK /MBRに関してなど。
interfaceの記事らしいものを発見
<http://www.cqpub.co.jp/interface/toku/200107/toku1_5.htm>
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12
2002 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2006-01-06 18:00