ARM 프로세서 중 일부를위한 취미 운영 체제를 작성하려고했습니다. ARM MPU를 사용하는 인기있는 단일 보드 컴퓨터가 많이 있으므로 간단히 그 중 하나를 구입하고 싶었습니다 (더 많은 공개 문서가있는 컴퓨터 선택). 메모리가 충분한 보드조차도 메모리 관리 장치가있는 MPU가 없다는 사실을 알고 놀랐습니다.
나는 항상 i386 + 프로세서로 작업 해 왔으며 다른 마이크로 칩 PIC를 제외하고는 아무것도 사용하지 않았기 때문에 혼란스러워서 OS와 비교할 때 기능이 제한되지 않는 작동중인 운영 체제를 작성할 수 있는지 확실하지 않습니다. MMU가있는 MPU의 경우.
"대체"또는 "시뮬레이션"MMU에 대한 솔루션은 거의 없으며 몇 가지 질문이 있습니다.
- 16 비트 및 32 비트 모드의 인텔 프로세서에는 세그먼트 및 세그먼트 선택기를 사용하여 작업별로 다른 메모리 블록을 사용하는 방법이 있습니다. 즉, x86에서 작업 전환을 수행 할 때 세그먼트 레지스터의 내용을 변경하여 메모리 공간을 변경할 수 있습니다. ARM 아키텍처에서 사용할 수있는 메모리 분할에 대한 일반적인 개념이 있습니까?
- 실행 파일 대신 연결된 개체 파일을로드하면 페이징 구조를 사용하여 메모리를 매핑 한 것과 같은 방식으로 재배치 (수정) 또는 위치 독립적 인 코드를 사용하여 메모리 조각에 작업을 지정할 수 있습니다. 이것이 효과적일까요?
- ARM 프로세서의 메모리 보호 장치에 대한 내용도 읽었습니다. 이것들이 도움이 될 수 있습니까?
MMU가없는 시스템에서 작업을 관리하는 "일반적인"방법이 있습니까?