Tôi đã nghĩ đến việc viết một hệ điều hành sở thích cho một số bộ xử lý ARM. Có nhiều máy tính bảng đơn phổ biến với ARM MPU, vì vậy tôi chỉ muốn mua một trong số đó (chọn một máy tính có tài liệu mở hơn). Tôi đã rất ngạc nhiên khi phát hiện ra rằng, ngay cả những bo mạch có bộ nhớ thực sự đủ cũng không có MPU với Bộ quản lý bộ nhớ.
Vì tôi luôn làm việc với các bộ xử lý i386 + và không bao giờ làm gì khác (ngoại trừ một số PIC Microchip), bây giờ tôi bối rối và không biết liệu người ta có thể viết một hệ điều hành hoạt động có chức năng không bị giới hạn khi so sánh với các HĐH được viết không cho MPU với MMU.
Tôi có thể nghĩ ra một vài giải pháp để "thay thế" hoặc "mô phỏng" MMU và tôi đã có một vài câu hỏi:
- Trên bộ xử lý Intel ở chế độ 16 và 32 bit, có một cách sử dụng các phân đoạn và bộ chọn phân đoạn để sử dụng các khối bộ nhớ khác nhau theo các tác vụ khác nhau. Điều đó có nghĩa là tôi có thể thay đổi không gian bộ nhớ bằng cách thay đổi nội dung của các thanh ghi phân đoạn khi thực hiện chuyển đổi tác vụ khi ở x86. Có bất kỳ khái niệm chung nào cho phân đoạn bộ nhớ có thể được sử dụng trên kiến trúc ARM không?
- Bằng cách tải một tệp đối tượng được liên kết thay vì thực thi, tôi có thể sử dụng định vị lại (sửa lỗi) hoặc định vị mã độc lập để trỏ các tác vụ lên các phần của bộ nhớ theo cách giống như khi tôi ánh xạ bộ nhớ bằng các cấu trúc phân trang. Điều này sẽ đủ hiệu quả?
- Tôi cũng đã đọc một cái gì đó về Bộ bảo vệ bộ nhớ trên bộ xử lý ARM. Những điều này có thể hữu ích?
Có cách "quản lý" thông thường nào trên các hệ thống không có MMU không?