【操作系统】探究文件系统奥秘:创建proc文件系统的解密与实战

🌈个人主页:Sarapines Programmer
🔥 系列专栏:Linux专栏:《探秘Linux | 操作系统解密》
⏰诗赋清音:月悬苍穹泛清辉,梦随星河徜徉辉。情牵天际云千层,志立乘风意自飞。

目录

🌌1 初识Linux OS

🌌2 创建proc文件系统

🌍2.1 研究目的

🌍2.2 研究内容

🌍2.3 研究步骤

🌍2.4 研究过程

🌍2.5 研究心得

📝总结


🌌1 初识Linux OS

Linux是一种开源的Unix-like操作系统内核,它是基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。Linux内核最初是由芬兰程序员Linus Torvalds在1991年创建的,之后成为自由软件和开源社区的一个主要项目。

以下是Linux操作系统的一些主要特点和组成部分:

  1. 内核(Kernel): Linux内核是操作系统的核心,它管理系统资源,如处理器、内存、设备驱动程序等。Linus Torvalds最初编写了Linux内核,它是Linux操作系统的基础。

  2. Shell(命令解释器): Linux操作系统使用命令行界面(CLI),用户与系统交互通过Shell。用户可以通过输入命令执行各种任务,管理文件、进程、权限等。常见的Shell包括Bash(Bourne Again SHell)和Zsh。

  3. 文件系统: Linux支持多种文件系统,包括Ext4、XFS、Btrfs等。文件系统负责管理存储设备上的文件和目录,以及文件的权限、所有权等信息。

  4. 用户界面: 虽然Linux以CLI为主,但也支持图形用户界面(GUI)。常见的Linux桌面环境有GNOME、KDE、XFCE等,它们提供了直观的用户体验。

  5. 软件包管理系统: 大多数Linux发行版都有自己的软件包管理系统,用于安装、更新和删除软件。常见的包管理工具有APT(Debian/Ubuntu)、YUM(Red Hat/CentOS)、Pacman(Arch Linux)等。

  6. 网络功能: Linux具有强大的网络功能,支持各种网络协议和服务。它可以作为服务器运行各种网络服务,如Web服务器(Apache、Nginx)、邮件服务器(Postfix、Sendmail)、文件服务器(Samba)等。

  7. 多用户和多任务: Linux是一个多用户系统,多个用户可以同时访问同一台机器。它也是一个多任务系统,可以同时运行多个进程。

  8. 安全性: Linux以安全性而闻名,系统管理员可以设置用户权限、访问控制列表(ACLs)等来确保系统的安全性。

  9. 开源和自由: Linux是开源软件,其源代码可以被任何人查看、修改和分发。大多数Linux发行版是免费提供的,用户可以自由选择、使用和分发。

  10. 发行版(Distribution): 由于Linux内核是开源的,不同的组织和社区创建了各种Linux发行版,例如Ubuntu、Debian、Fedora、CentOS、Arch Linux等。每个发行版都有自己的特点和包管理系统。

总体而言,Linux操作系统是一个强大、灵活且可定制的操作系统,广泛应用于服务器、嵌入式系统、超级计算机等各种领域。


🌌2 创建proc文件系统

🌍2.1 研究目的

  1. 系统状态监控: 创建proc文件系统的一个研究目的是实现系统状态的监控。proc文件系统提供了一个在运行时访问内核信息的接口,通过读取proc文件系统中的特定文件,可以获取系统各种状态的实时数据,如内存使用情况、CPU占用率、进程信息等。这有助于系统管理员或开发人员实时监测系统性能,及时发现和解决潜在问题。

  2. 性能调优与分析: proc文件系统为进行系统性能调优和分析提供了丰富的数据源。通过加载内核模块创建proc文件系统,可以收集更多关于系统运行状况的信息。这些信息有助于深入了解系统各个方面的性能瓶颈,从而进行有针对性的优化,提高系统的响应速度和资源利用率。

  3. 定制化系统监视工具: 通过创建proc文件系统,可以为系统监视工具提供定制化的数据接口。这样的接口可以根据具体需求提供特定的信息,而不需要访问复杂的内核数据结构。系统管理员或开发者可以基于这些数据构建自己的监控工具,更好地满足其特定的监视需求。

  4. 教学和研究用途: 创建proc文件系统还有助于教学和研究。通过实践创建proc文件系统,研究人员和学生可以深入理解Linux内核的工作原理,了解内核模块的加载过程,并通过操作proc文件系统中的文件了解系统内部运行机制。这对于操作系统课程、系统编程课程以及内核研究具有教育和研究意义。


🌍2.2 研究内容

  1. proc文件系统基础理解: 研究proc文件系统的基本概念,了解它是如何在内核中实现的以及它提供了哪些功能。理解proc文件系统是一个伪文件系统,它提供了一个与内核数据交互的接口,通过在/proc目录下的文件和子目录来表示系统和进程的信息。包括对关键文件如/proc/cpuinfo、/proc/meminfo等的解析和使用。

  2. 创建和管理proc文件系统的接口: 研究如何在操作系统中创建和管理proc文件系统。这可能涉及到内核模块的编写,以实现新的/proc文件或目录,其中包含特定的信息。了解如何注册和注销这些文件,以及与其相关联的回调函数,以确保文件系统在运行时能够正确地响应对这些文件的访问。

  3. 自定义proc文件系统的应用: 研究如何使用proc文件系统为特定的目的自定义信息。这可能包括创建用于监视和调试的文件,提供有关系统性能、硬件信息或其他关键数据的实时信息。理解如何将自定义信息集成到proc文件系统中,以便用户和系统工具能够轻松地访问这些信息。


🌍2.3 研究步骤

1.输入vi /proc/meminfo查看文件内容.

2.输入cat /proc/version查看当前Linux内核的版本号.

3.挂载U盘.

4.输入cp proc_test.c /root将U盘的proc_test.c拷贝到root目录下.

5.输入umount /dev/sdb1退出U盘.

6.输入gcc -c -I/usr/src/linux-2.4.20-8/include proc_test.c编译.并输入ls查看是否编译成功.

6.输入insmod proc_test.o加载模块.并使用lsmod验证加载成功.

7.输入cd /proc/proc_test进入该目录,显示三个文件分别是current,current_too和hello.

8.查看上述三文件内容.

9.输入rmmod proc_test卸载该模块.

10.改写proc_test文件重新挂载U盘并使用cp将改写的test8_xxx.c文件放置root目录.

11.编译并查看是否出现test8_xxx.o文件.

12.输入insmod挂载该文件,使用lsmod检查查看.

13.进入/proc/proc_test目录查看四个文件信息,此时多了xxx_test.

14.进入xxx_test输入ls查看下辖文件信息,发现也有三个文件.


🌍2.4 研究过程

读出当前内存的使用情况

查看linux内核版本

插入U盘

取消挂载

输入”more current”、”more current_too”查看文件内容


🌍2.5 研究心得

  1. 理解proc文件系统的核心概念: 在课程设计中,我深入研究了proc文件系统的概念,认识到它是一种在用户态检查内核状态的机制。特别是/proc/meminfo这类文件不是磁盘文件,而是一种特殊的文件,只有在用户读取时才准备好相关内容。这为我提供了深入了解操作系统内核状态的途径。

  2. 解决版本号不匹配的问题: 在实际操作中,我遇到了编译版本号不匹配的困扰。通过课程设计,我学到了一种更便捷的解决方案,即在编译时重新指定内核版本号进行编译。这一洞察不仅解决了版本号不对的问题,还省去了每次重启都需要重新编译的麻烦,提高了工作效率。

  3. 应用知识解读和处理问题: 通过本次研究,我不仅学到了理论知识,还学会了将知识应用于实际问题的解决。例如,对于版本号不匹配的情况,我能够灵活运用所学的知识,采取有效的解决方法。这锻炼了我在实际工作中分析问题、提出解决方案的能力,为今后的操作系统开发和维护工作打下了坚实的基础。


📝总结

Linux操作系统的领域就像一片未被勘探的信息大海,引领你勇敢踏入开源系统的神秘领域。这是一场独特的学习冒险,从基本概念到系统架构,逐步揭示更深层次的操作系统原理、命令行工具和高级系统管理的奥秘。

渴望挑战Linux操作系统的学习路径和掌握系统管理技术?不妨点击下方链接,一同探讨更多Linux操作系统的奇迹吧。我们推出了引领趋势的💻 Linux专栏:《探秘Linux | 操作系统解密》,旨在深度探索Linux的实际应用和创新。🌐🔍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/580267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊美国站ASTM F2613儿童折叠椅和凳子强制性安全标准

ASTM F2613折叠椅和凳子安全标准 美国消费品安全委员会(CPSC)发布的ASTM F2613儿童折叠椅和凳子的强制性安全标准,已于2020年7月6日生效,并被纳入联邦法规《16 CFR 1232儿童折叠椅和凳子安全标准》。 亚马逊要求在美国站上架的儿…

C语言——字符函数和字符串函数(三)【strtok,strerror,perror】

📝前言: 上一篇文章C语言——字符函数和字符串函数(二)对字符函数和字符串函数strstr,strcmp和strncmp进行了一定的讲解 这篇文章主要讲解以下函数的用法: 1,strtok 2,strerror 3,pe…

Linux下的文本编辑Vi/Vim

编辑文件 文本编辑器有很多,比如图形模式的gedit、OpenOffice 等,文本模式下的编辑器有vi、vim(vi的增强 版本)等。vi和vim是我们在Linux中最常用的编辑器。 gedit 类似于Windows下的记事本,很方便的去修改文本。 Op…

深入了解云原生:定义与特征解析

文章目录 一、云原生概述1.1 什么是云原生1.2 云原生组成要素1.3 补充资料 二、云原生的目标2.1 云原生关键目标2.2 云原生特性 三、云原生应用 VS 传统单体应用参考资料 一、云原生概述 1.1 什么是云原生 (1)云原生定义 云原生(Cloud Native) 是一种软件架构和开发方法论&a…

山西电力市场日前价格预测【2023-12-27】

日前价格预测 预测说明: 如上图所示,预测明日(2023-12-27)山西电力市场全天平均日前电价为737.42元/MWh。其中,最高日前电价为1500.00元/MWh,预计出现在08:00~08:30。最低日前电价为313.03元/MWh&#xff…

Qt Creator可视化交互界面exe快速入门3

上一期介绍的通过Qt Creator的组件直接拖拽的方式完成了一个界面,这期介绍按钮的信号交互。 专有名称叫信号与槽 实现方法1: 鼠标右键选择转化为槽就会跳出这样的界面 选择第一个为单击信号。然后就会跳转到代码界面。多了on_pushButton_clicked()。 …

分页合理化是什么?

一、前言 只要是干过后台系统的同学应该都做过分页查询吧,前端发送带有页码(pageNum)和每页显示数量(pageSize)的请求,后端根据这些参数来提取并返回相应的数据集。在SpringBoot框架中,经常会使…

以社区为基石,IvorySQL逐步成为中国基础软件开源数据库产业重要一员

编者按:开源数据库技术,作为软件开发领域的一大趋势,正逐渐改变整个软件产业的面貌。在这个充满活力的领域中,瀚高股份的IvorySQL凭借其社区活跃度和影响力,已经成为中国基础软件开源数据库产业的重要一员。随着《2023…

TCP:IP原理

TCP/IP 原理 TCP/IP 协议不是 TCP 和 IP 这两个协议的合称,而是指因特网整个 TCP/IP 协议族。从协议分层模型方面来讲,TCP/IP 由四个层次组成:网络接口层、网络层、传输层、应用层。 网络访问层(Network Access Layer) 网络访问层(Network …

宏集方案 | 物联网HMI的关键驱动力—SCADA级功能库和控件库

来源:宏集科技 工业物联网 宏集方案 | 物联网HMI的关键驱动力—SCADA级功能库和控件库 原文链接:https://mp.weixin.qq.com/s/UEPtpTehdbFrw3MUCnuR2A 欢迎关注虹科,为您提供最新资讯! 01 前言 在这个数字化时代,物…

Java内存区域与内存溢出异常

Java与C++之间有一堵由内存分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 2.1 概述 对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的“皇帝”,又是从事最基础工作的劳动人民——即拥有每一个对象的“所有权”,又…

个性化定制的知识付费小程序,为用户提供个性化的知识服务,知识付费saas租户平台

明理信息科技知识付费saas租户平台 在当今数字化时代,知识付费已经成为一种趋势,越来越多的人愿意为有价值的知识付费。然而,公共知识付费平台虽然内容丰富,但难以满足个人或企业个性化的需求和品牌打造。同时,开发和…

vscode中默认shell选择

terminal.integrated.defaultProfile.linux在vs的Preference的Settings里面搜索terminal.integrated.defaultProfile.linux,默认的应该是null,将其修改为bash即可。 linux———/bin/sh、 /bin/bash、 /bin/dash的区别

亚马逊云科技 re:Invent 2023 产品体验:亚马逊云科技产品应用实践 国赛选手带你看 Elasticache Serverless

抛砖引玉 讲一下作者背景,曾经参加过国内世界技能大赛云计算的选拔,那么在竞赛中包含两类,一类是架构类竞赛,另一类就是 TroubleShooting 竞赛,对应的分别为亚马逊云科技 GameDay 和亚马逊云科技 Jam,想必…

数据结构:图文详解 树与二叉树(树与二叉树的概念和性质,存储,遍历)

目录 一.树的概念 二.树中重要的概念 三.二叉树的概念 满二叉树 完全二叉树 四.二叉树的性质 五.二叉树的存储 六.二叉树的遍历 前序遍历 中序遍历 后序遍历 一.树的概念 树是一种非线性数据结构,它由节点和边组成。树的每个节点可以有零个或多个子节点…

【Linux基础】5. 磁盘管理

文章目录 【 1. 查看磁盘空间 】1.1 df 查看空间利用大小1.2 du 查看目录所占空间大小 【 2. 打包、压缩 】2.1 tar -cvf 打包2.2 gzip 压缩 【 3. 解压缩、解包 】3.1 gunzip 解压缩3.2 tar -xvf 解包 【 1. 查看磁盘空间 】 1.1 df 查看空间利用大小 作用 查看整个文件系统…

5G阅信应用场景有哪些?

5G阅信的应用场景非常广泛,以下是一些常见的应用场景: 1.工业自动化:5G阅信可以连接各种工业设备和传感器,实现设备之间的实时通信和控制,提高生产效率和自动化水平。 2.物联网和智能家居:5G阅信可以连接各…

2014年第三届数学建模国际赛小美赛B题全地形伪装解题全过程文档及程序

2014年第三届数学建模国际赛小美赛 B题 全地形伪装 原题再现: 破坏性着色在军事用途中很常见,用于军用车辆、士兵制服和装备。视觉是人类的主要方向感,伪装的主要功能是欺骗人眼。军事服装中存在大量的伪装图案,以适应作战服装与…

时序预测 | Matlab实现SSA-CNN-BiLSTM麻雀算法优化卷积双向长短期记忆神经网络时间序列预测

时序预测 | Matlab实现SSA-CNN-BiLSTM麻雀算法优化卷积双向长短期记忆神经网络时间序列预测 目录 时序预测 | Matlab实现SSA-CNN-BiLSTM麻雀算法优化卷积双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现SSA-CNN-BiLSTM麻雀算…

分享好用的chatgpt

1.在vscode中,点击这个: 2.搜索:ChatGPT - 中文版,个人觉得这个更好用: 3.下载完成之后,左侧会多出来这个: 点击这个图标就能进入chatgpt界面了 4.如果想使用tizi访问国外的chatgpt&#xf…