![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux3.10
文章平均质量分 83
馒头2870
这个作者很懒,什么都没留下…
展开
-
【linux kernel 3.10】查看文件内容是否全部被page cache所缓存
前言bpf提供了一种方法,可以使用户在内核函数运行的某个阶段(如运行前和运行后)插入一段用户指定的程序并运行。这篇文章实现了一个bpf小程序,可以查看某个文件是否全部被缓存到page cache中,并打印出文件被缓存了多少页和文件一共有多少页1. 安装bcc以centos发行版为例,直接yum install bcc -y即可其他系统请参见INSTALL2. bpf程序源码#!/usr/bin/env python3#coding=utf-8from __future__ import p原创 2021-10-06 15:06:08 · 449 阅读 · 0 评论 -
【linux3.10】【nfs】使文件系统可导出
原文链接:Exporting概述 所有的文件系统操作都需要一个dentry(或者两个)作为起始点。本地应用程序通过打开的文件描述符或 cwd/root 对合适的 dentry 进行引用计数保留。然而,通过远程文件系统协议(如 NFS)访问文件系统的远程应用程序可能无法保存这样的引用,因此需要一种不同的方式来引用特定的 dentry。由于替代的引用形式需要在重命名、截断和服务器重启时保持稳定(除其他外,尽管这些往往是最有问题的),因此没有像“文件名”这样的简单答案。 此处讨论的机制允许每个文件系统翻译 2021-09-05 17:50:00 · 387 阅读 · 0 评论 -
【linux3.10】从内存反向映射(reverse mapping)的角度来看vma的组织和使用
前言准备名词解释虚拟内存vma 假如你来设计linux内核,你会如何管理有限的内存呢?最直观最简单的一种方法是,只要有人(进程)申请内存资源,你就直接给它。但这样有个问题,如果某些人(进程)申请了很多内存但却不使用,那这些内存岂不是被白白浪费掉了?于是你想了个办法,有人申请内存时,先拿小本本记录下来某人(进程)申请了多大内存,但先不给他使用,防止他拿了内存却不干事,等到他真的要用的时候,再根据本本上的记录来给他实际分配内存。这样,虚拟内存的概念就有了,你在小本本上的每一条记录,都是一块虚拟内存。原创 2021-07-29 23:30:03 · 844 阅读 · 0 评论 -
【linux3.10】内存反向映射中的anon_vma是per process的吗?
前言在学习虚拟内存的反向映射部分时,遇到了struct anon_vma这个结构,在网上看了很多篇帖子,都说是per process的,但是自己阅读代码过程发现逻辑似乎并不是这样,一时就很奇怪,是帖子描述的有问题,还是我没有理解透彻?实践出真知,与其在代码上纠结半天,不如根据看代码运行结果,让我们进入内核这个黑箱子,来看看它究竟如何运作工具准备我使用的是bcc这个工具,使用起来非常简单,在centos下只要yum install bcc-tools -y,再加上可以使用python,就可以使用bcc这原创 2021-07-20 02:28:22 · 454 阅读 · 1 评论 -
【linux3.10】一些学习资源整理
此文仅为记录一些学习过程中很有帮助的帖子,以留作记录和大家参考内存管理虚拟内存反向映射Linux内存逆向映射(reverse mapping)技术的前世今生内存回收(匿名页反向映射)linux内存管理-反向映射linux-weekly-news:Memory_management-Object-based_reverse_mapping...原创 2021-07-15 22:02:25 · 125 阅读 · 0 评论 -
【linux3.10】从mmap的实现来看vma的组织和使用
准备概念明晰mmap是linux提供的一种共享内存的方案,用户可以把文件映射进内核,内核返回一个地址,用户对这个地址进行操作,就等于直接对文件进行读写,优点是省去了常规读写文件的把用户态数据拷贝进内核的开销,并且多个进程可以映射同一个文件,也是一种多进程通信的方案。关于共享内存,可以参阅宋宝华:世上最好的共享内存(Linux共享内存最透彻的一篇)vma,全称virtual_memory_area,直译过来就是虚拟内存区域。我们知道,linux是用虚拟内存管理进程的,进程申请内存时内核并不会直接分配物原创 2021-07-10 16:49:14 · 1073 阅读 · 0 评论