Memory Isolation — bir process, virtual mashina, container yoki security domenining xotirasini boshqalar ruxsatsiz o‘qishi va o‘zgartirishidan ajratish xususiyati.
Process ajratilishi
Process address space alohida page table bilan izolatsiya qilinadi. Bir xil virtual address turli processda boshqa physical page’ga boradi. Kernel mapping privilege flaglari bilan user accessidan himoyalanadi.
Shared sahifalar
Shared memory isolationni qasddan ochadi va access handle/permission bilan boshqariladi. Copy-on-write sahifa nusxalanmaguncha share qilinsa ham write isolationni saqlaydi.
Virtual mashina
Virtual mashinada guest virtual→guest physical va second-level translation host physicalga o‘tadi. Hypervisor har VM sahifalarini ajratadi. IOMMU device DMA’ni ruxsatli region bilan cheklaydi.
Container
Container odatda host kernelni ulashadi; process memory isolation namespace emas, MMU va credentials orqali keladi. Kernel xatosi container boundaryni buzishi mumkin.
Hardware kanallari
Side channel cache va speculative state orqali protectionni chetlab ma’lumot sizdirishi mumkin. Isolation threat modeli timing channel va shared hardware’ni alohida baholaydi.
Isolation testi
Test cross-process read/write rad etilishi, shared mapping permissioni, core dump accessi, DMA va privilege escalation yo‘llarini qamraydi.
Amaliy nazorat
Memory Isolation bilan ishlaydigan tizim address-space owner va shared handleni aniq lifecycle va version bilan yuritadi. Pointer, mapping, navbat yoki exception holati boshqa qatlamga uzatilganda ownership hamda permission shartlari yo‘qolmaydi. Debug rejimda manzil, obyekt identifikatori va state transition qayd etiladi; production log ASLR, maxfiy ma’lumot va raw pointerlarni ochib yubormaydigan shaklga keltiriladi. Eskirgan handle yoki metadata reuse qilinmasligi uchun generation, build-id yoxud reference hisobidan foydalaniladi.
Muhim xavf — cross-domain mapping yoki DMA escape. Bunday vaziyatda tizim taxmin bilan davom etmaydi: access fault, aniq error, konservativ fallback yoki nazoratli cleanup qo‘llanadi. Signal/fault kelgan nuqta har doim asl buzilish joyi emas; allocation, mapping va oxirgi ownership amallari trace’i tashxisga yordam beradi. Parallel accessda lock, atomic ordering va lifetime birgalikda tekshiriladi. Timeout yoki null check memory safetyning o‘rnini bosa olmaydi.
Sifat nazorati process, VM va IOMMU isolation testi orqali bajariladi. Sinovlar normal holat bilan birga nol uzunlik, page boundary, alignment, juda katta offset, concurrent close/free, permission o‘zgarishi va platforma farqlarini qamraydi. Correctness avval etalon hamda invariant bilan tekshiriladi, keyin page fault, cache miss, contention, latency yoki xotira sarfi o‘lchanadi. Sanitizer, fault injection va malformed-input fuzzing topgan minimal holat doimiy regressiya testiga aylantiriladi.
Process isolation odatda alohida page table va privilege level orqali amalga oshiriladi; context switchda faol address space o‘zgaradi. Shared library sahifalari fizik jihatdan umumiy bo‘lishi mumkin, lekin read-only mapping ularni bir processning boshqasini o‘zgartirish vositasiga aylantirmaydi. Shared memory esa ataylab ochilgan istisno bo‘lib, access control va sinxronizatsiya talab qiladi. Container kernelni ulashgani uchun virtual mashinaga teng memory boundary bermaydi. DMA qurilmalariga nisbatan IOMMU, kernel ichida esa copy-from-user kabi tekshiruvlar zarur. Isolation testi faqat manzilga kira olmaslikni emas, ma’lumot qoldig‘i va yon kanal xavfini ham ko‘radi.
Bog‘liq tushunchalar
address space, page table, hypervisor, IOMMU, shared memory, sandbox