因为图片比较大,微信公众号上压缩的比较厉害,所以很多细节都看不清了,我单独传了一份到github上,想要原版图片的,可以点击下方的阅读原文,或者直接使用下面的链接,来访问github:https://github.com/wangyuntao/linux-kernel-illus...
一个最典型的要使用pu_relax()锁的场景是忙等待(也就是死循环等一个事情的发生),在内核里面有大量的代码,比如等寄存器状态:比如做延迟:简单来说,你如果在内核里面写了忙等待的代码,都没有在循环里面加个cpu_relax()的话,这基本上是一种比较幼稚的表现。根据内核文档vo...
作者简介甄建勇,高级架构师(某国际大厂),十年以上半导体从业经验。主要研究领域:CPU/GPU/NPU架构与微架构设计。感兴趣领域:经济学、心理学、哲学。 1.引言1加1等于几?这个问题很简单,一年级的小学生都会毫不犹豫的回答是:2。可是你知道计算机是怎么计算出来的吗?你可能会...
作者简介于浩进,linux内核爱好者,现就职于北京灵汐科技有限公司,任职BSP工程师,主要负责IP验证、多媒体驱动开发及一些bringup等工作。文章大纲1.背景介绍2.环境说明2.1 硬件环境2.2Kernel 版本2.3kernel 相关配置介绍3.fixmap 机制介绍3....
本专题以视频的方式分享内核学习方法,希望对大家有所帮助,当然大家可以根据自己的学习习惯及方法来学习,适合自己的才是最好的。Linux内核的学习是苦乐交织的,且短期内很难有效果,真正进行内核开发的工作是凤毛麟角,很多人都会在中途放弃,但是通过学习内核我们可以学习到优秀的编程技巧,操...
为什么要加锁在SMP系统中,如果仅仅是需要串行地增加一个变量的值,那么使用原子操作的函数(API)就可以了。但现实中更多的场景并不会那么简单,比如需要将一个结构体A中的数据提取出来,然后格式化、解析,再添加到另一个结构体B中,这整个的过程都要求是「原子的」,也就是完成之前,不允许...
作者简介 王柏生 资深技术专家,先后就职于中科院软件所、红旗Linux和百度,现任百度主任架构师。在操作系统、虚拟化技术、分布式系统、云计算、自动驾驶等相关领域耕耘多年,有着丰富的实践经验。著有畅销书《深度探索Linux操作系统》(2013年出版)。谢广军 计算机专业博士...
作者简介甄建勇,高级架构师(某国际大厂),十年以上半导体从业经验。主要研究领域:CPU/GPU/NPU架构与微架构设计。感兴趣领域:经济学、心理学、哲学。本系列为甄建勇“五分钟系列”——用五分钟把计算机系统中一个关键的概念讲清楚,如果你也对计算机系统某些模块有独到的理解,欢迎赐稿...
摘要:用摩尔定律的规律建设自己的事业,没有对手。(通告:我在YouTube上的视频频道已经开通,欢迎大家到YouTube上搜“硅谷王川”关键词订阅。频道已经上传了二十一个视频,也有热心读者把视频转到B站和微博,可自行搜索。最近十个视频的标题依次为: 21 适度饥寒交迫有益...
作者简介甄建勇,高级架构师(某国际大厂),十年以上半导体从业经验。主要研究领域:CPU/GPU/NPU架构与微架构设计。感兴趣领域:经济学、心理学、哲学。 设计流程IC设计处在整个半导体产业链的顶端,而设计出性能高,功耗小,成本低的CPU更是一项具有挑战性工作,困难除了设计难度大...
相关阅读:《eBPF技术应用云原生网络实践系列之kubernetes网络》背景介绍Kubernetes中的网络功能,主要包括POD网络,service网络和网络策略组成。其中POD网络和网络策略,都是规定了模型,没有提供默认实现。而service网络作为Kubernetes的特色...
作者简介谢欢,大家可以叫我Jeff,我目前就职于某国际知名linux发行版开源公司,热衷于linux内核。我平时把linux内核源码当小说一样阅读学习,也一直把能给linux社区贡献更多有质量的代码而努力。今年10月中旬,我向Linux内核社区提交了一个关于tracing的pat...
作者简介胡哲宁,西安邮电大学计算机科学与技术专业大二学生。GoogleSwitchTo由于协程本身对操作系统的不可见性,协程中出现的BUG往往不能通过一些已有的工具去排查。在谷歌内部有一套闭源的用户态任务调度框架SwitchTo,这个框架可以为谷歌提供延迟敏感的服务,对运行的内容...
为什么要加锁在SMP系统中,如果仅仅是需要串行地增加一个变量的值,那么使用原子操作的函数(API)就可以了。但现实中更多的场景并不会那么简单,比如需要将一个结构体A中的数据提取出来,然后格式化、解析,再添加到另一个结构体B中,这整个的过程都要求是「原子的」,也就是完成之前,不允许...