んだ日記

ndaDayoの技術日記です

デバイスドライバーとデバイス独立の入出力処理 計算機システム概論 第27回より

前回までは、デバイスとデバイスコントーラについて学びました。

nda-desu.hatenablog.com

今回は、デバイスドライバーとデバイス独立の入出力処理について理解していきます。

計算機システム概論 第27回「デバイスとファイルの管理:デバイスドライバーとデバイス独立の入出力処理」 - YouTube

本記事は、↑の動画の視聴録です。

デバイスドライバ

まずは、デバイスドライバについてまとめていきます。

バイスコントローラはデバイスにより異なる。

前回、デバイスコントーラについて整理しましたが、デバイスにはデバイスコントローラがあり、デバイスコントーラを通じてデータのやりとりをするとありました。

このデバイスコントーラですが、デバイスによってレジスタの数も種類も動きも違いますが、特定のデバイスごとの処理をOSに組み込むわけにはいきませんよね。

どのデバイスが接続されようとも、デバイスの差分を吸収して動く必要があります。

デバイスドライバ

デバイスドライバの定義から確認しましょう。

デバイスドライバとは、ハードウェアデバイスの低レベルの入出力操作を管理するカーネルモジュールのことです。デバイスドライバは、カーネルがデバイスとのインタフェースを取るために呼び出すことのできる標準的なインタフェースで書かれています。 Oracle デバイスドライバの記述

デバイスドライバは、一般的にはデバイスの開発者側でデバイスとともに提供し、動的にOSのカーネルにロードされます。

デバイスドライバテーブル

さて、デバイスドライバについて理解できたので、どのようにデバイスドライバとデバイスが管理されているか?について触れます。

デバイスドライバとデバイスは、デバイスドライバテーブルによって管理されています。

まとめ

今回は、ざっとデバイスドライバについて理解してみました。

バイスのIO周りは、バッファリングやポーリングなど周辺知識がいろいろあったのですが、あまり興味がわかなかったので、知りたくなったら勉強しようと思います。

僕から以上。あったかくして寝ろよー

参考書籍

デバイスドライバの記述 https://docs.oracle.com/cd/E24845_01/pdf/E22201.pdf