Linux 記憶體管理之核心態剖析

2021-08-18 15:29:22 字數 345 閱讀 6189

記憶體管理不僅是 linux 系統中比較難理解的模組,更是網上資料講解混亂的模組。本場 chat 旨在讓讀者了解記憶體分配的來龍去脈,從硬體原理和核心角度出發,分析如下內容:

cpu 通過 mmu 訪問實體地址的原理;

記憶體的 zone 劃分:dma、normal 和 highmem;

記憶體的 page 管理以及防止內外碎片的方法;

記憶體管理的 buddy 演算法;

記憶體管理的 slab 演算法;

連續記憶體分配器(cma)。

閱讀全文:

Linux核心剖析 核心的記憶體管理

核心的記憶體管理不同於使用者空間的記憶體管理,首先來講核心本身的限制點就比較多,比如核心一般不能睡眠,因此處理記憶體錯誤一般來講是件很困難的事情,再加上其他限制以及核心記憶體機制不能太複雜導致想獲取核心記憶體變成了一件難事。在說核心的記憶體管理機制之前,首先我們得明白核心記憶體管理的基本單位才行,一...

linux核心剖析之main c

main函式主要做一些初始化,比如記憶體,塊裝置 字元裝置等的初始化,然後建立子程序開啟bin sh mem init main memory start,memory end trap init 陷阱門 硬體中斷向量 初始化。kernel traps.c blk dev init 塊裝置初始化。k...

Linux核心筆記 記憶體管理之塊記憶體分配

核心版本 linux 2.6.11 夥伴系統是linux用於滿足對不同大小塊物理記憶體分配和釋放請求的解決方案。linux將物理記憶體分成三個記憶體管理區,分別為zone dmazone normalzone highmem,並使用三個管理區描述符管理這三個zone。管理區描述符裡,有乙個元素數為1...