2010-05-19 6 views
1

나는 HW를 엉망으로 만드는 것에 매우 궁금합니다. 하지만 지금까지 내 최상위 수준의 "엉망"은 C 프로그램의 링크 또는 인라인 어셈블러였습니다. 내 CPU와 링 모드에 대한 이해가 맞다면 사용자 모드 응용 프로그램에서 인터럽트를 비활성화하거나 보호 모드 세그먼트를 변경하는 것과 같은 일부 저수준 CPU 기능에 직접 액세스 할 수 없으므로 원하는 모든 작업을 수행하려면 시스템 호출을 사용해야합니다.빠른 CPU 링 모드 보호 질문

그러나 맞다면 운전자는 링 모드 0에서 달릴 수 있습니다. 실제로 운전자에 대해 많이 알지 못하지만 이것은 내가 요구하는 것입니다. 나는 알고 싶어하고, 자기 자신의 운전자를 쓰는 방법을 배우고, 내가 쓴 것을하기 위해 내가 가야 할 방법이라고 부르는 것보다?

필자가 완전히 새로운 OS를 작성할 수 있다는 것을 알고 있지만, 정확히하고 싶은 것은 standart Windows 응용 프로그램에서 HW의 일부 저수준 기능을 사용하는 것입니다. 그래서, 운전자가가는 길은 무엇입니까?

답변

1

짧은 대답 : 예.

긴 대답 : 저수준 하드웨어 기능에 대한 액세스를 관리하는 것은 OS 커널의 작업과 동일하며 단일 기능에 대한 액세스 만 원할 경우 처음부터 자신의 OS를 시작할 필요가 없습니다. Windows, Linux 또는 BSD와 같은 최신 OS는 커널 모듈을 통해 커널에 코드를 추가 할 수있게합니다.

커널 모듈 (또는 장치 드라이버)을 작성할 때 OS 커널 내에서 실행될 코드를 작성하므로 CPU 링 0에서 실행됩니다. 큰 힘은 커다란 책임이 있습니다. 잘못된 일을하지 못하도록 사전 구성된 OS 인터페이스가 없으므로 현재 수행중인 작업을 실제로 알고 있어야합니다. 따라서 표준 운영 체제 개발 관련 자료 (웹에서 많은 정보를 찾을 수있는 곳) - OSDev과 같은 하드웨어 설명서 (예 : Intel x86 소프트웨어 개발자 설명서, 장치 사양 등) OSDever, OSR, Linux Device Drivers).

1

HW로 재생하려면 16 비트 리얼 모드 (또는 보호 모드로 전환 할 때도)를위한 프로그램을 작성하십시오. ASM, BIOS 인터럽트, 세그먼트, 비디오 메모리 및 기타 많은 저수준 항목을 처리해야합니다.