本文書では、ユーザや管理者の立場でtalosと既存のシステムとの違いを説明します。 メカニズム的な部分はtalosの内部構造で説明されます。
talosではプロセッサの実行単位を指し、いわゆるスレッドもタスクに含まれます。
talosではカーネル空間は全プロセスで共有されるので、ユーザメモリ空間の単位を指します。 実行単位とは別の概念ですが一つ以上のタスクを含んでいます。
プロセッサのユーザ(非特権)モードで動くタスクを指します。 ユーザタスクはシステム全体に影響を及ぼすような操作はプロセッサにより制限されています。 例えばカーネル空間はアクセスできません。
プロセッサのカーネル(特権)モードで動くタスクを指します。
talosはカーネルにXMLブラウザのようなシェルが統合されたOSであり、 各データ形式に対応したプラグインにあたるものがユーザタスクとして動作します。 このコンセプトに基づき、talosにはいわゆるアプリケーションは存在しません。
talosでは通常目にする場所であればどこにでも画像や文書などのアイテムを作成する事ができます。 例えばデスクトップで落書きを始める事もできます。 また、talosでは「このファイルは画像」というような区別がなく、アイテム単位で自由に作成、編集できます。 これはファイルをまるごと扱ってしまうアプリケーションではなく各種データに対応したプラグインがそれぞれのデータ(アイテム)の操作を担っているために可能になった事です。
いわゆるアプリケーションは害しかもたらしません。 これにはユーザ体験による理由とセキュリティによる理由、管理による理由の3つの理由があります。 前者は上で説明した通りで、残り2者は後述するtalosがセキュアな理由や共有ライブラリについてを読めばわかると思いますので、ここでは定義と概要だけを説明します。 ここで言う「アプリケーション」とは自分でファイルを作ったり開いたり、ソケットを開いて外部と通信したり、ウインドウを開いたりできるユーザタスクを指します。
そのような設計はシステムを無駄に複雑にするばかりでなく、システムを危険に曝します。 talosではユーザタスクはファイルを開いたり作ったりできず、ソケットもウインドウも開けません(そもそもそのようなAPIがありません)。 それらはプロセッサの保護下にあるカーネルの仕事です。
WYSIWYGとは画面に表示されるものと例えば印刷されるものが全く同じであるという方針です。 一見良さそうに思えますし、実際に蔓延しています(例えばPDF文書がWYSIWYGです)。 しかし、WYSIWYGの方針はそれぞれのデバイスの特性を無視しているため実際には非常に使いにくいものとなります。 例えばPDF文書を表示しているウインドウを狭くしたら、どうなりますか?
talosではWYSIWYGとは逆にデータ自体とその表現手段とを明確に区別して取り扱うことで、高い利便性を実現します。 例えばウインドウを狭くしたらwebブラウザでそうした時と同じように文書は再レイアウトされます。 印刷に関しても同様で、例えばTEXでそうする時のように設定したルールに従って自動的にレイアウトされます。
talosでは一つのファイルを複数人で同時に扱う事ができます。 各ファイルはエージェント(これもプラグインの一種)を介してアクセスされます。 エージェントが操作を代行するので本当の意味で複数のユーザが同時にファイルを編集できます。 ロックやシェアの設定は必要ありません。 なお、ファイル自体は単純に排他制御されます。
talosではユーザプロセスは単機能なので他のシステム程機能が重複することはなく、共有ライブラリもカーネルへのインターフェイスや数値演算などの基本的なものに限られます。 例えばlibgccやlibm相当のライブラリはtalosでも依然として必要ですが、libjpegなどの機能はtalosではユーザプロセスとして実装されるのでライブラリにはなりません。 なので既存システムに比べて依存関係が非常に単純になり、特に管理を必要とはしなくなります。