Linux内核热补丁可以修复正在运行的linux内核,是一种维持线上稳定性不可缺少的措施,现在比较常见的比如kpatch和livepatch。内核热补丁可以修复内核中正在运行的函数,用已修复的函数替换掉内核中存在问题的函数从而达到修复目的。函数替换的思想比较简单,就是在执行旧函数...
这篇文章想分享Top99超时排查的思路和在工作中主动向身边的同事学习的一种意识背景介绍我们的系统Top90稳定在19ms左右,Top99稳定在46ms左右,Top999稳定在50ms左右,监控报警主要用的PrometheusGrafana自研报警平台报警晚上和小伙伴们出去吃饭了,...
因为图片比较大,微信公众号上压缩的比较厉害,所以很多细节都看不清了,我单独传了一份到github上,想要原版图片的,可以点击下方的阅读原文,或者直接使用下面的链接,来访问github:https://github.com/wangyuntao/linux-kernel-illus...
文件系统本文继续来看的文件系统部分,将文件系统的设计分为7层:磁盘缓存区日志目录路径文件系统调用,磁盘、缓存区、日志三个部分在前文已经说了,本文接着讲述,目录,路径三个层次。这部分的理论知识可以参考文章:捋一捋文件系统。本文直接来看xv6的文件系统这部分是如何实现的。文件系统布局再来系统的看看xv6文件系统的布局图:这个图与文档给出的布局图有些不一样,主要是日志区的位置变化了。文档给出的布局图日志区位于文件系统的末尾,但是根据源码来看日志区应该是位于超级块后面的。前文直接用的文档中的图,应该是有误的,实在抱歉。我看了几个版本的源码和文档,源码是日志区都是安排在超级块后面,而文档的布局图描述的是...
首先祝大家中秋节快乐,阖家欢乐,节日之余记得学习哟!Linux中有后备文件支持的页称为文件页,如属于进程的代码段、数据段的页,内存回收的时候这些页面只需要做脏页的同步即可(干净的页面可以直接丢弃掉)。反之为匿名页,如进程的堆栈使用的页,内存回收的时候这些页面不能简单的丢弃掉,需要交换到交换分区或交换文件。本文中,主要分析匿名页的访问将发生哪些可能颠覆我们认知的"化学反应"。1.实例代码首先以一个简单的示例代码来说明:#include #include #include #include #include #define MAP_SIZE (100 * 1024 * 1024)int main(...
近日,开源物联网数据基础设施软件供应商杭州映云科技有限公司(EMQ映云科技)与物联网操作系统厂商上海睿赛德电子科技有限公司(RT-Thread)签署技术战略合作协议,双方将结合各自技术优势,面向开发者和企业用户在ICT、电力能源、 金融支付、车联网、工业互联网领域推出多个合作方案,共建全球化的物联网软件生态。EMQ映云科技是一家开源物联网数据基础设施软件供应商,交付全球领先的开源MQTT消息服务器和流处理数据库,提供基于云原生边缘计算技术的一站式解决方案,实现企业云边端实时数据连接、移动、处理与分析。作为目前全球物联网市场广泛应用的MQTT消息服务器,EMQ映云科技的核心产品EMQX具备高并发...
在Linux系统中作为一个普通线程是非常苦逼的。不仅NMI、硬中断、软中断可以打断它,甚至其它普通线程也可以来打断干扰到它的运行。如果没有这些打断事件,一个普通线程执行while循环,可以high过天际。这些打断事件对一个普通线程来说,就相当于噪音一样的存在。从Linux5.14...
毕昇JDK82021年第一个重要版本8u282已在2021.3.30日发布,请参考 2021年毕昇JDK8、JDK11第一个重要发布来了!,其中KAEProvider作为新特性为用户提供了一种利用鲲鹏硬件来进行加解密的加密实现,为了使用户更好的理解其实现细节和使用该特性,本文对K...
因为图片比较大,微信公众号上压缩的比较厉害,所以很多细节都看不清了,我单独传了一份到github上,想要原版图片的,可以点击下方的阅读原文,或者直接使用下面的链接,来访问github:https://github.com/wangyuntao/linux-kernel-illus...
日志本文来聊聊文件系统中的日志系统,来看一个简单的日志系统是如何实现的。本文是接着前面的xv6系列,用到的一些前导知识不再说明,没看的可以先看一下。文件系统设计中通常要考虑错误恢复,这是因为文件系统会涉及对磁盘的多次写操作,如果在写的过程中系统崩溃了,就会使得磁盘上的文件系统处于...
一个最典型的要使用pu_relax()锁的场景是忙等待(也就是死循环等一个事情的发生),在内核里面有大量的代码,比如等寄存器状态:比如做延迟:简单来说,你如果在内核里面写了忙等待的代码,都没有在循环里面加个cpu_relax()的话,这基本上是一种比较幼稚的表现。根据内核文档vo...
跟踪诊断技术SIG致力于为操作系统生态提供系统性,工具化,并以数据为支撑的发现、跟踪和诊断问题的能力。SIG目标:为龙蜥社区(OpenAnolis)开源操作系统,提供一个全栈覆盖内核与核心组件的跟踪和诊断工具,增强龙蜥社区(OpenAnolis)全栈的可观察性和可靠性。欢迎更多开...