固有の話?の答え、ちょっと調べた感じだと、どうも歴史的なもののようです。(質問の回答としては、Solaris固有ではないが、CPU固有といえば固有、他のOSでも共通かどうかは不明というところでしょうか。)まず話を聞いていない人向けに書くと、Solaris/SPARC(32bit,64bit)やSolaris/x64はそんなことないのに、Solaris/x86だけ、スタックが妙に低いアドレス(0x8048000)から伸びているけどなんぞ、というお話です。Internalsの図このアドレスがキーなのかと思って検索してみたらどうもそうのようで、このアドレスはELFのエントリポイントの模様。Loaders」を調べてみたら、まさにそれっぽい記述を見つけました。ELFがa.outと異なるのは、オブジェクトを0番地付近ではなくアドレス空間の中程にロードして、スタックがテキストセグメントの下位から成長し、ヒープがデータセグメントの終端から成長するようにすることによって、全体として利用するアドレス空間が比較的小さく済むようにしている点である。386システムでは、テキストのベースアドレスは0x08048000で、テキストの前の0x08000000以降の部分に十分に大きなスタックを確保できると同時に、ほとんどのプログラムでは第2レベルのページテーブルは1つだけで済む(386においては、1つの第2レベルテーブルで0x00400000のアドレスをマップできる)。決めた時代的には、ここに置くとアドレスがいい感じだったということのようですね。unthinkable.ということで、1983年のSCOでしょうか。(2.6)は上記場所にスタックはできないようです。Loaders」、ひさびさに読み始めてたのですが、本を見ると2001年初版。出た当初に買ったはず(だいぶ色あせてる)なので、10年後にまた読むとは。前知識なしで読むと全然わからない(10年前がそうだった)ですが、最近のx86やらOSやらの勉強でようやくわかるようになってきました。Amazonの評価はよくないですが、これだけ一通り書いてあってもし読みやすい本があれば是非知りたい感じです。手で.desktopファイルを作って(!)メニューに出せばいいようだ...手順。ここではV2Cというアプリを例にする。Barにドラッグアンドドロップこれで登録できる。Shellを再起動すればいいかも。0はどちらが速いか?Tweetうまい文にならなかったが、貴重な結果なので以下にまとめておく。https://bugs.launchpad.net/loqui/+bug/689164/comments/3)結論としては、出力結果が同じになるので、速度は変わらない。変わらない理由が驚きであった。0にしても、出力結果は変わらないのだが、問題は出力結果。'\0'のようである。0自体を解釈しているようである。驚くべきgcc.ちなみに、-O0でも一緒であるが、-fno-builtinをつけるとちゃんとstrlenをコールしてくれる:まぁ、それでもsize_tがunsignedだったので、結局>0と!=0は出力結果は同じなのであったが。5.x)の上でOpenIndianaを動かしているが、どうもネットワークがおかしい。virtualドライバであるところのvirtioドライバがあればきっといいのだろうと思って探してみると、それっぽいものを発見。https://github.com/grigale/solaris-virtio一昨日pkgコマンドを触ったばかりの人間には妙にハードルが高いが、さっそく入れてみる。Linuxでいうところのmakeしてinsmodするくらいのノリでいけるんだろうと期待。コンパイラがないので入れる。Studioとやらが必要だ。studiosunstudio12u1というのが見つかったので、インストール。sunstudio12u1ccコマンドが使えるようになった。installあっさり/usr/kernel/drv/amd64とかに入った感。ドライバをシステムに認識させないといけない。http://kohju.justplayer.com/Tips_Solaris_OpenSolarisOS_forlinuxuser_adddevice.htmlvirtioのNICのIDがなんだかわからなかった(prtconfの結果を読むのが面倒だった)ので他のLinuxマシンでlspciするというチートを使った。1af4:1000~~きっとpci1af4,1000でいけるに違いない。installed.リブートしろと言われたのでリブートする。OpenSolaris2011-08-28OpenIndianaを148から151にアップグレードするTweetOpenIndianaを148から151にアップグレードする手順です。publisherで確認すると、openindiana.orgのURIがhttp://pkg.openindiana.org/dev/になっています。image-updateします。すると、package/pkgが古いと言われるので、指示通り更新します。image-updateできるようになります。終わったら、再起動します。アップグレードされました。好きな設定を加えるTweetVyattaのCLIから設定できない内容をsquidに設定したいときは、/etc/squid3/local.confに書けば次回コンフィグ生成以降に使用できるようになる。本体のコンフィグと別管理になっちゃうけど仕方ないかなという感じ。databaseみたいなもんだと思えば。設定ファイルができるまで)Tweetsqueezeを初期インストールしたらgrub2になってしまった。いつもインストールするとLinux起動パラメータからquietを外すのが好みなんだけど、grub2はmenu.lstじゃないので設定を変更するのが一苦労。結局、/etc/default/grubの環境変数を変更すればいいことがわかったんだけど、また同じようなことをしないといけない予感がしたので呼び出しを図にしておいた。以下がupdate-grubを叩いてから、grub2の設定ファイルであるgrub.cfgが生成されるまでの動きである。grub.d以下はdistributionによってだいぶ違うんだと思う。フリーの良いUML書くツールないかな。上のはAmaterasUMLで、結構書きやすいけど機能が少なくて常用するのはちょっとなぁという感じ。consoleで出てくるやつ)経由でインストールするコマンド。diskとかはそれっぽく変えないとダメよ。console=tty0はいらないかも。今までvirt-managerからGUIでインストールしてたけど、この程度ならコマンドのほうが繰り返し使えて便利。KVM2011-05-24RutyテンプレートエンジンTweet使ってみてからLiquidテンプレートエンジンはメソッドコールが全くできないという弱点が発覚。意図した特徴だけど全くできないのはちょっとつらい。似たテンプレートエンジンRutyというのがあった。Documentationこっちは使える。テンプレートエンジンTweet最近DjangoやらKayやらを勉強してDjangoのテンプレートやらJinja2やらを見てRubyにも似たようなものないかなと思ったらあった。Liquid検索しても全然日本語がひっかからないので、サンプルを紹介。テンプレート文字列をLiquid::Template.parseして、データを与えてrenderすればよいのだ。liquidでOK.Template::Toolkitスキーなのですばらしい。erb使いでもちょっとした設定なんかにいかが。チューニングTweet前回のupscの出力を見てもらえるとわかるが、UPSを使用する上で重要な充電率が出てこない。"Q1"コマンドでは充電率を教えてもらえないので、仕方がない。オフィシャルなソフトウェアだとうまいことやっているのかもしれない。ここでどうするかというと、フル充電時の電圧と、使い切った時の電圧を書くと、割り算して出してくれる仕組みがあるので、利用する。battery.voltage12.40これをフル充電時と使い切ったときに確認する。シャットダウン試験のときに調べればいいと思う。設定すると、以下の通りでてくるようになる。11(略)これで充電率がわかるようになったので、だいぶよくなった。ランタイム時間を記録するruntimecalオプションもあるが、そこまでいらないかなと思ってやっていない。11.04で使用するTweetBY50Sはコンパクトながら正弦波出力、しかも価格は20k以下となかなか良いUPS.Linuxも対応しているということで買ってみた。本当にシンプルで、できることはシャットダウンくらい。Tools)を使ってみた。Proを使用することをおすすめします。動かなくても誰も助けてくれないです。)できた後にやったので、途中経過など不足している部分があるかもしれないです。subdriverにはipponを指定する。OSでも似たような感じと思われる。このエントリは実はこれだけでいいかも。nut<NUTの設定>/etc/nutに設定ファイルがある。UPSの状態をモニタリングするupsmon.confとなる。Corp.(略)portは実は関係ないので、なんでもいい。autoにしておくといいかもみたいなことをマニュアルに書いてあった。master<udevの設定>nutユーザでUPSデバイスが見えるように設定する。/lib/udev/rules.d/52-nut-usbups.rulesが用意されるので、他の行に合わせて以下を書く。GROUP="nut"このファイルはパッケージアップグレードで上書きされてしまうかもしれないので、53-nantyara.rulesを用意して書くほうがいいかも。このルールの書き方はudevのバージョンによって違うので、他のdistributionでは気をつける。restartしておく。<動作確認>まずはドライバの確認。00101000(略)Ctrl+Cで終了。informationがNAKとかいうのは気にしない。権限問題の可能性が高い。udevの設定やらを疑うこと。同じことであるが、以下を実行してエラーが出ないことを確認する。upsmonプロセスが動いていることを確認する。upscというコマンドを使うと、情報が取れる。0590upslogというコマンドもただ記録するだけだが便利。Battery状態になると、shutdownシーケンスに入ってくれる。Manualにまとまっているので、参照のこと。notesセクションの内容。今回はblazer_usb(8).情報取得のチューニングについては、次回記載。