当前位置: 首页 > news >正文

实验八 Linux虚拟内存 实验9.1:统计系统缺页次数成功案例

运行环境:

  1. VMware17.5.1 build-23298084
  2. Ubuntu 16.04LTS ubuntu版本下载地址
  3. Linux-4.16.10 linux历史版本下载地址
  4. 虚拟机配置:硬盘一般不少于40G就行

内核版本不同内核文件代码也有出入,版本差异性令c文件要修改,如若要在linux6.7.8运行,则

static struct file_operations my_fops = {

    .owner = THIS_MODULE,

    .open = my_proc_open,

    .release = single_release,

    .read = seq_read,

    .llseek = seq_lseek,

};

要修改成

static const struct proc_ops my_fops = {

    //.proc_owner = THIS_MODULE,

    .proc_open = my_proc_open,

    .proc_release = single_release,

    .proc_read = seq_read,

    .proc_lseek = seq_lseek,

};

同时Makefile文件也要进行修改Tab缩进等等。之前试图用VMware15.5、虚拟机配置两个双核CPU、内存10G、Ubuntu22版本与linux6.7.8编译,一直出现卡死。降级linux4.16.10提示客户机已禁用CPU,请关闭或重置客户机,多种方法尝试均无解。最后把VMware卸载重装、虚拟机配置调低才顺利编译。

是
之前内核文件按实验要求修改后,linux6.7.8成功编译的一次,但是insmod readpfcount.ko时卡死

遇到的问题:

  1. 断电重启导致vmdk文件损坏虚拟机无法打开 :解决办法参考Ubuntu意外断电vmdk损坏--打不开磁盘“***.vmdk”或它所依赖的某个快照磁盘。
  2. 提示客户机已禁用CPU,请关闭或重置客户机:各种方法试过都无效,我的办法是把虚拟机配置调低,重新新建一个虚拟机

  3. 解压缩、复制粘贴文件提示permission denied:解决方法参考解决Ubuntu系统移动或复制文件权限不够Ubuntu20.04系统下进行复制粘贴文件显示没有权限的解决办法

  4. sudo make完成后sudo make modules卡死:完成sudo make后先保存快照,然后卡死的话先等一会,如果等了较长时间直接重启,调整虚拟机内存等配置,恢复快照。

  5. 卸载旧VMware并安装另一个版本Vmware:VMware如何彻底卸载删除干净详细教程

有参考意义的文章:

  1. OS实验之玩转linux内核
  2. 高版本内核编译低版本内核全过程

附上readpfcount.c源码:

#include <linux/module.h>

#include <linux/sched.h>

#include <linux/uaccess.h>

#include <linux/proc_fs.h>

#include <linux/fs.h>

#include <linux/mm.h>

#include <linux/seq_file.h>

#include <linux/slab.h>

extern unsigned long pfcount;

static int my_proc_show(struct seq_file* m, void* v) {

    seq_printf(m, "The pfcount is %ld and jiffies is %ld!\n", pfcount,jiffies);

    return 0;

}

static int my_proc_open(struct inode* inode, struct file* file) {

    return single_open(file, my_proc_show, NULL);

}

static struct file_operations my_fops = {

    .owner = THIS_MODULE,

    .open = my_proc_open,

    .release = single_release,

    .read = seq_read,

    .llseek = seq_lseek,

};

static int __init my_init(void) {

    struct proc_dir_entry* file = proc_create("readpfcount",0x0644, NULL,&my_fops);

    if (!file) {

         printk("proc_create failed.\n");

         return -ENOMEM;

    }

    return 0;

}

static void __exit my_exit(void) {

    remove_proc_entry("readpfcount", NULL);

}

module_init(my_init);

module_exit(my_exit);

MODULE_LICENSE("GPL");

Makefile文件:

 ifneq ($(KERNELRELEASE),)
    obj-m := readpfcount.o
else
    KDIR := /lib/modules/$(shell uname -r)/build
    PWD := $(shell pwd)
    default:
                $(MAKE) -C $(KDIR) M=$(PWD) modules
    clean:
                $(MAKE) -C $(KDIR) M=$(PWD) clean
endif

相关文章:

实验八 Linux虚拟内存 实验9.1:统计系统缺页次数成功案例

运行环境&#xff1a; VMware17.5.1 build-23298084Ubuntu 16.04LTS ubuntu版本下载地址Linux-4.16.10 linux历史版本下载地址虚拟机配置&#xff1a;硬盘一般不少于40G就行 内核版本不同内核文件代码也有出入&#xff0c;版本差异性令c文件要修改&#xff0c;如若要在linux6.7…...

SD-WAN提升Microsoft 365用户体验

随着数字化时代的到来&#xff0c;SaaS应用如Microsoft 365已经成为各类企业的主流选择。在这一趋势下&#xff0c;企业需要以更加灵活、高效的方式使用Microsoft 365&#xff0c;以满足日益增长的业务需求。而传统的网络基础设施可能无法满足这一需求&#xff0c;因此&#xf…...

C#中的异步编程模型

在C#中&#xff0c;async和await关键字是用于异步编程的重要部分&#xff0c;它们允许你以同步代码的方式编写异步代码&#xff0c;从而提高应用程序的响应性和吞吐量。这种异步编程模型在I/O密集型操作&#xff08;如文件读写、网络请求等&#xff09;中特别有用&#xff0c;因…...

博通Broadcom (VMware VCP)注册约考下载证书操作手册

博通Broadcom(VMware) CertMetrics 注册约考下载证书等操作指导手册&#xff08;发布日期&#xff1a;2024-5-11&#xff09; 目录 一、原 Mylearn 账号在新平台的激活… 1 二、在新平台查看并下载证书… 5 三、在新平台注册博通账号… 6 四、在新平台下注册考试… 10 一、原…...

Xilinx FPGA底层逻辑资源简介(1):关于LC,CLB,SLICE,LUT,FF的概念

LC&#xff1a;Logic Cell 逻辑单元 Logic Cell是Xilinx定义的一种标准&#xff0c;用于定义不同系列器件的大小。对于7系列芯片&#xff0c;通常在名字中就已经体现了LC的大小&#xff0c;在UG474中原话为&#xff1a; 对于7a75t芯片&#xff0c;LC的大小为75K&#xff0c;6输…...

SSH(安全外壳协议)简介

一、引言 SSH&#xff08;Secure Shell&#xff09;是一种加密的网络传输协议&#xff0c;用于在不安全的网络中提供安全的远程登录和其他安全网络服务。SSH最初由芬兰程序员Tatu Ylnen开发&#xff0c;用于替代不安全的telnet、rlogin和rsh等远程登录协议。通过SSH&#xff0…...

JavaScript异步编程——08-Promise的链式调用【万字长文,感谢支持】

前言 实际开发中&#xff0c;我们经常需要先后请求多个接口&#xff1a;发送第一次网络请求后&#xff0c;等待请求结果&#xff1b;有结果后&#xff0c;然后发送第二次网络请求&#xff0c;等待请求结果&#xff1b;有结果后&#xff0c;然后发送第三次网络请求。以此类推。…...

现代制造之数控机床篇

现代制造 有现代技术支撑的制造业&#xff0c;即无论是制造还是服务行业&#xff0c;添了现代两个字不过是因为有了现代科学技术的支撑&#xff0c;如发达的通信方式&#xff0c;不断发展的互联网&#xff0c;信息化程度加强了&#xff0c;因此可以为这两个行业增加了不少优势…...

Rust的协程机制:原理与简单示例

在现代编程中&#xff0c;协程&#xff08;Coroutine&#xff09;已经成为实现高效并发的重要工具。Rust&#xff0c;作为一种内存安全的系统编程语言&#xff0c;也采用了协程作为其并发模型的一部分。本文将深入探讨Rust协程机制的实现原理&#xff0c;并通过一个简单的示例来…...

学习成长分享-以近红外光谱分析学习为例

随着国家研究生招生规模的扩大&#xff0c;参与或接触光谱分析方向的研究生日益增多&#xff0c;甚至有部分本科生的毕业设计也包含以近红外光谱分析内容。基于对近红外光谱分析的兴趣&#xff0c;从2018年开始在CSDN博客&#xff08;陆续更新自己学习的浅显认识&#xff0c;到…...

Linux makefile进度条

语法 在依赖方法前面加上就不会显示这一行的命令 注意 1.make 会在当前目录下找名为“makefile” 或者 “Makefile” 的文件 2.为了生成第一依赖文件&#xff0c;如果依赖文件列表有文件不存在&#xff0c;则会到下面的依赖关系中查找 3..PHONY修饰的依赖文件总是被执行的 …...

Ollama 可以设置的环境变量

Ollama 可以设置的环境变量 0. 引言1. Ollama 可以设置的环境变量 0. 引言 在Ollama的世界里&#xff0c;环境变量如同神秘的符文&#xff0c;它们是控制和定制这个强大工具的关键。通过精心设置这些环境变量&#xff0c;我们可以让Ollama更好地适应我们的需求&#xff0c;就像…...

基于Python+Django+MySQL实现Web版的增删改查

Python Web框架Django连接和操作MySQL数据库学生信息管理系统(SMS),主要包含对学生信息增删改查功能&#xff0c;旨在快速入门Python Web。 开发环境 开发工具&#xff1a;Pycharm 2020.1开发语言&#xff1a;Python 3.8.0Web框架&#xff1a;Django 3.0.6数据库&#xff1a;…...

Map、Set和Object的区别

Set ES6提供了新的数据结构Set&#xff0c;类似于数组&#xff0c;但成员值是唯一的&#xff0c;没有重复的值 Set本身是一个构造函数(要 new)&#xff0c;用来生成Set数据结构 Set 对象允许你储存任何类型的唯一值&#xff0c;无论是原始值或者是对象引用 每个值在 Set 中…...

Web 安全之盗链(Hotlinking)攻击详解

目录 什么是盗链 盗链原理 盗链类型 盗链的危害 如何发现盗链 盗链防范措施 法律法规与应对策略 小结 盗链&#xff08;Hotlinking&#xff09;攻击&#xff0c;作为互联网安全领域的一个重要话题&#xff0c;涉及到侵犯版权、滥用资源和网络安全等多个层面。盗链现象普…...

leetcode算法笔记-算法复杂度

对于时间复杂度&#xff0c;主要包括三种情况&#xff1a; 渐进紧确界&#xff1a; O渐进上界&#xff1a; 渐进下界&#xff1a; 加法原则&#xff1a;不同的时间复杂度相加取阶数最高的 乘法原则&#xff1a;不同的时间复杂度相乘&#xff0c;结果为时间复杂度的乘积 阶乘…...

推荐算法详解

文章目录 推荐算法引言基于内容的推荐原理算法步骤注意点可以优化的地方示例代码讲解 协同过滤推荐原理算法步骤注意点可以优化的地方示例代码讲解 混合推荐系统原理算法步骤注意点可以优化的地方示例1代码讲解1示例2代码讲解2 基于知识的推荐原理算法步骤注意点可以优化的地方…...

Java找不到包解决方案

在跟着教程写Spingboot后端项目时&#xff0c;为了加快效率&#xff0c;有时候有的实体文件可以直接粘贴到目录中&#xff0c;此时运行项目会出现Java找不到包的情况&#xff0c;即无法找到导入的实体文件&#xff0c;这是项目没有更新的原因。解决方法&#xff1a; 刷新Maven:…...

vue的css深度选择器 deep /deep/

作用及概念 当 <style> 标签有 scoped 属性时&#xff0c;它的 CSS 只作用于当前组件中的元素&#xff0c;父组件的样式将不会渗透到子组件。在vue中是这样描述的&#xff1a; 处于 scoped 样式中的选择器如果想要做更“深度”的选择&#xff0c;也即&#xff1a;影响到子…...

2024年华为OD机试真题-计算三叉搜索树的高度-(C++)-OD统一考试(C卷D卷)

题目描述: 定义构造三叉搜索树规则如下: 每个节点都存有一个数,当插入一个新的数时,从根节点向下寻找,直到找到一个合适的空节点插入。 查找的规则是: 1. 如果数小于节点的数减去500,则将数插入节点的左子树 2. 如果数大于节点的数加上500,则将…...

Python操控AB PLC避坑指南:pylogix读写数组、字符串和UDT的实战细节

Python操控AB PLC避坑指南&#xff1a;pylogix读写数组、字符串和UDT的实战细节 当工业自动化遇上Python&#xff0c;pylogix库成为了连接AB PLC与Python世界的桥梁。但在处理数组、字符串和用户自定义数据类型&#xff08;UDT&#xff09;时&#xff0c;即便是经验丰富的开发…...

VMware虚拟机突然断网?别慌,试试这个NAT模式一键重置法(附主机WiFi适配器设置)

VMware虚拟机断网急救指南&#xff1a;NAT模式重置与主机适配器深度解析 从一次紧急调试说起 深夜11点23分&#xff0c;程序员老张正在虚拟机里调试一个即将上线的微服务接口。突然&#xff0c;git pull命令卡住不动&#xff0c;ping测试显示"Destination Host Unreachabl…...

Wand-Enhancer:完全免费解锁WeMod Pro功能的终极解决方案

Wand-Enhancer&#xff1a;完全免费解锁WeMod Pro功能的终极解决方案 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod专业版的付费限制而烦恼…...

Gofile高效下载命令行工具完全指南:解锁批量下载与断点续传的终极解决方案

Gofile高效下载命令行工具完全指南&#xff1a;解锁批量下载与断点续传的终极解决方案 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader 在当今数字资源共享的时代&#xff0…...

DeepSeek LeetCode 2508.添加边使所有节点度数都为偶数 public boolean isPossible(int n, List<List<Integer>> edges)

问题分析我们需要判断能否添加至多两条边&#xff08;不能添加重复边&#xff0c;不能添加自环&#xff09;&#xff0c;使得图中所有节点的度数都为偶数。---思路步骤1. 统计每个节点的当前度数遍历给出的边&#xff0c;统计每个节点的度数。 2. 找出度数为奇数的节点设奇数度…...

汽车供应链客户定位方法拆解:复杂B2B能力如何被客户看懂

从B2B表达方法看&#xff0c;汽车供应链客户定位可以理解为一个“客户判断结构化”的问题。企业不是简单输出自我介绍&#xff0c;而是要把技术能力、项目经验、质量体系、协同机制与证据材料&#xff0c;转化为客户不同角色都能使用的判断信息。很多汽车供应商在做客户定位时&…...

禾赛季报图解:营收6.8亿 新业务今年将贡献1亿收入 拿下奔驰大单

雷递网 雷建平 5月20日禾赛科技&#xff08;纳斯达克&#xff1a;HSAI&#xff1b;港交所&#xff1a;2525&#xff09;日前公布其截至2026年3月31日止三个月的未经审计财务业绩。财报显示&#xff0c;禾赛2026年第一季度实现营收6.8亿&#xff0c;同比增长29.6%。禾赛本季度宣…...

RK3588+ZYNQ+ROS2 机器人 “强实时控制 + AI 感知 + 边缘计算” 三位一体核心控制器

一、方案总览&#xff1a;为什么是 RK3588ZYNQ7045&#xff08;国产替代用复旦微 FMQL45T900&#xff09;RK3588&#xff08;8nm&#xff0c;瑞芯微&#xff09;&#xff1a;主 AI 业务中枢&#xff0c;6TOPS NPU、8 核 CPU&#xff08;4A764A55&#xff09;、8K 编解码、丰富…...

别再傻傻分不清L2和L3了!一张图看懂自动驾驶分级(附SAE/国标对照表)

自动驾驶分级全解析&#xff1a;从L0到L5的技术演进与商业应用 当特斯拉车主开启Autopilot功能在高速公路上行驶&#xff0c;或是蔚来汽车宣传其NOP领航辅助时&#xff0c;这些究竟属于什么级别的自动驾驶&#xff1f;为什么有些厂商称自己的系统为"L2.999"&#xff…...

django-tenants测试策略:单元测试、集成测试与持续集成

django-tenants测试策略&#xff1a;单元测试、集成测试与持续集成 【免费下载链接】django-tenants Django tenants using PostgreSQL Schemas 项目地址: https://gitcode.com/gh_mirrors/dj/django-tenants django-tenants是一个基于PostgreSQL模式的Django多租户解决…...