Linux Driver


> [Linux Device Driver 정리 (1)](https://tribal1012.tistory.com/154)


![](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fb7896e99-2097-4049-90b4-0fb26e66d59d%2FUntitled.png?table=block&id=bf1362f4-d0f7-465d-8289-be48f761cd95&cache=v2)
### Device의 종류
- Block Device : Block 단위로 입출력을 하는 Device, Block은 File System의 섹터를 의미
- Character Device : Character 단위, 즉 바이트 단위로 입출력을 하는 Device, 데이터 관리 기능을 가진 응용 프로그램
- Network Device : 네트워크 층과 연결되어 있음(루프백 장치, 랜카드와 같은...)




### **Device Driver 접근 구조**
> ![](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Fd97a0fe6-89ea-45d0-bc4c-688ffae6abe6%2FUntitled.png?table=block&id=df4924fc-7ee2-4a37-bc94-727add6f35ce&cache=v2)

> ![](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F005e5c36-335a-41da-85a8-ee3fe03b9dd1%2FUntitled.png?table=block&id=e6e6cb59-de4c-4bd9-a16e-016027d47d8a&cache=v2)


> major number : 디바이스를 처리하기 위한 Device Driver 식별 번호, 최대 255 이다.
> minor number : Device Driver가 처리하는 특정 Device를 식별하기 위한 번호




> [Character Device File vs Block Device File](https://linuxism.tistory.com/170)

Device File은 Special File이라고도 하며, 일반 regular file과 달리 data block을 가지고 있지 않고 Application이 H/W Access를
필요로 할 때, 직접 H/W를 제어하는 Kernel과 Application과의 Interface역할을 한다. 따라서 하나의 Device가 동작하기 위해서는 Kernel에 Driver가 적재되어 있어야 하고 /dev 디렉토리에 Device file이 존재해야 한다.



