システムプログラム   [ L510701 ]
System Program
対象:3・4学年
第1学期 水1・2 (3A207) 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/2008/

オフィスアワー

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