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

提供视频下载的网站郑州优化网站关键词

提供视频下载的网站,郑州优化网站关键词,商城项目,智能制造公司#x1f57a;作者#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux #x1f618;欢迎关注#xff1a;#x1f44d;点赞#x1f64c;收藏✍️留言 #x1f3c7;码字不易#xff0c;你的#x1f44d;点赞#x1f64c;收藏❤️关注对我真的很重要作者 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux 欢迎关注点赞收藏✍️留言 码字不易你的点赞收藏❤️关注对我真的很重要有问题可在评论区提出感谢支持 文章目录 实验七 显示进程列表一、实验目的二、实验内容三、实验过程记录部分A部分B 四、实验小结 实验七 显示进程列表 一、实验目的 掌握进程结构及进程管理原理 二、实验内容 实验名称显示进程列表实验任务 编写一个模块将它作为Linux内核空间的扩展来执行并报告模块加载时内核的当前进程信息进一步了解用户空间和内核空间的概念。 三、实验过程记录 部分A 实验任务查看系统已加载模块。写一个小的模块打印“hello world”。 查看已加载模块如图所示。 编写小模块打印“hello world” 代码如下 20191909.c文件 #includelinux/module.h int hello_init(void) {printk(\nhello world\n);return 0; } void hello_exit(void){printk(\n bye bye world\n); } MODULE_AUTHOR(20191909);//id MODULE_LICENSE(GPL); module_init(hello_init); module_exit(hello_exit);Makefile文件 obj-m:20191909.o KERNELDIR ? /lib/modules/$(shell uname -r)/build PWD : $(shell pwd) default: $(MAKE) -C $(KERNELDIR) M$(PWD) modules操作如下 编译 make 如图1所示图1 加载模块insmod 20191909.ko 如图2所示图2 查看日志dmesg如图3所示图3 4) 删除模块rmmod 20191909.ko 如图4所示 图4 查看日志dmesg如图5所示图5 部分B 实验任务设计模块遍历进程描述符链表打印出系统的进程数目、当前进程并尽量多地打印每个进程的信息。例如进程PID进程状态等。 编写代码如下 20191909.c文件 #include linux/init.h #include linux/module.h #include linux/proc_fs.h #include asm/uaccess.h #include linux/sched.h #include linux/kernel.h MODULE_LICENSE(GPL); static int num -1; module_param(num, int, S_IRUGO); static __init int exp_init(void){struct task_struct *p NULL;// for_each_process宏遍历系统中的每个进程将其赋值给pprintk(数量%d,num);for_each_process(p){if (num0 )break;// 使用printk函数打印当前进程的PID和进程名称real_parent-pid : 父进程id __state 状态printk(pid%d,name%s,parent_id%d,state%d\n, p-pid, p-comm,p-real_parent-pid,p-__state);num--;}return 0; } static __exit void exp_exit(void){printk(Good bye.\n); } module_init(exp_init); module_exit(exp_exit);Makefile 文件 obj-m:20191909.o KERNELDIR ? /lib/modules/$(shell uname -r)/build PWD : $(shell pwd) default: $(MAKE) -C $(KERNELDIR) M$(PWD) modules操作如下 编译make 如图6所示图6 加载模块insmod 20191909.ko 如图7所示图7 查看日志 dmesg 可以看到进程的PID、进程名称、父进程id、当前状态 如图8所示图8 删除模块 rmmod 20191909.ko如图9所示图9 四、实验小结 本次实验旨在通过编写Linux内核模块来了解用户空间和内核空间的概念并掌握如何显示进程列表。实验分为两部分进行。 在实验的第一部分中我们成功编写了一个简单的内核模块用以打印“hello world”信息。通过编译、加载模块、查看日志和删除模块的步骤我们确认了模块的正确加载和工作。这个过程加深了我们对内核模块生命周期管理的理解。 在实验的第二部分中我们设计了一个更复杂的内核模块用于遍历进程描述符链表打印出系统的进程数目、当前进程以及尽可能多的进程信息例如进程PID进程状态等。通过这个过程我们不仅学习了如何访问和操作内核中的进程信息还加深了对Linux内核进程管理机制的了解。 存在的问题和注意事项 在编写内核模块时需要确保代码的稳定性和安全性因为任何错误都可能导致系统崩溃或安全漏洞。在使用printk进行调试时应该注意其输出级别以免产生大量的日志信息影响系统性能。在遍历进程时我们使用了for_each_process宏需要了解其工作原理及如何正确使用它。模块参数的使用提供了灵活性但也需要注意确保传入的参数是合法的防止模块运行时出现异常。 有待提高的能力对内核编程的熟练度包括更深入地理解内核API和内核编程的最佳实践。对Linux内核的整体架构和机制的理解特别是进程管理、内存管理和模块管理等方面。调试技能的提高包括使用更高级的内核调试工具和技术。编写更加健壮和高效的内核代码的能力。 总体而言本次实验不仅帮助我们实践了内核模块的编写和操作还增进了我们对Linux内核的理解为今后深入学习Linux内核打下了良好的基础。
http://www.dnsts.com.cn/news/14221.html

相关文章:

  • 免费做网站. 优帮云注册一个网站要多少钱
  • 福田网站建设有限公司网站建设培训 通州
  • 株洲在线网站的目标客户怎样进入外贸公司网站
  • 中国制造网外贸网站外国高端网站设计
  • 网推拉新怎么做台州首页关键词优化
  • 网络营销资讯网站引擎搜索是什么意思
  • 在线做ppt模板下载网站有哪些利趣网站开发商
  • 如何查看一个网站的域名解析邯郸招聘网
  • 微信订阅号 网站开发江门网站设计华企立方
  • 快捷的中山网站建设广州新一期lpr
  • 成都哪里做网站好长沙网站建设价
  • 惠阳网站推广费用wordpress首页文章标签
  • 网站开发可能存在的困难做网站 然后百度推广
  • 百度网站开发合同范本视频网站开发研究背景
  • 网站建设公司 上网站开发需要书籍
  • 威海网站开发推广软件平台有哪些
  • 爱站网seo培训印刷电商网站开发
  • 昆明公司网站企企管理云平台
  • 国内产品设计公司排名北京搜索关键词优化
  • 网站的收录网站制作网站维护
  • 网站建设入门深圳网站建设ejaket
  • 办公用品网站建设佛山市手机网站建设哪家好
  • 房地产类型的网站建设临沂建设职业中专学校
  • 视觉设计网站推荐做一静态网站 多少钱
  • 河北网站seo策划怎么用自己的电脑做网站主机
  • 中国城乡住建部建设部网站盐城建站
  • 帝国cms下载类网站怎么做门户网站源码
  • 专门做包包的网站计算机软件技术主要学什么
  • 网络网站制作过程腾讯微博 wordpress
  • php 网站缩略图淘宝客网站能用淘宝图标做标志吗