Linux tarafından kullanılan bellek yönetimi prensibi


Yanıtlar:


7

Linux her ikisini de kullanır. Farklı erişim hakları verirken mevcut tüm adres alanını eşlemek için segmentasyon kullanır: temel olarak bir çekirdek ve bir kullanıcı alanı görünümü. Bazı örnekler için KERNEL_DS (çekirdek veri segmenti) için Linux kaynak kodunu kullanabilirsiniz.

Disk belleği daha sonra sanal bellek uygulamak için kullanılır (başlangıç ​​noktası için çekirdekte "struct gdt_page" için Grep)


6

Linux altında bellek yönetimi yalnızca sayfalama ile çalışır.

Linux hem "küçük" (genellikle 4kB) hem de "büyük" (2M) sayfaları destekler. Eski "sadece" özel bir şey bilmeden veya yapmadan çalışır ve ikincisi özel muamele gerektirir (önyükleme zamanında ayrılmış ve özel bir cihaz ile eşleştirilmesi gerekir).

Linux altında "segment" in göründüğü tek bağlam, bir sürecin veri segmentini arttırmak için kullanılan brk () sistem çağrısıdır (normalde buna ihtiyacınız olmaz, malloc bunu önemsemeden yapar). Ancak her iki durumda da, bellek sayfalarda gelir ve sayfalarda yönetilir ve x86 segmentasyonu ile ilgisi yoktur.


İ386 çıktığında X86 segmentasyonu eskiydi. Linux hiçbir zaman bellek yönetimi için segmentasyon kullanmamıştır. ELKS ve (muhtemelen) uClinux gibi bazı türevler olabilir.
LawrenceC
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.