หลักการจัดการหน่วยความจำที่ใช้โดย Linux


คำตอบ:


7

Linux ใช้ทั้งสองอย่าง มันใช้การแบ่งส่วนเพื่อแมปพื้นที่ที่อยู่ทั้งหมดที่มีอยู่ในขณะที่ให้สิทธิ์การเข้าถึงที่แตกต่าง: โดยทั่วไปเคอร์เนลและมุมมองพื้นที่ผู้ใช้ คุณสามารถ grep ซอร์สโค้ด Linux สำหรับ KERNEL_DS (เซ็กเมนต์ข้อมูลเคอร์เนล) สำหรับบางตัวอย่าง

เพจจะใช้สำหรับการนำหน่วยความจำเสมือนมาใช้ (Grep สำหรับ "struct gdt_page" ในเคอร์เนลสำหรับจุดเริ่มต้น)


6

การจัดการหน่วยความจำภายใต้ลีนุกซ์ใช้งานได้เฉพาะโดยการเพจ

Linux รองรับทั้งหน้า "เล็ก" (ปกติ 4kB) และหน้า "ใหญ่" (2M) อดีต "เพิ่งทำงาน" โดยที่คุณไม่ทราบหรือทำสิ่งใดเป็นพิเศษและสิ่งหลังจำเป็นต้องได้รับการดูแลเป็นพิเศษ (ต้องสำรองไว้ในเวลาบูตและแมปผ่านอุปกรณ์พิเศษ)

บริบทเดียวที่ "เซ็กเมนต์" ปรากฏขึ้นภายใต้ Linux คือ brk () syscall ซึ่งใช้เพื่อเพิ่มเซ็กเมนต์ข้อมูลของกระบวนการ แต่ไม่ว่าด้วยวิธีใดหน่วยความจำจะมาในหน้าเว็บและจัดการในหน้าเว็บและไม่มีส่วนเกี่ยวข้องกับการแบ่งส่วน x86


การแบ่งกลุ่ม X86 นั้นล้าสมัยเมื่อ i386 ออกมา Linux ไม่เคยใช้การแบ่งส่วนสำหรับการจัดการหน่วยความจำ ตราสารอนุพันธ์บางอย่างเช่น ELKS และ (อาจ) uClinux อาจ
LawrenceC
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.