Operating Systems OS のインタフェース 2015-02 1
OS とは? p Operating System コンピュータの一部ともいえる最も重要なソフトウェア日本語では 基本ソフトウェア と呼ばれたりする オペレーション システム オペレーティング システム p どんな役割をしているか? コンピュータシステムを管理 ( 交通整理 ) するプログラムを起動したり終了させたりする各プログラムがうまくハードウェアの機能を使えるようにする p OS の特徴 対応 OSが違うソフトウェアは動かない コンピュータも,OSがなければただの箱 2
OS の代表的機能 p プロセス管理 実行中のプログラムの管理コンピュータの実行状態の制御 p メモリ管理 主記憶 ( メインメモリ ) の管理プログラム実行のためのメモリの管理 p ファイル管理 補助記憶の管理ディスクに保存されたデータの管理 p その他 通信 ネットワーク, セキュリティ, ユーザ 課金管理など 3
OS の構成要素 シェル ワープロ ブラウザ さまざまなソフトウェア オペレ ティングシステム カ ネル プロセス管理通信制御ファイルシステム メモリ管理割込み制御タイマ管理 デバイスドライバ 管理プログラム 基本ライブラリ デバイスドライバ CPU メモリ ディスク さまざまなハードウェア 4
OS のインタフェース p Interface= 界面 2 つのもの ( 層 ) の境界 それらの間で情報をやり取りする決まりごとや接続方法 p ユーザインタフェース ユーザが, コンピュータを使うときの操作方法 シェル ユーザインタフェース アプリケーションソフトウェア 基本ライブラリ p プログラミングインタフェース ソフトウェアが OS の機能を利用するときの方法 関数ライブラリ, ファイル形式 プログラミングインタフェース カーネル ( 狭義の OS) ハードウェア 5
ユーザインタフェース p グラフィカルユーザインタフェース (GUI) ウィンドウシステムによるインタフェースなど p Window + Icon + Menu + Pointer 画面上の絵や図を, マウスなどのポインティングデバイスで操作する初心者にも分かりやすいが, ソフトウェアの作成には手間がかかる Mac OS,Windows, スマホ, カーナビ等 p コマンド言語インタフェース 文字による対話 文法に従ったコマンド ( 命令 ) を, キーボードから打ち込む プログラミング言語に近いプロ向けのインタフェース UNIXのシェル : sh, csh, ksh, bash... Windows の コマンドプロンプト (cmd.exe) 起動してみよう 6
シェル p シェル オペレーティングシステムの 殻 (Shell) Kernel( 核 ) OSへのユーザインタフェースを提供する ユーザの認証, プログラムの起動, ファイルの操作など p コマンドシェル コマンド言語によるCUI( 文字だけのユーザインタフェース ) 旧来の大型機,UNIX Windows コマンドプロンプト / UNIX 仮想端末 (terminal) p グラフィカルシェル ウィンドウシステムによるGUI( グラフィカルユーザインタフェース ) PC( 個人用コンピュータ ) Windows Explorer / Mac OS Finder 7
プログラミングインタフェース p API/ システムコール 各ソフトウェアがOSの機能を利用する ( 呼び出す ) ときの方法たとえばC 言語なら, 関数や構造体の取り決め API = Application Program Interface (OS 以外にも使う用語 ) p 実行ファイル形式 実行可能なソフトウェアの内部形式コンパイラは, ソースコードからOSに対応した実行ファイルを作る例 ) Windowsなら.EXE 形式,LinuxならELF 形式など p その他の実行環境 プログラムを実行するときに,OSが提供するものすべてメモリの割り当て方法の決まりなど 8
API/ システムコール p API/ システムコールで提供される機能 プログラム ( プロセス ) の起動や終了 ファイルのオープンやクローズ, データの読み書き フォルダの作成やファイル情報の管理 画面表示, キーボード入力の取得, 音の再生 プロセス間通信やネットワーク通信 ウィンドウシステムの制御 セキュリティ ( ユーザ認証, データ暗号化など ) p API/ システムコールの例 Windows (Win32) API,.NET Framework API UNIX/POSIXシステムコール,Mac OS Cocoa Java API, Android API, etc... 9
OS によるハードウェアの抽象化 p ハードウェアの抽象化 OS( 特にデバイスドライバ ) は, ハードウェアの機種等の違いによるアクセス手順の違いを吸収し, 統一した API を提供する アプリケーション アプリケーション OS カーネル OS カーネル デバイスドライバ A ハードウェア A OS がハードウェアの違いを吸収 デバイスドライバ B ハードウェア B 10
実習 Windows のコマンドシェル p Windows のコマンドプロンプト スタート すべてのプログラム アクセサリ コマンドプロンプト文字だけの黒いウィンドウが現れる p プロンプト (prompt) コマンド入力を求める合図 ( プロンプト ) が表示される 例 ) C: Users ユーザ名 > これに続けてキーボードから命令 ( コマンド ) を入力できる p コマンドの例 下記のそれぞれのコマンドを入力し [Enter] キーを押してみよう dir,cls,cd,tree 内部コマンドの一覧は, help more で見ることができる 11
シェルの文法 p 基本文法 コマンド名引数 1 引数 2 引数 3... コマンド名や引数にスペースが含まれている場合は "" で囲むこと p 使用できるコマンド シェルに内蔵されているコマンド (dir, cdなど ) ハードディスクにあるプログラムなら何でも 例 ) calc [ENTER] と入力してみよ p オプション コマンドの追加機能を指定する引数の一種通例,UNIXでは -,Windowsでは / ( または - ) で始まる 例 ) dir /? 12
コマンドの実行 p コマンドを実行してみて 動作から意味を推測する dir dir dir " Program Files" /p taskmgr start C: p GUI( エクスプローラ ) との比較 p コマンド紹介 copy ファイル名 1 ファイル名 2 ren 旧ファイル名新ファイル名 (rename の略 ) move ファイル名移動先ファイル名 13
ワイルドカード p ワイルドカード どんな文字にも当てはまる文字 のことをいう p 元の意味は, トランプゲームの万能カード ( たいてい ジョーカー ) p ( 注意 ) 正規表現 とは別のものシェルではファイル名の指定のときに使える p? 任意の 1 文字に適合する 例 ) dir a?.c p * 何にでも ( 任意の個数の任意の文字 ) に適合する 例 ) dir *.txt 14
リダイレクト p リダイレクト コマンドの入出力を, コンソール ( キーボードや画面 ) から, ユーザが指定したファイルに変えられる機能 p 出力リダイレクト プログラムの出力結果をファイルに保存するのに用いる >: コマンドの ( 画面 ) 出力を, ファイルに書き込む >>: 上と同じだが, ファイルの最後に追記する 例 ) dir Windows > win.txt p 入力リダイレクト <: ファイルの内容を, コマンドへのキーボード入力とみなす例 ) more < win.txt 15
パイプライン p パイプライン ( パイプ ) p 形式 コマンドの出力を, 別のコマンドの入力にできる機能 2つのコマンドを起動して, 両者を パイプ で連結し, 前のコマンドの結果を, 後ろのコマンドへ流し込むイメージ コマンド名引数... コマンド名引数... 例 ) dir Windows more 例 ) dir Windows find "dll" p フィルタ 入力をパイプで受け取るように設計されたコマンドのこと more, sort, (Windowsの) find, (UNIXの)grep など 16
環境変数 p 環境変数 OSが用意している 変数 =ユーザ向け設定を保存しておけるコントロールパネル システム 詳細設定 環境変数 p 環境変数 Path( 実行パス ) コマンドラインで外部コマンド ( プログラム ) を探す場所 Windowsの場合, 環境変数 PATHEXTで実行可能なプログラムの拡張子が指定されている p ディレクトリ ( フォルダ ) とパス (Path) ファイルの位置を示す ( 日本では の代わりに を使うことが多い ) Windowsの例 C: Users taro Documents 文書 1.doc UNIX/Linux の例 /usr/local/bin/bash 17
参考 Windows 用のツール p p p p Sysinternals ウィンドウのシステム状態を調査するツール集 http://technet.microsoft.com/en-us/sysinternals/ API Mointor / StraceNT ソフトのWindows API 呼び出しを追跡表示する http://www.rohitab.com/apimonitor http://www.intellectualheaven.com/default.asp?bh=projects& H=Strace.htm Windows PowerShell コマンドプロンプトよりも強力なコマンドシェル http://technet.microsoft.com/ja-jp/scriptcenter Cygwin WindowsでUNIXの高機能なシェルやコマンドが使えるようになる http://cygwin.com 18
実習用 OS のインストール p Hyper Operating System ITRON 準拠のリアルタイムOSカーネル教育学習, 自作のロボットや電子機器への組み込み組み込み用なので, シェル ( ユーザインタフェース ) は付属しない p インストール http://vilab.org/os2015/ ( 講義資料のページ ) h4-20150418.zip をダウンロードし, 展開する カーネルのソースコードが入っている ( 日本語コメント付き ) p サンプルの実行 sample win sample.sln をダブルクリックする実行するとコンソール画面が開き, 何か表示されるはず 19