X



dragonfly bsd どうよ
0106103
垢版 |
NGNG
>>105
違う違う、そういう意味じゃない。gcc3用のクリーンアップはずっと
昔に済んでるよ。問題なのはbuildworldの最初の方にやるいくつかの
サブターゲットはシステムにインストールされているコンパイラを使うん
だけど、CCVER=gcc34になっているとそのコンパイラが(存在しない)
gcc34を使おうとして失敗するというものだったはず。もしbsd.cpu.mkに
怒られるんだったらソースツリーの中じゃなくシステムの方の/usr/share/mkを
使っているということだから、CCVER_BSD_CPU_MK=gcc2と設定すればいいんだけど
まあ試してみて。
0107名無しさん@お腹いっぱい。
垢版 |
NGNG
>>103
CCVER_BSD_CPU_MK=gcc2 設定したらbuildworld通りますた(`・ω・´)

ついでにmake.confも見直したんだけれど、
/etc/defaultsにもmake.conf入っていてびびった。
FreeBSDも最近は/etc/defaultsに入ってるのかな。
0109名無しさん@お腹いっぱい。
垢版 |
NGNG
hrs氏の日記にDragonFlyの話題が。
ttp://www.allbsd.org/~hrs/diary/200408.html#d0801
日本語の文書の中では、今のとこ一番わかりやすいと思う。
0110名無しさん@お腹いっぱい。
垢版 |
NGNG
ポート/メッセージモデル
DragonFlyはLWKTに同調する軽量なポート/メッセージAPIを備える予定です。
ポート/メッセージAPIの概念は非常に単純です。まずメッセージを組み立て、
目標となるポートへ送り、あとで自分の応答ポートに返事が来るのを待つ
というものです。この単純な概念にもとづいて、高度な機能を構築し、
洗練化を行います。このメッセージングシステムの機能を理解するには、
まずメッセージがどのように送信されるのかを理解する必要があります。
基本的には以下のように動作します:
0111名無しさん@お腹いっぱい。
垢版 |
NGNG
メッセージAPIはこの基本的は構造を同期/非同期メッセージ関数に内包します。
lwkt_domsg()はメッセージを同期的に送り、返答を待ちます。この関数は
目標ポートにヒントを与えるためのフラグをセットします。それはメッセージが
同期的にブロックされることを示すもので、目標ポートがEASYNCを返した場合
lwkt_domsg()はブロックします。lwkt_sendmsg()はメッセージを非同期的に
送りますが、目標ポートが同期的なエラーコード(つまりEASYNC以外全て)を返した
場合、lwkt_sendmsg()はもう完了したメッセージを返答ポート自身のキューに手動で
入れます。
0113名無しさん@お腹いっぱい。
垢版 |
NGNG
推測できると思いますが、目標ポートのmp_SendMsg()関数はメッセージを
どう扱うかを完全に制御します。メッセージフラグによって渡されたヒントが
どのようなものであっても、目標ポートはメッセージに対して(呼び元から
見て)同期的にふるまって応答することも、メッセージをキューに入れてEASYNCを
返すこともできます。一般的にメッセージ処理は発信者から見て「ブロック」
すべきではありません。つまり、メッセージを同期的に処理することがブロック
につながるのであれば目標ポートは同期的に処理してはいけないということです。
そのかわりに、自身のスレッドのキュー(目標ポートの構造体に、便利なように
埋め込んであるメッセージキュー)に入れて、EASYNCを返すようにします。
0114名無しさん@お腹いっぱい。
垢版 |
NGNG
: (このパラグラフは特に変更しなくていいよね)

ここで覚えておくべき重要なことは、もっともよい最適化とはmp_SendMsg()に
よる直接の実行で、単純なサブルーチン呼出しの他には実質的にオーバヘッドを
伴わないことです(訳注: no more〜thenはDillonのいつもの釣りね)。
キュー処理もせず、応答ポートをいじることもなく、ということです。もし
メッセージを同期的に扱ってよいのであれば、これは非常にコストの低い
処理ということになります。この特徴があるからこそ、性能の問題を気にせずに
メッセージングインタフェースを意図して使うことができるのです。私達は
たとえばMachで用いているような種類の洗練手法を使うことはあえてしません。
少なくとも低レベルなメッセージインタフェイスでは、メモリマップやポインタの
追跡といったことをしません。ユーザ⇔カーネル間のメッセージインタフェイスは
単純にmp_SendMsg()の関数ベクタを用い、それによって適切な変換をします。
そうすることで、送信側と受信側に関しては、メッセージがそれらの
VMコンテキストに対しローカルになります(局所性を持つということ)。
0115名無しさん@お腹いっぱい。
垢版 |
NGNG
軽量カーネルスレッドモデル

DragonFlyはその中核部分に軽量カーネルスレッド(LWKT)を用います。
システムのプロセスは全てスレッドと結びついていて、カーネルのみの
プロセスのほとんどは事実上純粋なスレッドです。たとえば、pageout
デーモンは純粋なスレッドでプロセスコンテクストを持ちません。

LWKTモデルはアーキテクチャによらないいくつかの鍵となる特徴があります。
これらの特徴はCPU間の競合を除く、あるいは減らすために設計されています。

1.システムの各CPUは自己完結のLWKTスケジューラを持ちます。スレッドは意図的に
CPUに結びついていて、いくつかの特殊な状況下でのみ他のCPUへ移動することが
できます。特定のCPU上のLWKTスケジューリング処理はそのCPU上でのみ直接
実行されます。これは、LWKTスケジューラ本体がスケジュール追加、除去、
CPU内でのスレッド間スイッチを、ロックを一切せずに処理できるということです。
単純なクリティカルセクションの除いてはMPロックもなにもなしにです。

2. スレッドはカーネルで動作中は他のCPUにプリエンプティブに移動されることは
ありません。スレッドはブロックされている間はCPU間を移動しません。
ユーザランドスケジューラはユーザモードで実行しているスレッドを移動できます。
スレッドは非割り込みスレッドへプリエンプティブにスイッチすることは
ありません(この間FreeBSD初心者スレで出た話題のやつね)。割り込みスレッドが
カレントスレッドをプリエンプトする場合、割り込みスレッドが終了または
ブロックした時点でプリエンプトされた方のスレッドはスケジュール状態によらず
復元されます。たとえば、あるスレッドはlwkt_deschedule_self()を呼んだあと、
実際に(別のスレッドへ)スイッチする前にプリエンプトされる可能性があります。
これは問題ありません。なぜなら割り込みスレッドが完了またはブロックしたあと
そのスレッドに直接制御が戻るからです。
0116名無しさん@お腹いっぱい。
垢版 |
NGNG
3. 上の(2)により、スレッドはCPUごとのglobaldata構造体を通じて得た
情報をロックなしにキャッシュすることができます。また、その情報が
割り込みスレッドによって変更されないと分かっている場合は、
クリティカルセクションに入る必要がありません。これによって、
いろいろな種類のデータのCPUごとのキャッシュ(訳注: 「の」の連続だ)
を、事実上オーバヘッドなしに持つことができます。

4. あるCPUが他のCPUに属するスレッドをスケジュールしようとする場合は、
ターゲットCPUにIPIベースのメッセージを発行して、処理を実行します。
このメッセージはデフォルトで非同期で、このためIPIはレイテンシを
伴うことがありますが必ずしもCPUサイクルを浪費するとは限りません。
このIPIの処理はクリティカルセクションに入ったスレッドによってブロック
されます。実際、LWKTスケジューラはそうします。クリティカルセクションの
出入りは安価な処理と考えられるので、ロックやバスロック命令を必要と
しません。

5. IPIメッセージサブシステムはFIFOあふれによるデッドロックに対し、
送信キューの停滞が解消するのを待つ間、受信キューをスピンして処理する
ことで対処します。IPIメッセージサブシステムはこのような状況下で
特にスレッドのスイッチを行いません。これによって、まれにスピンが
発生する場合があってもソフトウェアはこれをノンブロッキングAPIのように
扱うことができます。
0117名無しさん@お腹いっぱい。
垢版 |
NGNG
これらの鍵となる特徴に加え、LWKTモデルでは高速割込みプリエンプション
とスレッド割込みプリエンプションを両立します。高速割り込みはカレント
スレッドがクリティカルセクションに入っていない場合はプリエンプトできます。
スレッド割込みもカレントスレッドをプリエンプトできます。LWKTシステムは、
スレッド割込みにスイッチしたあとそれがブロックまたは完了した場合に
もとのスレッドに戻ります。IPI関数は高速割り込みと非常に似たやり方で
動作し、同じくtrapframe機能を持ちます。これはDragonFlyのSYSTIMERS APIで
hardclock()やstatclock()の割込みを全てのCPUに分配するために多く用いられて
います。
0118名無しさん@お腹いっぱい。
垢版 |
NGNG
IPIメッセージサブシステム
LWKTモデルはCPU間通信のための非同期メッセージシステムを実装します。
基本的には、関数ポインタとデータ引数を引数として関数を呼び出すと
ターゲットCPUにそれを渡り、ターゲットCPUはそれを非同期に実行します。
これは非同期モデルなので呼び側は同期完了を待ちません。このため性能が
非常に向上し、ターゲットCPUへのオーバヘッドもおおまかには割り込み
と同等程度です。
IPIメッセージは高速割り込みのように動作します...つまり(クリティカル
セクションに左右されますが)ターゲットCPUで動いているものは何でも
プリエンプトし、実行し、そのあともともと動いていたものに復帰します。
このためIPI関数はいかなる理由であってもブロックすることは許されません。
IPIメッセージはスレッドをスケジュールしたり他のCPUに属しているメモリを
解放するといった処理をするのに用いられます。

IPIメッセージ処理は少なくとも6個の主なLWKTサブシステムで多用されています。
それらには、CPUごとのスレッドスケジューラ、slab allocator、メッセージ
サブシステムが含まれています。IPIメッセージ処理はDragonFlyに本来的に
適応したサブシステムなので、Big Giant Lockを必要とせず、使用してもいません。
全てのIPIベースの関数は従ってMPセーフである必要があります(そうなっています)。
0119名無しさん@お腹いっぱい。
垢版 |
NGNG
これって、ひとつの資源に対して単一のCPU&スレッドを張り付けることで、排他制御をシンプルにする
というおおざっぱな理解であってる?

スレッド切替が頻繁に発生してパフォーマンスで劣るんじゃないかとか、
スレッドの優先度制御をどうするかとか、いろいろ問題もありそうだけど、
おらワクワクしてきたぞ。
0120名無しさん@お腹いっぱい。
垢版 |
NGNG
IPIベースのCPU同期サブシステム

LWKTモデルは、汎用でマシンに依存しないCPU同期APIが備わっています。
このAPIによって、デリケートなデータ構造にアクセスしている状態の
ターゲットCPUを既知の状態に移行させることができます。このインタフェイスは
主にMMUのページテーブルを更新するのに使用されています。たとえば、
もし適切なロックを確保していたとしても、ページテーブルエントリの
モディファイビットをテスト、クリアしたあとにページテーブルエントリを
削除するのは安全ではありません。これは、他のCPUで動作しているユーザランド
プロセスがそのページを読み書きする可能性があるからで、その場合向こう側のCPUが
TLBを書き戻すのとページテーブルエントリをクリアしようとする処理の間に
レース状態が生じます。適切な解決は、ページテーブルエントリへ書き戻す
可能性のあるCPU(つまりpmapのpm_activeマスクでセットされている全CPU)を
まず既知の状態に移行し、変更処理をしてから、各CPUのTLBを無効化するリクエストに
よってCPUを解放するという方法です。

DragonFlyに備わっているAPIにはデッドロックがありません。複数のCPU同期処理が
並行に動作することが可能で、これはCPU同期イベントの主導権を握っているスレッド
にもあてはまります。これは柔軟なしくみですが、CPU同期インタフェイスは制御
された環境で動作するため、コールバック関数はIPIメッセージサブシステムで
用いられるものとちょうど同じように動作する傾向にあります。
0121名無しさん@お腹いっぱい。
垢版 |
NGNG
同期トークン

同期トークンはいくつものスレッドが同時につかめます。トークンをつかんでいる
スレッドは、同一のトークンをつかんでいる他のスレッドが同時には実行しない
ことが保証されます。

一つのスレッドは同期トークンをいくつでもつかむことができます。

あるスレッドは、イールドまたはブロック条件を通じて同期トークンを
つかむことがありますが、そのスレッドが(ブロックあるいはイールドされて)
実行中でない間、それらのトークンをつかんでいる他のスレッドが実行する
可能性があることを考慮に入れる必要があります。

理論上、同期トークンの機構から起きるデッドロック状態で解決できないものは
ありません。しかし、初期の実装ではトークンを同時につかんだ場合にライブロック
の問題が起きる可能性があります。

同期トークンは、同一のトークンをつかもうとする割り込みが他のスレッドを
プリエンプトしてしまうことから保護するのにも使われます。これはBig Giant Lock
(BGL; MPロックともいう)とは若干違った作用があります。BGLは同一CPUの割り込みを
インターロックすることはありません。重要なことは、プリエンプションによって
一時的に他のスレッドへのスイッチが起きることがあるとしても、トークンの原子性
(?atomicity)プリエンプティブ条件によって維持されるということです。トークンの
原子性(?atomicity)を維持するためにspl()レベルやクリティカルセクションに入る
必要はありません。

同期トークンはプリエンプティブは割り込みが起きるのをさまたげることはありません
が、割込みをブロックして再スケジュールさせることがあります。スレッド化されて
いない高速割り込みやIPIメッセージング割り込みはトークンをつかうことが
できません。それは処理に必要なスレッドコンテキストを持っていないからです。
そのかわり、これらのサブシステムはクリティカルセクションを使うことで
排他制御をします。
0122名無しさん@お腹いっぱい。
垢版 |
NGNG
DragonFly - ユーザAPI

移植性のあるユーザAPIを作る

多くの標準的なUNIXシステムでは、生の構造体データを含む多種のデータを、
システムコールテーブルを通じてやりとりします。ユーザプログラムがそれ
自身より古いあるいは新しいカーネルとやりとりする上で最大の障害は、
これらの生の構造体データはよく構造が変わるということです。最も厄介なのは
ネットワークインタフェイス、ルーティングテーブルのioctl、ipfw、
ps,vmstatが直接アクセスするプロセス構造体などです。しかし、stat()や
readdir()のようなどうということのないシステムコールでさえ問題があります。
もっと一般的な言い方をすれば、システムコールはそれ自体が移植性の問題を
生むことがあるということです。

このプロジェクトの目標として以下のものがあります。
(1) 実質全てのシステムコールをメッセージベースにする、
(2) 構造体の情報を、直接ではなく機能や要素のリストを通じて渡すようにする、
(3) 汎用の「中間層」を実装する。

(3)はある種のエミュレーション層のように見えるもので、管理はカーネルが行うが
ユーザ空間にロードされます。この層は全ての標準的なシステムコールAPIを実装し、
それらを適切なメッセージに変換します。

例えば、Linuxエミュレーションはカーネルランドでなく(カーネルに保護された)
ユーザランドで動作します。FreeBSDのエミュレーションも同じように動作します。
実際「ネイティブ」なプログラムもシステムコールという私達がよくなじんだものを
見るためにエミュレーション層を通ります。ただ違うのは、ネイティブな
プログラムはエミュレーション層が存在し、ユーザランドから直接アクセスできる
のを知っているので、ただカーネルに入ってすぐにエミュレーション層に戻る
ためだけに余分なINT0x80(でも何でも)を無駄にしない、ということです。
0123名無しさん@お腹いっぱい。
垢版 |
NGNG
[User API続き]
システムコールをメッセージベースの構成要素に変更することによるもう一つの
大きな利点は、ユーザランドスレッドの問題を完全に解決できるということです。
もう複数のユーザランドスレッドを処理するのに複数のカーネルコンテクストや
スタックは必要なくなり、プロセスあたり一つのカーネルコンテキストとスタック
があればよいのです。ユーザランドスレッドはシステムの各CPUごとに実プロセスを
生成するのにrfork()を使い続けますが、他全ての処理はスレッドに対応した
エミュレーション層を使えます。実際、ほとんど全てのユーザランドのupcall
(コールバック)はカーネルから直接発行されるのではなくユーザランドの
エミュレーション層から発行します。以下はスレッド対応エミュレーション層
が動作する例です:
[コード]
たったこれだけです。DragonFlyが実装する「本当の」システムコールは
送信、受信、待機に必要な原始的なメッセージ通信機能のみです。
他はエミュレーション層を通過します。もちろん、カーネルの側では
メッセージコマンドはFreeBSD 4.xにあるのと同じ規模のディスパッチ
テーブルにたどりつきます。でもサブシステムがメッセージベースになっていく
につれて、syscallメッセージはよりいっそうこれらのサブシステムに
統合されてゆくので、「メッセージ」を処理するためのオーバヘッドは
最終的には独立したシステムコールを処理するオーバヘッドよりも小さくなる
でしょう。「エミュレーション層」はユーザランドプログラムが期待するものと
カーネルが期待するものを分離するブラックボックスの役割をするので、
移植性を確保することははるかに簡単になります。エミュレーション層は
カーネルといっしょに更新する(または後方互換性のあるバージョンを作る)
ことができるため、ユーザランドのバイナリからは移植性の問題は見えなく
なります。

加えて、メッセージパシングモデルが提供する利点を全て受けられます。
それはデバッグや他の目的のためにシステムコールに割込んだり、
たとえばセキュリティ環境のもとづいて特定クラスのシステムコールを
無効にしたり変更したりするといったセキュリティ層をカーネル内に
構築するというものです。
0125名無しさん@お腹いっぱい。
垢版 |
NGNG
新しいVFSモデル
(3rd par.)
i.e. → すなわち、つまり

(4th par.)
A messaging interface is preferable for many reasons, not the least of which
being that it makes stacking actually work the way it should work, as
independant and opaque elements which stack together to form a whole. For
example, with the new API a capability layer could be slapped onto a
filesystem that otherwise doesn't implement one of its own, and the enduser
would not know the difference. Filesytems are almost universally
self-contained entities. A message-based API would allow these entities to run
in userspace for debugging or even in a deployment when one absolutely cannot
afford a crash. Why run msdosfs or cd9660 in the kernel and risk a crash when
it would operate just as well in userland?

メッセージングインタフェイスは多くの理由から好ましいものです。特に
独立的で不透明な要素が積み重なって全体を形成するという、スタッキングが
本来すべき動作を実現するという点によるところが少なくありません。たとえば
新しいAPIでは、ファイルシステムが実装していない機能に対して機能層をあてがう
ことができ、エンドユーザにはその違いが分かりません。ファイルシステムは
大部分が自己完結型(注: 相互依存する別の要素を持たないという意味ね)の要素です。
メッセージベースのAPIではこれらの要素をデバッグのためにユーザランドで動作
させることを可能にしますし、また絶対にクラッシュしてはいけないような場合
にも威力を発揮します。msdosfsやcd9660がユーザランドでも同じように動作する
ならわざわざカーネルの中で動かしてクラッシュする危険にさらす必要はない
でしょう? ...
0128125
垢版 |
NGNG
>>127
うん。
GPLのライセンス表記の中には「A copy that is not "Transparent" is
called "Opaque".」という説明があるので透明でないということで
「不透明」と訳したけど。実際「opaque object」を不透明オブジェクトと
訳す例もあるみたいだけど、一語でいおうとするとしっくりこないよね。
0130名無しさん@お腹いっぱい。
垢版 |
NGNG
>>125
> (4th par.)
文のつながりが一部いまひとつのように思うので、改善案。
あとユーザランドはユーザ空間の間違いだと思う。

メッセージングインタフェースは多くの点で優れています。
それは、スタッキングのあるべき姿である、独立なカプセル化された要素が積み
重なって全体を形成するということを実現したことによるところが少なくありません。
例えば、新しいAPIではファイルシステムに実装されていなかった機能の機能層をかぶ
せることができ、しかもエンドユーザには元から実装されていたときとの違いが
わかりません。
また、ファイルシステムはどれもほとんど例外なく自己完結したひとまとまりの
オブジェクトになっています。メッセージベースのAPIではこれらのオブジェ
クトをユーザ空間で動かすことができ、デバッグにも使えれば、クラッシュが
絶対許されない条件下の運用にも威力を発揮します。
msdosfsやcd9660がユーザ空間でも同じように動作するならわざわざカーネルの
中で動かしてクラッシュする危険にさらす必要はないでしょう?
0131名無しさん@お腹いっぱい。
垢版 |
NGNG
>>126
Mach以外のMK系OSもkernelの外に出したはずのものをどんどんkernelに取りこんで
行ってるしね。NTが代表例だけど、MachベースなはずのOS Xもそう。
0138名無しさん@お腹いっぱい。
垢版 |
NGNG
>>134
「安定」の定義にもよるが、たぶん安定はしていない。panicやフリーズなし
に動くかどうかはハードウェアによる。たとえばDragonFlyの日本語訳を
まとめようとしている はるかタン(たぶん男だよね)のマシンは時計が2倍速らしいし。

現状DragonFly-CURRENTは1-RELEASEよりはマシな状態だけど、いくらfork元が
FreeBSD 4.8-RELEASEでも結局 -CURRENTなのであっちが直ればこっちが壊れる
というようなことは覚悟の上でないと使えない。(でも-CURRENT trackerはそれが
楽しみで使ってるんだよね?)
俺のまわりで一番長く稼働しているのはDellのpen4デスクトップマシンで、
そいつはCVS repoの取得とXサーバを動かしているぐらい。ここ半年ぐらいは
panicやフリーズはなく、カーネル入れ替え時以外は無停止で運用中。いまの
uptimeはほぼ一ヶ月。マシン自体は2年前にFreeBSD 5-CURRENTで運用開始して
以来ほとんど電源つけっぱなしで動かしているんで、けっこう丈夫みたい。
0139名無しさん@1.1-CURRENT
垢版 |
NGNG
>>134
FreeBSD-CURRENT よりは安定してます。 :)
クライアントで使ってると X 上げたらフリーズとか、Gtk ものをあげたらフリーズ
とか、しょっちゅうそんな感じです。サーバとしては使ったことないから、サーバ
としてどうかはわからんです。
# crater.dragonflybsd.org はちょっと前から DragonFly になってるらしい。

ま、 CURRENT ですから、安定を求めるのもどうかと。
0146名無しさん@お腹いっぱい。
垢版 |
NGNG
>>145
「不可分性」ぐらいかな?
要するに「ある動作が一つの要素として完結し、その動作の間に関係する
状態が変わることが無い事」ぐらいの意味だから。
例えば、rename(2)の動作は一見「目的のファイルをopenし、
元のファイルもopenし、元のファイルからreadし、目的のファイルにwriteし、
目的のファイルをcloseし、元のファイルをunlinkする」ことによって
達成できるけど、これはatomicな動作ではないため競合状態が起きたり
するということね。
0148名無しさん@お腹いっぱい。
垢版 |
NGNG
>>147
そう、いろいろ考えたけどしっくりくる訳語がない。でもアルファベット
が散りばめられた翻訳もそれはそれで読みづらい(人によるかな)し、かと
いって「アトミシティ」と書くのもどうかなと思う。
「…性」という造語で訳すなら>>146がいっているように「不可分性」かな。
元の文章をきれいさっぱり忘れるとして、日本語でできるだけ簡単な言葉を
使ってどう説明できるか、なんだよね。
0151名無しさん@お腹いっぱい。
垢版 |
NGNG
英字で atomicity のままが一番わかりやすいよ。
atomicity と書いてわからない人には
どう書いてもわからないと思う。
せいぜい訳注をつけるくらいか。
0154名無しさん@お腹いっぱい。
垢版 |
NGNG
1.0 リリースということなんで興味はあるものの、
OSのコードが読めないどころか、atomic の意味も知らないようなへたれは
まだ来ない方が良い雰囲気ですのう。
0157名無しさん@お腹いっぱい。
垢版 |
NGNG
>>154-156
いまは本当に-CURRENTなので、最低でもFreeBSD-CURRENTを自分の
メインマシンに入れて、うまいことババ引かずに運用する技術
and/or 運を持っていることが必要。アプリケーションまわりだと
ports/dfportsの代替ができないと一般ユーザにはつらいかな。

ところでnullfsは不安定だという声をたまに聞くけど、それって
4.x系でもそうなんだっけ。5-CURRENTの時にひどいめにあったけど
4.xではどんなにハードに使っても刺さったことなかったけど。
このあいだのVFS 04/99が入って以降、nullfsは刺さるようになったよ。
0159名無しさん@お腹いっぱい。
垢版 |
NGNG
とりあえずクロック爆走問題は「options TIMER_USE_1」で直ったよ、
とbugs@で みやもっさんが感動のご様子。
0160159
垢版 |
NGNG
bugs@じゃなくてkernel@だった
0163152
垢版 |
NGNG
>>162
IPFW2をコンパイルしていなかったのでコンパイルしなおしてから
こんなもんです(15 usersはメーラを上げっぱなしにしているから)。
$ uptime
1:42PM up 8 days, 11:05, 15 users, load averages: 0.02, 0.03, 0.00

まあsubversionやqmailのMLを抜けてからは流量が減ったので
非常に蝦そうですね。
0167163
垢版 |
NGNG
>>166 DragonFlyの限界より先に冷却の限界が来てしまうのだけど。
0169167
垢版 |
NGNG
>>168
ヒートシンク頼みなんで夏場はcx_stateとcpu_throttle_stateを
最低に絞ってるんです。だからいじめないでね。
0172169
垢版 |
NGNG
>>170 使用感は5.xの時とそんなに違わない。
0177名無しさん@お腹いっぱい。
垢版 |
NGNG
>>173
その場合の「インストーラ」というのは、実はインストール時だけじゃなく
設定ツールとしても動作しなくてはいけないんだよね。

インストール時だけでいいならinstaller teamが作っているCGI installer
にちょっと化粧をすれば見栄えはよくなるんじゃないかなと思う。
0180176
垢版 |
NGNG
>177
まさか出てくるとは..全角でGJ!
0182名無しさん@お腹いっぱい。
垢版 |
NGNG
Onipotefly BSD
0193名無しさん@お腹いっぱい。
垢版 |
NGNG
>>192
じゃとりあえず
# echo 'CCVER?=gcc34' >> /etc/make.conf
してから、普段自分が使っている環境を整えてみてください。
portsのコンパイルが失敗したらMLなり(英語がだめならニポーン人
ぽい関係者にメール出すなり)粘着されるのがいやならこのスレでもいいので
報告くらはい。
0199名無しさん@お腹いっぱい。
垢版 |
NGNG
Cannaをコンパイルしたところwchar_tの定義でエラーがでますた。
Canna/include/widedef.hの65から70行目までをコメントアウトしたら
とりあえずコンパイルはできました
0200200
垢版 |
NGNG
>>199 それはCCVER=gcc2でもCCVER=gcc34でも同じですか?
レスを投稿する


ニューススポーツなんでも実況