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 系统中的电源选项

相关文章
|
16小时前
|
Linux Windows
虚拟机添加新硬盘之linux系统篇
虚拟机添加新硬盘之linux系统篇
|
1天前
|
监控 安全 Linux
Linux系统入侵排查(三)
本文介绍了Linux系统入侵排查的相关知识。首先解释了进行系统入侵排查的原因,即当企业遭受黑客攻击、系统崩溃或其他安全事件时,需要迅速恢复系统并找出入侵来源。接着,重点讲述了日志入侵排查的重要性,因为日志文件记录了系统的重要活动,可以提供入侵行为的线索。
|
1天前
|
安全 Linux Shell
Linux系统入侵排查(二)
本文介绍了Linux系统入侵排查的步骤,包括检查历史命令记录、可疑端口和进程、开机启动项以及定时任务。作者强调了了解这些技能对于攻防两端的重要性,并提供了相关命令示例,如查看`/root/.bash_history`记录、使用`netstat`分析网络连接、检查`/etc/rc.local`和`/etc/cron.*`目录下的可疑脚本等。此外,还提到了如何查看和管理服务的自启动设置,以判断是否被恶意篡改。文章旨在帮助读者掌握Linux服务器安全维护的基本技巧。
|
1天前
|
缓存 安全 Linux
Linux系统入侵排查(一)
本文探讨了在遭遇黑客入侵或系统异常时进行应急响应和排查的必要性,重点介绍了基于Kali Linux的入侵排查步骤。排查的目标是找出潜在的恶意活动,恢复系统的安全性,并防止未来攻击。总结来说,进行Linux系统入侵排查需要密切关注账号安全,跟踪历史命令,及时识别并消除安全隐患。同时,保持对最新攻击手段和技术的了解,以便更好地防御和应对潜在的网络安全威胁。
|
1天前
|
存储 缓存 Linux
【Linux】文件系统
在打开文件之前,我们需要找到文件 -> 就要从磁盘中找到对应文件 -> 通过文件路径与文件名
18 4
|
1天前
|
Linux C语言
【Linux】 拿下 系统 基础文件操作!!!
怎么样,我们的猜测没有问题!!!所以语言层的文件操作函数,本质底层是对系统调用的封装!通过不同标志位的封装来体现w r a+等不同打开类型! 我们在使用文件操作时,一般都要使用语言层的系统调用,来保证代码的可移植性。因为不同系统的系统调用可以会不一样!
11 2
|
2天前
|
负载均衡 Linux 应用服务中间件
Linux系统中前后端分离项目部署指南
Linux系统中前后端分离项目部署指南
|
11天前
|
Unix Linux
Linux 常用命令汇总(六):磁盘与文件系统命令
Linux 常用命令汇总(六):磁盘与文件系统命令
|
21天前
|
存储 监控 安全
《Linux 简易速速上手小册》第6章: 磁盘管理与文件系统(2024 最新版)
《Linux 简易速速上手小册》第6章: 磁盘管理与文件系统(2024 最新版)
32 1
|
8月前
|
IDE Linux 开发工具
Linux磁盘管理与文件系统
Linux磁盘管理与文件系统
55 0