Saya sudah berpikir untuk menulis sistem operasi hobi untuk beberapa prosesor ARM. Ada banyak komputer papan tunggal populer dengan ARM MPU, jadi saya hanya ingin membeli salah satunya (memilih satu dengan lebih banyak dokumentasi terbuka). Saya terkejut ketika saya tahu, bahwa bahkan papan dengan memori yang sangat cukup tidak memiliki MPU dengan Memory Management Unit.
Karena saya selalu bekerja dengan prosesor i386 + dan tidak pernah melakukan hal lain (kecuali untuk beberapa Microchip PIC), saya sekarang bingung dan tidak yakin apakah orang dapat menulis sistem operasi yang berfungsi yang fungsinya tidak akan terbatas ketika membandingkan dengan OS yang ditulis untuk MPU dengan MMU.
Saya bisa memikirkan beberapa solusi untuk "mengganti" atau "mensimulasikan" MMU dan saya punya beberapa pertanyaan:
- Pada prosesor Intel dalam mode 16 dan 32-bit ada cara menggunakan segmen dan pemilih segmen untuk menggunakan blok memori yang berbeda dengan tugas yang berbeda. Itu berarti bahwa saya bisa mengubah ruang memori dengan mengubah isi register segmen ketika melakukan pergantian tugas ketika pada x86. Apakah ada konsep umum untuk segmentasi memori yang dapat digunakan pada arsitektur ARM?
- Dengan memuat file objek yang tertaut alih-alih yang dapat dieksekusi, saya dapat menggunakan relokasi (perbaikan) atau memposisikan kode independen untuk mengarahkan tugas pada potongan memori dengan cara yang sama seperti jika saya memetakan memori menggunakan struktur paging. Apakah ini cukup efektif?
- Saya juga telah membaca sesuatu tentang Memory Protection Unit pada prosesor ARM. Bisakah ini bermanfaat?
Apakah ada cara "biasa" mengelola tugas pada sistem tanpa MMU?
sumber