In-depth understanding of the Linux kernel, there are three chapters on memory management, this is a chapter, and the eighth chapter discusses how the kernel assigns itself main memory, and the Nineth chapter, considering how to assign a linear address to a process.
- Memory Address--(P40)
The following three types of addresses are relative to the 8086 processor.
-
- Logical addresses (logical address)
Contains the address used in machine language directives to specify an operand or an instruction. For example, the leftmost address in the disassembly code below is the logical address.
140052d: - Push%RBP240052e: - theE5mov%RSP,%RBP3 400531: - theEcTen Sub$0X10,%RSP4 400535: the7d FCmov%edi,-0x4 (%RBP)5 400538: - the theF0mov%rsi,-0x10 (%RBP)640053c: Bf d4 to + xx mov$0x4005d4,%edi7 400541: E8 CA fe FF FF CALLQ400410<[email protected]>8 400546: B8xx xx xx xx mov$0x0,%eax940054b: C9 LeaveqTen40054c: C3 retq One40054d:0f1fxxNOPL (%rax)
disassemble hello.c
The 8086 processor has a segmented structure, each logical address consists of a segment (segment) and offset, which is the logical address = Segment Address + offset.
-
- Linear address
- Physical Address
- Fragmentation in hardware--(P41)
- Segment Selector & segment Register
- Segment Descriptor
- Quick access to segment descriptors
- Segment Unit
- Fragmentation in Linux--(P46)
- Paging in hardware--(P50)
- General page Pagination
- Extended Paging
- Hardware Protection Solutions
- Example of a regular page
- Physical Address Extension (PAE) paging mechanism
- Paging in a 64-bit system
- Hardware cache
- Convert backup buffers (TLB)
- Paging in Linux--(P62)
- Linear Address Field
- Page Table Processing
- Physical Memory layout
- Process page Table Kernel page table
- Linear address for fixed mappings
- Handling Cache &tlb
"Notes" in-depth understanding of the Linux kernel-memory Addressing (i)