計算機の初歩

吉田茂生


はじめに

計算機は巨大なシステムであって、隅から隅まで分かっている人など誰もいない。 もちろん電気電子情報系の人はこれからかなりいろいろなことを勉強して、 そのうち私の知識を追い越すであろう。しかし、それでもハードウェアから ソフトウェアの隅々までを知り尽くすことは不可能である。 こういうとんでもない道具がでてきたのはもちろん20世紀であって、 それまではそんな道具はなかった。どう御して行くべきかはむずかしい。

とはいえ、巨大なシステムというのは、世の中に昔からたくさんある。 この日本の、あるいは世界の社会システム全体はそういうものだし、 本セミナーのテーマである海全体もそういうものである。 そういうシステムに比べれば、計算機システムは人間が作ったものなので、 振る舞いが予測可能という意味では格段に御しやすい。

こういった巨大なシステムを理解するやり方はどうすればよいだろうか? われわれは社会システムをどう理解するかというと、それは2面的に なされるのが普通である。われわれは、生まれ育って行く過程で、 訳も分からず社会システムの中に投げ出される。しかる後に、 学校で社会というものはこういうものだと学習する。大人になっても、 社会経験を積みつつ、書物などを読みつつ、日本とは、あるいは 世界とはこういうものだということを学ぶ。 計算機もそのように理解するのがたぶん良い。とりあえず 訳も分からず、メールを書かされ、html 文書を書かされて、 そのうちおもむろにもう少し系統的なシステムを学び、 経験と理窟の両輪で行くのが良い。

そういうわけで、今日は、お勉強の部分のさわりをやる。 私も専門家ではないから、さわりしかできないのも確かである。

計算機の種類

われわれが目にする計算機は、だいたい次の3種類であろう。 この区別は厳密なものではなく、時代とともに変わるが、まあ こんなものだと思っていただく。

計算機の種類大型計算機(メインフレーム、スパコン)ワークステーションパソコン
OS昔はメインフレーム用の OS、今は UNIXUNIXWindows, Mac OS, 最近は PC UNIX (Linux, FreeBSD など)も
数値計算能力高いやや高いそれほど高くない
値段非常に高いやや高い(100 万円から数 100 万円)それほど高くない(10 万から数 10 万円)

皆さんの目の前にあるのは、(たぶん)ワークステーションレベルのものである。 もっとも、ネットワークで繋がって構成されているものなので、 私はそれがどういうふうに実現されているか良く知らないから、 パソコンレベルかもしれない。

最近はパソコンの性能が上がってきて、ワークステーションと変らなく なりつつあるから、ワークステーションは衰退しつつある。また、 わざわざ大型計算機を使わなくても、パソコンで済む計算も 多くなってきたから、大型計算機も衰退してきている。 今大型計算機を使うのは、かなりヘビーな計算をする人たちである。

計算機の見え方

ここは久野 (1992) を用いて説明する。(コピー配布)

ファイルとディレクトリ

ここから、ちょっと実地訓練。まずは、「端末エミュレータ」なるものを 立ち上げよう。エミュレートというのは、計算機用語としては、本来他の 場面(機種や OS など)で出てくるプログラムと外見上同じように見える プログラムのことである。だから、「端末エミュレータ」とは「端末」の 真似をするプログラムのことである。「端末」というと、皆さんの 目の前にある計算機のことだから、端末の中に写っているものが 端末を真似するとはどういうこと?ということになってしまうのだが、 これは、歴史の産物である。昔は、今見ているようなウィンドウ システムがなくて、端末の画面というのは、ただ字が並んでいるだけ、 のものだった。その時代の名残で、そういう字が並んでいる部分のことを ここでは「端末」と言っているわけだ。Windows だと、こういう画面を 「コマンドプロンプト」と言う。

計算機の中身を知るには、この字が並んでいる「端末」を利用する必要がある。 ネットスケープのようなものは、単なる1プログラムだが、「端末」は 計算機の中身を覗き見る窓である。

まず、そこには

k127b@sv010%
のような文字が見えているだろう。それは、プロンプトと呼ばれる。 それは、計算機が命令を打ち込んでくださいと言っている印である。

先へ進む前に、ノイマン型計算機という概念を理解しておこう (NEC エレクトロンデバイス, マイコン入門)。 ノイマン型計算機というのは、プログラムとデータのどちらもが メモリに始めに入力されていて、CPU がプログラムを順次読みつつ、 それにしたがって計算をし、必要に応じてデータを読み書きする、 という感じで動作が進んで行くものだ(久野, 1992, p.693)。 メモリというのは、計算に必要な情報を電子的に溜めておくところだ。

計算機には、メモリ以外に、ハードディスクという記憶装置がある。 メモリは、CPU が直接使うもので、高速だが容量が小さく、電源を 切ると消えてしまう(消えないのもあるが)。一方、ハードディスクは 低速だが容量が大きくて、電源を切っても中身が消えない。 そこで、データやプログラムは、普段はハードディスクに入れておいて、 必要なときにだけメモリに読み込んで使うという方法が取られる。

さて、そういうわけで、計算機を動かすには、データとプログラムを ハードディスクの上に持っておかないといけなくて、そういうものを ファイルという。さて、計算機のアカウントをもらうと、 各自のファイルの置き場が割り当てられている。まずは その中身を眺めてみよう。

% ls
(ls は list の略) とやってみると、たとえば
k127b@sv006% ls
Drafts       Templetes    Windows      httpd-conf   public_html
Mail         Trash        axhome       ns_imap
Sent         WinNetscape  f90          nsmail
というふうになる。これはあなたが今持っているファイルのたちである。

次に

% ls -F
としてみよう。すると
k127b@sv006% ls -F
Drafts        Templetes     Windows/      httpd-conf/   public_html/
Mail/         Trash         axhome/       ns_imap/
Sent          WinNetscape/  f90/          nsmail/
のようになる。このスラッシュマークは何だろうか?ファイル置き場は ファイルをどんどん投げ込んで行くと整理がつかなくなるので、 ツリー状の構造を持たせてある。つまり、袋があって、その袋の中に また袋があるという感じになっている。その袋のことを ディレクトリと呼ぶ。Windows や Mac OS の世界では フォルダという。スラッシュが付いているものはディレクトリである。

たとえばディレクトリ nsmail の中身を見るには、まず

% cd nsmail
(cd は change directory の略) とやってみるとよい。これは その袋の中に入ってみるという命令である。そこで改めて
% ls -F
としてみるとたとえば
k127b@sv006%  ls
Drafts           Sent             Trash
Inbox            Templates        Unsent Messages
といったファイルがあることがわかる。

今度元のディレクトリ(包んでいる方の袋)に戻るには、

% cd ..
とする。そうすると元へ戻っている。
k127b@sv006% ls -F
Drafts        Templetes     Windows/      httpd-conf/   public_html/
Mail/         Trash         axhome/       ns_imap/
Sent          WinNetscape/  f90/          nsmail/

次に、もう一度

% cd ..
として、
% ls
としてみる。すると、たくさんの人のユーザ名が見える。それぞれのユーザーの ファイル置き場は、実はディレクトリの一つである。それをそのユーザーの ホームディレクトリと呼ぶ。単に
% cd 
とすると、自分のホームディレクトリに戻ることができる。

自分がどこのディレクトリにいるかを知るには

% pwd
(pwd は present working directory の略) とする。
% k127b@sv006% pwd
/mdhome/homet/k127b
全体の中で自分がいるところがそういうところであることがわかる。

ファイルの中身を見るには

% more Trash
のようにすれば良い。

エディタの使い方

さて、するとそのようなファイルを書くにはどうしたらよいか?という話になる。 これを書く道具がエディタである。

以前に配った「情報メディアセンター講習会テキスト」第3章参照

プログラムというのはどういうものか

ここは久野 (1992) を用いて説明する。 例には Fortran90 を用いよう。

配布したコピーには C でプログラムが書いてあるが、それを Fortran90 で 書き直したものが f01.f90 である。 まず、これを適当なところに保存せよ(自分のホームディレクトリの中の 適当なところにこのファイルを作る)。

実行の仕方は、まず、sv010 というマシンにログイン。

% rlogin sv010
その後
% unsetenv LANG
として
% f90 f01.f90
でコンパイルを行い、
% ./a.out
で実行する。

少し詳しくは ここ も参照。

困ったときにプロセスを殺す方法

% ^C
% ps
% kill

詳しくは 情報メディアセンターの FAQ も参照。


参考文献