適応化

T-Kernelは、組込みシステム用のリアルタイムオペレーティングシステムとして、小規模から大規模のさまざまなシステムをターゲットとしており、デバイスドライバやミドルウェアの流通性の向上をねらっている。

T-Kernelは規模の大きなシステムにも対応できるように仕様が策定されている。そのため、小規模なシステム向けには必須とはされない機能も含まれているが、サブセット仕様を定めてしまうと、デバイスドライバやミドルウェア等の流通性や移植性を妨げることになる。また、ターゲットによって必要な機能はさまざまであり、一様にサブセット仕様を定めることも難しい。

T-Kernelでは、レベル分けなどのサブセット化のための仕様は定めない。原則として、すべてのT-Kernelはすべての仕様を実装しなければならない。ただし、ターゲットシステムで必要とされない機能は、簡易な実装として構わない。

「簡易な実装」とは、仕様通りの機能は持っていないが、その機能を呼び出すことで動作が異常になるようなことがない実装ということができる。つまり、大規模のシステムをターゲットとして作成されたミドルウェアが、そのまま実行できるような環境を提供することが重要となる。例えば、MMU(Memory Management Unit)を使用しないシステムでは、T-Kernel/SMの LockSpace() は次のように実装しても構わない。

#define LockSpace(addr, len)    ( E_OK )

しかし、MMUを使用しないシステムだからといって、LockSpace() を実装しなかったり、E_NOSPT を返すような実装としてはいけない。

逆に、ミドルウェアの作成においても、MMUを使用しないシステムだからといって、LockSpace() を使用しない実装をしてしまうと、MMUを使用したシステムには対応できなくなってしまう。

T-Kernelをターゲットシステムに実装する際に、必要とされない機能を省いたり、機能を変更することは構わない。ただし、そのT-Kernelは、改変されたT-Kernelとみなされる。

ミドルウェア提供者は、以下の点に注意しなくてはならない。