![운영 체제 커널은 어떻게 알려진 연결 하드웨어 구성을 얻고 이를 "/proc" 파일에 저장합니까?](https://linux55.com/image/173121/%EC%9A%B4%EC%98%81%20%EC%B2%B4%EC%A0%9C%20%EC%BB%A4%EB%84%90%EC%9D%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%95%8C%EB%A0%A4%EC%A7%84%20%EC%97%B0%EA%B2%B0%20%ED%95%98%EB%93%9C%EC%9B%A8%EC%96%B4%20%EA%B5%AC%EC%84%B1%EC%9D%84%20%EC%96%BB%EA%B3%A0%20%EC%9D%B4%EB%A5%BC%20%22%2Fproc%22%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EC%A0%80%EC%9E%A5%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
학생 과제에서 저는 Linux 커널이 연결된 장치의 구성을 어떻게 검색하는지 추적해 달라는 요청을 받았습니다. 예를 들어, 새 프린터가 시스템에 연결되었습니다. 내가 아는 한 유틸리티의 모든 기능(예: 공급업체 이름, 모델, 장치 번호 등)은 디렉터리 device
에 저장된 파일 에 새 하드웨어 정보를 추가하기 전에 커널 모드에서 평가됩니다. /proc
사용 가능한 새 장치를 감지하면 커널이 어떻게 작동하는지 제어할 수 있습니다. 그렇지 않으면 커널이 장치가 연결되어 있음을 감지하고 해당 구성 정보를 수집하고 저장하기 시작하는 방법을 여전히 이해하지 못합니다 proc
. 장치 삽입과 데이터를 파일 시스템으로 전달하는 사이에 어떤 일이 발생하는지 명확하게 설명하는 합리적이고 심층적인 설명이 있습니까? 장치 드라이버는 이 데이터를 어느 정도까지 추출할 수 있습니까?
답변1
- 장치가 감지되면 udev가 작동됩니다.https://linux.die.net/man/8/udev
- 이 문서에서는 컴퓨터 전원이 켜져 있을 때 장치를 감지하는 방법을 설명합니다.https://stackoverflow.com/questions/18854931/how-does-the-os-Detect-hardware
- USB의 경우 USB 하위 시스템은 장치가 연결되면 이를 감지합니다. 이봐:http://www.linux-usb.org/USB-guide/x75.html