09-Linux & Virtual Box

Virtual Box & Linux(Part.21)| Linux リソースの利用(1)| 現役エンジニア&プログラミングスクール講師

目標

「デバイスドライバ」の概要について理解する。
「デバイスファイル」の概要について理解する。
「パーティション」の概要について理解する。
「ファイルシステム」の概要について理解する。

デバイスドライバ

デバイスドライバの概要

デバイスドライバとは

「デバイスドライバ」とは、接続されているCPU、メインメモリ、HDD、キーボード、マウス、モニター、USBメモリなどのデバイスを利用するためのソフトウェアです。特によく利用するデバイスのデバイスドライバはOSに標準で準備されています。(※デバイスドライバは種類が沢山あります。)

デバイスはパソコンに接続しただけでは、ただ繋げただけで利用できる状態ではありません。利用するためにはパソコン側に接続されたデバイス用のデバイスドライバが必要になります。(※プリンターなどはドライバーを購入後にインストールしたりします。)

デバイスドライバは「OS(ここではLinux)での処理」と「接続デバイス側の固有の操作」を橋渡しするソフトウェアとなります。

OSはパソコンが起動したときにシステム内に存在するデバイスを探します。それから認識した必要な様々なデバイスドライバを自動で取り込むようになっています。デバイスドライバは「/devディレクトリ」に格納されています。また新しいLinuxで独自のデバイスドライバがある場合は「/sysディレクトリ」に格納されています。

デバイスファイル(デバイスノード)

デバイスファイル(デバイスノード)の概要

デバイスファイル(デバイスノード)とは

デバイスを動かすには「デバイスドライバ」が必要でした。このデバイスドライバへのインターフェースとして利用されるのが「デバイスファイル」です。

デバイスファイルにはHDDなどを扱う「ブロックデバイス」とテレタイプ端末、仮想コンソールなどを扱う「キャラクタデバイス」があります。デバイスファイルはデバイスが接続された時に自動生成され「/devディレクトリ」に格納されます。(この仕組みをudevといいます。)

デバイスファイルへの読み込み→デバイスからの入力
デバイスファイルへの書込みは→デバイスへの出力。。

ただしデバイスファイルを直接ファイルシステム上で編集するのではなく、これらはデバイスドライバを利用して紐づいているデバイス上で変更が行われます。

パーティション

パーティションの概要

パーティションとは

パーティションは大容量の補助記憶装置に対して保存領域を分ける仕組みのことを言います。このように、保存領域を分ける仕組みが作られ使用されるようになったのは保存領域の一部を利用したいといった要望が多かったためと言われています。

ハードディスクなどの所謂「ディスク」は読み書きをブロックの単位で行うようになっています(※1ブロック=512B~4096B)。このブロックに対してランダムアクセスを行います。

このブロックを連続する番号(番地)で区切って例えば「1~1000」を第1パーティショ、「1001~●●」を第2パーティショというように区切っています。それぞれのパーティションはパーティションテーブルと呼ばれる管理用領域で管理されます。

パーティションテーブル

パーティションテーブルには次に2種類が存在します。

  1. BIOS(MRB)…基本パーティションを4つまで準備できます。
  2. UEFI(GPT)…パーティションを128個まで準備できる。

「BIOS」と「UEFI」の違いは他にも沢山あります。例えば利用できるストレージのサイズでは「BIOS」は2TBまでなのに対して「UEFI」は事実上の制限なしなどです。現在では「BIOS」はクラウド上の仮想マシンで多く利用され、「UEFI」は実機で多く利用され始めています。

パーティションを利用するメリット

「OS用」「保存領域用」「●●用」とパーティションを分けることでPCのパフォーマンスを向上させることが期待できます。(作成方法によっては悪化する場合があります。)

他にもOSのリカバリが発生した場合、パーティションを分けておくことで「保存領域」のデータに対して影響をださなくて済みます。

パーティションの例

/boot…カーネル、ブートローダの設定ファイルなどが入ります。

/swap…メインメモリに格納されているデータを一時的に対比させる区画です。

/home…ユーザー固有のファイルを格納します。

/…ルートファイルシステムを格納する必須のパーティションです。

推奨される設計スキームのリンク

ディスクに作成したパーティションは単なる「ディスク領域」となっていて、このままではファイル操作が行えません。OSからファイル操作を行うためには、作成したディスク領域でフォーマット作業を行ってファイルシステムを作成する必要があります。

※フォーマット作業≒ファイルシステム作成を含むデバイス初期化の作業。

ファイルシステム

ファイルシステムの概要

ファイルシステムとは

ファイルシステムとは、コンピューター上でデータをファイルの形式で扱えるための仕組みです。この仕組みのお陰でメモリ上に飛び飛びに保存された情報もひとつのまとまったファイルとしてユーザーへ提供してくれます。(※ファイルシステムはデータの記録状態を管理してくれています。)

ファイルシステムは「データ」と「メタデータ」を持っています。「データ」にはユーザーが作成して利用するためのデータが入り、「メタデータ」にはそのファイルを管理するためのデータが入っています。

ファイルシステムの種類

ファイルシステムには次のものがあります(一例)。これらのファイルシステムから利用したいファイルシステム選択してデバイスをフォーマットします。

ファイルシステムファイルシステムの説明
ext2Linux標準のファイルシステム
ext3ext2にジャーナル機能を加えたファイルシステム
※ジャーナルログを使ってファイルシステムの整合性をチェックします。
ext4ext3を機能拡張したファイルシステム
xfsジャーナルファイルシステム(開発元:SGI)
jfsジャーナルファイルシステム(開発元:IBM)

Linuxでは、利用しているファイルシステムが異なるハードディスクが接続されていても、その違いを意識せずに利用することができます。これは「VFS(Virtual File System)」という仮想ファイルシステムによって実現されています。

まとめ

  1. OSにはデバイスドライバが準備されていてデバイスを利用できるようになっている
  2. デバイスドライバにはデバイスファイルを介して操作を行っている
  3. HDDなどの記憶装置デバイスではパーティションを作成する
  4. パーティションにはファイルシステムを作成してファイル形式でデータを扱っている

今回は以上になります。

「Linux」おすすめ書籍6選【初心者・脱初心者用】| 現役エンジニア&プログラミングスクール講師「Linux」初心者の方がLinuxの操作や仕組みを理解するためのお勧めの書籍について取り上げています。また中級者として更に進んだ学習ができる書籍についても1冊取り上げています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】| 現役エンジニア&プログラミングスクール講師「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
09-Linux & Virtual Box

Virtual Box & Linux(Part.4)| Linuxの概要と基本コマンド(ディレクトリ操作)| 現役エンジニア&プログラミングスクール講師

2023年4月23日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.20)| Linux プロセスの管理(2)| 現役エンジニア&プログラミングスクール講師

2023年5月20日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.15)| Linux ユーザー管理(3)| 現役エンジニア&プログラミングスクール講師

2023年5月7日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.3)| Linux管理ツール「Cockpit」の有効化 | 現役エンジニア&プログラミングスクール講師

2023年4月21日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.10)| Linux テキスト処理(2)| 現役エンジニア&プログラミングスクール講師

2023年4月28日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
09-Linux & Virtual Box

Virtual Box & Linux(Part.12)| Linux テキスト処理(4)| 現役エンジニア&プログラミングスクール講師

2023年4月30日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site