- 一文读懂|zRAM 内存压缩机制
内存是计算机系统最重要的资源之一,当操作系统内存不足时,进程申请内存将会失败,从而导致其运行异常或者崩溃。Linux 内核提供 swap 机制来解决内存不足的情况,其原理是:当系统内存不足时,内核会将进程不常用的内存交换(写入)到磁盘中,然后将这些内存归还给系统,系统可以将这些内存继续分配给其他需要
- 图解|内存页面迁移技术
1. 概述页面迁移(page migrate)最早是为 NUMA 系统提供一种将进程页面迁移到指定内存节点的能力用来提升访问性能。后来在内核中广泛被使用,如内存规整、CMA、内存hotplug等。页面迁移对上层应用业务来说是不可感知的,因为其迁移的是物理页面,而应用只访问的是虚拟内存。内核迁移完成后
- 一文读懂|内核顺序锁
Linux 内核有非常多的锁机制,如:自旋锁、读写锁、信号量和 RCU 锁等。本文介绍一种和读写锁比较相似的锁机制:顺序锁(seqlock)。顺序锁与读写锁一样,都是针对多读少写且快速处理的锁机制。而顺序锁和读写锁的区别就在于:读写锁的读锁会阻塞写锁,而顺序锁的读锁不会阻塞写锁。读锁原理为了让读锁不
- 一文读懂|Linux 虚拟文件系统(VFS)
前言虚拟文件系统是一个很庞大的架构,如果要分析的面面俱到,会显得特别复杂而笨拙,让人看着看着,就不知所云了(当然主要还是笔者太菜),所以这篇博客,以 open() 函数为切入点,来试着分析分析VFS文件系统的运转机理,本文的代码来源于 linux3.4.2。基础知识首先我们来看一张图:(图1)从这张
- 我是这样学Linux内核的,非常有效
Linux,可以说是计算机世界的基石,占据着服务器市场96%的市场份额!Android底层、Mac OS、IOS底层内核,也都是Linux内核或同根生的Unix!所以很多coder都知道Linux内核的重要性,尝试去研究Linux内核…奈何关于Linux内核的书,几乎都是基于老版本的Linux内核,
- 一文读懂|RDMA原理
本想完全靠自己的语言完成这篇概述,然而开篇并没有想象当中的好写,看样子从宏观上概括一个技术比从微观上探究细枝末节要困难不少。本文是以前人们对RDMA技术的介绍为主,加入了一些自己的理解。随着本专栏内容的增加,本篇概述也会更新和逐渐完善。什么是DMADMA全称为Direct Memory Access
- 厚着脸皮搞来的Linux资料,请低调使用(待会删)
一位多年合作很多年的金主,在咱们公众号也投放了好几次的广告,给咱们带来了非常强大的现金支持,谢谢。去年的中下旬,他发现咱们公众号的阅读量不错,粉丝活跃度也很高,然后就一个劲得撺掇我,让我帮忙宣传产品或者直接带货。当然,要是免费的话,我早就答应了,哈哈。按理来说,人家在咱们这投放了这么多次广告,我赠送
- 运维干到35岁, 还能干多久?
干到退休没问题!最近传闻武汉某大厂总部裁员九成35岁以上员工,已辟谣消息不实!对IT人而言,35岁的坎儿,是个讳莫如深、却不能不提的“包袱”。作为技术工作者,我也接触不少50多岁的资深运维,经验是能力过硬,运维可以干到退休!毕竟40岁混到管理岗位的还是小部分人。那谈起IT运维人员的工作,小到修电脑、
- Linux Perf 性能分析工具及火焰图浅析
Perf Event 子系统Perf 是内置于 Linux 内核源码树中的性能剖析(profiling)工具。它基于事件采样的原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析。可用于性能瓶颈的查找与热点代码的定位。本文将详细介绍 Linux Perf 的工作模式、P
- k8s竟如此简单?大牛总结最佳路线实践!
作为容器/云原生/云计算领域最受欢迎、最核心的技术,Kubernetes(下文简称K8s)几乎是所有想要提升技术竞争力、晋升加薪的IT技术人必须要掌握的技能。去任何一个招聘网站上搜索K8s相关职位,月薪普遍都在2-3万以上。作为速度最快的开源项目之一,K8s的使用呈现爆炸式增长。目前京东已经把90%
- 从内核角度理解K8s CPU限流的原理
在使用 Kubernetes(简称K8s) 时,通常会在同一台机器上部署多个 Pod。如果某个 Pod 中的服务出现问题(如出现死循环),将会导致占用大量的 CPU 时间,从而影响到其他 Pod 的正常运行。为了解决这个问题,K8s 提供了一个限制 Pod 使用 CPU 资源的配置项,如下所示:re
- 图解|RCU原理
Linux 内核设计了多种锁机制,比如 读写锁、自旋锁 和 信号量 等。为什么要设计这么多锁机制呢?这是因为不同的锁机制适用于不同的场景,比如 读写锁 适用于读多写少的场景;而 信号量 适用于进程长时间占用锁,并且允许上下文切换的场景。本文主要介绍一种 Linux 内核中性能非常高的锁机制:RCU锁
- 手写操作系统+shell+文件系统,绝了
去年秋招及年后找工作的小伙伴应该感受到了寒气逼人,机会又少、又卷……加上chatGPT的出现,可以预见未来几年,简单、基础、重复性工作大概率会被机器人取代……我们将何去何从呢?毫无疑问,成为技术大牛!如何成为技术大牛呢?修内功!让自己变得强大且不可替代!这些修内功的课程,市面上少有人做,做相关课程的
- 细说|Linux虚拟文件系统原理
在 Unix 的世界里,有句很经典的话:一切对象皆是文件。这句话的意思是说,可以将 Unix 操作系统中所有的对象都当成文件,然后使用操作文件的接口来操作它们。Linux 作为一个类 Unix 操作系统,也努力实现这个目标。虚拟文件系统简介为了实现 一切对象皆是文件 这个目标,Linux 内核提供了
- 图解|Linux内存碎片整理
我们知道物理内存是以页为单位进行管理的,每个内存页大小默认是4K(大页除外)。申请物理内存时,一般都是按顺序分配的,但释放内存的行为是随机的。随着系统运行时间变长后,将会出现以下情况:如上图所示,当用户需要申请地址连续的 3 个内存页时,虽然系统中空闲的内存页数量足够,但由于空闲的内存页相对分散,从
- 图解原理|Linux I/O 神器之 io_uring
io_uring 是 Linux 于 2019 年加入到内核的一种新型异步 I/O 模型,io_uring 主要为了解决 原生AIO(Native AIO) 存在的一些不足之处。下面介绍一下原生 AIO 的不足之处:系统调用开销大:提交 I/O 操作和获取 I/O 操作的结果都需要通过系统调用完成,
- 撸了个Linux 操作系统,爽!
Linux诞生之初,就以其开源的模式、安全性、稳定性开启了迅猛发展,现在最火的网络安全、容器、云原生、云计算、超融合、DevOps等技术的也都与 Linux 息息相关!国内Linux人才缺口开始逐渐凸显,Linux人才招聘也顺势一跃,成为当下最炙手可热的招聘岗位之一。数据来源:职友集作为 Linux
- 我的嵌入式号友
推荐几个非常不错的嵌入式电子领域原创号主,这几位号主都是老温经常沟通交流的号主,技术硬核,大家想学习嵌入式、电子、硬件,可以关注他们。大鱼机器人公众号「大鱼机器人」,号主张老师,一个专注于机器人技术,单片机,嵌入式系统,智能家居,智能设备,PCB设计,IT最新动态的自媒体。还有海量学习资源等你来领取
- 一文看懂|Linux内核反向映射机制原理
当内核需要对申请的page进行回收时,在回收页表前需要解除该page的映射关系,即内核需要知道这个物理页被映射到了哪些进程虚拟地址空间,因此就有了反向映射机制。反向映射一般分为匿名页映射和文件页映射,本文先介绍匿名页反向映射。基本数据结构page结构体中涉及反向映射的相关成员struct page
- 一文看懂 Linux 性能分析|perf 源码实现
我们在《一文看懂Linux性能分析|perf 原理》一文中介绍过,perf 是基于采样来对程序进行分析的。采样的步骤如下:通过设置一个定时器,定时器的触发时间可以由用户设定。定时器被触发后,将会调用采集函数收集当前运行环境的数据(如当前正在执行的进程和函数等)。将采集到的数据写入到一个环形缓冲区(r