システムプログラム
  [ GB31401 ] System Program | 
| 対象:3・4学年 | 
開設学期:春C | 
曜日・時限:火1・2、金1・2  | 
単位数:2単位 | 
| 担当教員:新城靖,追川修一 | 
概要
Unixのシステムコールとライブラリを主な題材としてシステムプログラミング、ネットワーク・プログラミング、および、Webプログラミングについて講義する。計算機を用いた実習を課す。
学習・教育目標
-  API (システムコールとライブラリ)を使ったプログラム作成法を学ぶ。
 
-  マニュアルの読み方を身につける。
 
-  文字列、ファイル、時刻などの基本的ななオブジェクトを扱うことを扱えるようになる。
 
-  プロセス生成やシグナルを題材として並行プログラミングの基礎を学ぶ。
 
-  TCP/IPを用いたネットワーク通信を行うプログラムを作成できるようになる。
 
-  World Wide Web の CGI の仕組みを理解する。
 
-  スクリプト言語を用いたプログラムを作成できるようになる。
 
キーワード
システムコール、ライブラリ、TCP/IP、CGI
Keywords
System Calls, Libraries, Signals, TCP/IP, CGI
時間割
| 週 | 講義内容/理解すべき項目 | 
|---|
| 第1回 | 計算機システムのソフトウェア構成、Unixにおけるプログラムの実行環境 
ライブラリとシステムコール、ポインタによるデータの受け渡し 
コンパイルとリンク、makeコマンド、デバッグの方法 | 
| 第2回 | 数値と文字の表現、文字列、配列、ポインタ、ヒープ 
数値の表現、文字列操作のライブラリ関数、変数や配列の番地、領域確保
 | 
| 第3回 | ファイルアクセス 
ライブラリとシステムコールによるファイルの扱い、ファイル記述子、ストリーム、標準入出力
 | 
| 第4回 | プロセスの概念、パイプ、メモリマップ 
プロセスの生成、プロセスとプログラムの関係、パイプの生成 | 
| 第5回 | シグナル 
周辺装置、入出力、ポーリング、割込み、ソフトウェア割込み
  | 
| 第6〜8回 | ネットワーク・プログラミング 
TCP/IPの概念、ソケットAPI、プロトコルスタック 
TCP/IPのクライアントとサーバ
  | 
| 第9回 | WWWプログラミング 
CGIの仕組み、ログ、Cookie
 | 
| 第10回 | スクリプト言語 
スクリプト言語によるプログラミングの手法、Webセキュリティ 
Ruby、Python、Perl、または sh等によるプログラミング | 
教材
プリントを配布する。WWWで教材を提示する。
参考書籍
「C言語によるUNIXシステムプログラミング入門」(河野 清尊、オーム社) 
「The Unix Super Text第2版」(山口和紀・古瀬一隆・中村敦司・新城 靖・西山博泰・林 謙一・金谷英信・鈴木孝幸・端山貴也、技術評論社)
予備知識・前提条件
データ構造とアルゴリズムに関する知識があることを前
提とする。また、機械語序論を受講していることが望ましい。
成績評価
レポートにより評価を行う。基準を満たさなかったレポートは、再提出を求めることがある。毎回出席をとり、最終的な評価の際に考慮に入れる。
教員メールアドレス
新城:yasの後に(AT)cs.tsukuba.ac.jp
追川:shuiの後に(AT)cs.tsukuba.ac.jp
講義のWebページ
         http://www.coins.tsukuba.ac.jp/~syspro/2014/オフィスアワー
木6 3E302(新城)、月2 3F911(追川)