İşletim sistemleri ve x86 mimarisi üzerine çalışıyorum ve bölümlendirme ve sayfalama hakkında okurken, modern işletim sistemlerinde bellek yönetimini nasıl idare ettiğini merak ediyordum. Linux'u ve diğer işletim sistemlerini bulduklarımdan dolayı, temelde disk belleği disk belleği lehine çevrildi. Bunun bulduğum sebeplerin bir kısmı basitlik ve taşınabilirlikti.
Hangi pratik kullanımları segmentasyon için vardır (x86 veya başka türlü) ve onu kullanan güçlü işletim sistemlerini görecek miyiz, yoksa çağrı tabanlı bir sistemi desteklemeye devam edecekler mi.
Şimdi bunun yüklü bir soru olduğunu biliyorum, ancak yeni geliştirilen işletim sistemlerinde bölümlemenin nasıl ele alınacağını merak ediyorum. Kimsenin daha “bölünmüş” bir yaklaşım olarak değerlendirmeyeceği bir çağrı yapmayı tercih etmek mantıklı geliyor mu? Öyleyse neden?
Ve 'shun' segmentasyonu dediğimde, Linux'un sadece sahip olduğu kadar kullandığını ima ediyorum. Kullanıcı ve çekirdek kodu / veri bölümleri için sadece 4 bölüm. Intel belgelerini okurken, bölümlendirmenin daha sağlam çözümler düşünülerek tasarlandığı hissine kapıldım. Sonra yine birçok kez x86'nın ne kadar karmaşık olabileceği söylendi.
Bu ilginç anekdotu Linux Torvald'ın Linux için orjinal ilanına bağladıktan sonra buldum. Bunu birkaç mesaj sonra söyledi:
Basitçe söylemek gerekirse, taşıma imkansızdır. Çoğunlukla C cinsindendir, ancak çoğu kişi benim yazdıklarımın C adını vermez. 386'nın akla gelebilecek her özelliğini kullanırım, aynı zamanda 386 hakkında bana öğretmek için bir proje olduğu için bulabilirim. , hem disk belleği (hem de diske değil) hem de segmentasyon için. GERÇEKTEN 386'ya bağımlı kılan bölümlemedir (her görevin kod ve veri için 64Mb'lik bir bölümü vardır - 4Gb'de maksimum 64 görev. 64 MB / görevden daha fazla çerez isteyen herkes).
Sanırım x86 ile olan kendi deneyimlerim bu soruyu sormamı sağladı. Linus'ta StackOverflow yoktu, bu yüzden denemek için uyguladı.