ホームページ作成講座 1999.5.12
ホームページ作成講座 資料
1999.5.12
縄手
1. はじめに
1.1 目的
AT&T Bell研究所のKen TompsonとDennis RitchieがMULTICSプロジェクトに参加。その思想に感銘し、手元の小形コンピュータDEC PDP-7用のOS(カーネル)を開発(1969)し、UNICSと命名
UNiplexed Information and Computing System
後にUNIXとなる
(1971年のPDP-11から正式発足)
1873年、C言語で記述
高い拡張性により種々のプラットホームへ移植が可能となる
Algol60→CPL→BCPL→B→C
68000マイクロプロセッサ上で主として開発される
PDP-11は16bitの論理アドレスしか持たなかったので、カーネル、プログラムともに小さく、しかも複雑な処理を小さなプログラムの組み合わせで行うUNIXの基本が確立
AT&TとBSDで平行開発
Berkeley Software Distribution (University of California, Berkeley)
1983年にはSystemVと4.2BSD
この頃、ビットマップディスプレイやウィンドウシステムが出始めるがUNIXはコマンドから1ステップずつ処理する形態が得意だったので取り入れることができなかった
カーネルとは別にウィンドウシステムが発展
多様なLook & Feelを実現
AT&TがUNIXのライセンスを厳格に適用し始める(現在はX/Openの登録商標)
SystemV Release4 (SVR4)と4.4BSD Liteに分離
前者:Solaris、Openstep(NEXTSTEP)
後者:FreeBSD、NetBSD
BSD系列は幅広いプラットホームで動作
PC/AT互換機、PC98、Macintosh、DEC Alpha、Sun Sparc
UNIXの特徴
マルチプロセス
複数の処理を平行して実行(細かい時分割により実現)
プロセスどうしのメモリ管理が独立しているので、一つのプロセスが暴走しても他のプロセスには影響しない。(プリエンプティブマルチタスク)
マルチユーザ
複数のユーザが同時に利用可能
それを実現するためにログイン認証の概念がある
端末上で仮想コンソールを利用
ネットワーク上の他のホストから利用
仮想記憶
主記憶装置(RAM)のメモリが足らなくなった時にハードディスクを一時的に利用して実メモリ以上の処理を行う方法
ネットワーク透過
実際にその端末の前で操作しなくても他のホストから同様の快適さで利用できる
3. Linux概略
1990年頃、オランダのAndrew S. Tanenbaumが開発したMINIXが教育用に広く利用されていた。
インテルの80286で動作、教育用なので拡張性なし
1991年、当時Helsinki大学の学生であったLinus Torvaldsが80386に対応して実用性の高いシステム(UNIX互換)を一から開発
Tanenbaumとの間で激しい論争が起こるが、世界中のハッカーがLinusの考えを支持し、ボランティアで開発に参加、各種のプラットホームで稼動するようになる
Intel、SPARC、Alpha、PowerPC、m68k
Linusに因んでLinuxと名付けられる
厳密にはLinuxとはカーネルのみを指すが、現在、カーネルに各種のコマンドを組み合わせたシステム全体をLinuxと呼ぶことが多い。それらのコマンドもGNUで開発されたものであり、全くのフリーなシステムであることが特徴
GNU=GNU is Not Unix
ディストリビューションと呼ばれるバイナリのインストーラが発達し、商業ベースに乗ったことから扱い易く高性能なシステムとして脚光を浴びている
Slackware -- Plamo Linux
Red Hat -- TurboLinux, MkLinux, Vine Linux
Debian GNU/Linux
(Debra & Ian Murdock)
今回使用するサーバ
5/12現在はMkLInux、近々TurboLinuxに変更予定
教室の端末はDebian GNU/Linux
なぜLinuxか?
送受信するデータは各層ごとにヘッダをふかしたものがやり取りされる
4.2 ネットワークアクセス層(データリンク層)
物理的な接続方法の規約
Ether:1 [U] 【化】 エーテル (有機化合物; 麻酔剤).
2 [the 〜] (詩・文語) 天空, 青空.
&ギリシャ語「天空上層の空気」の意; 《形》 ethereal'
Ethernet
10Base5・・イエローケーブル(同軸ケーブル)
取り回しが厄介
10Base2・・同軸ケーブル(最大延長185m)
ディジーチェーン方式なので一つの端末を入れ替えるにも、すべてのネットワークを停止する必要がある
10Base-T・・より対線(Twisted Pairケーブル)
端子はRJ-45、HUBによるスター接続(最大延長100m)
手軽に接続できるので現在の主流(今後は100Base-TX)
ハブはネットワークアクセス層のデータを解析し宛先の端末に向けて中継する。ただし、ハブのすべてのポートに情報を流すため、接続数が多くなると衝突(コリジョン)が多くなり、転送速度の低下が生じる。
スイッチングハブ
個々のポートに接続された機器(ホスト)の物理アドレスを記憶し、必要なポートどうしを中継することにより、不必要なトラフィックをなくし高速なデータ転送を実現する。
MACアドレス
Media Access Control
ネットワークインターフェイスを識別するためのハードウェアアドレス(別名Ethernetアドレス)で、工場出荷時に付加される6バイトの番号
通常は16進数を用いて12桁で表される。重複は許されない。
4.3 インターネット層
ホスト間でパケット交換を行う
IPアドレス(後述)が識別子となる
4.4 トランスポート層
TCP:コネクション型
UDP:データグラム型
UDP: User Datagram Protocol
コネクション型
仮想的な通信路を確保した後データをやり取り
コネクションの開始、終了手続きが必要
データが順序通りに届く
データグラム型
コネクションを張らないアプリケーション層でデータの復元
TCP/UDPともに、ポート間でデータの送受信を行う
端末に各種のポート番号が決めてある
ポートの例
ftp 21
telnet 23
smtp 25
http 80
pop3 110
4.5 アプリケーション層
メール、www、FTP等を使うときに配送を行うプロトコル
それぞれ、SMTP(POP3)、HTTP、FTP
4.6 PPP接続
電話回線を通してサーバに接続しTCP/IPアプリケーションを利用する形式
ネットワークアクセス層に属する
5.3 ホスト名
IPアドレスに付加されるホスト名--人間にとって理解し易い名前
この場合、ホスト名とIPアドレスは1対1対応
システムに付加されるホスト名
ネットワーク上のホスト名とは無関係
5.4 ドメイン名
FQDN, Fully Qualified Domain Name
192.244.219.82
mag2.riko.shimane-u.ac.jp
jpの acの shimane-uのrikoの mag2 を表す
^^ ^^ ^^^^^^^^^ ^^^^ ^^^^
国 組織の種類 組織の名称 細目 ホスト名
国:jp, uk, au, fr, ...
種類:ac, co, go, ne, or, ...
例外:合衆国の分類
国を表す項目なし、組織の種類はcom, edu, ...
6. ルーティング
複数のネットワークに接続したホストにおいて、一方から他方へとパケットを送る機能
自分のネットワークに属するホストかどうかをIPアドレスのネットワーク部が同じかどうかで確認
192.244.218.1 1号館
192.244.219.1 3号館
ネットワーク部が異なる→別のネットワーク
実際にはネットマスクを用いて判断する
クラスCの場合は255.255.255.0
ネットマスクの目的は正規のネットワーク部の長さを変更するため
実際の効果が出るのは、例えばクラスBのアドレス空間をクラスCで仮想的に区切る場合などで、パケットは同一ネットワークのすべてのホスト宛てに送られるので、ネットワークを小さく区切ると無駄が減る
133.41.4.2
133.41.38.1 の様なクラスBのネットワークでは、本来のネットマスは255.255.0.0であるが、ルータを用いてネットワークを分離し、255.255.255.0のマスクをかけるとパケットの流れる範囲が狭くなり資源の有効活用となる
IPアドレスはNIC(国内はJPNIC)が管理しているが、その管轄にないアドレスとして以下のものがある。ローカルに閉じたネットワークであれば自由に利用できる。
クラスA 10.0.0.0 ~ 10.255.255.255
クラスB 172.16.0.0 ~ 172.31.255.255 電子制御の学科LAN
クラスC 192.168.0.0 ~ 192.168.255.255 縄手の研究室のLAN
学科LANにおいては、端末の台数自体はクラスCでもおさまるが、各教官にクラスCを一つ割り振るためにクラスBとしている
IPマスカレード
Masquerade: 見せ掛け、仮面舞踏会
インターフェイスが2つあるホストにおいて、一方のネットワークがプライベートアドレスである場合、プライベート側のホストはそのままではインターネットを利用できない。
上記の複数インターフェイスを持つホストがゲートウェイになりグローバルなアドレスになりすましてパケットの送受信を行う機能をIPマスカレードと言う。
グローバル側から見ると、プライベートのホストは見えなくて、ゲートウェイのマシンからの接続に見える。
UNIXのネットワーク機能の多くは利用者が端末で使用するクライアントプログラムと、必要な機能を提供する端末上で実行されるサーバプログラムとが協調することにより実現される。
例:FTP
クライアントプログラム ftp、ncftp
サーバプログラム in.ftpd、wu.ftpd
プログラムのコマンドの最後にdがついているものはデーモン(Daemon)プロセス
daemon:1 【ギ神話】 ダイモン (神々と人間の間に介在する二次的な神)
通常は待機していて、呼び出しがあった時にだけ仕事をするプロセス
8.2 ネームサーバ
IPアドレスとホスト名を相互に変換する作業を行う
固定方式
各ホスト上にIPアドレスとホスト名の対応表を用意する方式
小規模の場合は可能
すべてのホストに同じ表が必要
Domain Name Service (DNS)
ホスト名とIPアドレスをネットワーク上のサーバに問い合わせる仕組み
各組織(ドメイン)が自組織を担当するサーバを運用し、他の組織からの問い合わせに答える形式により、管理と負荷を分散する。プログラムはBINDが通常使用される。
電子メールの配信のための情報も管理
今回のホームページを置くサーバの情報(5/12現在)
電子メール配信システム
MTA (Mail Transfer Agent)
MUA (Mail User Agent)
MDA (Mail Delivery Agent)
端末上で利用者がメールを送受信する時に用いるアプリケーションプログラムがMUA
MUAはMTAに配送を依頼
SMTPとPOP
MUAからMTAにメールを送る時に利用されるプロトコルがSMTP
8.4 FTPサーバ
ファイルを転送する機能を提供するサーバプログラム
FTPは他のプロトコルと異なり、コネクションを張って制御用の信号を送る経路と実際にファイルを転送する経路の二つを使用する。
Anonymous FTP
anonymous: 匿名
サーバにアカウントを持っていないユーザにもサーバからのファイルのダウンロードを許す方式
ログイン時にユーザ名としてanonymous、パスワードに自分のメールアドレスを入力して利用する。セキュリティの面から公共性の高いサーバにのみ用いられる。
代表的なプログラム: wu-ftpd
8.5 Webサーバ
HTTPを利用したHTML書類の転送を行うサーバ
HTTP: Hyper Text Transfer Protocol
HTML: Hyper Text Markup Language
代表的なプログラム:Apache (A PAtCHy sErver)
patchy:1 つぎだらけの; 寄せ集めの.
2 〈霧・雲など〉きれぎれの, とぎれとぎれの.
3 不調和な, むらのある; 所々にいい所があるだけの.
サーバは他ホストからの要求に堪えて自ホスト内のHTMLファイルを送出するだけ。仕事の大部分はアクセス制御やファイル管理
実際にページの表示を行っているのは利用者の端末のブラウザ(Netscape Navigator, Internet Explorer等)
HTML言語はテキストやグラフィックとして描かれている情報を表示する機能しかないため、HTML言語を利用してサーバ上でプログラムを奔らせるためにSSIやCGIを利用する。
SSI:Server Side Include
CGI:Common Gateway Interface
アクセスカウンタやフォームによるアンケートページ、動画、全文検索、データベースとのリンク等を行う。これに関しては、実際のページ作成の基礎が終わった段階で改めて説明。