T-Kernel 2.0 ソース構成



1. はじめに

ここでは、T-Kernel 2.0 のソースコードの構成に関して説明します。

T-Kernel 2.0 の機能仕様に関しては、トロンフォーラム から公開されている「T-Kernel 2.0 仕様書」を、実装に依存する部分に関しては、「T-Kernel 2.0(tef_em1d)実装仕様書」 を参照してください。

T-Kernel のディレクトリ構成に関する基本ルールおよび用語を以下に示します。

2. ディレクトリ構成

T-Kernel ソース全体のディレクトリ構成図を以下に示します。

  tkernel_source
    |
    |-- kernel               T-Kernel 本体
    |     |-- sysinit               システム初期化
    |     |   |-- src
    |     |   `-- build
    |     |       `-- <機種名>
    |     |-- tkernel               T-Kernel/OS
    |     |   |-- src
    |     |   `-- build
    |     |       `-- <機種名>
    |     |-- sysmgr                T-Kernel/SM
    |     |   |-- src
    |     |   `-- build
    |     |       `-- <機種名>
    |     |-- sysmain               システムメイン
    |     |   |-- src                     [アプリケーション依存部]
    |     |   `-- build
    |     |       `-- <機種名>
    |     |-- sysdepend             [ハードウェア依存部]
    |     |   |-- cpu                     CPU依存部
    |     |   |   `-- <CPU名>
    |     |   `-- device                  デバイス依存部
    |     |       `-- <機種名>
    |     `-- extension             Extension 関連部
    |         |-- memory                  メモリ管理
    |         |   `--nommu                     MMUなし
    |         `-- startup                 Extension 起動/終了処理
    |             `--noext                     Extension なし
    |
    |
    |-- lib                  ライブラリ
    |     |-- build                 オブジェクト(構築)ディレクトリ
    |     |   `-- <機種名>
    |     |-- crt                   スタートアップルーチン
    |     |   |-- crt0                    共通スタートアップルーチン
    |     |   |   |-- src
    |     |   |   |   `-- sysdepend             [ハードウェア依存部]
    |     |   |   |       `-- <機種名>
    |     |   |   `-- build
    |     |   |       `-- <機種名>
    |     |   `-- crttk                   T-Kernel プログラムスタートアップ
    |     |      |-- src
    |     |      |   `-- sysdepend              [ハードウェア依存部]
    |     |      |       `-- <機種名>
    |     |      `-- build
    |     |          `-- <機種名>
    |     |-- libsvc                T-Kernel システムコール I/F ライブラリ
    |     |   |-- src
    |     |   |   `-- sysdepend           [ハードウェア依存部]
    |     |   |       `-- <CPU名>
    |     |   `-- build
    |     |       `-- <機種名>
    |     |-- libtk                 T-Kernel 関数コールライブラリ
    |     |   |-- src
    |     |   |   `-- sysdepend           [ハードウェア依存部]
    |     |   |       `-- <機種名>
    |     |   `-- build
    |     |       `-- <機種名>
    |     |-- libtm                 T-Monitor サービスコール I/F ライブラリ
    |     |   |-- src
    |     |   |   `-- sysdepend           [ハードウェア依存部]
    |     |   |       `-- <機種名>
    |     |   `-- build
    |     |       `-- <機種名>
    |     |-- libstr                文字列操作ライブラリ
    |     |   |-- src
    |     |   `-- build
    |     |       `-- <機種名>
    |     |-- libsys                システム操作ライブラリ
    |     |   |-- src
    |     |   `-- build
    |     |       `-- <機種名>
    |     `-- libdrvif              デバイスドライバ操作ライブラリ
    |         |-- src
    |         `-- build
    |             `-- <機種名>
    |
    |
    |-- include              各種定義ファイル(ヘッダファイル)
    |     |-- tk                    T-Kernel 関連の定義ファイル
    |     |   `-- sysdepend               [ハードウェア依存部]
    |     |       `-- <機種名>
    |     |-- sys                   システム内部情報の定義ファイル
    |     |   |-- sysdepend               [ハードウェア依存部]
    |     |   |   `-- <機種名>
    |     |   `-- svc                     システムコール/拡張 SVC 定義
    |     |-- tm                    T-Monitor 関連の定義ファイル
    |     `-- device                デバイスドライバ関連の定義ファイル
    |
    |
    |-- config               システム構成情報ファイル
    |     |-- src
    |     |   `-- sysdepend         [ハードウェア依存部]
    |     |       `-- <機種名>
    |     `-- build
    |             `-- <機種名>
    |
    |
    |-- etc                   make ルール、各種スクリプト
    |    `-- sysdepend              [ハードウェア依存部]
    |       |-- cpu
    |       |   `-- <CPU名>
    |       `-- <機種名>
    |
    |
    `-- bin                   実行イメージファイル
          `-- <機種名>

3. kernel ディレクトリ

4. lib ディレクトリ

5. include ディレクトリ

本ディレクトリは定義ファイルのみですので、オブジェクトは生成されません。

6. config ディレクトリ

T-Kernel で使用されるシステム構成情報ファイル (rominfo、SYSCONF、DEVCONF) が置かれます。

7. etc ディレクトリ

T-Kernel の構築で使用される共通のコマンドやスクリプトファイルが置かれます。

8. bin ディレクトリ

以下の構築ディレクトリで構築した最終的な実行/ロードイメージファイルとリンクマップが、"<機種名>" のサブディレクトリに置かれます。その際、古いオブジェクトファイルは、"!OLD" の名称のサブディレクトリにバックアップされます。

    kernel/sysmain/build/<機種名>    T-Kernel 本体
    config/build/<機種名>            システム構成情報
    monitor/tmmain/build/<機種名>    T-Monitor 本体

9. T-Kernel が使用する資源