Linux阅码场 - Linux内核月报(2020年08月)

关于Linux内核月报Linux阅码场Linux阅码场内核月报栏目,是汇总当月Linux内核社区最重要的一线开发动态,方便读者们更容易跟踪Linux内核的最前沿发展动向。限于篇幅,只会对最新技术做些粗略概括,技术细节敬请期待后续文章,也欢迎广大读者踊跃投稿为阅码场社区添砖加瓦。本期月报主要贡献人员:张健、廖威雄、chenwei、柱子、王立辰、M.J、转角遇到...
📅 2023-06-04 阅读全文 →

图解内存匿名反向映射reverse mapping

反向映射的目的是为了找到所有映射到某一个页面的页表项,从而可以对目标页做一些操作,比如切断映射。反向映射一直是一个非常神奇的存在,今天我们就好好探索一下这个知识点。创建在反向匿名映射中除了page struct,一共有三个相关的数据结构:vm_area_structanon_vmaanon_vma_chain第一个数据结构我们已经见过了,是一个老朋友。而后...
📅 2023-06-04 阅读全文 →

我为什么这么讨厌你一行行地讲代码?

今天吐个槽。前段时间我买个电视柜子,里面抽屉很多,柜子面板也比较多。然后运过来的时候,全部是散的,只有螺丝,螺母,合页,滑动槽,各种板。这可难坏我了,比修bug难多了。然后柜子里面有张说明书,告诉我第一步,第二步,第三步,第四步......然后我就按照他那个说明书一步步地搞,我整整搞了2天,拼了拆,拆了拼,才把这个桌子搞好。我犯的一个巨傻逼的错误,就是相信...
📅 2023-06-03 阅读全文 →

深入理解Linux内核进程上下文切换

作者简介韩传华,就职于南京大鱼半导体有限公司,主要从事linux相关系统软件开发工作,负责Soc芯片BringUp及系统软件开发,乐于分享喜欢学习,喜欢专研Linux内核源代码。我都知道操作系统的一个重要功能就是进行进程管理,而进程管理就是在合适的时机选择合适的进程来执行,在单个cpu运行队列上各个进程宏观并行微观串行执行,多个cpu运行队列上的各个进程之...
📅 2023-06-03 阅读全文 →

用户态进程如何得到虚拟地址对应的物理地址?

一般我们不需要从用户态得到进程虚拟地址对应的物理地址,因为一般来说用户进程是完全不关心物理地址的。少数应用场景下,用户可能会关心,比如在用户态做DMA的场景(如DPDK之类的)。还有一些场景,比如想调试剖析每一页的内存占用情况,是否swap出去了等。从用户态得到虚拟地址对应的物理地址,我们不可能去walk进程的page table,也没有权限。不过还好内核...
📅 2023-06-03 阅读全文 →

Linux阅码场 - Linux内核月报(2020年09月)

关于Linux内核月报Linux阅码场Linux阅码场内核月报栏目,是汇总当月Linux内核社区最重要的一线开发动态,方便读者们更容易跟踪Linux内核的最前沿发展动向。限于篇幅,只会对最新技术做些粗略概括,技术细节敬请期待后续文章,也欢迎广大读者踊跃投稿为阅码场社区添砖加瓦。本期月报(总第4期)主要贡献人员:陈玮、张健、廖威雄(月报的完善和专业,离不开大牛...
📅 2023-06-03 阅读全文 →

宋宝华:公元1024年Linux内核的尘封往事

公元2022年,10月24日,破晓时分,虽刚过中秋,离立冬尚远,清晨竟生出一阵阵寒意。树叶随风沙沙作响,他静静地坐在阅码场车站的一把长椅上。自打10岁起,每天黎明时分他都在会在这个车站守候,不经意间已经过去了整整20年。他不知道自己为什么每天出现在这里,这似乎是他冥冥中的天命。他只是记得,有一个人曾经对他说过,“千年以后,黎明时分你二人会在‘Linux阅码...
📅 2023-06-03 阅读全文 →

宋宝华:深入理解cache对写好代码至关重要(上)

 There are only two hard things in Computer Science: cache invalidation and naming things.-- Phil Karlton全文目录CACHE基础CACHE的组织      TAG,INDEX &nbsp...
📅 2023-06-03 阅读全文 →

Linux Tcp 内核协议栈学习三种武器 之 Packet Drill

作者简介 作者Liam,海外老码农,对应用密码学、CPU微架构、高速网络通信等领域都有所涉猎。Linux阅码场原创文章Linux TCP 内核协议栈是一个非常复杂的实现, 不但沉淀了过去20多年的设计与实现,同时还在不停的更新。相关的RFC与优化工作一直还在进行中。如何研究和学习Linux TCP内核协议栈这样一块硬骨头就成了一大难题。当然最重要也是最基本的...
📅 2023-06-03 阅读全文 →

宋宝华:为什么Linux内核常常用unsigned long来代替指针

   本文目录 不知道自己不知道!指针何时指针?指针何时是整数?物理地址是指针?模糊地带绝世好代码?昨天我犯了一个错误把指针和整数“混淆”的错误,幸得队友王童鞋指正,今早起床,我把这个心得花一点时间记录下来。大抵掌握一个技术或者知识都是这三个阶段:不知道自己不知道;知道自己不知道;知道自己知道。比较难突破的是“不知道自己不知道”的阶段,...
📅 2023-06-03 阅读全文 →

Linux阅码场 - Linux内核月报(2020年10月)

关于Linux内核月报Linux阅码场Linux阅码场内核月报栏目,是汇总当月Linux内核社区最重要的一线开发动态,方便读者们更容易跟踪Linux内核的最前沿发展动向。限于篇幅,只会对最新技术做些粗略概括,技术细节敬请期待后续文章,也欢迎广大读者踊跃投稿为阅码场社区添砖加瓦。本期月报主要贡献人员:张健、廖威雄、chenwei、夏天往期链接:Linux阅码...
📅 2023-06-03 阅读全文 →

深入剖析Linux内核反向映射机制

作者简介 Cheetah,曾为U-boot社区和Linux内核社区提交过若干补丁,主要从事Linux相关系统软件开发工作,负责Soc芯片BringUp及系统软件开发,喜欢阅读内核源代码,在不断的学习和工作中深入理解内存管理,进程调度,文件系统,设备驱动等内核子系统。为了系统的安全性,Linux内核将各个用户进程运行在各自独立的虚拟地址空间,用户进程之间通过...
📅 2023-06-03 阅读全文 →

桃李春风一杯酒,江湖夜雨十年灯 - 老兵夜话DPDK

、作者简介作者Liam,海外老码农,对应用密码学、CPU微架构、高速网络通信等领域都有所涉猎。Linux阅码场原创文章20年弹指一挥间。技术在飞速的发展,从最初接触ixp1200 的耳目一新,到如今DPDK, smart NIC的 如火如荼。我也已经从昔日的青葱少年,变成了两鬓微霜的打工人。午夜梦回, 在感慨人生有如逆旅之余,心中也有很多想法不吐不快。前传...
📅 2023-06-03 阅读全文 →

Linux阅码场 - Linux内核月报(2020年11月)

关于Linux内核月报Linux阅码场Linux阅码场内核月报栏目,是汇总当月Linux内核社区最重要的一线开发动态,方便读者们更容易跟踪Linux内核的最前沿发展动向。限于篇幅,只会对最新技术做些粗略概括,技术细节敬请期待后续文章,也欢迎广大读者踊跃投稿为阅码场社区添砖加瓦。本期月报主要贡献人员:张健、廖威雄、chenwei、夏天往期链接:Linux阅码场...
📅 2023-06-03 阅读全文 →

谁在招人?(2020年12月) 免费的Linuxer招聘服务,持续更新...

做为一个垂直的Linux技术社区,Linux阅码场链接了数万Linux工程师。因为Linux行业偏小众,小编陆续收到很多企业渴求人才的需求,而很多Linuxer也想了解一线企业都有些什么需要,从而可以制定学习方向和发展规划,以免和企业脱节。因此Linux阅码场发起“谁在招人?”这么一个免费的Linuxer招聘服务,企业可以将招聘岗位张贴到网址https:/...
📅 2023-06-03 阅读全文 →

宋宝华: ARM64 Linux内核页表的块映射

内核文档Documentation/arm64/memory.rst描述了ARM64 Linux内核空间的内存映射情况,应该是此方面最权威文档。以典型的4K页和48位虚拟地址为例,整个内核空间的虚拟地址分布如下:从ffff000000000000到ffff7fffffffffff是一段针对物理地址的线性映射区,最大支持128TB的物理地址空间,这一段地址非...
📅 2023-06-03 阅读全文 →

宋宝华:Linux内核中用GFP_ATOMIC申请内存究竟意味着什么?

本文目的 本文补充校正一些Linux内核开发者关于GFP_ATOMIC的认知不完整的地方,阐述GFP_ATOMIC与free内存watermark的关系,并明确什么时候应该用GFP_ATOMIC申请内存。目录:1. GFP_ATOMIC vs. GFP_KERNEL2. 内存水位,PF_MEMALLOC和GFP_ATOMIC3. 何时使用GFP_...
📅 2023-06-03 阅读全文 →

Linux阅码场 - Linux内核月报(2020年12月)

关于Linux内核月报Linux阅码场Linux阅码场内核月报栏目,是汇总当月Linux内核社区最重要的一线开发动态,方便读者们更容易跟踪Linux内核的最前沿发展动向。限于篇幅,只会对最新技术做些粗略概括,技术细节敬请期待后续文章,也欢迎广大读者踊跃投稿为阅码场社区添砖加瓦。本期月报主要贡献人员:张健、廖威雄、chenwei、夏天往期链接:Linux阅码...
📅 2023-06-03 阅读全文 →

谁在招人?(2021年1月) 免费的Linuxer招聘服务,持续更新...

做为一个垂直的Linux技术社区,Linux阅码场链接了数万Linux工程师。因为Linux行业偏小众,小编陆续收到很多企业渴求人才的需求,而很多Linuxer也想了解一线企业都有些什么需要,从而可以制定学习方向和发展规划,以免和企业脱节。因此Linux阅码场发起“谁在招人?”这么一个免费的Linuxer招聘服务,企业可以将招聘岗位跟贴到网址https:/...
📅 2023-06-03 阅读全文 →

RISC-V架构系列之1:指令集和特权模式

作者按:在上个月的 os2atc会议 上,笔者作为Linux阅码场高级顾问分享了RISC-V对Linux对支持情况。会议后对分享内容再次做了迭代,期待和大家一起交流,进步。从2010年开始的RISC-V 项目,已经有10年的时间,RISC-V基金会先后批准了RISC-V Base ISA, Privileged Architecture,Processor...
📅 2023-06-03 阅读全文 →

宋宝华:谈一谈Linux让实时/高性能任务独占CPU的事

内容简介 本文主要讨论在高实时要求、高效能计算、DPDK等领域,Linux如何让某一个线程排他性独占CPU;独占CPU涉及的线程、中断隔离原理;以及如何在排他性独占的情况下,甚至让系统的timer tick也不打断独占任务,从而实现最低的延迟抖动。阅读本文大约需要20分钟。本文目录:1. 工程需求2. 用户态隔离3. 内核态隔离    ...
📅 2023-06-03 阅读全文 →

内存管理的另辟蹊径 - 腾讯云虚拟化开源团队为内核引入全新虚拟文件系统(dmemfs)

作者简介本文作者誉磊,腾讯云虚拟化开源团队高级研发工程师。Linux内存管理概述我们知道linux系统内核的主要工作之一是管理系统中安装的物理内存,系统中内存是以page页为单位进行分配,每个page页的大小是4K,如果我们需要申请使用内存则内核的分配流程是这样的,首先内核会为元数据分配内存存储空间,然后才分配实际的物理内存页,再分配对应的虚拟地址空间和更...
📅 2023-06-03 阅读全文 →

一次解决Linux内核内存泄漏实战全过程

什么是内存泄漏:程序向系统申请内存,使用完不需要之后,不释放内存还给系统回收,造成申请的内存被浪费. 发现系统中内存使用量随着时间的流逝,消耗的越来越多,例如下图所示:接下来的排查思路是:1.监控系统中每个用户进程消耗的PSS (使用pmap工具(pmap pid)).PSS:按比例报告的物理内存,比如进程A占用20M物理内存,进程B和进程A共享...
📅 2023-06-03 阅读全文 →

李浩: 再谈 volatile 关键字

本文内容:volatile关键字的含义,它与barrier()和编译乱序的关系,以及内核里面READ_ONCE()、WRITE_ONCE()的实现原理。作者简介:李浩,就职于南京富士通南大软件,熟悉 x86 架构,对内存和文件系统有些研究。最常见的用法如果一个变量被声明为 volatile 的,就是告诉编译器即使我们当前编译的代码不会修改...
📅 2023-06-03 阅读全文 →

宋宝华:论一切都是文件之匿名inode

01唯有文件得人心当一个女生让你替她抓100只萤火虫,她一定不是为了折磨你,而是因为她爱上了你。当你们之间经历了无数的恩恩怨怨和彼此伤害,她再次让你替她抓100只萤火虫,那一定是因为她还爱着你。为什么?因为这就是套路,是在下偶尔瞟一眼古装肥皂剧总结出来的套路。Linux里面最大的套路,就是“一切都是文件”。爱一个人,就为她捉萤火虫;做一件事,就让它成为一个...
📅 2023-06-03 阅读全文 →

甄建勇: 芯片架构方法学

作者简介 甄建勇,高级架构师(某国际大厂),十年以上半导体从业经验。主要研究领域:CPU/GPU/NPU架构与微架构设计。感兴趣领域:经济学、心理学、哲学。欢迎赐稿“Linux阅码场”,投稿请扫码微信联系“小月”,稿费300-500RMB(已经以任何形式,如公众号、博客、网站发表过的文章,请勿投稿):第一篇 回到定义 让我们先从一个小游戏开始,&...
📅 2023-06-03 阅读全文 →

孙雷: 虚拟化之——virtio-net基础篇

作者简介孙雷,曾在联想研究院和NEC研究院工作10年,任资深研究员,研发经理。负责云计算底层技术,包括软件定义网络(SDN),云网络(OpenStack),数据面加速等等。2020年起开始创业,北京守志科技有限公司创始人。欢迎赐稿“Linux阅码场”,投稿请扫码微信联系“小月”,稿费300-500RMB(已经以任何形式,如公众号、博客、网站发表过的文章,请...
📅 2023-06-03 阅读全文 →

尹忠凯: 针对Flash的Linux UBI子系统代码深度分析

01 作者简介尹忠凯, Linux内核爱好者,2017年6月本科毕业杭州电子科技大学。现在就职于北京地平线信息技术有限公司,任系统软件工程师,主要负责SPI, I2C, OSPI, DMA等模块bring up与调试工作02 文章目录UBI简介flash存储的内容代码实现    将flash数据读...
📅 2023-06-03 阅读全文 →

宋宝华:为什么numactl内存绑定对代码段不起作用

本文目录 阅读本文大约需要10分钟numactl内存绑定中代码段的问题代码段为什么没有进入指定的numa节点内核内存管理一个改进方向建议numactl内存绑定中代码段的问题在一个典型的NUMA架构Linux服务器中,我们常常使用类似numactl -N 1 -m 1 ./a.out类似的命令来绑定一定进程的memory,比如上面的例子,进程的memory被...
📅 2023-06-03 阅读全文 →

Linux 5.13-rc1发布,初步支持Apple M1芯片

万众期待的Linux对Apple M1的支持终于有了一个初步的结果,最新发布的5.13-rc1开始初步支持M1。这一组patch主要来自Hector Martin:Hector Martin “marcan”领导了一个叫做Asahi Linux的项目,专门用于对MAC提供Linux支持:https://asahilinux.org/根据cover-lett...
📅 2023-06-03 阅读全文 →