システムプログラム   [ L510701 ]
System Program
対象:3・4学年
第1学期 曜・時:水1・2 2単位 担当教員:新城靖、追川修一

概要

Unixのシステムコールとライブラリを主な題材とし てシステムプログラミング、ネットワーク・プログラミ ング、および、オブジェクト指向プログラミングについ て講義する。計算機を用いた実習を課す。

学習・教育目標

  1. API (システムコールとライブラリ)を使ったプロ グラム作成法を学ぶ。
  2. マニュアルの読み方を身につける。
  3. 文字列、ファイル、時刻などの基本的ななオ ブジェクトを扱うことを扱えるようになる。
  4. プロセス生成やシグナルを題材として並行プ ログラミングの基礎を学ぶ。
  5. TCP/IP を用いたネットワーク通信を行うプ ログラムを作成できるようになる。
  6. World Wide Web の CGI の仕組みを理解する。
  7. スクリプト言語を用いたプログラムを作成で きるようになる。

時間割

講義内容/理解すべき項目
第1週計算機システムのソフトウェア構成、Unixにおけるプロ グラムの実行環境
ライブラリとシステムコール、マニュアルの読み方
コンパイルとリンク、デバッガ、makeコマンド
第2週数値と文字の表現、ファイルのシーケンシャル・アクセス
数値の表現、文字列操作のライブラリ関数
ライブラリとシステムコールによるファイルの扱 い、ストリーム、標準入出力
第3週プロセスの概念、パイプ、メモリマップ
プロセスの生成、プロセスとプログラムの関係、パ イプの生成
ファイル記述子、変数の番地、スタック、ヒープ
第4週構造体の入出力、ディレクトリ、時刻の扱い
ファイルのランダムアクセス、メモリマップ式の入出力
可変長構造体のファイル中の表現、ディレクトリ役 割と構造
時刻の表現、時刻の取得、時刻を操作するライブラ リ関数
第5週シグナル、属性、アクセス制御
周辺装置、入出力、ポーリング、割込み、ソフト ウェア割込み
ファイルの属性、プロセスの属性、アクセス権
第6〜8週ネットワーク・プログラミング
TCP/IPの概念、ソケットAPI、プロトコルスタック
TCP/IPのクライアントとサーバ
UDP/IPのクライアントとサーバ
第9週WWWプログラミングとWWWにおけるアクセス制御
CGIの仕組み、SSIの仕組み、JavaScript、クロスサ イトスクリプティング攻撃
Basic認証、IPアドレスによる制御、Cookie
第10週スクリプト言語
スクリプト言語によるプログラミングの手法
Ruby、Python、Perl、または sh等によるプログラ ミング

教材

毎週プリントを配布する。WWWで教材を提示する。

参考書籍

「C言語によるUNIXシステムプログラミング入門」(河 野 清尊、オーム社)  
「The Unix Super Text 第2版」(山口和紀・古 瀬一隆・中村敦司・新城 靖・西山博泰・林 謙一・金谷 英信・鈴木孝幸・端山貴也、技術評論社)

予備知識・前提条件

データ構造とアルゴリズムに関する知識があることを前 提とする。また、機械語序論を受講していることが望ま しい。

成績評価

レポートにより評価を行う。基準を満たさなかったレ ポートは、再提出を求めることがある。毎回出席をと り、最終的な評価の際に考慮に入れる。

教員メールアドレス

新城:yas@is.tsukuba.ac.jp
追川:shui @ cs.tsukuba.ac.jp

講義のWebページ

http://www.coins.tsukuba.ac.jp/~syspro/2007/

オフィスアワー

木4・5 3F829/3E302(新城)、3F911(追川)