大石桥网站制作给女朋友做的网站

张小明 2026/1/11 9:07:31
大石桥网站制作,给女朋友做的网站,wordpress企业 破解主题下载地址,吃什么补肾快1.实验目的1.掌握内核模块基本编程技术2.向内核中添加一个内核模块#xff0c;打印进程控制块信息#xff0c;编译模块3.加载、卸载模块2.实验截图及结果分析#xff08;1#xff09;实验截图① 编译环节② 加载模块③ 卸载模块卸载前#xff1a;卸载后#xff1a;④ 删除…1.实验目的1.掌握内核模块基本编程技术2.向内核中添加一个内核模块打印进程控制块信息编译模块3.加载、卸载模块2.实验截图及结果分析1实验截图① 编译环节② 加载模块③ 卸载模块卸载前卸载后④ 删除编译的文件2实验结果分析本次实验围绕添加内核模块展开从编译、加载、卸载模块以及打印进程控制块信息等多方面进行操作实验结果具有多维度的分析价值。①编译环节在编译过程中通过执行make命令依据Makefile文件中的配置系统成功调用kbuild构建系统。从输出的编译信息可知系统首先进入内核源码目录读取顶层Makefile文件随后依次对showPCB.c进行编译生成.o文件再经过MODPOST处理和链接等步骤最终生成后缀为.ko的内核模块showPCB.ko。这一过程严格遵循内核模块编译的标准流程表明Makefile配置正确kbuild构建系统能够顺利工作确保了模块从源码到可加载内核模块的正确转换。②加载模块环节使用sudo insmod showPCB.ko命令加载模块后通过sudo dmesg查看内核日志获取到丰富的进程控制块信息。这些信息反映了进程在系统中的实时状态。例如pid为 3075表明当前运行进程在系统中的唯一标识state、flags等字段详细描述了进程当前的运行状态和相关属性。其中rcu_tasks_nvcsw为 0说明在最近一次 RCU 更新完成后该 CPU 上未发生非抢占式上下文切换。这些信息为深入了解系统进程调度和资源管理提供了有力依据也验证了模块中打印进程控制块信息功能的正确性。③卸载模块环节卸载前使用lsmod命令查看系统中已加载的模块showPCB模块显示在列表中证明其已成功加载。执行sudo rmmod showPCB命令卸载模块后再次使用lsmod查看showPCB模块从列表中消失表明卸载操作成功。这验证了模块的可卸载性符合内核模块动态加载和卸载的机制设计确保了系统资源的有效管理当模块不再使用时能够及时从内核中移除释放相关资源。④删除编译文件环节执行make clean命令依据Makefile中clean目标的定义系统成功删除了编译生成的showPCB.ko、showPCB.mod.c、showPCB.mod.o和showPCB.o文件。这一操作不仅清理了项目目录避免文件冗余还有助于在后续重新编译时确保生成的文件是最新的防止因旧文件残留导致的编译错误保持开发环境的整洁和规范性。整体而言本次实验各项操作结果符合预期成功实现了向内核添加模块、打印进程控制块信息、编译、加载和卸载模块等目标。3.实验程序1showPCB.c#include linux/module.h #include linux/kernel.h #include linux/sched.h #include linux/list.h // 定义task_struct类型别名 typedef struct task_struct ts; // 模块初始化函数使用正确的函数名 __init 修饰 static int __init my_module_init(void) { ts *now; now current; printk(用户标识:\ncomm: %s\n\n, now-comm); printk(进程当前的状态\nstate: %ld\n\n, now-state); printk(反映进程状态的信息但不是运行状态\nflags: %d\n\n, now-flags); printk(指向 ptrace_area 的指针其中包含了调试信息和控制方法。通过使用 ptrace 系统调用父进程可以与子进程进行交互 \nptrace: %d\n\n, now-ptrace); printk(正在CPU上运行的进程\non_cpu: %d\n\n, now-on_cpu); printk(处理器\ncpu: %d\n\n, now-cpu); printk(表示唤醒目标wakee被唤醒的次数\nwakee_flips: %d\n\n, now-wakee_flips); printk(存储唤醒目标wakee的翻转衰减时间戳具体来说它表示最后一次唤醒目标翻转flip的时间 \nwakee_flip_decay_ts: %ld\n\n, now-wakee_flip_decay_ts); printk(一个函数用于将指定的CPU唤醒将CPU从空闲状态切换到活动状态\nwake_cpu: %d\n\n, now-wake_cpu); printk(一个成员变量用于表示进程是否在就绪队列run queue上\non_rq: %d\n\n, now-on_rq); printk(进程优先级字段它表示进程的优先级级别\nprio: %d\n\n, now-prio); printk(进程优先级字段之一表示进程的静态优先级\nstatic_prio: %d\n\n, now-static_prio); printk(用于表示进程优先级的一个字段它基于static_prio和调度策略计算出来\nnormal_prio: %d\n\n, now-normal_prio); printk(用于表示实时进程优先级的一个字段\nrt_priority: %d\n\n, now-rt_priority); printk(一个结构体用于表示硬件分支跟踪(btrace)的序列\nbtrace_seq: %d\n\n, now-btrace_seq); printk(实用于本进程的调度政策: \npolicy: %u\n\n, (unsigned int)now-policy); printk(一个字段表示进程可以在哪些处理器上执行\nnr_cpus_allowed: %d\n\n, now-nr_cpus_allowed); printk(一个统计量表示在最近一次RCURead-Copy-Update更新完成之后该CPU上从开始到现在为止执行了非抢占式上下文切换的次数\nrcu_tasks_nvcsw: %ld\n\n, now-rcu_tasks_nvcsw); printk(一个统计量表示在最近一次RCURead-Copy-Update更新完成之后该CPU上从开始到现在为止执行了空闲任务的次数\nrcu_tasks_idle_cpu: %d\n\n, now-rcu_tasks_idle_cpu); printk(表示进程退出状态的字段有两种取值1-EXIT_ZOMBIE(僵尸进程)2-EXIT_DEAD(进程已经死亡且已经回收)\nexit_state: %d\n\n, now-exit_state); printk(进程退出时的退出码通常用于表示进程的退出状态,是一个整数值通常为0表示进程正常终止而非0值表示进程执行过程中有错误发生比如溢出、除数为0等: \nexit_code %d\n\n, now-exit_code); printk(进程终止时发给父进程的信号\nexit_signal: %d\n\n, now-exit_signal); printk(父进程消亡时发出的信号\npdeath_signal: %d\n\n, now-pdeath_signal); printk(job control作业控制是bash环境下的一个工作管理机制。它能够在一个终端机下面进行多个工作管理。这些工作都是bash的子进程: \njobctl: %ld\n\n, now-jobctl); printk(personality是指进程的个性化设置用于控制进程的行为和属性。personality是一个进程描述符的成员可以通过设置personality字段来启用不同的进程个性化设置: \npersonality: %d\n\n, now-personality); printk(一个原子标志类型用于实现非原子操作的标记: \natomic_flags: %ld\n\n, now-atomic_flags); printk(一个正整数通常用于唯一标识正在运行的进程: \npid: %d\n\n, (int)now-pid); printk(tgid线程组标识符是一个进程标识符它表示当前线程所在的线程组的标识符: \ntgid: %d\n\n, (int)now-tgid); printk(stack_canary是一种安全机制用于防止栈溢出攻击。它通常被用于保护函数返回地址以防止攻击者通过覆盖返回指针来控制程序的执行流程: \nstack_canary: %ld\n\n, now-stack_canary); printk(一个进程标识符通常用于标识会话层。会话层是操作系统中负责进程间通信IPC的一层它管理着进程之间的通信和资源共享: \nsessionid: %d\n\n, now-sessionid); return 0; } // 模块清理函数使用正确的函数名 __exit 修饰 static void __exit my_module_cleanup(void) { printk(1Goodbye cruel world\n); } // 注册模块初始化和清理函数 module_init(my_module_init); module_exit(my_module_cleanup); // 指定模块许可证 MODULE_LICENSE(GPL);2Makefileobj-m : showPCB.o KERNELDIR /lib/modules/$(shell uname -r)/build PWD : $(shell pwd) default: $(MAKE) -C $(KERNELDIR) M$(PWD) modules clean: rm -f showPCB.ko showPCB.mod.c showPCB.mod.o showPCB.o
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

全国工程建设系统网站wordpress如何修改上传目录

本文介绍如何使用组策略自动将程序分发到客户端计算机或用户。 适用于: Windows Server(所有支持的版本) 原始 KB 数: 816102 总结 可以使用组策略分发计算机程序,方法如下: 分配软件 可以将程序分发分配…

张小明 2026/1/7 1:32:35 网站建设

wordpress 仿站vip做自媒体小视屏哪个网站好

还在为百度网盘提取码烦恼吗?这款免费工具让你告别繁琐的搜索过程,实现一键解锁所有资源链接!无论你是学生、职场人士还是技术爱好者,掌握这个简单实用的百度网盘提取码查询方法,将彻底改变你的资源获取体验。 【免费下…

张小明 2026/1/6 12:19:42 网站建设

网站吗优秀办公空间设计案例ppt

Dify平台的规则引擎与AI决策结合模式探讨 在企业加速拥抱人工智能的今天,一个现实问题摆在面前:如何让大模型的能力真正落地到生产环境中?我们见过太多惊艳的Demo,却也目睹了无数AI项目止步于概念验证阶段。核心症结在于——纯AI系…

张小明 2026/1/7 11:16:33 网站建设

蚌埠高端网站建设做网站建设比较好的公司

从提问到自答:一次软件工程课程的回顾与反思 (本文是对我在学期初所写博客的回顾与回应。第一次博客链接:https://blog.csdn.net/qq_42966458?spm1000.2115.3001.10640) 一、回看学期初的提问:我现在能回答它们了吗&a…

张小明 2026/1/10 18:26:47 网站建设

wordpress 产品网站青岛网站运营推广

Qwen3-VL-30B本地部署实战:让AI真正“看懂”世界 在金融分析师面对一张密密麻麻的财报截图时,在医生盯着CT影像反复比对病灶变化时,在工厂质检员逐帧检查装配流程是否合规时——他们真正需要的,不是一个只会OCR识别的文字提取工具…

张小明 2026/1/7 13:05:47 网站建设

网站静态代码检查 站长工具怎么做商业网站模板

第一章:农业无人机Agent避障失效的现状与挑战 随着精准农业的发展,搭载智能Agent系统的农业无人机被广泛应用于播种、喷洒和监测等任务。然而,在复杂多变的农田环境中,无人机避障系统频繁出现失效问题,严重威胁作业安全…

张小明 2026/1/7 20:45:06 网站建设