UNIXシェルコマンドを利用したユーザプログラミング

粟村 幸代 ,磯崎 さおり ,瓜生 佳恵,
大井 美代子,三隅 和加奈         
(指導  千 々 松  康)      

  1. UNIX OS

    1. 開発の歴史
      UNIXは、1969年、アメリカAT&T社のベル研で開発された、マルチタスク、マルチ      ユーザのOSである。DEC社のPDP 7上でのアセンブリ言語から、PDP20のC言語      で作り直された。移植性の高さから、急速に普及し、ワークステーション、パソコンOSへと      採用された。以下に、パソコンUNIXを挙げる。
      Turbo Linux , Red Hat Linux , LASER Linux , Vine Linux ,
      Plamo Linux , Open Linux , Slackware , Debian GNU/Linux ,
      Storm Linux , Corel Linux , Kondare MNU/Linux , Linux MLD4 ,
      FreeBSD 4
    2. コマンド
      オプションの別を数えれば、数百にもなる実に多くのコマンドが用意されているとともに、    多彩で便利なツールもある。
    3.   ファイルシステム
      ファイルの管理には、木構造によって階層を持たせている。
       根(root) ,節(directory) ,葉(file)の概念を採っている。
      【例】 /export4/home/student/uc99xxx/*****
    4.   フィルタ,リダイレクション,パイプ>
      • フィルタ(filter)
         コマンドの別な捉え方とも言え、入出力の機能も含めることができる。 (stdin , stdout ,stderr)
      •  リダイレクション(redirection)
         ファイルの生成、追加、統合などに働き、対象を「>」(output) ,「>」(input) で記述する。
      •  パイプ(pipe)
        コマンドからコマンドへと引き継ぐとき、一時ファイルを利用しなくても可能な“自動 連続引き渡し”機能といえる。

  2. シェル制御文

    1. シェルとは
         シェルとは、そもそもユーザが入力したコマンドを解釈して実行する機能(プログラム) をいう。OSのユーザインタフェースの役目を果たしてくれ、中枢部分(カーネル:核 )を覆うことから、シェル(shell:貝の殻)と呼ばれている。
    2. 制御文の役割と種類
      • コマンドの1つ1つは、それ自体で単独で目的の実行をするが、 制御文は、以下のような働きをして、実行の効率をあげてくれる。
                ○ 似かよった処理
               ○ 同じコマンドの繰り返し
               ○ 入出力対象などの自動化
      • 具体的に文を以下に示す。

  3. プログラミング(問題の要点)

    1. ビットの操作
      • 演算子 …shift(>>右、<<左) ,論理(~、&、|、^)
      •  メモリ表示
    2. ポインタ
      • 演算子 …address(&)、pointer(*)
      • ポインタ変数による算術演算、文字列演算
    3. 線形リストの作成
      •  リストの要素(データ部とポインタ部)と構成
      • 追加と削除、具体例(同音意義語の集合データ)
      • 線形リストの種類(木構造、一方向リスト、双方向リスト)
    4. 子プロセスの生成
      • システムコール(fork関数:親プロセスidをコピーして子ピロセスとする)
      • タイミングをとる。(sleep関数)
    5. プロセスをゾンビにする
        ユーザモードとカーネルモード(システムコールによる割り込み状態)
          ゾンビ状態…プロセス自体は消滅しているが、プロセステーブルからはまだ解放  されてはいない。
            プロセスの待機(wait関数)

  4. おわりに

        OSがユーザに向けてどのような性格のものであるかで、計算機を利用する上で 大きな特徴となって表れてくる。UNIXは、簡明で飾らないシンプルな形で、他 のものと比べて、基本部分まで解放しているOSといえる。
    ミニコンを対象に開発されたUNIXが、パソコンに移植され、FreeBSD  とLinuxの2つの大きな流れで現在に到っている。コマンド入力を基本として の利用は、windowsとは、また違った経験をすることができた。


《参考文献》


  1. Lowell Jay Arthur 著、伊東正安 監訳、千吉良英毅 他共訳
    「UNIX シェルプログラミング」、オーム社(1996)
  2. 羽山 博 著 「unix システムプログラミング」、オーム社(1994)
  3. 河西 朝雄 著 「C 言語」、ナツメ社(1990)