编程高手必学的内存知识 - 学好内存,掌握系统开发诀窍
你将获得
- 一条通往系统级程序员的学习路径
- 全面深入拆解计算机内存系统
- 吊打面试官的 N 个小技巧
- 从内存贯穿全局,全面提升底层硬实力
作者简介:
海纳,华为资深编译器专家,原 Huawei JDK 团队负责人。著有《自己动手写 Python 虚拟机》,并长期维护知乎专栏《进击的 Java 新人》,他的《从零开始写 Linux 内核》也即将面市。--[文章来源:iquizhi.com(知识付费课程网盘资源)]--
海纳的工作涉及数据库、操作系统、编译器和图像处理,以及计算机视觉等方面,他在这些领域积累了大量的一线实战经验。同时,他也是开源社区的积级贡献者,发起了 Railgun 虚拟机和海浪编程语言等项目。
课程简介:
作为程序员,我们每天都在跟计算机内存系统打交道。无论你是做移动端、服务端,还是全栈开发,难免遇到些复杂问题,诸如:
- 如何解决缓冲区溢出带来的安全问题?
- 如何利用好 CPU Cache 优化程序的性能?
- 如何在大型系统里设计适合自己业务的内存池?
- 设计高性能的并发库时,要考虑哪些与内存相关的因素?
对于这些问题,你只有深入到计算机内存中,才能找出最佳的解决方案。而且,现在企业愈加青睐于擅长处理复杂问题、能进行底层开发的系统级程序员,这也是为什么,计算机内存相关的话题几乎是大厂面试的必考内容。
内存相关的知识如此重要,但学起来并不是一件简单的事情。这是因为,内存知识太过庞杂,涉及到 CPU 硬件设计、操作系统、编译器,以及编程语言库、虚拟机等众多领域,需要你有大量的知识储备。
更何况,内存相关的知识能够串联起计算机软、硬件的全局脉络,提高你的底层实力,是你从普通程序员向前精进,突破职业生涯瓶颈的不二选择。
所以,这次我们请来了华为资深编译器专家、原 Huawei JDK 负责人海纳老师。海纳老师会用自己十余年的编程经验,带你全面拆解计算机内存系统,给你一条从内存出发,通往系统级程序员的高效学习路径。同时,我们在每节课课后都设置了“吊打面试官”小卡片,涉及各大厂高频面试真题,让你全方位提升自己在内存上的实战能力。
课程大纲:
- 虚拟内存:为什么可用内存会远超物理内存?
- 聊聊x86体系架构中的实模式和保护模式
- 内存布局:应用程序是如何安排数据的?
- 深入理解栈:从CPU和函数的视角看栈的管理
- 栈的魔法:从栈切换的角度理解进程和协程
- 静态链接:变量与内存地址是如何映射的?
- 动态链接(上):地址无关代码是如何生成的?
- 动态链接(下):延迟绑定与动态链接器是什么?
- 深入理解堆:malloc和内存池是怎么回事?
- 页中断:fork、mmap背后的保护神