草庐IT

内核解读之内存管理(0)开篇介绍

文章目录1、开篇介绍2、基本概念1、开篇介绍内存管理是linux内核比较重要的一个模块,其实也是任何操作系统里的一个核心专题。在实际的开发工作中,经常会遇到和内存牵扯的问题,比如内存泄露啊,内存越界等。如果你的技术仅仅只是停留于业务层面,对内核的东西一无所知,遇到这些问题往往是束手无策的。我们从事嵌入式linux开发的,应用程序跑在linux操作系统上,你总不能对程序的运行载体一无所知吧。网上有很多关于内存管理的博客,零零散散,对对错错,并不系统,我在阅读了大概上百篇博客之后,结合最新版本(6.x)的内核源码,写了这个系列的文章。我喜欢研究新的内核,都2023年了,还有人抱着0.11版本或者是

内核解读之内存管理(0)开篇介绍

文章目录1、开篇介绍2、基本概念1、开篇介绍内存管理是linux内核比较重要的一个模块,其实也是任何操作系统里的一个核心专题。在实际的开发工作中,经常会遇到和内存牵扯的问题,比如内存泄露啊,内存越界等。如果你的技术仅仅只是停留于业务层面,对内核的东西一无所知,遇到这些问题往往是束手无策的。我们从事嵌入式linux开发的,应用程序跑在linux操作系统上,你总不能对程序的运行载体一无所知吧。网上有很多关于内存管理的博客,零零散散,对对错错,并不系统,我在阅读了大概上百篇博客之后,结合最新版本(6.x)的内核源码,写了这个系列的文章。我喜欢研究新的内核,都2023年了,还有人抱着0.11版本或者是

LINUX提权之内核漏洞提权篇

本文正在参加「金石计划.瓜分6万现金大奖」前言在渗透过程中,有时利用某些漏洞可以获取一个低权限的用户,然后想办法提权,提升到root用户权限,从而控制整个系统。在获取到低权限shell后,通常会检查操作系统的发行版本、内核版本,老版本的系统可能会存在一些漏洞,于是我们可以利用这些版本漏洞进行提权。下面给大家带来的是一些内核提权的例子。CVE-2016-5195内核漏洞因为涉及的范围比较多,作为入门就以最著名的CVE-2016-5195(脏牛漏洞)来作为演示:dirtycow-exp:github.com/gbonacini/C…dirtycow-检测脚本:github.com/aishee/s

LINUX提权之内核漏洞提权篇

本文正在参加「金石计划.瓜分6万现金大奖」前言在渗透过程中,有时利用某些漏洞可以获取一个低权限的用户,然后想办法提权,提升到root用户权限,从而控制整个系统。在获取到低权限shell后,通常会检查操作系统的发行版本、内核版本,老版本的系统可能会存在一些漏洞,于是我们可以利用这些版本漏洞进行提权。下面给大家带来的是一些内核提权的例子。CVE-2016-5195内核漏洞因为涉及的范围比较多,作为入门就以最著名的CVE-2016-5195(脏牛漏洞)来作为演示:dirtycow-exp:github.com/gbonacini/C…dirtycow-检测脚本:github.com/aishee/s

FFmpeg源码走读之内存管理模型

1FFmpeg内存管理原理数据包管理过程中当数据转移到新的数据包时存在两种操作一种是数据包之间相互独立,当新创建一份数据包时,需要将原来的数据重新申请一个数据空间并且将数据拷贝到新的数据包中,具体过程如下图所示。这种数据包的管理优势是在于数据之间相互独立,不会存在数据干扰的问题,但是缺点也很明显就是消耗的内存大大增加,同时数据之间的拷贝也是耗时的。另一种内存管理的方式是,只新增数据包对象,用于管理数据对象,对于数据本身采用同一个内存空间进行管理,当所有的内存引用为0时释放这片内存空间,具体如下图所示。这种方式的优势就是数据占用内存最小化,同时大大减少数据拷贝的耗时问题;缺点是增加了内存管理的难

FFmpeg源码走读之内存管理模型

1FFmpeg内存管理原理数据包管理过程中当数据转移到新的数据包时存在两种操作一种是数据包之间相互独立,当新创建一份数据包时,需要将原来的数据重新申请一个数据空间并且将数据拷贝到新的数据包中,具体过程如下图所示。这种数据包的管理优势是在于数据之间相互独立,不会存在数据干扰的问题,但是缺点也很明显就是消耗的内存大大增加,同时数据之间的拷贝也是耗时的。另一种内存管理的方式是,只新增数据包对象,用于管理数据对象,对于数据本身采用同一个内存空间进行管理,当所有的内存引用为0时释放这片内存空间,具体如下图所示。这种方式的优势就是数据占用内存最小化,同时大大减少数据拷贝的耗时问题;缺点是增加了内存管理的难

DFA算法之内容敏感词过滤

DFA算法是通过提前构造出一个树状查找结构,之后根据输入在该树状结构中就可以进行非常高效的查找。设我们有一个敏感词库,词酷中的词汇为:我爱你我爱他我爱她我爱你呀我爱他呀我爱她呀我爱她啊那么就可以构造出这样的树状结构:设玩家输入的字符串为:白菊我爱你呀哈哈哈我们遍历玩家输入的字符串str,并设指针i指向树状结构的根节点,即最左边的空白节点:str[0]=‘白’时,此时tree[i]没有指向值为‘白’的节点,所以不满足匹配条件,继续往下遍历str[1]=‘菊’,同样不满足匹配条件,继续遍历str[2]=‘我’,此时tree[i]有一条路径连接着‘我’这个节点,满足匹配条件,i指向‘我’这个节点,然

DFA算法之内容敏感词过滤

DFA算法是通过提前构造出一个树状查找结构,之后根据输入在该树状结构中就可以进行非常高效的查找。设我们有一个敏感词库,词酷中的词汇为:我爱你我爱他我爱她我爱你呀我爱他呀我爱她呀我爱她啊那么就可以构造出这样的树状结构:设玩家输入的字符串为:白菊我爱你呀哈哈哈我们遍历玩家输入的字符串str,并设指针i指向树状结构的根节点,即最左边的空白节点:str[0]=‘白’时,此时tree[i]没有指向值为‘白’的节点,所以不满足匹配条件,继续往下遍历str[1]=‘菊’,同样不满足匹配条件,继续遍历str[2]=‘我’,此时tree[i]有一条路径连接着‘我’这个节点,满足匹配条件,i指向‘我’这个节点,然

如何使用现有工具三分钟之内从无到有设计一款滤波器?

写在前面前些天看了一本漫画,里面一个老技术人员的话,让我不自觉的想到很多东西。是啊,有时候我们自认为的自我实现,其实就是在凑这个时代的热闹,每个时代都有自己的热闹,个人之于时代不过是浪花一朵朵。但这并不能作为我们不去凑这个热闹的理由,你去凑时代的这个热闹,这个时代必会给予你奖励,或早或晚,或大或小,终会来到。这周给大家分享,前段时间设计滤波器时碰到的一些问题和解决办法,希望对大家有帮助。完整的流程图如下:什么是滤波器?看过我以前博客的都知道,我研究方向是研究谐波的,一个人类靠肉体看不到也摸不着的东西,但它确实存在。具体什么是谐波,感兴趣的同学可以下去自己了解,这里我们只需要知道,这玩意有好处,

如何使用现有工具三分钟之内从无到有设计一款滤波器?

写在前面前些天看了一本漫画,里面一个老技术人员的话,让我不自觉的想到很多东西。是啊,有时候我们自认为的自我实现,其实就是在凑这个时代的热闹,每个时代都有自己的热闹,个人之于时代不过是浪花一朵朵。但这并不能作为我们不去凑这个热闹的理由,你去凑时代的这个热闹,这个时代必会给予你奖励,或早或晚,或大或小,终会来到。这周给大家分享,前段时间设计滤波器时碰到的一些问题和解决办法,希望对大家有帮助。完整的流程图如下:什么是滤波器?看过我以前博客的都知道,我研究方向是研究谐波的,一个人类靠肉体看不到也摸不着的东西,但它确实存在。具体什么是谐波,感兴趣的同学可以下去自己了解,这里我们只需要知道,这玩意有好处,