6、静态链接:变量与内存地址是如何映射的你好,我是海纳。 在第3节课里,我们看到进程的内存空间包含代码段、数据段、bss段、堆和栈等区域。在第4节和第5节课里,我们对栈的相关知识进行了深入学习。今天我们来看看内存中的另一个重要部分:代码段和数据段的组织方式。 我们知道,编程的代码无非是由函...2026-03-01编程高手必学的内存知识
5、栈的魔法:从栈切换的角度理解进程和协程你好,我是海纳。 上一节课,我们了解到函数在执行的时候,就会在栈上创建栈帧,那么函数执行的上下文都将保存在栈帧里。今天,我们就再来进一步分析,栈切换在计算机系统设计中所发挥的重要作用。 几乎所有的程序员都会遇到并发程序。因为多进程或者多线程程序可以并...2026-03-01编程高手必学的内存知识
4、深入理解栈:从CPU和函数的视角看栈的管理你好,我是海纳。 上节课,我们讲到,栈被操作系统安排在进程的高地址处,它是向下增长的。但这只是对栈相关知识的“浅尝辄止”。那我们今天这节课,就会跟着前面的脉络,让你可以更深刻地理解栈的运行原理。 栈是每一个程序员都很熟悉的话题,但你敢说你真的完全了解...2026-03-01编程高手必学的内存知识
3、内存布局:应用程序是如何安排数据的你好,我是海纳。 在前边的课程里,我们学习了计算机物理地址和虚拟地址的概念。有了虚拟地址之后,运行在系统里的用户进程看到的地址空间范围,都是虚拟地址空间范围(32位计算机的地址范围是4G;64位计算机的地址范围是256T)。这样的话,就不用再担心内存...2026-03-01编程高手必学的内存知识
2、聊聊x86体系架构中的实模式和保护模式你好,我是海纳。 上一节课我们讲了虚拟内存的概念,分析了线性地址(虚拟地址)是如何映射到物理地址上的。 不过,在x86架构诞生之初,其实是没有虚拟内存的概念的。1978年发行的8086芯片是x86架构的首款芯片,它在内存管理上使用的是直接访问物理内存...2026-03-01编程高手必学的内存知识
1、虚拟内存:为什么可用内存会远超物理内存你好,我是海纳。 今天是我们的第1节课,我想用一个比较有趣的、很多人都遇到过的问题作为我们这门课的开场,带你正式迈入计算机内存的学习课堂。 我不知道在你刚接触计算机的时候,有没有这么一个疑问:“为什么我的机器上只有两个G的物理内存,但我却可以使用比这...2026-03-01编程高手必学的内存知识