Linux 内核怎样应对中断
中断是现代 CPU 工作方式中重要的部分。例如:当你每次在键盘上按下一个按键后,CPU 会被中断以使得 PC 读取用户键盘的输入。这个过程发生得相当快,以致于在使用体验上你不会感到任何变化或损害。 此外,键盘并不是导致中断的唯一组件。一般来说,有三种类
一篇文章教你ARM64 Linux内核页表的块映射
从ffff000000000000到ffff7fffffffffff是一段针对物理地址的线性映射区,最大支持128TB的物理地址空间,这一段地址非常类似ARM32的low memory映射区。 我们看看这种情况下的页表,我们既可以用最终的【20:12】对应的PTE映射项,以4K为单位,进行虚拟地址到物
一篇文章明白Linux内核中Percpu变量的实现
从上图中我们可以看到,各种源文件中通过DEFINE_PER_CPU的方式,定义了很多percpu变量,这些变量根据vmlinux.lds.S中的相关定义,会被linker聚合在一起,然后放到最终vmlinux文件的,一个名叫.data..percpu的section里。 这些变量的地址也是被特殊处理过的,
浅谈Linux内核中Watchdog
在Linux内核中有三个watchdog(看门狗),它们都需要被悉心的喂养照料,分别是: 1. /dev/watchdog 2.softlockup检测机制 3.hardlockup检测机制 首先看 1./dev/watchdog,此看门狗该怎样喂养呢,linux内核中有一段样例代码: samples/watchdog/watchdog-simple.c
Linux用户空间与内核地址空间分析
假设按照上述简单的地址映射关系,那么内核逻辑地址空间访问为0xc0000000 ~ 0xffffffff,那么对应的物理内存范围就为00 ~ 040000000,即只能访问1G物理内存。若机器中安装8G物理内存,那么内核就只能访问前1G物理内存,后面7G物理内存将会无法访问,因为内核
Linux内核七进七出
进程是在计算机系统中资源分配的最小单元。内核负责创建和销毁进程,而且由调度程序采取合适的调度策略,实现进程间的合理且实时的处理器资源的共享。从而内核的进程管理活动实现了多个进程在一个或多个处理器上的抽象。内核还负责实现不同进程间、进程和其
一次搞定Linux内核内存泄漏实战全过程
接下来的排查思路是: 1.监控系统中每个用户进程消耗的PSS (使用pmap工具(pmap pid)). PSS:按比例报告的物理内存,比如进程A占用20M物理内存,进程B和进程A共享5M物理内存,那么进程A的PSS就是(20 – 5) + 5/2 = 17.5M 2.监控/proc/meminfo输出,重点观察Slab使

分析各有长处的Java线程和操作系统的线程
1. 用户空间和内核空间 关于内核态和用户态我们在 了解操作系统的那些事儿,从这篇文章开始 这篇文章中已经详细介绍过,这里不再过多赘述。 至于什么是系统空间和用户空间也非常好理解:在操作系统中,内存通常会被分成用户空间(User space)与内核空间(Kerne