Linux 系统的 proc 和 sys 文件系统|学习笔记

简介: 快速学习 Linux 系统的 proc 和 sys 文件系统

开发者学堂课程【Linux 操作系统实战Linux 系统的 proc 和 sys 文件系统】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/699/detail/12291


Linux 系统的 proc 和 sys 文件系统


内容介绍:

一、前提讲解

二、Linux 系统的 proc 和 sys 文件系统


一、前提讲解

在进行讲课之前先分享一下需要用到的两个重要概念,主存与辅存这两个在计算机中是配合使用的:

主存也是通俗说的内存内存就是所谓的内存条,内存可以被 CPU 直接访问和读取,由 RAM 和 ROM 组成,RAM 能快速进行读写操作,ROM 通常是用来只读的。

内存用于存放正在运行的程序和数据,它速度快但成本高。在前一些年内存的价格较高,很多内存的配置只有16G 或是32G。但随着现在云服务器的兴起,内存的价格以及偏低,一般的服务器可以配置到128G、256G 甚至是更高的,这样相对来说,服务器的性能越来越高。

辅存一般专是指容量大、速度较慢、价格低的磁表面存储器和光盘存储器、以及目前市面流行的固态驱动器(SSD 硬盘)等,可能有些同学想要把逻辑硬盘换成一个固态硬盘就是要换一个 SSD 硬盘。辅存不能被 CPU 直接访问,用于存放那些暂时不用的程序和数据。

内存主要是用来存储临时数据,做缓存用的。对于 PC 机、服务器来说,“内存是 CPU 和存储器数据沟通的桥梁”。只有了解主存和辅存相辅相成的关系后,才能在实际的程序编写、技能调优、技能查看等方面做到更加成熟于胸。

本次课程的重要内容:

第一个部分是介绍 Linux 系统中的两个和内存有关的重要文件,proc 和 system 文件;第二部分是介绍 linux 内存和系统性能常用监控管理命令;第三个是讲解如何分配和创建 Swap 分区。

Swap 分区比较特殊,他是在硬盘空间中划分一个区域出来,用来做数据的缓存。可以将 CPU 直接访问,也就是间接的提升了内存的大小。通过 Swap 分区的这种方式,可以把辅存变相的当辅存来使用。


二、Linux 系统的 proc 和 sys 文件系统

Proc 和 sys 这两个都包含了相关的内存信息,可以通过一些命令调取相关的信息来获取内存的信息

(1)/proc 目录介绍

Linux 内核提供了一种通过/proc 文件系统,在运行时访问内核内部数据结构,改变内核设置的机制。

proc 文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。也就是可以通过访问 proc 这个文件来拿到所需要知道的相关信息

image.png

 

操作演示:

打开命令行,先切换目录到 proc 目录下,语句为 cd /proc 和语句 ls,就可以查看 proc 目录下的文件,如下图。

蓝色一般代表的时目录,之后在进行实操之后就可以了解到,前面的数字就代表的是 pid 标号。剩下的除了目录之外的白色字体,就是一些文件。

image.png

A./proc/cmdline 这个文件给出了内核启动的命令行

先切换到命令行中,用 cat 命令来输入语句 cat cmdline,结果如下,可以看到 Linux 在启动的时候,这些启动的参数和选项都是包含在内的,包括 BOOT_IMAGE、进程信息、内核信息以及相关信息,在启动的内容中都可以看到。

image.png

B./proc/cupinfo 提供了有关系统 CPU 的多种信息

同样用 cat 命令,输入语句 cat cpuinfo 运行的参数,结果如下图,可以看到有一个 processor 为0,cpu 的信息,包括型号等其他参数,可以在文件中查看到。

image.png

之后会有一个 processor:1,这是第二个 cpu 的信息,可以回顾之前购买的 exe 服务器,当时 CPU 的样子。现在进行 CPU 信息的回顾,可以看到当时购买的是两核8GB 的信息,有两个 process 和两个 CPU 和8GB 的信息,对比之后都是正确的。

image.png

C./proc/devices 列出字符和块设备的主设备号,以及分配到这些设备号的设备名称

这些是设备内容详细的信息同样用 cat 命令,输入语句 cat devices,结果如下,会有很多的 device 信息,有一个大致的了解既可。

image.png

D./proc/ filesystems 列出可供使用的文件系统类型,每一种类型一行

同样使用 cat 命令,在窗口中输入 cat devices,结果如下,会有几百个文件信息,一行表示一个类型,有一个 usb 信息,就表示这个包含的都是 usb 类型,这个内容需要了解。

E./proc/kcore 系统的物理内存以 core 文件格式保存的文件

F./proc/meminfo 这个文件给出了内存状态的信息。它显示出系统中空闲内存,已用物理内存和交换内存的总量。它还显示出内

核使用的共享内存和缓冲区总量。这些信息的格式和 free 命令显示的结果类似。

使用 cat 命令,输入语句 cat meminfo,得到以下结果,会显示内存的大写是8G,空闲的内存大小是7G,还有其他参数向其他内存,swap 分区以及配置,这个会在后面做详细的介绍。

image.png

(2)/sys 文件系统介绍

sys 文件系统本质上和 proc 文件系统是一样的,都是放在内存的数据,都是虚拟文件系统。都在根目录下有个目录(一个是/proc 目录,另一个是/sys 目录),因此都不是硬盘中的文件,都是内核中的数据结构的可视化接口。

不同的是/proc 中的文件只能读,但是/sys 中的文件可以读写。读取/sys 中的文件就是获取内核中数据结构的值,而写入/jsip 中的文件就是内核中的数据结构的元素的值。

通常会发现 sys 使用在一些存储、文件以及设备的一些信息,相等于管理着一些内容。而 proc 主要是对进程的监控、查看以及运行参数的展示,这就是两者之间的一点区别。

操作演示:

先连接云服务器,用 cd 命令到目录下,语句为:cd /sys 和语句ll,结果如下,蓝色的都代表是目录,而 sys 的目录是比 proc 的目录数量少一些。

image.png

先打开一个目录,进行查看,输入语句 cd block/,在输入ll。结果如下,会发现 vda 和 vdb,这个是代表着系统中发现的设备速度快,之前购买的系统,一个是分区,一个是云盘。是两个分区,所以会弹出两个信息。

block 每个子目录代表系统中当前被发现的所有块设备

bus 每个子目录代表 kernel 支持并且已经注册了的总线类型

class 包含所有注册在 kernel 里面的设备类型

dev 存放主次设备号文件

devices 包含所有被发现的注册在各种总线上的各种物理设备

firmware 系统加载固件机制的对用户空间的接口文件

fs 描述文件系统,包括文件系统分类存放的已挂载点等。

hypervisor 与虚拟化 Xen 虚拟机相关的装置

kernel 存放的是内核中所有可调整的参数

module 存放系统中所有的模块信息

power 系统中的电源选项

相关文章
|
3月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
286 3
Linux系统禁用swap
|
3月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
437 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
393 0
Linux系统初始化脚本
|
3月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
335 1
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
6333 0
|
关系型数据库 MySQL Linux
卸载、下载、安装mysql(Linux系统centos7)
卸载、下载、安装mysql(Linux系统centos7)
459 0
|
Linux
手把手教会你安装Linux系统
手把手教会你安装Linux系统
252 0
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
Ubuntu Linux 网络安全
从头安装Arch Linux系统
本文记录了作者安装Arch Linux系统的过程,包括安装成果展示和遇到的疑难点及其解决方法,如硬盘不足、下载失败、设置时区、安装微码和配置无密码登录等。
488 1
从头安装Arch Linux系统
|
存储 NoSQL Java
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)
该博客文章展示了如何在Linux虚拟机上使用Redis和Jedis客户端实现手机验证码的验证功能,包括验证码的生成、存储、验证以及限制每天发送次数的逻辑,并提供了测试结果截图。
使用redis进行手机验证码的验证、每天只能发送三次验证码 (redis安装在虚拟机linux系统中)