class: title, smokescreen, shelf, no-footer # 第08回 ストレージ(ローカル) <div class=footnote> <small> </small> </div> --- class: compact,img-right # ストレージ <div class=footnote> <small><small> </small></small> </div> ![height400px](../../images/os-abstraction.png) - データ(OSやアプリケーション、ユーザの保存したファイルなど)を保存しておく部品を<B>ストレージ</B>と呼びます - ストレージの代表例がSSDやHDDです - 今回はローカルストレージ(local storage)について話します。 ここからOSが起動してきます --- class: compact,img-right # ストレージの実体(1): SSD <div class=footnote> <small> <small> (脚注) 右図(下)はSSDの動作原理ですが説明しません。LSIなんだというイメージのために載せています </small> </small> </div> ![height240px](/slides/os/internal/storage/images/SSD_crucial_BX500.jpg) ![height280px](/slides/os/internal/storage/images/ssd-floating-gate.png) <small> - いまの主流はSSD - 速い、小さい、軽い、HDDより低電力 - 右図(上)が安物のSSD。 HDDと互換性のある形で安物のPC/ノートに入っていたりするタイプ - わりと強引な理屈で動かしているので、 SSDは、<B>つねに壊れ続けている</B>ことを忘れない - とはいえ、最近のSSDなら、PCやPCの部品の耐用年数の目安の5年くらいなら大丈夫なので、普通に使うぶんにはOKです </small> --- class: compact,img-right # ストレージの実体(2): HDD <div class=footnote> <small> <small> (脚注) 業務では、ふつうPCを5年で買い換えていきます </small> </small> </div> ![height240px](/slides/os/internal/storage/images/SSD_M.2_and_WD20SPZX.jpg) ![height240px](/slides/os/internal/device/images/computer_harddisk.png) <small> - 大容量が必要なら、まだまだHDDが現役 - 小さな磁石(N極とS極で0と1を表現)が塗られた金属板が回転する<B>物理的な実体が濃厚な部品</B>です。 回っているものは必ず劣化して壊れるので、連続使用するなら5年くらいで交換した方が良いです </small> --- class: compact,img-right # OS起動時のストレージの使われ方(1) <div class=footnote> <small> <small> (脚注) 「PCの電源を入れると、PCはSSD/HDDの〜から読む」といったお約束(プロトコル)があり、それにそってOSが起動してきます </small> </small> </div> ![height480px](../../images/os-bootsequence.png) 1. <B>SSD/HDDからOSを読み出して起動</B> 1. Unixの場合、起動に使ったSSD/HDDを`/`という名前で呼ぶ <small> - Unixコマンドやファイルは<B>`/`以下の木構造の階層フォルダ</B>に配置される - `/`以下のフォルダ(つまり、もっと小さな箱=フォルダ)は`/bin`や`/home/admin`と呼ぶ - つまり`/`を階層の区切りにしてフォルダ名をつなげた文字列 - 区切り文字`/`の数だけ階層が深い </small> --- class: compact,img-right # OS起動時のストレージの使われ方(2) <div class=footnote> <small> <small> </small> </small> </div> ![height480px](../../images/unix-dirhier.png) 1. SSD/HDDからOSを読み出して起動 1. Unixの場合、<B>起動に使ったSSD/HDDを`/`という名前で呼ぶ</B>。その中は? <small> - Unixコマンドやファイルは<B>`/`以下の木構造の階層フォルダ</B>に配置される - `/`以下のフォルダ(つまり、もっと小さな箱=フォルダ)は`/bin`や`/home/admin`と呼ぶ - つまり`/`を階層の区切りにしてフォルダ名をつなげた文字列 - 区切り文字`/`の数だけ階層が深い </small> --- class: compact,img-right # パス(path) = ファイルやフォルダ位置の指定 <div class=footnote> <small> <small> (脚注) 絶対パス = absolute path、 相対パス = relative path </small> </small> </div> ![height480px](../../images/unix-dirhier.png) <small> - `/`で区切ることで箱の階層構造を表現できる。これを<B>絶対パス</B>とか<B>フルパス</B>(full path)と呼ぶ - 例:`/home/admin/htdocs/index.html`はフルパス - EC2にログインすると`/home/admin`という2階層下のフォルダ(箱)にユーザは出現する - ここから`htdocs/index.html`が読み書きできる - これは`/home/admin/htdocs/index.html`の左側`/home/admin/`を抜いた文字列 - /で始まらないパスを<B>相対パス</B>と呼ぶ - `/home/admin/htdocs`に移動して`index.html`を読み書きすることもできる。これも相対パス - どのやり方でも正解だが、設定ファイルではフルパスがよい。 なぜなら、OSの上にはindex.htmlのような典型的なファイル名が複数あるため相対パスでは区別できないから </small> --- class: compact,img-right # ファイルシステム <div class=footnote> <small> <small> (脚注) 演習でdfコマンドを用いてOSのファイルシステム情報を見てみます </small> </small> </div> ![height480px](../../images/unix-dirhier.png) <small> - 右図のようなフォルダの階層構造を作り、OSはファイルとフォルダを維持管理しています - この管理の仕組みのことを<b>ファイルシステム</B>と呼んでいます - UnixではファイルシステムIDとして<B>`/dev/sda`のような(擬似)ファイル名を割り当て</B>ます - この授業ではEC2のデフォルトのまま使うので気にしなくても大丈夫ですが、 少し複雑なサーバであれば、ファイルシステムについて気にする必要があります </small>