川の流れのように‥(Eiji Ota's Weblog)

水曜日 8 03, 2005

御礼 (Thank to people I met in Japan)

御礼 (Thank to people I met in Japan)

御礼 (Thank to people I met in Japan)


日本からアメリカに戻り、(ちょっと体調を崩していましたが)ようやく体調も戻り、生活も落ち着きました。^-^ そして、ふと気づいてみると、ほぼ一カ月経ってしまいました。(^-^;)>

さて、ブログを再開…と思うのですが、その前に、まずは日本で会った皆様への御礼です。(^-^)

  • ◎古巣の職場のF通の皆さんには、私のブログを見ているとのコメントを頂きました。本当に励みになります。ありがたいです。
  • ◎日本Sunの皆さんには、日本滞在中にオフィスを使わせて頂きました。お蔭で仕事の遅れを作ることなく、日本に滞在できました。横浜や用賀オフィスは景色が綺麗でよかったです。ありがとうございました。
  • ◎久々にあった友人達 - 某省の友人、大学の友人、高校の友人、小学校の友人とは、久々に美味しいお酒と楽しい昔話をさせて頂きました。ブログを見てくれている友人もおり、嬉しかったです。
  • ◎そして最後にNSUGに来てくださった皆様、楽しい一時を持たせて頂き、ありがとうございました。アッセンブラが好きですと言ってくださる方やOpenSolarisをCellプロセッサーに移植したいと話される方などなど、色々な方に出席して頂き、貴重な意見を頂くことができました。本当にありがとうございます。

次に、NSUGの際にお話したことで次の2点についてここで再掲させて下さい。

OpenSolarisのはしょったビルド

これは日頃、如何にはしょってSolaris Kernelをビルドしているか(^-^;)という、何ともレイジーなお話でした。
ビルド環境を設定した後、
  1. 1. usr/src/utsに移動
  2. 2. make install_h (ビルドの初回のみ必要)
  3. 3. sun4u/unix or i86pc/unixに移動
  4. 4. make -e
などとして、unixやgenunixだけを構築するというものです。

新しくできたunixやgenunixは、SPARCの場合、/platform/sun4u/kernelの代わりを作成(実際には/platform/sun4u/kernelをコピーして、/platform/sun4u/kernel.newなどを作る)して、ビルドしたカーネルをそこに置き"reboot -- kernel.new/sparcv9/unix"などとすれば新しいカーネルで立ち上がります。

SPARCの場合
  1. 1. cd /platform/sun4u/kernel
  2. 2. cp -p -r kernel kernel.new
  3. 3. cd kernel.new/sparcv9
  4. 4. mv unix unix.org
  5. 5. 新しいunixを置く
  6. 6. reboot -- kernel.new/sparcv9/unix

パニックしてしまった場合は、慌てずOBPでbootすれば通常のカーネルで立ち上がりますので心配ありませんよ。^-^

不覚にも ^^;パニックしてしまった場合…SPARC編
OK boot
つまりは、普通に立ち上げるだけ…。^.^(簡単)

x86の場合は、grub bootが導入されましたので、"reboot -- kernel.new/unix"などとしてもアーカイブが更新されないのでダメです。/platform/i86pc/kernel.newなどの新しいディレクトリを作ってカーネルを置いた場合、アーカイブにそのカーネルを入れる必要があるので、/boot/solaris/filelist.ramdiskに"platform/i86pc/kernel.new"というエントリを加える必要があります。でも、x86ではgenunixが/kernelの下にあって、genunixも置き換える場合はちょっとややっこしくなるし、grubブートの場合はfail-safeがあるので、パニックしてもなんとかなるということもあるので、直接unix/genunixを置き換えてしまった方が簡単みたい。(^^;) この場合は、こんなオペレーションになります。

x86の場合
  1. 1. cd /platform/i86pc/kernel
  2. 2. mv unix unix.org
    originalを保存しておく -- パニックした時に戻すのでこれは大事ですよ。
  3. 3. 新しいunixを置く
  4. 4. cd /kernel
  5. 5. mv genunix genunix.org
  6. 6. 新しいgenunixを置く
  7. 7. bootadm update-archive -v
    アーカイブを新しいカーネルで作り直す。
    rebootコマンドを叩くと自動的に作ってくれますが、念のため。^-^
  8. 8. reboot

不覚にもパニックしてしまった場合…x86編
  1. 1. grub bootのfail-safeで立ち上げる
  2. 2. アーカイブをupdateするかと聞いてくるので、迷わず?"no"と答えます。^o^
  3. 3. ディスクをマウントします。ルートのディスク名が表示されるので、それを そのまま使ってしまう。例えばこんな感じ。
    # mount /dev/dsk/c0d1s0 /mnt
  4. 4. 退避しておいたunix, genunixを元に戻します。
    # cd /mnt/platform/i86pc/kenrel
    # mv unix.org unix
    # cd /mnt/kernel
    # mv genunix.org genunix
  5. 5. アーカイブをオリジナルのカーネルで作り直す。
    # bootadm update-archive -v -R /mnt
  6. 6. reboot
こうすれば、無事オリジナルのカーネルで立ち上がります。^-^

ちなみに、nightlyビルドの場合、次のオプションを使うと早いっていうのもありましたね。
NIGHTLY_OPTIONS="-aCDFilnmprz"

US Sunのエンジニアはやっぱり凄い

僕からみて、凄いなぁと思う人達をあげさせて頂きました。でも、ブログを確認しますと、皆さんが書いているわけでもないんですねぇ…。^.^; Jeffさんとか、ほとんど書いていないし(忙しいと思うので仕方がないとは思うけど)。そこでブログを書いている皆さんをとくに再掲したいと思います。

Eric Low - EricさんはVM関係なんですが、それ以外も色々と書いているようです。
Alexander Kolbasov - Sashaさんは、STREAMSが強いですね。大変参考になります。
Bryan Cantrill, Jonathan Adams - ご存じのDTraceですね。

それ以外にも、
Mike Shapiro - Mikeさんの出世作?mdbを使ったデバックとかを書いているようです。それ以外にFMAとかがあります。
Eric Schrock - OpenSolarisのsystem callの追加とか色々書いています。

また、Solaris Internalsの著者として有名なRichard McDougallさん、Jim MauroさんのBlogもありますが、Solaris Internalsのサイトそのものの方が参考になるかも知れません。(Richard McDougallさんのDTraceスクリプトとか参考になります。ツールもダウンロードできるようです ^-^)

今回は、日本滞在中の御礼と、NSUGでお話した"はっしょたビルド"と"凄いUSエンジニア"の補足でした。OpenSolarisのカーネルについても、ぼちぼちとスタートさせて貰いますので、お楽しみに。^-^


Technorati Tag: OpenSolaris
Technorati Tag: Solaris

Comments:

Post a Comment:
  • HTML Syntax: NOT allowed

Calendar

Feeds

Search

Links

Navigation

Referrers