Q1. 為什麼把設備分為“塊設備”和“字符設備”兩大類?
A:
1) Linux將設備看成文件,具有三方面的含義:第一,每個設備都對應一個文件名,在內核中也就對應一個索引節點;第二,對文件操作的系統調用大都適用於設備文件;第三,從應用程序的角度看,設備文件的邏輯空間是一個線性空間;對於同一個具體的設備而言,文件操作和設備驅動是同一個事物的不同層次,概念上可以將一個系統劃分為應用、文件系統和設備驅動三個層次;
2) Linux將設備分為兩大類,一類是像磁盤那樣的以塊或扇區為單位、成塊進行輸入/輸出的設備,稱為塊設備;另一類是像鍵盤那樣以字符(字節)為單位,逐個字符進行輸入/輸出的設備,稱為字符設備;文件系統通常都建立在塊設備上。
Q2. 什麼是設備驅動程序?
A:Linux中處理和管理硬件控制器的軟件就是設備驅動程序。
Q3. I/O端口一般包括哪些寄存器?各自功能是什麼?
A:
1) I/O端口包括控制寄存器、狀態寄存器和數據寄存器三大類;
2) 根據訪問外設寄存器的不同方式,將CPU分為兩大類:一類是“內存映射”(memory-mapped)方式,另一類是“I/O映射”(I/O- mapped)方式。