특정 I / O에 대해 CD에서 장치 드라이버를 설치할 때 백그라운드에서 Windows에서 발생하는 일에 대해 궁금합니다. 내 가정은 일어날 수있는 유일한 일은 CD에서 드라이브로 파일을 전송하고 레지스트리 키를 변경하고 일부 환경 변수를 변경하는 것입니다.
그 모든 것이 백그라운드에서 발생합니까? OS가 장치와 통신 할 수있는 능력을 정확히 어떻게 얻습니까? 어렸을 때 CD에서 프로그램 / 드라이버를 설치하고 CD를 삽입하는 것과 파일을 특정 디렉토리에 복사하는 것 사이에는 근본적인 차이점이 있다고 생각했지만 지금은 확실하지 않습니다.
자동화 된 테스트 장비에 대한 배경 지식 때문에 질문이 생겼습니다. GPIB 등을 통해 Windows 기기에 측정 장비를 연결할 때 OS와 장치가 통신 할 수 있도록 하드웨어 수준 드라이버를 모두 설치해야하지만 소프트웨어도 설치한다는 개념의 이해를위한 개념적 프레임 워크를 개발하려고했습니다. 그런 다음 더 큰 소프트웨어 패키지의 일부로 사용하여 계측기를 제어하기 위해 프로그래밍 방식으로 호출 할 수있는 .dll을 컴파일하는 드라이버 (API? 라이브러리?) OS 용 하드웨어 수준 드라이버 설치와 자동화 된 테스트 프로그램에서 사용할 소프트웨어 라이브러리 설치의 차이점이 무엇인지 궁금해졌습니다.
내 가정과 이해가 근본적으로 잘못 되었습니까?
답변
하드웨어 제조업체는 장치 드라이버를 작성할 때 일반적으로 운영 체제에 맞게 특별히 제공된 소프트웨어 개발자 키트를 사용하여 운영 체제 작성자 (예 : Microsoft 또는 Apple)와 직접 작업하는 엄격한 프로세스를 거칩니다. 예를 들어 USB와 같은 표준을 사용하면 운영 체제와 하드웨어를 비교적 쉽게 통합 할 수 있습니다. 그런 다음 일반적으로 API (Application Program Interfaces)를 통해 하드웨어 장치를 구현하여 자신의 응용 프로그램과 상호 작용하는 것은 다른 소프트웨어 개발자의 몫입니다.
분명히 이것은 매우 기본적인 설명이며, 원하는 것보다 적을 수도 있지만 다른 답변을 보지 못했기 때문에 주제에 대한 오랜 프로그래머로서의 견해를 공유 할 것이라고 생각했습니다.
답변
레지스트리 및 다른 곳에서 파일을 삭제하고 항목을 쓰는 중입니다. 그것이 운전자입니다.
이러한 파일에는 드라이버가 작동하는 것이 레지스트리에 기록됩니다. 드라이버의 목적은 장치의 특성 및 목적 (물리적 또는 가상)을 OS와 통신하고 해당 장치와 통신하는 방법을 컴퓨터에 알리는 것입니다.
따라서 이러한 파일과 설정에는 OS가 장치와 정보를주고받는 데 필요한 정보가 포함되어 있습니다.