1
プログラミング演習 I
2003年 4 月23日(第 2 回)
木村巌
2
やること(知識編)
Cygwinって?
GNU Project
C 言語の歴史、定義、標準
ファイルシステム
3
やること(実践編)
Cygwinの使い方
起動と終了
ファイルとディレクトリ
C コンパイラの起動(とりあえずやってみる)
4
Cygwin って?
Microsoft Windows上にUnix互換環境を構築
GNU Project の成果
本当のUnixはどこで使える?
⇒3 F の端末で Linux が使える
Linux: 1990 年代から Linus Torvalds が開発を進 めている OS.
OS: Operating System. 計算機資源を抽象化、管 理を行うソフトウエア.
狭い意味のLinuxは、Linux Kernelと呼ばれる、OSの核心部のみを指す.それ に、一般的なOSとして必要な付属ソフトや、一般ユーザが使うための要素を組 み合わせたものをdistributionという.たとえばRedHat, Vine, Debianなど.これら は、他の商用ソフトとあわせた有料版と、それを除いた無料版とに分けて配布さ れていることが多い.
Unixというのは、狭い意味では、AT&TのBell研究所で開発が始められたミニコ
ン用のOSを指す.現在では、狭い意味でのUnixに倣って開発されたOS全般を
指すと思ってよい.
5
GNU Project って?
Free Software という思想
基本的なソフトウエアは Free であるべきだ
単に「ただ」という意味ではない!
自由に手に入る、自由に配れる
自由に改変できる
改変したものを自由に再配布できる
この三つを柱にしたものが、 GNU GPL (General Public License).
Free Software には他の形もある
FreeBSDなどが採用しているBSDライセンスな どなど
Open Source Software という動きもある
6
ファイルシステム
ファイル
読み書きできるモノ
ファイル名、日付、所有者などの属性を持つ
ディレクトリ(フォルダ)
ファイルをまとめたモノ
実は特殊なファイル
OS が計算機資源(この場合、 HDD などの記 憶領域)を抽象化した例
C言語でのファイルの読み書きなども、後の回でやります.ファイルシステムは OSが提供する機能です.基本的な機能なので、C言語からファイル入出力を行 う方法が標準化されています(標準Cライブラリに、ファイル入出力の為の関数が 用意されている).それ以外の、 OS が提供するより広範な機能を C から使うには、
システムコールを使うことになります.
7
C 言語についての知識(歴史)
Brian Kernighan, Dennis Ritchie
Algol(1960), CPL (1963), BCPL (1967), B (1970), C (1972)
Unix の記述言語( Unix は C で書かれてい る!)
Cの歴史については、P. H. Salus, Unixの1/4世紀、ASCII, 2000年、にも詳しい.
8
C 言語についての知識
(定義、標準)
C 言語そのものと、 C 言語の処理系の違い
C言語そのもの……文法、意味、標準ライブラリの規定
C言語の処理系……上記にしたがって書かれたプログ
ラムを、実行できるモノへ変換するプログラム
例:gcc