システムプログラム
[ GB31401 ] System Program |
対象:3・4学年 |
開設学期:春AB |
曜日・時限:水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の仕組み、フォーム、QUERY_STRING、ログ、Cookie |
第10回 | スクリプト言語 スクリプト言語によるプログラミングの手法、Webセキュリティ Ruby、Python、Perl、または sh等によるプログラミング、クロスサイトスクリプティング攻撃 |
教材
プリントを配布する。WWWで教材を提示する。
参考書籍
「C言語によるUNIXシステムプログラミング入門」(河野 清尊、オーム社)
「The Unix Super Text第2版」(山口和紀・古瀬一隆・中村敦司・新城 靖・西山博泰・林 謙一・金谷英信・鈴木孝幸・端山貴也、技術評論社)
予備知識・前提条件
データ構造とアルゴリズムに関する知識があることを前提とする。また、機械語序論かシステムプログラミング序論を受講していることが望ましい。
成績評価
レポートにより評価を行う。基準を満たさなかったレポートは、再提出を求めることがある。毎回出席をとり、最終的な評価の際に考慮に入れる。
教員メールアドレス
新城:yasの後に(AT)cs.tsukuba.ac.jp
大山:oyamaの後に(AT)cs.tsukuba.ac.jp
講義のWebページ
http://www.coins.tsukuba.ac.jp/~syspro/2017/オフィスアワー
木6 3E302(新城)
月3 学術情報メディアセンターA416(大山)