S
S
sdf4sdf2016-12-21 20:44:26
linux
sdf4sdf, 2016-12-21 20:44:26

Is the Linux memory management model still the same?

I read an article about memory management in Linux for x86 (IBM 01.2006): link https://www.ibm.com/developerworks/ru/library/l-memmod/
1. In modern (12.2016) Linux (4.8, 4.9) everything is so same memory is divided into segments, and then into pages?
2. As far as I understand, x86-64 still provides segment registers, but not all cores use them, breaking memory only into pages, right?
3. What part of the memory is consumed by the system descriptor tables?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
Y
Yuri Chudnovsky, 2016-12-21
@Frankenstine

This does not depend on the axis, but on the architecture of the processor and the memory bus. And yes, Intel x86 / x64 still use and will continue to use page addressing, like many other processors, such as MIPS.
Without the use of paging memory, it would be impossible to use the protected mode of the processor, virtualization, data protection from execution attempts (NX bit) and much more, and the system table for accounting for occupied memory would take exactly half the amount of RAM.

M
Mikhail Usotsky, 2016-12-23
@AquariusStar

1. Linux natively uses the flat FLAT model, where code, data, and stack segment pointers have the same base address. And this means that the segmented memory organization in Linux is not used. This greatly simplifies porting to other platforms. Memory paging is designed to create virtual memory. This makes multitasking much easier. There are versions of Linux that run without page memory. This is only needed for controllers, microcontrollers.
2. No. x86-64 gives only two segment registers for the context, they are very necessary for virtual machines. The remaining registers are not physically accessible. Today, it is precisely what all processors break memory into pages. Always. You can't work without page memory. For a strong fragmentation will begin with grave consequences. Another thing is when pages can have different sizes to reduce the size of the address translation table. But they have a clearly fixed size.
3. Descriptor tables have a maximum size of 64 KB - 8192 descriptors. This is written in many books. There is a global one, which is always the same, and there is a local one, which depends on programs. And also interruptions.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question