Linux 系统常见的文件系统有哪几种?Windows系统上看到的C盘、D盘,在Linux 系统下是以什么样的形式存在?
在计算机中,文件系统(file system)是命名文件及放置文件的逻辑存储和恢复的系统。文件系统指定命名文件的规则。这些规则包括文件名的字符数最大量,哪种字符可以使用,以及某些系统中文件名后缀可以有多长。文件系统还包括通过目录结构找到文件的指定路径的格式。
Linux 下没有 C、D 盘等硬盘分区的概念。Linux 下是采用目录形式来代替 Windows 中硬盘分区的概念,即我们常说的 Linux 系统中,“一切皆是文件”。即便是传统意义上的文件夹,在 Linux 系统中也是文件。程序、服务、文本、图片等等也都是文件,一些外接设备也是文件。主要支持的文件系统包括 ext2、ext3、vfat、ntfs、iso9660、jffs、romfs,nfs 以及其他更新的文件系统,比如华为的 erofs 文件系统等。
(1)ext 专门为 Linux 设计的,为 Linux 核心所做的第一个文件系统。单个文件最大限制:未知;该文件系统最大支持 2 GB的容量。
(2)ext2 由 Rémy Card 设计,用以代替 ext,是LINUX内核所用的文件系统。单个文件最大限制 2 TB;该文件系统最大支持 32 TB 的容量。
(3)ext3一个日志文件系统。单个文件最大限制 16 TB,该文件系统最大支持 32 TB的容量。
(4)ext4Theodore Tso 领导的开发团队实现,Linux 系统下的日志文件系统。单个文件最大限制 16 TB,该文件系统最大支持 1EB 的容量。
(5)JFS2 一种字节级日志文件系统,该文件系统主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。单个文件最大限制 16 TB,该文件系统最大支持 1 PB的容量。
目前绝大多数 Linux 发行版都是默认 ext4
作为默认文件系统,在这之前还有 ext3
、ext2
、ext
等。
在 ext 文件系统使用之前,Unix 主要使用 MINIX 文件系统,但是它不是开源免费的。当 Linus Torvalds 开发 Linux 内核时,也是使用的 MINIX 文件系统。不过该系统只能最大支持 14 个字节的文件名和 64 MB 大小的存储空间。
1992 年,Remy Card 发布了第一个 ext 系统,并应用于 Linux。ext 系统可以支持 255 字节文件名和 2 GB 的存储空间。不过 ext 的缺点是一个文件只能有一个时间戳,而不是像今天这样可以有 3 个时间戳(创建时间、访问时间和修改时间)。于是很快 Remy 又发布了 ext2 文件系统,ext2 可以处理数 GB 大小的文件和数 TB 大小的存储空间。但是它的问题是如果系统出现问题或者向硬盘写入数据时断电,会造成整个灾难性的崩溃,其他很多文件也会受到牵连。而且文件的碎片化问题严重拖慢了系统速度。在 1993 年,Stephen Tweedie 发布了 ext3 文件系统,它和微软的 NTFS 文件系统相似,采用了日志化 journal
的方法来处理断电问题,日志是磁盘上的一块专门的分区,来记录磁盘读写情况。一次写入完成之后,会记录在日志中,如果在写的过程中出现来断电等情况而中断,那么重新启动系统后,通过日志能够识别出之前不完整的写入,并将该写入删除。这就意味着采用 ext3 系统可以很好的保护其他文件不受断电等因素影响。ext3 采用 32 位地址,这就意味着它能处理的文件最大 2 TB,文件系统最大到 16 TB。在 2006 年,出现了 ext4 文件系统,与 ext3 文件系统相比,ext4 的优势在于:
向后兼容,能够兼容ext3文件系统。
更大的文件系统,ext4采用48位地址,可以最大支持16TB文件和1EB(1000000TB)大小的文件系统。
更快的读写速度。
减少磁盘碎片的产生。
ext3最大支持32000个子目录,而ext4则没有任何限制。
对文件日志的检查,确保稳定性。
更精细的时间戳。ext3可以精确到秒,而ext4可以精确到纳秒级,同时ext4扩展了可以记录的时间尺度到AD2446年。
补充知识点:
Windows 中的 C 盘、D 盘是以 "" 为路径,而 Linux 以 “/”为路径。
Windows 常见的文件系统:NTFS:全名 New Technology File System 即新技术文件系统,被普遍用于 Windows XP 以上版本的 Windows 中,取代原来 FAT32。(1)应用范围:NTFS 多用于台式机电脑、笔记本及平板电脑、移动硬盘等大中型空间容量的磁盘。而 FAT32 多用于 U 盘、内存卡等小型空间容量的磁盘。它们采用 FAT32 的原因是,NTFS 主要是针对传统机械硬盘而设计的,对于U盘或内存卡这种闪存材料不适用。NTFS 分区采用“日志式”的文件系统,这种格式会对 U 盘这种闪存储介质会造成较大的负担,会直接造成U盘容易损坏;(2)最大分区容量限制:FAT32 在 WIN2000 和 XP 系统中最大分区容量限制为 2 TB的容量。NTFS 没有容量限制,硬盘空间的容量有多大,NTFS 就可以分到多大;(3)单个文件容量限制:FAT32 在实际运行中不支持单个文件大于 4 GB 的文件,一旦超过容量限制那么系统就会提示磁盘空间不足。NTFS 已经突破了单个文件 4 GB 的容量限制,已经差不多完全替代 FAT32 分区格式了,已在 Win7/Win8/Win10 系统中广泛运用。(4)安全:NTFS分区格式,用户可以对该格式分区下所有的文件夹或文件进行加密、修改、写入等权限的安全设置,而 FAT32 没有这种功能。
系统分区:在 Windows 我们经常看到 C 盘或 D 盘等的系统分区。在 Linux 也存在分区,但是和 Windows 上的分区完全不一样。分区的目的主要是为了保护数据和系统的稳定,当一个分区出现问题时,不会影响和破坏其他分区。在Linux系统上有两种主要的分区:
数据分区data partition
:存放正常 Linux 系统的数据,包括系统的启动和运行等等。
交换分区swap partition
:用来使用一定的硬盘空间来扩展计算机的内存。交换分区只能系统自己有访问权限,通常情况下,你是看不到的。它的存在主要是为了保证系统的稳定。在 Linux 系统中,你很少看到“系统内存不足”的提示,这主要是因为交换分区的存在。虽然访问交换分区比访问物理内存慢,但能够很大程度上解决系统内存的问题。在安装 Linux 系统时,我们通常会把交换分区的大小设为实际物理内存的两倍,即如果你有 512MB 的 RAM,那么交换分区则设为 1GB 大小。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。