Linux文件系统杂记

基本上,所有物理磁盘的文件名都已经被模拟成/dev/sd[a~p]的格式,第一块磁盘文件名为/dev/sda,而分区的文件名若以第一块磁盘为例,则为/dev/sda[1~128]。除了物理磁盘外,虚拟机的磁盘通常为/dev/vd[a~p]的格式。

磁盘分区完毕后,还需要进行格式化,之后操作系统才能使用这个文件系统。传统的磁盘与文件系统应用中,一个分区就只能被格式化成为一个文件系统,所以我们说一个文件系统就是一个硬盘分区。但是由于新技术的应用,例如LVM与软件磁盘阵列,这些技术可以将一个分区格式化为多个文件系统,也能将多个分区合成一个文件系统,所以现在不在说针对分区来格式化了。

文件系统如何运行呢?文件除了文件内容以外还包括文件权限(rwx)与文件属性(拥有者、用户组、时间参数等),文件系统通常会将这两部分的数据分别存放在不同的区块,权限与属性放置到inode中,实际数据则放置到数据区块中。另外还有一个超级区块会记录整个文件系统的整体信息,包括inode与数据区块的总量、使用量、剩余量等。

当系统加载一个文件到内存后,如果该文件没有被修改过,则在内存区段的文件数据会被设置为干净,但如果内存中的文件数据被更改过了,该内存中的数据会被设置为脏的,此时所有的操作都在内存中进行,并没有写入到磁盘中,系统会不定时的将内存中设置为脏的数据写回磁盘,以保持磁盘与内存数据的一致性。

系统会将常用的文件数据放置到内存的缓冲区,以加速文件系统的读写操作,因此Linux的物理内存最后都会被用光,这是正常的情况,可加速系统性能。可以手动使用sync来强制脏数据写回磁盘。若正常关机,关机命令会主动调用sync来将内存数据回写入磁盘,但若不正常关机,由于数据尚未写回磁盘,重新启动后可能会花很多时间进行磁盘校验,甚至可能导致文件系统损坏。

Linux支持众多的文件系统,Linux内核又是如何管理这些识别的文件系统呢?其实Linux系统是通过VFS的内核功能去读取文件系统,也就是说整个Linux是别的文件系统其实都是VFS在进行管理。

每个文件系统都有独立的inode、区块、超级区块等信息,这个文件系统要能够连接到目录树才能被我们使用。将文件系统与目录树结合的操作我们称为挂载。挂载点 一定是目录,该目录为进入该文件系统的入口。

如果我们想在系统里新增一块磁盘,应该做以下操作:

1、对磁盘进行划分,以建立可用的分区。
2、对该硬盘分区格式化,以建立系统可用的文件系统。
3、建立挂载点(即目录),将它挂载上来。

操作系统启动时自动挂载的的设备和目录可以在/etc/fatab文件中设置。

内存交换分区(swap):cpu读取的数据来自于内存,内存不足时为了让后续程序可以顺利运行,需要将暂不使用的程序与数据挪到内存交换分区中,此时内存就会空出来给需要执行的程序。内存交换分区是用磁盘来暂时放置内存中的信息。

相关推荐

  1. Linux文件系统杂记

    2024-06-06 02:48:04       27 阅读
  2. linux小工具杂记

    2024-06-06 02:48:04       35 阅读
  3. Linux虚拟文件系统

    2024-06-06 02:48:04       57 阅读
  4. linux 文件系统

    2024-06-06 02:48:04       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 02:48:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 02:48:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 02:48:04       87 阅读
  4. Python语言-面向对象

    2024-06-06 02:48:04       96 阅读

热门阅读

  1. ORACLE RAC的一些基本理论知识

    2024-06-06 02:48:04       20 阅读
  2. oracle sys无法远程访问问题解决

    2024-06-06 02:48:04       29 阅读
  3. 程序员应该有什么职业素养?【模板】

    2024-06-06 02:48:04       24 阅读
  4. 查询DQL

    查询DQL

    2024-06-06 02:48:04      24 阅读
  5. Cookie,Session与Token解析

    2024-06-06 02:48:04       33 阅读
  6. 1349:【例4-10】最优布线问题

    2024-06-06 02:48:04       31 阅读
  7. TypeScript算法每日一题:两数之和(167)

    2024-06-06 02:48:04       25 阅读