tarosじゃなくてtalos 結構間違われる でもtalosは結構使われてるので何かいい略語やハ ンドル名以外の名前ネタがあればtarOSもいいかも ー。 ネタはギリシャ神話 あと小文字 TALOSっていうデータベースの商品があるので回 避 自己紹介 ハンドル名:tarosuke 本名とかは調べれば簡単にわかる /.Jを徘徊している事が多い tarosukeはいっぱい居る だけどtalosとtarosukeでgoogleれば捕獲できる 自動二輪二台持ちのバイクバカ SPADAとBandit400('95) 年に30Mmくらい走る 注意! 目標、理想、蒸気、妄想等も含まれています それらは進捗をチェックすると見分けられます カーネルコアがほぼ完了 UIの基礎部分をやっている ネットワークは旧verから移植中 用語定義 タスク 実行単位(コンテキスト) スレッドもタスク プロセス メモリ空間の単位 カーネル空間を除く 概念上は実行単位とは別 ユーザタスク プロセッサの非特権モードで動いているタス ク 特権モードの時はカーネルタスク talosって何? 理想的環境を得るための基盤 容易に使え 容易に管理でき 安全な マルチユーザ マルチタスク マルチクラスタで GUIなOS コンセプト データを直接扱うかのような操作感 エージェント指向による本物のデータ共有 マルウェアプルーフ 極低TCO コンセプト データを直接扱うかのような操作感 エージェント指向による本物のデータ共有 マルウェアプルーフ 極低TCO データを直接扱うかのような操作感 ナルシステムイメージ ユーザが見るのはデータのイメージ システムはできるだけ隠す 「アプリケーション」はそれ自体が一つのシ ステムなので排除する 反WYSIWYG WYSIWYGは呪縛 紙イメージや画面イメージでしか考えられない 人って、いるよね? エクセルワープロとか、ミテクレが合えばそれ でいいという感覚の元凶がWYSIWYG 画面は紙とは違うのだよ紙とは! ...具体的には 喩えるなら全てが編集できるwebページ ユーザインターフェイスの実装は一つだけなの で環境の隅々まで操作感が同じ ほぼ何をどこにでも書き込める ブラウザがカーネル プラグインがプロセス 画像や文章、ガジェット類など、プラグイン で動かしているものなら何でも置ける デスクトップに直接メモを書いたりもできる 例えばTEXの様に自動レイアウト コンセプト データを直接扱うかのような操作感 エージェント指向による本物のデータ共有 マルウェアプルーフ 極低TCO 本物のデータ共有? ファイルを共有するのではなく、ファイルを編 集するエージェントを共有する ファイル自体は書き込み排他、読み出し共有 読み出しが共有なのは書き込み権限の関係 ファイルの場所は問わない エージェントと通信できれば同じ コンセプト データを直接扱うかのような操作感 エージェント指向による本物のデータ共有 マルウェアプルーフ 極低TCO マルウェアプルーフ? プロセスはファイルを開けない 窓も開けない ソケットも開けない もちろんデバイスも開けない なので... プロセスに侵入されても被害はその 時使っているものだけ 「その時使っているもの」は、たいてい侵入者 のものなのでブッ壊れてもあんまり困らない capabilityは種類だけしか制御できない が、それでは全然不十分 コンセプト データを直接扱うかのような操作感 エージェント指向による本物のデータ共有 マルウェアプルーフ 極低TCO 極低TCO? そのままでマルウェアプルーフ エージェント指向に基づくクラスタ(後述)にノ ードをポン付け プラグインは種類毎にインターフェイスが決ま っているので交換可能 必要なものを投入するだけで機能するので各 モジュールの依存関係を管理する必要がない コンセプト データを直接扱うかのような操作感 エージェント指向による本物のデータ共有 マルウェアプルーフ 極低TCO プロジェクトの「選択」 実装は統一しなくてもいい フォーク上等 実装の統一は「誰かの選択」を殺す そのためのGPL 「ほげふがtalos」と名乗ってくれると、たぶ んtalosに携わってるみんなが幸せ デュアルライセンス デフォルトではGPL プロプラライセンスは「スパイス」 プロジェクトの「選択」 実装は統一しなくてもいい フォーク上等 実装の統一は「誰かの選択」を殺す そのためのGPL 「ほげふがtalos」と名乗ってくれると、たぶ んtalosに携わってるみんなが幸せ デュアルライセンス デフォルトではGPL プロプラライセンスは「スパイス」 実装は統一しなくてもいい? 実装の統一は「誰かの選択」を殺す 選択の違いによる意見の対立はいつだってあ るし、一人でやってたって迷う事はいくらで もある いろんな選択を試したい ほげふがLinuxというのと同じで「一応本家は あるけど好き勝手な改造ができるからこそ Linux」というのと同じ プロジェクトの「選択」 実装は統一しなくてもいい フォーク上等 実装の統一は「誰かの選択」を殺す そのためのGPL 「ほげふがtalos」と名乗ってくれると、たぶ んtalosに携わってるみんなが幸せ デュアルライセンス デフォルトではGPL プロプラライセンスは「スパイス」 フォーク上等? そのためのGPL ほげふがtalos フォークしてもフォーク先のソースを取り込 めるのでリソースの無駄使いなんかじゃない 某みたいに名前変えろとか言うつもりはない よ ほげふがtalosが増えると「talos圏」みたいな ものが広がってtalosな人はみんな幸せ パッチを投げる必要はないよ! コミュニティでの軋轢はパッチの採用/不採用 が多そうなので回避 それに、パッチの管理って... マンドクセ('A`) 「リアルタイム応答」の手間暇を減らしたい パッチの管理だと貰ったら反応しなきゃ フォークベースならちょいとwikiにでも紹介文 とリンク載せといて、必要になったら取り込み に行けばいいので互いに非同期 コードの骨格を変えちゃうと共有が難しい そうならないようにできるだけポン付け 改造できるように設計してるよ でもそれが必要だと思うんならそれも一 つの「選択」 プロジェクトの「選択」 実装は統一しなくてもいい フォーク上等 実装の統一は「誰かの選択」を殺す そのためのGPL 「ほげふがtalos」と名乗ってくれると、たぶ んtalosに携わってるみんなが幸せ デュアルライセンス デフォルトではGPL プロプライエタリライセンスは「スパイス」 デュアルライセンス? デフォルトではGPL プロプライエタリな契約もできる 値段が付いていれば違反を発見した場合に行動 しやすいし、違反に対する抑止力が増すかも 事後契約価格はボッタクリ価格 つまるところGPL違反はボッタクリ価格 事前契約価格もそのままでは高め プロプラの世界ではソース付きは非常に高価 割引オプションでソースが出るよう誘導 プロジェクトの「選択」 実装は統一しなくてもいい フォーク上等 実装の統一は「誰かの選択」を殺す そのためのGPL 「ほげふがtalos」と名乗ってくれると、たぶ んtalosに携わってるみんなが幸せ デュアルライセンス デフォルトではGPL プロプラライセンスは「スパイス」 動機ときっかけ Macでの経験 1B/V2での経験 HTMLとPDF マルウェアの蔓延 Linux 動機ときっかけ Macでの経験 1B/V2での経験 HTMLとPDF マルウェアの蔓延 Linux Macでの経験 操作感の一慣性を重視する世界を知る 後にApple自身がブチ壊した世界でもある 今ではMacに興味はない 動機ときっかけ Macでの経験 1B/V2での経験 HTMLとPDF マルウェアの蔓延 Linux 1B/V2での経験 アプリケーションとは違うやりかたを学ぶ 実装には「アプリケーション」の影響が色濃く 残ってはいたけれど 超漢字にMozillaが載ったのには幻滅した HTMLをTADに変換すればいいじゃん 動機ときっかけ Macでの経験 1B/V2での経験 HTMLとPDF マルウェアの蔓延 Linux HTMLとPDF PDFの鬱陶しさに反WYSIWYGに目覚める それまではWYSIWYGマンセーだった その反対側の一例にwebを位置付ける 動機ときっかけ Macでの経験 1B/V2での経験 HTMLとPDF マルウェアの蔓延 Linux マルウェアの蔓延 反アプリケーションなシステムを妄想してたら セキュアさを発見してしまった 逆に言えば「アプリケーション」があるとい う構造は本質的に脆弱 セキュアさはただの余録 一番の売り文句なのにオマケ 動機ときっかけ Macでの経験 1B/V2での経験 HTMLとPDF マルウェアの蔓延 Linux Linux 開発環境が揃った プロジェクトのヒントを得た 動機ときっかけ Macでの経験 1B/V2での経験 HTMLとPDF マルウェアの蔓延 Linux これだけ揃ってやっと開発開始 実装における「選択」 「ちょー」モノリシックカーネル リスト管理 O(1)なメモリ管理 ページテーブルへのアクセス tick値が存在しない時間管理 実装における「選択」 「ちょー」モノリシックカーネル リスト管理 O(1)なメモリ管理 ページテーブルへのアクセス tick値が存在しない時間管理 「ちょー」モノリシック? セキュリティ的理由だけならマイクロカーネル のように別プロセスにしてもいいんだけど... メモリ空間を広く使えるし でもデータがプロセスを渡るたんびに領域確 保してマップしなきゃ カーネルからならユーザプロセスが丸見えなの で結局モノリシックにした カーネルはモノリシックだけどエージェント は分散できるのでその点ではスケーラブル マイクロカーネルとは粒度が違うだけ 「ちょー」モノリシック? ユーザモードでできること 普通のモノリシック システム ファイル、ウイ ンドウ、ソケッ トの生成/消滅と オープン 描画 ファイルの編集 通信 talos 描画 ファイルの編集 通信 実装における「選択」 「ちょー」モノリシックカーネル リスト管理 O(1)なメモリ管理 ページテーブルへのアクセス tick値が存在しない時間管理 リスト管理 管理対象の中にリストのための構造を持つ 普通はコンテナとしてリストのための構造の中 に管理対象を入れるがtalosでは逆 メモリ確保/解放が一度で済むのがメリット talosはメモリ確保/開放が高速だけどなー 同時には予め決めておいた数のリストにしか繋 げないのでちと柔軟性に欠けるのがデメリット 実装における「選択」 「ちょー」モノリシックカーネル リスト管理 O(1)なメモリ管理 ページテーブルへのアクセス tick値が存在しない時間管理 O(1)なメモリ管理(1) サイズグループごとに片方向リストを用意 メモリが欲しくなったら必要なサイズに合うグ ループから一つ取り出す 足りなくなったら未割り当て空間から切り出 す 返す時はサイズグループのリストに追加 talosではサイズグループは2nbytes 実ページは先頭以外は返却 O(1)で高速だが空間効率はよくない だが、ただの空間なので気にしない事にした O(1)なメモリ管理(2) 実ページ管理もO(1) 実ページの管理もリスト サイズが固定なのでリストも一つ 足りなくなったら未割り当て区間から取得 連続ページは直接未割り当て区間から取得 実装における「選択」 「ちょー」モノリシックカーネル リスト管理 O(1)なメモリ管理 ページテーブルへのアクセス tick値が存在しない時間管理 ページテーブルへのアクセス ページディレクトリの最後のエントリにページ ディレクトリ自身を設定してみた ただの配列扱いできてとっても便利 でもプロセッサによっては使えないかも 実装における「選択」 「ちょー」モノリシックカーネル リスト管理 O(1)なメモリ管理 ページテーブルへのアクセス tick値が存在しない時間管理 tick値が存在しない時間管理 tickの代わりに起動してからの実時間(μ秒単位 、64bits整数)で時間管理 tickハンドラはその周期分だけ現在時刻を加算 ソースにjiffiesだのHZだのを撒いたり、時間単 位をいちいち変換せずに済む 可変tickにする時もタイマ周辺以外はそのまま 実装における「選択」 「ちょー」モノリシックカーネル リスト管理 O(1)なメモリ管理 ページテーブルへのアクセス tick値が存在しない時間管理 実装の苦労 解決すると苦労したこと自体を忘れてしまうの で、ほとんど覚えてない(ぉ 競合状態神経症 GUI 競合の可能性にガクガクブルブル ロックしてるのにロックしたくなる ユーザインターフェイスに着手した途端にす るべき事が増えた ちょくちょく言語の限界にブチ当たる でも... 本当の苦労はこれからだぜ たぶんね。 問題点やその対策 カーネルへの侵入 カーネルはなるべく通信しない あとはプロセッサにおまかせ talosのモデルに合わないソフト コンパイラとかmakeとか コンパイラが使うファイルは決まってるので sandboxを作る事はできる サーバ 未解決 なやましい 仕様における「選択」 モードレスIM マルチクラスタ/薄クライアント P2Pディレクトリサービス 6to4アドレスルーティング 仕様における「選択」 モードレスIM マルチクラスタ/薄クライアント P2Pディレクトリサービス 6to4アドレスルーティング モードレスIM? 英字/漢字の区別がないのでモードレス POBoxみたいな学習と予測のIM でも表示しただけの文字列も学習対象 仕様における「選択」 モードレスIM マルチクラスタ P2Pディレクトリサービス 6to4アドレスルーティング マルチクラスタ? 一つのノードが複数のクラスタに所属する前提 可用性の確保が主目的 データのある場所のエージェントを使うだけ 負荷が分散するようにはするけどね ナルシステムイメージ 多対多の共有 結局クラスタはアクセス制御の単位 モノシステムイメージとの対比 システムは隠れて1(mono)が0(null)に それで例えば... 例えば データがクラスタに保存されているので... パソコン買ってきた パソコン壊れたー LANに繋いでpxeブートしてログイン 端末管理者権限でインストール クラスタ管理者権限でノードを登録 使う 新しいノードを買ってきて繋ぐ あとは「パソコン買ってきた」と同じ そのままでシンクライアント 「パソコン買ってきた」でインストールしな い 仕様における「選択」 モードレスIM マルチクラスタ/薄クライアント P2Pディレクトリサービス 6to4アドレスルーティング P2Pディレクトリサービス マルチクラスタを支える屋台骨 条件に合致するノードを探すだけ ノードの認証は別の話 ファイル転送も別の話 ホントに「探すだけ」 仕様における「選択」 モードレスIM マルチクラスタ/薄クライアント P2Pディレクトリサービス 6to4アドレスルーティング 6to4アドレスルーティング P2Pするにはグローバルアドレスが欲しい IPv6はトンネルでは普及しない 全ノードに欲しいけどIPv4だと難しい IPv4でもできるけど中継しなきゃ 結局IPv6を使いたいけど... トンネルの中の人に頼まなきゃ使えない トンネルにトラフィックが集中 6to4アドレスを使えば IPv4アドレス一つを/80に拡張できる 誰かに頼んだりしなくても使える 仕様における「選択」 モードレスIM マルチクラスタ/薄クライアント P2Pディレクトリサービス 6to4アドレスルーティング まとめ 「データをいじる」に拘って妄想してみた そしたらマルウェアプルーフだった 開発環境が整った んじゃ作ってみよう おしまい きてくれてありがとー
© Copyright 2024 ExpyDoc