本記事について
Linuxの学習を進める中で出てくるデバイスファイル。
デバイスファイルには、ブロックデバイスとキャラクターデバイスに分けられるとありますが、
参考書を読んでもピンとこなかったので、自分の言葉でまとめてみました。
※LPIC level2の学習中に気になった内容にはなりますので、
同じ資格勉強をしているかたや初学者の方に参考していただくと幸いです。
参考URL
https://qiita.com/angel_p_57/items/1faafa275525469788b4
→普通のファイルシステムとデバイスファイルについての違い(反映のされ方とか)について、
わかりやすくまとめられておりました!
https://wa3.i-3-i.info/word19512.html
→ランダムアクセスについて図を用いてわかりやすく説明がされています。
イメージを掴むには最適です!
https://kb-jp.sandisk.com/app/answers/detail/a_id/8980/~/%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B7%E3%83%A3%E3%83%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%A8%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%AE%E6%93%8D%E4%BD%9C%E3%81%AE%E9%81%95%E3%81%84
→ランダムアクセスについてそれぞれの特徴が解説されており、より深く理解ランダムアクセスについて理解をすることができました!
デバイスファイルとは
どうやらそんな難しく考えず、シンプルに
「認識されているデバイスを操作(データの読み書き)するファイル」
という認識で○
ここでいうデバイスというのは、HDDやCPUなど実際のハード機器と、
OSで認識している仮想的なデバイスを含んでの意味とのこと。
配置ファイルとしては/dev
以下に配置されることとなります。
HDDディスクであれば/dev/sdaといった形ですね。
ブロックデバイスとキャラクターデバイス
ざっくりまとめると下記表のようの感じ
デバイス名 | 特徴 | ファイルタイプ | 例 |
---|---|---|---|
ブロックデバイス | ブロック単位でデバイスにアクセス・バッファーがある・ランダムアクセスが可能 | b | ハードディスク・RAMディスク・RAIDボリューム |
キャラクターデバイス | 文字単位でデバイスにアクセス・ランダムアクセスができない | c | キーボード・マウス・プリンター |
まずそれぞれ名前の通り、ブロック単位・文字(キャラクター)単位でデータを扱うかが大きな違い。
そしてもう一つ、「ランダムアクセスができるかできるか」
これが大きな違い。
さてそもそもランダムアクセスとはなんぞやとなります。。
本当のところこれをまとめたくてこの記事を書いたというのもあります。笑
ランダムアクセスとは
「記憶装置などのデータへアクセスする技法の一つ」
一言でまとめるとこういうことでしょうか。
技法の一つと書きましたがもう一つ、シーケンシャルアクセスというのがあります。
これら照らし合わせながらまたまとめていきたいと思います。
ランダムアクセス
・特定のデータへピンポイントでアクセスできる
シーケンシャルアクセス
・データ領域へ順番にアクセスし、対象データを特定していく。
→ハードウェアが直接動作するため、アクセス速度をこちらの方が高い。
まとめ
キャラクターデバイスはランダムアクセスできないのか。。
勝手にマイナスな印象を持っていましたが、速度に優れているということなのでそんなことはなさそうでした。
ブロックデバイスの例にある通り、RAMディスクなど記憶装置はやりとりするデータの容量がそもそも多くなっているので、なるべくデータを特定するランダムアクセスを使うことで、効率的なデータアクセスができるようになっているのかなという印象を受けました。(推測ですが。。)
こうしてまとめてみるとまだまだ自分の知識が浅いことを再認識しました。。
今年はアウトプットを意識していこう。。。