パスワードを忘れた? アカウント作成
1402025 journal
OS

tarosukeの日記: [talos] ノンプリエンプティブへの回帰

日記 by tarosuke

設計上カーネルを走る時間をかなーり短縮できてるのでプリエンプティブカーネルにするメリットが薄らいでいるのよな。応答時間をあまり犠牲にせずにノンプリエンプティブの単純さを享受できるってのはモノリシックカーネルにはできない、マイクロ/ナノカーネルのメリットだ。カーネルスタックもプロセッサの数だけでいいし。

...てことで、再び設計が揺れてる(ぉ

--
あー、違う。プリエンプティブにしたのは割り込み時のレジスタ保存のためだったっけ。だから、たとえカーネルがノンプリエンプティブでもカーネルタスクのスタックは必要なんだった。で、カーネルタスクのスタックがあるならプリエンプティブで構わないわけ。もちろん別の場所に保存すれば話は別だが面倒なのよな。コード書く方にとってもプロセッサにとっても。

1396313 journal
OS

tarosukeの日記: [talos][メモ] サーバを探す方法

日記 by tarosuke

例えばPCIバスをスキャンして出てきたデバイスIDとかベンダIDとかクラスIDとかにマッチするデバイスドライバサーバを探さなきゃならんわけだが、PCIみたいなもんならファイル漁ってもいいような気がするものの、抽象データ型に対応するviewerとか探すとなるとそれでは重すぎるので予めメモリに読み込んでおくしかないのだが、USBみたいにいつ後付けされるかわかんないようなデバイスのためのサーバヘッダを読んでおくのはいかにも無駄だ。

まー、種類ごとに保持方法を変えてもいいんだが...なーんかしっくりこないのよな。

1328203 journal
日記

tarosukeの日記: [talos] pxeで圧縮イメージを使ってtalosを起動

日記 by tarosuke

memdiskは.zipと.gzを受け付けるのでgzipイメージで起動してみた。FDなイメージはgzipしたら約11KiBになった。元のサイズもFDイメージだからそんなに大きくはないので読み込み時間はほとんど変わらないように思える。どちらも一瞬だ...しかし...スライディングウインドウ使わないとetherはそんなに早くはなかったような気がするが...tftpはUDPのプロトコルだしなぁ...。

1322131 journal
OS

tarosukeの日記: [talos] ファイルには二種類ある

日記 by tarosuke

リンクを持っているものと、持っていないものだ。

リンクを持っていないものは単純なリファレンスカウンタで管理するのが最適解だが、リンクを持っているものはリファレンスカウンタできちんと管理すると面倒だ。だが、たまにGC回すのを許すなら全部GCで管理するより普段はリファレンスカウンタで管理するほうが簡単だろう。

GCはいつ回してもいいので暇なときとか容量が逼迫してきた時に勝手に回る。というかGCの間隔を容量の余裕で決める。それでいいような気がしてきた。トレッドミルGCならGC中も動作を止めずに済むのでアトミックな動作以外はのんびり動かせるし。

...しかし...使用中のファイルに繋がるリンクを切ったとしたら結構面倒なことになるよなぁ...。開いているファイルは消さないとしても閉じた瞬間ゴミになるわけで、それって動作としては正常でも間違った操作の結果っぽいんだよなー。でもそれを救済するのは結構難しかったりするし。循環参照がある場合はGC回らないと判定できんからな。

1289108 journal
プログラミング

tarosukeの日記: [talos] ファイルシステムのGC

日記 by tarosuke

参照カウンタのリンクを補正しながら辿るよりトレッドミルGC使うかねぇ...。ただ、トレッドミルGCには「newって要るのか?」という疑問がある。from、to、freeでいいんじゃね?と。

  1. ルートから辿れるエントリをfromからtoへ移動
  2. freeポインタをfromポインタへ移動してfromリストをfreeリストに加えつつfromリストを空にする
  3. fromポインタをtoポインタへ移動してtoリストをfromリストに加えつつtoリストを空にする

...でいいじゃんと。割り当てるときはfreeを進めてそのエントリをfromにすればおkだしなー。

--
まーGC中にエントリを割り当てるときには必要か。
だとするとGC始める前にfromにくっつけなきゃならんな。

1285292 journal
OS

tarosukeの日記: [talos] pxeで起動してみた

日記 by tarosuke

結局pxelinuxのプロンプトで「memdisk initrd=talos.iso iso」とやってmemdiskを使ってisoイメージを起動したわけだが。

たぶんfdimageでもうまく行くとは思うが、なぜかchain.c32使っての直接起動はchainからはファイルが見えなくてうまく行かなかった。memdiskからは普通にファイルが見えるのにchainだけじゃなくてls.c32からも見えないってのがよくわからんが。

おそらくpxelinuxはファイルシステムとしてのアクセスは提供していないがc32なモジュールはファイルシステムとしてアクセスしようとするのでchainとかは使えないのだろう。chain.c32の設定例調べても対象が何故かUSBメモリだったり実際のデバイスだったりするし。

ともかく、PXE越し起動方法はわかったのでそれを設定ファイルに書いとけば起動してくれるだろう...って事で、今宵はおしまい。

--
結局、comboot対応は必要なかったみたいだな。

1281872 journal
OS

tarosukeの日記: [talos] pxeでtalosを起動

日記 by tarosuke

これができると実機デバグが楽になるわけだが...chain.c32を使うといいようだ。「chain.c32 fs seg=0x1000 file=talos」とかフロッピイメージを作って「chain.c32 fd0 file=talos.fd swap」あたりをsyslinuxで動かすと起動できるっぽい。

--
んー、ダメだった。どうやらmemdisk使う必要があるっぽい。

342210 journal

tarosukeの日記: GPT環境でもsyslinux使えるようだ

日記 by tarosuke

MBRに書き込むmbr.binとかの代わりにgptmbr.bin使えばよさげ。GRUB2使うしかないかと思ってたから今回はGPT使わなかったけど、これで3T超のドライブ買っても安心だな。

正直言ってGRUBは好きじゃないからなー。特にGRUB2は。とにかく何するにも面倒くさいじゃないか。進化の袋小路って言葉がピッタリだ。

ところで、syslinuxと言えばcombootなる起動手段があるのだが、talosの起動に使えないかと調査中。これ使えると自動的にpxelinuxでも使えるって事になるっぽいのでネットブートできるようになる。

.comファイルにすること自体は簡単で0x100から始めればいいだけなんだが、問題は最大サイズ。64KiB以内って事になるとちと辛いかも。

--
もっとも、syslinuxから起動するの前提ならsyslinuxに最初から必要になるサーバを読ませるようにするだけでいいがなー。

342147 journal

tarosukeの日記: [talos] 共有メモリのリソース化

日記 by tarosuke

共有メモリ関連がまとまらない。これがまとまらないと何も組めない。

とりあえずメッセージをエンコード/デコードするというアイデアは廃棄。でなくて、シェルがプラグインを起動するときに共有メモリのハンドラを渡すようにしようと思ってみたり。メッセージそのものは投げっぱなしのページでいいんだけど。

325407 journal

tarosukeの日記: [talos] メッセージパッシングな理由

日記 by tarosuke

関数呼び出しだとカーネルはその引数や戻り値を認識しなければならないが、メッセージパッシングだと中身に感知せずに中継するだけですみ、機能追加などでいちいちカーネルを更新しないで済むから。

で、マイクロカーネルだと割り込みはメッセージを起こすわけだが、タイマ割り込みもメッセージを起こしてサーバに回送...ってやると、ナノカーネルなの(ぉ
...ジッタ増えるからやらないけどね。

325061 journal

tarosukeの日記: [talos] ロックフリーキューについて調査してみた

日記 by tarosuke

しかし、ロックが要るのはロック時間が短いFIFOアクセスだけなので普通にスピンロックの方が良さそうだ...だいたいはそうなんだが、実のところリストをforeach的にアクセスする必要が2,3あったりして悩む。リストアクセス自体もサーバっぽい実装にしてキューイングしてしまうかな。

321408 journal

tarosukeの日記: 黄金週の予定

日記 by tarosuke
  1. 片付けと掃除、寝床の移動
  2. ヲ屋敷
    予約ページを作らねばならぬ。これは資金調達に必要だ。つまり十分な予約が入ったらそれを根拠に資金調達して建てる。もし予約なしで資金調達できてもモノが建つまでには予約を入れておく必要がある。なので資金調達がどうであれ、まず予約システムが必要だ。
  3. talos
    まずはメモリ周り。共有メモリとか。優先度下がっちゃってるけど。
319102 journal

tarosukeの日記: [talos] テストドリブン

日記 by tarosuke

いろいろ仕組みを考えてはいるが、とりあえず...
オンラインテスト:実行時テスト
オフラインテスト:テストコードをビルドして開発機でテスト
...みたいな感じにわけようかと。

315042 journal

tarosukeの日記: [talos] gitにすべか...

日記 by tarosuke

てことで、git-svnすべくディレクトリ構成を修正して「git clone -s」中...。svnだとブランチの管理が(どこまでマージしたかログに残したり調べたり)面倒で使ってなかったんだけど、gitだとrebaseすればおkなので修正内容ごとにブランチ作れる。

298640 journal

tarosukeの日記: [kurumi] 今の箱でHDD4台は無理ぽ

日記 by tarosuke

hddtempで温度見ると50℃とか言ってる。非常によろしくない。てかmdからぽろぽろ脱落していくよ。辛うじて/homeはサルベージできたが/etcや/varはダメだった。

なので設定情報が失われてドメインとかをイチから設定し直さなきゃならない。それにwebページとtalos以外のリポジトリが失われた可能性がある。talosのリポジトリはsf.netにあるので無事だ。

...120GBのを十分に空けて2台、これをミラーにするしかなさそうだな...4台全部使う予定でも190GBだからそう悪くはないか。RAID1はRAID5より遅いけどな。

swapはRAID上に置くつもりだったのでミラーでswapという可用性は増すが速度は低下するという気持ち悪い状態になるのだが、「swapしたら負け」というメモリサイズ16Gに片足突っ込んでることだし仕方あるまい。

279180 journal

tarosukeの日記: [talos] ヲ屋敷の方が先なのに

日記 by tarosuke

ここ数日talosの方をいじくりまわしてる(ぉ
特にアセンブラ部分を。
# もっとマシな書き方発見したりして微妙にorz

サンクダウンはそれ自体は確認できたけど使えるようになるには道のり遠そうなので保留した。なので次に手を入れるとしたらメモリバンクまわりからページフォルトハンドラ。この部分が全ての基盤になる。マイクロカーネルなので共有メモリが生命線になるからな。

276556 journal

tarosukeの日記: [ヲ屋敷] 名刺到着

日記 by tarosuke

個人名刺やtalos名刺よりは控え目だけど目立つ...というあたりを狙ってみた。文字がもうちょっと大きかったらよかったかもだが、まぁ満足。文字サイズ修正は増刷してもらう時に頼んでみよう。

で、頼んだ所の支払いは到着後振込だけなのでさくっと振り込んだり。

...平面図は図だけは描けているものの寸法が入ってない。寸法を入れてネットプリントあたりで出力せねば(一緒に土地の寸法書くために概略図も)。それからノートPCを充電しておくとか洗車とか車の中を片付けるとか。どこまでやるかわからんが、27日の準備なTODOはこんなもんか。

274506 journal

tarosukeの日記: 職場環境のskypeが自動起動しなくなった

日記 by tarosuke

まーkinput2と同様に~/.kde/Autostartで叩き起こせばいいと言えばいいんだが。あと、kinput2の方が変換候補のページ当たり候補が多くて使い勝手いいかも試練。以前はいまいちだったインライン変換も普通にできて全く問題ないし。

F/OSSな環境って、いい加減枯れててもいいだろってくらいの歴史のある環境の新しい版と古い版と整合性取ってない事がままあって困る...当然その不満はtalosの設計に生きてるわけだが...ここんとこヲ屋敷に時間取られてホフク前進だけどな。

269034 journal

tarosukeの日記: [talos] 描画関係はカーネルに置く方がいいやも知れず。

日記 by tarosuke

バッキングストアは普通は巡回バッファ程度でいいんだけど、行を削ったり追加したりするとなるとベタのバッファを使うより行単位くらいで分割したバッファにしたくなる。だが、マイクロカーネルだと頻繁に変化する細切れバッファは困る。いーちいちマップし直さなきゃならん。

...てことで、描画関係はカーネルに置くという選択肢もあるなぁ...と。

typodupeerror

未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー

読み込み中...