일부 OS 실험을하고 있습니다. 지금까지 모든 코드는 하드 디스크와 플로피를 조작하기 위해 리얼 모드 BIOS 인터럽트를 사용했습니다. 하지만 내 코드가 CPU의 보호 모드를 활성화하면 모든 실제 모드 BIOS 인터럽트 서비스 루틴을 사용할 수 없게됩니다. 하드 디스크와 플로피를 어떻게 R/W 할 수 있습니까? 하드웨어 드라이버를 지금 사용해야한다는 느낌이 들었습니다. 내가 맞습니까? 왜 OS가 개발하기가 어렵습니까?CPU가 보호 모드에있을 때 하드 디스크를 R/W하는 방법?
나는 기계 설비 모두에서 읽기 및 특정 제어 또는 데이터 쓰기에 의해 제어 등록하는 것을 알고있다. 예를 들어, 명령 블록 레지스터의 하드 디스크 범위는 0x1F0에서 0x1F7까지입니다. 하지만 PC 플랫폼에서 너무 많은 하드웨어의 등록 주소가 같은지 궁금합니다. 아니면 사용하기 전에 감지해야합니까? 어떻게 그들을 감지 ??
보호 모드에서 플로피 또는 하드 디스크를 읽는 방법에 대해 잘 모르겠으므로 플로피에서 필요한 모든 커널 파일을 메모리로로드하려면 BIOS 인터럽트를 사용해야합니다. 그러나 커널 파일이 실제 모드 1M 공간 제한을 초과하면 어떻게해야합니까?
모든 응답에 대해 깊은 감사를드립니다.
Linux (http://lxr.linux.no/+trees) 또는 * BSD (http://fxr.watson.org/)와 같은 기존 OS에서 어떻게 처리되는지 확인할 수 있습니다. –
@RSamuelKlatchko 학습의 목적으로 Linux 소스 코드를 읽는 사람 ***에게 조언하지 않겠습니다. MINIX가 더 좋은 아이디어 일 수 있습니다. – DividedByZero