linux文件系统

proc文件系统介绍

我与影子孤独终老i 提交于 2020-02-01 20:11:06
(1)linux内核是一个非常庞大、非常复杂的一个单独的程序,对于这样的一个程序来说调试是非常复杂的。 (2)项kernel这样庞大的项目,给里面添加/更改一个功能是非常麻烦的,因为你这添加的一个功能可能会影响其他已经有的。 (3)早期内核版本中尽管调试很麻烦,但是高手们还可以凭借个人超凡脱俗的能力去驾驭。但是到了2.4左右的版本的时候,这个难度已经非常大了。 (4)为了降低内核调试和学习的难度,内核开发者们在内核中添加了一些属性专门用于调试内核,proc文件系统就是一个尝试。 (5)proc文件系统的思路是:在内核中构建一个虚拟文件系统/proc,内核运行时将内核中一些关键的数据结构以文件的方式呈现在/proc目录中的一些特定文件中,这样相当于将不可见的内核中的数据结构以可视化的方式呈现给内核的开发者。 (6)proc文件系统给了开发者一种调试内核的方法:我们通过实时的观察/proc/xxx文件,来观看内核中特定数据结构的值。在我们添加一个新功能的前后来对比,就可以知道这个新功能产生的影响对还是不对。 (7)proc目录下的文件大小都是0,因为这些文件本身并不存在于硬盘中,他也不是一个真实文件,他只是一个接口,当我们去读取这个文件时,其实内核并不是去硬盘上找这个文件,而是映射为内核内部一个数据结构被读取并且格式化成字符串返回给我们。所以尽管我们看到的还是一个文件内容字符串

VFS(Virtual File System)

↘锁芯ラ 提交于 2020-01-31 21:24:05
一、 VFS 作为内核子系统,为用户空间程序提供了文件系统相关的接口。所有实际文件系统依赖VFS共存,依靠VFS系统工作。 1、VFS提供通用文件系统接口:用户空间程序可以利用标准的UNIX文件系统调用,如open()\read()\write(),对不同物理介质上的不同文件系统进行操作。 2、VFS提供文件系统抽象层:VFS提供了一个通用文件系统模型,该模型囊括了所有实际文件系统的常用功能和行为。VFS抽象层定义了所有实际文件系统支持的基本的、概念上的接口和数据结构,所以VFS能衔接各种实际文件系统。 二、Unix文件系统使用了四种与文件系统相关的 抽象概念 : 文件(file)、目录项(dentry)、索引节点(inode)、安装点(mount point). 1、 文件系统 是特殊的数据分层存储结构,它包含文件、目录和相关的控制信息。文件系统被安装在一个特定的安装点(mount point)上。 2、 安装点(mount point) 在全局层次结构中被称作命名空间,所有已安装的实际文件系统都作为根文件系统树的枝叶出现在系统中。 3、Linux将这种层次化概念引入单个进程中,每个进程指定一个唯一的 命名空间 。因为每个进程都会继承父进程的命名空间,所以所有进程往往都只有一个全局命名空间。 4、 文件(file) 是一个有序字节串,字节串中第一个字节是文件的头

Linux xfs和ext4的区别

大城市里の小女人 提交于 2020-01-30 23:36:53
centos7.0开始默认文件系统是xfs,centos6是ext4,centos5是ext3 ext3和ext4的最大区别在于,ext3在fsck时需要耗费大量时间(文件越多,时间越长),而ext4在fsck时用的时间会少非常多 ext4是第四代扩展文件系统(英语:Fourth EXtended filesystem,缩写为ext4)是linux系统下的日志文件系统,是ext3文件系统的后继版本 ext4的文件系统容量达到1EB,而文件容量则达到16TB,这是一个非常大的数字了。对一般的台式机和服务器而言,这可能并不重要,但对于大型磁盘阵列的用户而言,这就非常重要了。 ext3目前只支持32000个子目录,而ext4取消了这一限制,理论上支持无限数量的子目录 xfs是一种非常优秀的日志文件系统,它是SGI公司设计的。xfs被称为业界最先进的、最具可升级性的文件系统技术 xfs是一个64位文件系统,最大支持8EB减1字节的单个文件系统,实际部署时取决于宿主操作系统的最大块限制。对于一个32位Linux系统,文件和文件系统的大小会被限制在16TB xfs在很多方面确实做的比ext4好,ext4受限制于磁盘结构和兼容问题,可扩展性和scalability确实不如xfs,另外xfs经过很多年发展,各种锁的细化做的也比较好 来源: CSDN 作者: 张志翔 链接: https://blog

Linux的文件系统

巧了我就是萌 提交于 2020-01-30 17:54:44
文件系统 1.分区与文件管理 2.文件系统的组成 3.文件读取 4.磁盘碎片 5.block 6.inode 7.目录 8.日志 9.挂载 10.目录配置 1.分区与文件管理 对分区进行格式化是为了在分区上建立文件系统。一个分区通常只能格式化为一个文件系统,但是磁盘阵列等技术可以将一个分区格式化为多个文件系统。 2.文件系统的组成 最主要的几个组成部分如下: inode:一个文件占用一个 inode,记录文件的属性,同时记录此文件的内容所在的 block 编号; block:记录文件的内容,文件太大时,会占用多个 block。 除此之外还包括: superblock:记录文件系统的整体信息,包括 inode 和 block 的总量、使用量、剩余量,以及文件系统的格式与相关信息等; block bitmap:记录 block 是否被使用的位图。 3.文件读取 对于 Ext2 文件系统,当要读取一个文件的内容时,先在 inode 中查找文件内容所在的所有 block,然后把所有 block 的内容读出来。 而对于 FAT 文件系统,它没有 inode,每个 block 中存储着下一个 block 的编号。 4.磁盘碎片 指一个文件内容所在的 block 过于分散,导致磁盘磁头移动距离过大,从而降低磁盘读写性能。 5.block 在 Ext2 文件系统中所支持的 block 大小有 1K

Linux磁盘管理精讲

守給你的承諾、 提交于 2020-01-29 22:09:51
博文目录 一、磁盘基础 1、磁盘结构 二、磁盘分区表示 1、磁盘分区结构 2、文件系统类型 三、规划硬盘分区 1、检测并确认新硬盘 2、规划硬盘中的分区 一、磁盘基础 1、磁盘结构 硬盘存储容量=磁头数x磁道(柱面)数x每道扇区数x每扇区字节数 可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域 1)硬盘的物理结构 盘片:硬盘有多个盘片,每盘片2面; 磁头:每面一个磁头; 2)硬盘的数据结构 扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据; 磁道:同一盘片不同半径的同心圆; 柱面:不同盘片相同半径构成的圆柱面; 3)磁盘接口类型 IDE(并口):基本上已经淘汰; SATA(串口):速度快,纠错能力强,目前主流接口,应用广泛; SCSI:转速快,CPU占用资源低,支持热插拔; 4)MBR主引导记录 MBR(Master Boot Record)位于硬盘第一个物理扇区处;MBR中包含硬盘的主引导程序和硬盘分区表;分区表有4个分区记录区,每个分区记录区占16个字节。 二、磁盘分区表示 Linux中将硬盘、分区等设备均表示为文件。 IDE:/dev/hda5,硬盘的顺序号用a~z表示,分区的顺序号用数字表示,1~4表示为主分区,5以后表示为逻辑分区,计算机总共两块IDE接口磁盘。 SATA,SCSI:/dev/sdb2,计算机总共三块SATA或者SCSI接口的硬盘。 应用举例如下

Linux磁盘与文件系统原理

旧时模样 提交于 2020-01-28 23:16:11
这一章主要是原理性的,介绍了Linux文件系统的运作原理。涉及到很多计算机组成和操作系统的原理性知识,这部分知识很多都忘了,在这里复习下。 我们只看本章第1,2节。 --------------------------------------------------------------------------------------------------------------------------------------------------- 1 硬盘物理组成 //原理 磁头负责读写 磁道(硬盘同半径的一圈) 磁柱(所有盘磁道叠加起来的柱) 扇区(2条半径将磁道分开的一个扇形区域,是磁盘的最小存储单位) --------------------------------------------------------------------------------------------------------------------------------------------------- 2 磁盘分割 //原理 磁柱是磁盘分割的最小单位 磁盘分割就是指定一个分割(Partition)的是从A磁柱到B磁柱 所有磁盘的分割信息存放在MBR (主要开机扇区,master boot recoder),即一块硬盘的第0轨上。计算机一开机就会去读取这个区域。

Hadoop HDFS操作命令

丶灬走出姿态 提交于 2020-01-28 08:39:35
Hadoop HDFS操作命令 查看Hadoop HDFS支持的所有命令 hadoop fs 列出目录及文件信息 hadoop fs - ls 循环列出目录、子目录及文件信息 hadoop fs - lsr 将本地文件系统的test.txt复制到HDFS文件系统的/user/sunlightcs目录下 hadoop fs - put test . txt / user / sunlightcs 将HDFS中的test.txt复制到本地文件系统中,与-put命令相反 hadoop fs - get / user / sunlightcs / test . txt 查看HDFS文件系统里test.txt的内容 hadoop fs - cat / user / sunlightcs / test . txt 查看最后1KB的内容 hadoop fs - tail / user / sunlightcs / test . txt 从HDFS文件系统删除test.txt文件,rm命令也可以删除空目录 hadoop fs - rm / user / sunlightcs / test . txt 删除/user/sunlightcs目录以及所有子目录 hadoop fs - rmr / user / sunlightcs 从本地文件系统复制文件到HDFS文件系统,等同于put命令 hadoop

Linux基础命令(下)

て烟熏妆下的殇ゞ 提交于 2020-01-28 05:19:40
大家好,我是柒星 之前分享过Linux基础命令上,今天跟大家再盘点一些基础命令! 以下文章来自公众号【Honker】,可在公众号内查看学习资料,回复Linux进行获取。 No.1 df命令 – 显示磁盘空间使用情况 df命令的英文全称即“Disk Free”,顾名思义功能是用于显示系统上可使用的磁盘空间。默认显示单位为KB,建议使用“df -h”的参数组合,根据磁盘容量自动变换合适的单位,更利于阅读。 日常普遍用该命令可以查看磁盘被占用了多少空间、还剩多少空间等信息。 语法格式:df [参数] [指定文件] 常用参数: -a 显示所有系统文件 -B <块大小> 指定显示时的块大小 -h 以容易阅读的方式显示 -H 以1000字节为换算单位来显示 -i 显示索引字节信息 -t 指定块大小为1KB -l 只显示本地文件系统 -t <文件系统类型> 只显示指定类型的文件系统 -T 输出时显示文件系统类型 -- -sync 在取得磁盘使用信息前,先执行sync命令 显示磁盘分区使用情况: [honker@honker ~]# df 文件系统 1K-块 已用 可用 已用% 挂载点 devtmpfs 1980612 0 1980612 0% /dev tmpfs 1994756 0 1994756 0% /dev/shm tmpfs 1994756 1040 1993716 1% /run

理解存储虚拟化过程

柔情痞子 提交于 2020-01-28 01:44:05
关于存储的基本概念 全文以linux为举例 块设备和块设备文件 块设备 由内核加载驱动所识别到的存储设备就是一个块设备 块设备文件 操作系统眼里一切都是文件,那么块设备需要被创建成块设备文件存储到系统里 文件系统 可以把一个块设备比喻成一个仓库,我只要有东西就丢进去,但是问题就是仓库太大了,我每次想找个东西就很麻烦,这个时候要是有个管理员就好了 文件系统 跟所有的计算机资源使用一样,直接使用会造成很多问题,那么就需要一个管家来统一管理块设备文件,这个管家叫文件系统 块设备文件和文件系统 linux系统都是把块文件放到/dev下 格式化 块文件在没有被格式化的时候,是无法使用的,也就是把块文件进行逻辑格式化,变成文件系统后才能被系统调用 当然linux文件类型也随着技术发展出现了很多版本 xfs、ext4、ext3、ext2 逻辑卷 有发现没有,所有的计算机解决问题都是加一层逻辑层 逻辑卷 逻辑卷可以更有效的管理和分配磁盘空间,如增加空间,删除空间,合并空间等 可以实现高特性,如快照,提高传输性能、热迁移、等等 如果知道LVM就能很好的知道卷的好处 存储虚拟化 在存储设备上加入一层逻辑层 管理员方便资源调度和利用 给用户提高高性能和易用性 其实跟LVM逻辑卷管理是一样思想 存储虚拟化的实现方式 裸设备+逻辑卷 裸设备就是块设备文件 逻辑卷就是由VMM管理的文件系统

Linux复习题:3填空题

烈酒焚心 提交于 2020-01-27 21:10:12
1. 在Linux系统中,以 文件 方式访问设备 。 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。 3. Linux文件系统中每个文件用 i节点 来标识。 4. 全部磁盘块由四个部分组成,分别为 引导块 、专用块 、 i节点表块 和数据存储块。 5. 链接分为: 硬链接 和 符号链接 。 6. 超级块包含了 i节点表 和 空闲块表 等重要的文件系统信息。 7. 某文件的权限为: d-rw-_r--_r--, 用数值形式表示该权限,则该八进制数为: 644 , 该文件属性是 目录 。 8. 前台起动的进程使用 Ctrl+c 终止 。 9. 静态路由设定后,若网络拓扑结构发生变化,需 由系统管理员修改路由的设置。 10. 网络管理的重要任务是: 控制 和 监控 。 11. 安装Linux系统对硬盘分区时,必须有两种分区类型: 文件系统分区 和 交换分区 。 13. 编写的Shell程序运行前必须 赋予该脚本文件 执行 权限。 14. 系统管理的任务之一是能够在 分布式 环境中实现对程序和数据的 安全保护、备份、恢复和更新。 15. 系统交换分区是作为 系统 虚拟存储器 的一块区域。 16. 内核分为 进程 管理系统 、 内存管理系统 、 I/O管理系统 和文件管理系统 等四个子系统。 17. 内核配置 是系统管理员在改变系统配置 硬件