关闭

Linux阅码场

所属频道 嵌入式 公众号精选
  • Linux overlayfs文件系统介绍

    OverlayFS,顾名思义是一种堆叠文件系统,可以将多个目录的内容叠加到另一个目录上。OverlayFS并不直接涉及磁盘空间结构,看起来像是将多个目录的文件按照规则合并到同一个目录。且对多个源目录具体使用文件系统类型没有要求,即使各个源目录的文件系统类型不同也不影响使用。一、挂...

    嵌入式
    2021-10-18
  • 深入理解排序算法

    我们先来说一说什么是排序、为什么要排序。什么是排序,这个很简单,就是把无序的东西按照一定的规则顺序排列成升序或者降序。为什么要排序,有两个原因,一是为了方便后面的查找,如果没有排序的话只能进行线性查找,时间复杂度是O(n),如果排序了就可以进行二分查找,时间复杂度是O(logn),复杂度一下子就大大降低了。我们来说明一下这两种复杂度的差别有多么悬殊(虽然用词错误,但是这么用确实很符合气氛),假设n是10亿的话,O(n)还是10亿,而O(logn)是30多(以2为底,假设系数是1),30多和10亿比都可以忽略不计了。二是为了显示的时候按照顺序显示,人类的习惯就是喜欢看有序的东西。

  • 深入理解Linux进程间通信

    我们先拿人来做个类比,人与人之间为什么要通信,有两个原因。首先是因为你有和对方沟通的需求,如果你都不想搭理对方,那就肯定不用通信了。其次是因为有空间隔离,如果你俩在一起,对方就站在你面前,你有话直说就行了,不需要通信。此时你非要给对方打个电话或者发个微信,是不是显得非常奇怪、莫名其妙。如果你俩不在一块,还有事需要沟通,此时就需要通信了。通信的方式有点烽火、送信鸽、写信、发电报、打电话、发微信等。采取什么样的通信方式跟你的需求、通信量的大小、以及客观上能否实现有关。

  • 阅码场训练营:ARM架构与调试调优

    我是从ARM7TDMI开始接触ARM架构的,当时很幸运有DSP的学习基础,同时遇到了把ARM架构和操作系统结合讲解的书籍。这样,结合自己不断的实践,一直可以跟上ARM架构的演进。长期的跟踪也让我容易能看到ARM的趋势,我从Linaro在做ARM NEON指令集优化关注到Linaro,后面持续的关注以Linaro为首ARM生态组织的发展,几年后的2017年,我作为演讲人分享了ARM架构下的一个TLB性能优化方案,实现了从关注到深度参与到过程。

  • 深入理解Linux进程管理

    进程是程序的执行过程。程序是静态的,是存在于外存之中的,电脑关机后依然存在。进程是动态的,是存在于内存之中的,是程序的执行过程,电脑关机后就不存在进程了。进程的内容来源于程序,进程的启动过程就是把程序从外存加载到内存的过程。程序文件是有格式的,UNIX-Like操作系统的通用程序文件格式是ELF。程序文件是从源码文件编译过来的,源码文件很多是用C或者C++书写的。

  • 理解Linux内核抢占模型(最透彻一篇)

    用案例让你深入理解3个抢占模型的区别。

  • 深入理解红黑树

    大家都听说过红黑树,也都知道红黑树很厉害,是计算机里面评价非常高的数据结构。但是每当想学习红黑树的时候,却总是找不到通俗易懂很好理解的学习资料。很多书上上来就是红黑树的定义,然后就是红黑树的实现,直接就把人给整晕了。光看红黑树的定义就有5条,为什么要有5条定义,为什么要这么定义,这么定义是什么意思,光定义都让人懵了,更别说实现了。我看最近抖音上有很多人在讲底层逻辑,只要你掌握了底层逻辑,其它的问题都不在话下,今天我们也来讲一讲红黑树的底层逻辑。在讲之前我们先介绍一下红黑树的诞生,红黑树是Rudolf Bayer在1972年首先提出来的,不过当时并不叫红黑树,而是叫对称二叉 B 树(symmetric binary B-trees)。后来在1978年Leo J. Guibas 和 Robert Sedgewick 对此数据结构进行了修改和完善,并重新命名为红黑树。为什么叫红黑树呢?有两种说法,因为红黑树中要对节点连接做两种颜色的区分,一说是因为当时的书写笔只有红色和黑色两种颜色,另一说是当时的打印机只有红和黑两种颜色。

  • 以Ftrace为抓手打通软硬件任督二脉:IO和中断

    在我仔细研究Linux内核中的ftrace之后,发现ftrace中的各个tracers的作用一直被人们严重低估了, 比如我们会花了大量的时间去理解Linux内核中的一块代码,然后猜测可能的执行流, 但是ftrace会首先直接告诉你整个执行流,然后你再去查看代码,这样无论从效率和准确度来讲都是极大的提升。

  • Intel IOMMU Introduction

    对于Intel的硬件辅助虚拟化方案而言,核心的两大技术分别是VT-x和VT-d。

  • PODS峰会笔记: 浅谈手机性能的可观测性&揭秘ARM架构对Linux调测特性的支持(Day3)

    手机上的性能指标是综合的变化,由上图可以看的出来手机更关注人跟机器的交互这,云系统则是比较关注机器跟机器的交互。手机系统比较特别的地方在于资源都是比较受限,例如 : 电量,性能…因此针对用户体验是需要特别庖丁解牛来建立指标。

  • 打通IO栈:一次编译服务器性能优化实战

    自动化提交代码检查的压力,已经明显超过了通用服务器的负载。

  • Linux Kernel运行时安全检测之LKRG-原理篇

    虽然经常更新内核版本通常被认为是一种安全最佳实践,但由于各种原因,尤其是生产环境中的服务器无法这样操作。这就意味着在机器运行时,会存在利用已知的漏洞(当然,还会有一些未知的漏洞)来进行攻击的情况,所以需要某种方法来检测和阻止对这些漏洞的利用,这正是Linux Kernel Runtime Guard(Linux内核运行时保护LKRG)诞生目的所在。

  • 使用Ftrace做性能分析和性能优化

    在我仔细研究Linux内核中的ftrace之后,发现ftrace中的各个tracers的作用一直被人们严重低估了, 比如我们会花了大量的时间去理解Linux内核中的一块代码,然后猜测可能的执行流, 但是ftrace会首先直接告诉你整个执行流,然后你再去查看代码,这样无论从效率和准确度来讲都是极大的提升。

  • 深入理解Linux RPC - 从Linux RPC到Android Binder

    课程简介随着项目复杂度的增加,现实中的很多项目都会涉及到远程过程调用(RPC)的问题,这些远程过程也许是同一设备上的不同进程,也许分属于物理上分割的不同设备。如何灵活高效地实现这些远程调用,是很多项目都会面临的挑战。本课程首先通过对远程过程调用一般性原理的解释和基本框架的介绍,使...

    嵌入式
    2021-12-07
  • 深入理解Linux文件系统之ext2路径名查找

    本文以ext2文件系统为例来剖析一个真实的文件系统如何查找文件,这对于深入理解文件系统至关重要。1.准备文件系统镜像所用工具:dd、mkfs.ext2、hexdump、dumpe2fs、mount等工具1)制作100k大小镜像文件$ dd if=/dev/zero of=ext2...

    嵌入式
    2021-08-19