操作系统课程设计:Linux系统调用/基于模块的文件系统/Linux驱动/统计Linux系统缺页的次数 整合

简介: 操作系统课程设计:Linux系统调用/基于模块的文件系统/Linux驱动/统计Linux系统缺页的次数 整合

一、可选题目

题目1:新增Linux系统调用

采用编译内核法,在Linux中增加一个系统调用。

要求:

(1)系统调用实现的功能:计算一个数字的三次方,并打印出来。

(2)另外写一个程序进行调用。

题目2:实现基于模块的文件系统

修改ext3或ext4的源代码,实现新的文件系统。

要求:

(1)复制ext3或ext4的源代码,修改Makefile文件,使用模块编译方式,需要重新编译Linux内核

(2)可以动态加载和卸载新的文件系统。

(3)至少需要修改文件系统的名称,最好能对文件写操作向系统后台打印出信息。

题目3:新增Linux驱动程序

增加一个驱动程序(使用内存模拟设备),使用模块编译方式。

要求:

(1)可以动态加载和卸载新的驱动。

(2)通过程序或命令行使用该驱动。

(3)至少能通过该驱动保存256MB的数据,还能将这些数据读取出来。

(4)要重新编译Linux内核,可模仿ramdisk的实现方式。

题目4:统计Linux系统缺页的次数

通过在Linux内核中自建变量,并利用/proc文件系统作为中介的方法,统计系统缺页的次数。

要求:

(1)在内核中实现缺页次数统计;

(2)编译并安装新内核;

(3)新建内核模块,并加载到新内核,通过/proc实现用户态下查看缺页次数。

二、操作顺序

题目1与题目4存在的共同点是:在进行内核的编译之前需要修改内核中的文件。题目2、题目3、题目4存在的共同点是:需要编译内核,在编译完成的新内核进行模块的编译。

整合的总体流程如下:首先修改内核源码文件中涉及到题目1与题目4的部分。接下来,进行长达1~2小时的编译内核、编译模块与安装新内核。然后,进入新的内核,传入题目2、题目3、题目4涉及到的源代码文件,安装并卸载相应的模块进行测试。

题目1涉及到的内核源码的文件包括:

arch/x86/entry/syscalls/syscall_64.tbl

kernel/sys.c

include/linux/syscalls.h

题目4涉及到的内核源码的文件包括:

arch/x86/mm/fault.c

include/linux/mm.h

kernel/kallsyms.c

在修改了这几处文件后,对内核进行1-2小时的编译。进入新的内核,在新的内核中,

题目1涉及到的文件testt1.c

题目2涉及到的文件包括:super.c、sysfs.c、file.c、Makefile。将这4个文件放在同一个目录下,进行模块编译。

题目3涉及到的文件包括:zombotany_blkdev.c、Makefile。将这2个文件放在同一个目录下,进行模块编译。

题目4涉及到的文件包括:readpfcount.c、Makefile。将这2个文件放在同一个目录下,进行模块编译。利用模块的形式,对缺页中断次数进行了测试。

附录:参考资料

题1

https://blog.csdn.net/weixin_44191535/article/details/106954861

题2

https://blog.csdn.net/qq_17447307/article/details/103649354

题3

https://blog.csdn.net/qq_46640863/article/details/122952706

题4

https://blog.csdn.net/zouguo1211/article/details/90106347


目录
相关文章
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
1578 0
Vanilla OS:下一代安全 Linux 发行版
|
11月前
|
Ubuntu Unix Linux
操作系统的最强入门科普(Unix/Linux篇)
下期文章,小枣君会重点聊聊Windows和macOS那条线。敬请关注! 如果大家觉得文章不错,还请帮忙多多转发!谢谢!
|
11月前
|
Web App开发 缓存 Rust
|
网络协议 Linux 网络安全
Palo Alto PAN-OS 11.2.5 for KVM - ML 驱动的 NGFW
Palo Alto PAN-OS 11.2.5 for KVM - ML 驱动的 NGFW
569 10
Palo Alto PAN-OS 11.2.5 for KVM - ML 驱动的 NGFW
|
监控 Linux 开发者
理解Linux操作系统内核中物理设备驱动(phy driver)的功能。
综合来看,物理设备驱动在Linux系统中的作用是至关重要的,它通过与硬件设备的紧密配合,为上层应用提供稳定可靠的通信基础设施。开发一款优秀的物理设备驱动需要开发者具备深厚的硬件知识、熟练的编程技能以及对Linux内核架构的深入理解,以确保驱动程序能在不同的硬件平台和网络条件下都能提供最优的性能。
598 0
|
Python
Python教程:os 与 sys 模块详细用法
os 模块用于与操作系统交互,主要涉及夹操作、路径操作和其他操作。例如,`os.rename()` 重命名文件,`os.mkdir()` 创建文件夹,`os.path.abspath()` 获取文件绝对路径等。sys 模块则用于与 Python 解释器交互,常用功能如 `sys.path` 查看模块搜索路径,`sys.platform` 检测操作系统等。这些模块提供了丰富的工具,便于开发中处理系统和文件相关任务。
590 14
|
弹性计算 自然语言处理 Ubuntu
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot是由阿里云推出的操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行等功能,极大提升了Linux系统的使用效率。用户只需通过简单的命令或自然语言描述问题,OS Copilot即可快速提供解决方案并执行相应操作。例如,查询磁盘使用量等常见任务变得轻松快捷。此外,它还支持从文件读取复杂任务定义,进一步简化了操作流程。虽然在某些模式下可能存在小问题,但总体上大大节省了学习和操作时间,提高了工作效率。
577 2
OS Copilot-操作系统智能助手-Linux新手小白的福音
|
缓存 安全 Linux
Linux系统查看操作系统版本信息、CPU信息、模块信息
在Linux系统中,常用命令可帮助用户查看操作系统版本、CPU信息和模块信息
3880 23
|
运维 自然语言处理 Ubuntu
OS Copilot-操作系统智能助手-Linux新手小白的福音
OS Copilot 是阿里云推出的一款操作系统智能助手,专为Linux新手设计,支持自然语言问答、辅助命令执行和系统运维调优等功能。通过简单的命令行操作,用户可以快速获取所需信息并执行任务,极大提升了Linux系统的使用效率。安装步骤简单,只需在阿里云服务器上运行几条命令即可完成部署。使用过程中,OS Copilot不仅能帮助查找命令,还能处理文件和复杂场景,显著节省了查找资料的时间。体验中发现,部分输出格式和偶尔出现的英文提示有待优化,但整体非常实用,特别适合Linux初学者。
708 10
|
弹性计算 运维 Ubuntu
os-copilot在Alibaba Cloud Linux镜像下的安装与功能测试
我顺利使用了OS Copilot的 -t -f 功能,我的疑惑是在换行的时候就直接进行提问了,每次只能写一个问题,没法连续换行更有逻辑的输入问题。 我认为 -t 管道 功能有用 ,能解决环境问题的连续性操作。 我认为 -f 管道 功能有用 ,可以单独创建可连续性提问的task问题。 我认为 | 对文件直接理解在新的服务器理解有很大的帮助。 此外,我还有建议 可以在非 co 的环境下也能进行连续性的提问。
366 7

热门文章

最新文章