2006.6.16　更新


対応コンパイラ：GCC


１　ディレクトリ構成

"user"┬ "bin"       ─ ユーザーバイナリプログラム
      ├ "copy"      ─ インストール用ファイル・ディレクトリ
      ├ "include"   ─ ヘッダーファイル
      ├ "lib"       ─ ライブラリ（システムコール、Ｃライブラリ、ネットワークライブラリ等）
      ├ "sbin"      ─ init、shellプログラム
      ├ "command"   ─ 各種コマンドプログラム
      ├ "test"      ─ テスト用プログラム
      └ makeファイル、リンカースクリプト、テキスト等


２　ライブラリ・シェル・コマンド・テストプログラムのコンパイル

(１)　Makeファイルの設定
　　「Make.in」ファイルの
　　　　"ROOTDIR="　に"user"ディレクトリの絶対パスを、
　　　　"LIBGCC="　"LIBGCCA="　にGCC組み込み関数ライブラリ"libgcc.a"のパスを、
　それぞれ設定する。

(２)　コンパイル
　　コマンド"./build.sh"でコンパイルが始まり、各実行ファイルが"copy"ディレクトリ内の
　　各ディレクトリにコピーされる。

(３)　インストール
　　テスト機をLinux等で立ちあげて、"copy"ディレクトリ内の各ディレクトリを、
　　OSルートデバイスのEXT2ファイルシステムのルートディレクトリにコピーする。
　　＜注意＞
　　　コンパイル環境がWindows + Cygwinの場合、コンパイルした実行ファイルに実行可属性が付かないので、
　　　コピーした時に実行可属性を設定する必要がある。

(４)　実行
　　OSをテスト機で立ち上げ起動が成功すると、「sbin」ディレクトリにある「init」が実行され、
　shellが立ち上がる。


３　テスト環境用ディレクトリ・設定ファイルのインストール
　ＯＳ起動に必要なファイル・ディレクトリは"user/copy/"ディレクトリにあるので、「１‐（３）インストール」の項目のとおり
　"copy/"ディレクトリ内のすべてのファイル・ディレクトリをコピーする。


４　ユーザープログラムの作成の仕方

(１)　ソースコードファイルの作成
　　Ｃ言語で作成しuser/ディレクトリに置く。
　　なお、実装しているシステムコール・関数は、まだ十分にテストされていないので、バグがあったり、仕様
　どおりに動かなかったりする場合がある。

(２)　コンパイル (事前に各ライブラリのコンパイル (２参照) が必要)

　?　「make 'file=ソースファイル名(拡張子抜き)'」とコマンドを入力してコンパイルすると、bin/ディレクトリ
　　にソースファイル名のプログラムファイルが作成される。
　　　例）ソースファイル名：test.c なら、「make 'file=test'」でコンパイルすると、「bin/test」が作成される。

(３)　インストール
　　テスト機をLinux等で立ちあげて、作成したファイルを、OSルートデバイスのEXT2ファイルシステムの適当な
　ディレクトリに置く。

(４)　実行
　　shellから実行する。


５　リリースパッケージソフト（binutils-2.16.1・gcc-3.0.4・vim-5.3）のインストールについて

(１)　ダウンロードしたパッケージをuser/command/ディレクトリに移して解凍する。

(２)　command/ディレクトリの「Makefile」でコメントアウトされている該当パッケージのmake処理行を、復活させる。
　　例）「#	cd binutils-2.16.1;make」　→　「cd binutils-2.16.1;make」

(３)　user/build.shを実行すればコンパイルされて、必要な実行ファイルが、copy/ディレクトリ以下の適切なディレクトリにコピーされる。
