2012-09-04 2 views
3

나는 magicdisc와 같은 프로그램이 가상 CD 드라이브를 만들고 기계에 마운트하는 것을 보았다. 이러한 프로그램이 운영 체제를 속여 새로운 하드웨어 장치가 연결되어 있다고 생각하게 만드는 방법은 무엇입니까?프로그램에서 가상 하드웨어를 만드는 방법은 무엇입니까?

가상 하드웨어 용 드라이버를 작성 해야겠다는 생각이 들지만, C에서 편하게 들리므로 끔찍한 소리는 아니지만 OS에 어떻게 하드웨어가 부착되어 있다고 생각하게 할 수 있습니까? 그렇지 않아?

감사합니다.

+1

http://www.codeproject.com/Articles/58950/How-to-develop-a-virtual-disk-for-Windows – perilbrain

답변

3

일반적으로 운영 체제에는 서로 다른 계층과 라이브러리가 있습니다. 어떤 점에서는 그 위에 무언가와 실제 하드웨어 사이에있는 라이브러리가 있습니다. 거기에 가짜로 읽습니다. 일종의 읽기 섹터 호출이 있으면 해당 섹터 주소를 사용하여 섹터를 읽은 다음 파일에서 읽습니다. 각 운영 체제 (Windows, Linux 등)는 다른 방식으로 작업을 수행 할 수 있습니다.

+0

다른 말로하면 바닥면에있는 드라이버가 있다는 것입니다. 상단의 하드웨어 (일부 레이어)에는 일반 인터페이스가있어서 예를 들어 모든 비디오 드라이버를 운영 체제 나 모든 사운드 카드 드라이버 등에 연결할 수 있습니다. 일반 레이어 또는 원하는 일반 레이어 중 하나를 찾을 수 있습니다 시작하여 가상 하드웨어를 구현하십시오. –

0

아마 당신은 OS 위에 애플리케이션 레벨, 같은 C 잘 알고 있습니다. 가상 드라이버는 소프트웨어이지만, 적절한 위치에 설정을 써야합니다 : Windows의 레지스트리, 일부 Linux의 일부 구성 파일. 커널 수준에서 OS 레벨 호출과 콜백을 처리해야합니다. 아마도 OS 셸에 통합 된 장치와 통신하기 위해 소프트웨어를 원할 것입니다. 3 개 이상이 아니라면 2 개 이상의 레이가됩니다.

예를 들어, 윈도우 XP의 가상 그래픽 카드 (와 절편 다양한 일을) 할 수 있습니다, Vista 용하지, 그냥 특정 아주 - 아주 OS입니다 :)

트릭과 함께.

관련 문제