Linux 内存布局
关于内存分配,一般的 C 语言开发者使用的更多的是 glibc 库提供的 malloc 和 calloc 等函数,这些函数执行成功,这会返回一个进程所需要的内存起始地址,当然,他们是针对 CPU 端的虚拟地址。Linux 内核负责与硬件打交道,针对 CPU 端的虚拟地址很多场景下都不满足需要,固这些…
- 17.79k
- 4
- 阅读全文
关于内存分配,一般的 C 语言开发者使用的更多的是 glibc 库提供的 malloc 和 calloc 等函数,这些函数执行成功,这会返回一个进程所需要的内存起始地址,当然,他们是针对 CPU 端的虚拟地址。Linux 内核负责与硬件打交道,针对 CPU 端的虚拟地址很多场景下都不满足需要,固这些…
提笔之前,对于 Linux 的缓存与预读这个机制尚且没有一个完整的概念,只能边看边学习然后记录,这篇文章仅仅只能作为一个参考学习资料,并不能作为技术文档载入各位的知识体系,当然,作为课外阅读来讲,还是足够的,毕竟干货还是不在少数,我会一步步的深入缓存与预读的各个体系以及在某一次调试过程中与缓存以及内…
一直都对 Linux 的锁机制很感兴趣,也花过一段时间对各种类型的锁进行研究。本文对类似自旋锁、互斥锁、信号量的基本锁不进行深入介绍也默认读者能够通过查找迅速获得这些锁的一个基本使用场景和原理。很多时候,我们需要更为细粒度的锁,譬如对于读多写少的情况,我们希望读者与读者之前不需要锁,让他们能够尽快的…
Linux Qt 无边框窗体移动的问题 网上有多种移动无边框 Qt 程序的方法,集中在通过 MousePressEvent 以及 MouseMoveEvent 两个事件的处理上,不过在 Linux 平台上,他们实现的移动效果不能满足我的要求,因为在 Gnome 的环境中无法移动出屏幕左侧(Ubunt…
Contents1 什么是 gdb、kdb、kgdb?2 ARM64 平台下的 kgdb 完善2.1 Target 端的 kgdb 完善2.2 Host 端的 gdb 更改3 ARM64 平台下 kgdb 远程调试示例3.1 target 端和 host 端的准备3.2 KGDB 的基本使用3.3 …
如果说 Linux 内核是个身体,保罗万象,那么中断就如同是其中更为关键的神经系统,有了他的存在,中央处理器才能了解各个外设所处的状态,并且及时的给与支持响应。 本章的重点不是介绍如何使用中断与中断 API,更不是为了了解软件中断、硬件中断、tasklet 微任务以及工作队列有何分别,我们仅仅只是为…