計算機の動作の基盤となっているソフトウェア。 計算機上ではOSが動き、その上でユーザーのプログラムが動く。
OSの例: MS Windows, MacOS
Unix ... Bell研究所の人たちが開発した OS。1971 (version 1)。 複数ユーザーがつかえるOS、しかしそのうちでは単純な構成。
その後、Unix は 有料となった。 そこで、Unix と同じようにつかうことができ、free (「無料」をふくむがそれだけではない) のものをつくろうという (複数の) 活動がおこった。
Linux ... Linus Torvalds (当時 フィンランドの学生) がつくりはじめる。1991 (version 0.01)
Linux は Unix のプログラムをひきついでいないが、 わたしは「Unix系 OS」というとき、Liunx をふくめている。
Unix系OSの「ディレクトリ」と MS Windows の「フォルダ」(folder) は、 日常への比喩としてはちがっているが、同じ機能である。
フォルダ ... ファイルを入れるもの。 フォルダの中に、通常のファイルの横ならびに、フォルダをふくめることができる。 ... 多重の 含む・含まれるの階層ができる。
ディレクトリ ... 住所録のようなもの。何という名まえのファイルはディスク上のどこにあるかを記録した特殊なファイル。 ディレクトリの中に、ファイルの住所の横ならびに、他のディレクトリの住所を書くことができる。 ... 多重の階層ができる。
ひとつの計算機がもつファイル群は、 「根」(root) から枝分かれする木 (tree) のような構造になる。 (図示するときは、根を下ではなく左上に書くことが多い。)
【分岐と対照的な合流する構造は、Unix系OSでは例外的なものだが、 リンク (link) という機能によって構成することができる。 それを実行するコマンドは「ln」である。 ここでは 「ln -s」の形の「シンボリック リンク (symbolic link)」だけを紹介する。 これをつかうと、ディレクトリツリー上で、ファイル実体とは別のところにも 同じファイルがあるかのように読み書きできる。 MS Windows での「ショートカット」とほぼ同じである。】
それぞれのファイルは「根」をあらわす「/」(スラッシュ) からはじまる full path (「絶対パス」ともいう) であらわすことができる。 たとえば「 /home/masuda/work20220426/file1.txt 」
Unix系OSのユーザーは、各時点で、どこかのディレクトリに注目している状態にある。 そのディレクトリにあるファイルを、path指定なしでファイル名だけであつかうことができる。 他のファイルも、作業中のディレクトリからの相対パスであらわすことができる。
「作業中のディレクトリ」を知るためのコマンドが「pwd」である。
「作業中のディレクトリ」を変更するコマンドが 「cd」である。 「ディレクトリを移動する」ともいうが、このばあい、ディレクトリツリー上に存在するディレクトリを移動させるのではなく、 作業者が注目している位置が変わるのである。
【ディレクトリツリー上のディレクトリの位置を移動させるには「mv」コマンドをつかう。】
ちかごろの Linux の標準的なディレクトリ構成では、 各ユーザーは「/home/ユーザー名」の形の名まえの「ホームディレクトリ」をもつ。 各ユーザーは、ホームディレクトリの下 (フォルダのたちばでいえば「...の中」) に ファイルやディレクトリをつくることができる。
Unix系OSでうごくプログラムの多くは、標準入力からデータを読み、標準出力に書くようにつくってある。
とくに指定しなければ、標準入力はキーボード、標準出力は端末画面である。
(プログラムをかきかえず、実行時に) 標準入力、標準出力を、それぞれファイルにつけかえることができる。 「リダイレクション (redirection)」という。
ひとつのプログラムの標準出力をつぎのプログラムの標準入力とする「パイプライン処理」ができる。
テキストファイルの内容を書きかえるのに、エディタ (editor) という種類のプログラムをつかう。
1次元の行単位で編集する「ラインエディタ」と、複数の行を2次元に表示して編集する「スクリーンエディタ」がある。
Unix では、まず ed というラインエディタ、ついで vi というスクリーンエディタがつくられた。
emacs はスクリーンエディタで、Unix本来のものではないが、 GNUというプロジェクトでつくられた emacs がひろく普及している。
ここでは emacs をつかうものとして指導する。 ただし、オプションなしで起動すると X Window の機能が必要で動作が重くなるので、 「-nw」(no window) オプションで起動することをすすめる。