深入理解linux虚拟内存管理--01 简介

内核内存管理
本文档详细介绍了Linux内核2.4.22版本中的内存管理机制,覆盖了物理内存描述、页表管理、进程地址空间等多个核心主题。通过本书的学习,读者可以深入了解内核如何高效地管理内存资源。

简介

英文原版书地址
https://www.kernel.org/doc/gorman/html/understand/understand001.html

使用内核版本 2.4.22

目录如下:
Chapter 1 Introduction
1.1 Getting Started
1.2 Managing the Source
1.3 Browsing the Code
1.4 Reading the Code
1.5 Submitting Patches
Chapter 2 Describing Physical Memory
2.1 Nodes
2.2 Zones
2.3 Zone Initialisation
2.4 Pages
2.5 High Memory
2.6 What’s New In 2.6
Chapter 3 Page Table Management
3.1 Describing the Page Directory
3.2 Describing a Page Table Entry
3.3 Using Page Table Entries
3.4 Translating and Setting Page Table Entries
3.5 Allocating and Freeing Page Tables
3.6 Kernel Page Tables
3.7 Mapping addresses to a struct page
3.8 Translation Lookaside Buffer (TLB)
3.9 Level 1 CPU Cache Management
3.10 What’s New In 2.6
Chapter 4 Process Address Space
4.1 Linear Address Space
4.2 Managing the Address Space
4.3 Process Address Space Descriptor
4.4 Memory Regions
4.5 Exception Handling
4.6 Page Faulting
4.7 Copying To/From Userspace
4.8 What’s New in 2.6

Chapter 5 Boot Memory Allocator
5.1 Representing the Boot Map
5.2 Initialising the Boot Memory Allocator
5.3 Allocating Memory
5.4 Freeing Memory
5.5 Retiring the Boot Memory Allocator
5.6 What’s New in 2.6
Chapter 6 Physical Page Allocation
6.1 Managing Free Blocks
6.2 Allocating Pages
6.3 Free Pages
6.4 Get Free Page (GFP) Flags
6.5 Avoiding Fragmentation
6.6 What’s New In 2.6

Chapter 7 Non-Contiguous Memory Allocation
7.1 Describing Virtual Memory Areas
7.2 Allocating A Non-Contiguous Area
7.3 Freeing A Non-Contiguous Area
7.4 Whats New in 2.6
Chapter 8 Slab Allocator
8.1 Caches
8.2 Slabs
8.3 Objects
8.4 Sizes Cache
8.5 Per-CPU Object Cache
8.6 Slab Allocator Initialisation
8.7 Interfacing with the Buddy Allocator
8.8 Whats New in 2.6
Chapter 9 High Memory Management
9.1 Managing the PKMap Address Space
9.2 Mapping High Memory Pages
9.3 Mapping High Memory Pages Atomically
9.4 Bounce Buffers
9.5 Emergency Pools
9.6 What’s New in 2.6
Chapter 10 Page Frame Reclamation
10.1 Page Replacement Policy
10.2 Page Cache
10.3 LRU Lists
10.4 Shrinking all caches
10.5 Swapping Out Process Pages
10.6 Pageout Daemon (kswapd)
10.7 What’s New in 2.6
Chapter 11 Swap Management
11.1 Describing the Swap Area
11.2 Mapping Page Table Entries to Swap Entries
11.3 Allocating a swap slot
11.4 Swap Cache
11.5 Reading Pages from Backing Storage
11.6 Writing Pages to Backing Storage
11.7 Reading/Writing Swap Area Blocks
11.8 Activating a Swap Area
11.9 Deactivating a Swap Area
11.10 Whats New in 2.6

Chapter 12 Shared Memory Virtual Filesystem
12.1 Initialising the Virtual Filesystem
12.2 Using shmem Functions
12.3 Creating Files in tmpfs
12.4 Page Faulting within a Virtual File
12.5 File Operations in tmpfs
12.6 Inode Operations in tmpfs
12.7 Setting up Shared Regions
12.8 System V IPC
12.9 What’s New in 2.6
Chapter 13 Out Of Memory Management
13.1 Checking Available Memory
13.2 Determining OOM Status
13.3 Selecting a Process
13.4 Killing the Selected Process
13.5 Is That It?
13.6 What’s New in 2.6

Chapter 14 The Final Word

加粗章节是主线
其他章节是支线

注意事项,
1.这本书翻译的很烂,必须参考英文原版进行理解。
2.这本书附录才是本体,前面的章节只是介绍函数调用流程。
3.任何书籍,必须到内核代码里面去进行理解,书籍只是辅助,还是要看代码!

作者: [爱尔兰] 戈尔曼(Gorm 出版社: 北京航空航天大学出版社 原作名: Understanding the Linux Virtual Memory Manager 内容简介 · · · · · · 深入理解Linux虚拟内存管理,ISBN:9787810777308,作者:(爱尔兰)戈尔曼著;白洛等 作者简介 · · · · · · Mel Gorman曾获得爱尔兰利马瑞克大学的计算机学士和硕士学位。他的研究领域广泛:从网页开发到摄影机的实时显示系统。Mel Gorman认为,即使是最难以攻克的项目也并没有想象中那么艰难。他曾经还担任过系统管理员,主要管理Linux, 也涉及到Solaris和Windows。现今Mel Gorman是都柏林IBM公司的Java程序开发员。 Mel Gorman的大部分技能都来自于他自己在利马瑞克大学的生活经历,与大学里计算机社区的广泛接触,以及实地工作经验这三者的完美结合。是计算机社区使他接触到了Linux,并相信Linux用途广泛,而绝不仅仅只是一个便利的邮箱地址。这个社区还使他对开放源码软件产生了兴趣,尤其是在Linux内核方面。他永远感激利马瑞克大学为他提供的这个平台,使他认识了许多有识之士,并有两年时间来研究VM。 闲暇时Mel Gorman喜欢和女友凯伦呆在一起,或者弹弹吉他(尽管并不擅长),读读手边的书籍,与朋友和家人(他们避免谈及有关VM的话题)一同消磨时光。又或是制订一些可能并无价值的计划(有时仅仅在想象中完成它们)。只要安迪说服他乘坐游艇是个不错的娱乐项目,他也会去尝试。Mel Gorman还在犹豫着是继续创作关于Linux的文章,还是向从前一样在Linux环境下编写程序,因为后者才是他最初的意愿。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值