首页 > 其他分享 >文件IO

文件IO

时间:2024-05-07 20:12:55浏览次数:21  
标签:文件 NTFS MMU FAT32 文件夹 内存 IO

文件IO

目录

一. FAT32 与 NTFS 的区别

​ NTFS和FAT32是两种不同的文件系统格式,它们在功能、安全性和性能等方面存在一些区别。

1、功能和性能:NTFS是一种高度可恢复的文件系统,具有许多高级功能,如数据恢复、加密、压缩、磁盘配额等。相比之下,FAT32文件系统在功能和性能方面较为有限。

2、磁盘分区大小:NTFS支持的磁盘分区大小最大可达2TB(2048GB),而FAT32支持的分区大小最大为32GB。因此,对于需要使用大容量磁盘的用户来说,NTFS是更好的选择。

3、单个文件大小:NTFS突破了单个文件4GB的容量限制,目前来说似乎没容量限制,只要硬盘空间容量有多大,那么就NTFS就可以分到多大。而FAT32在实际运行中不支持单个文件大于4GB的文件,一旦超过容量限制那么系统就会提示磁盘空间不足。

4、安全性:NTFS提供了更高级的安全功能,可以对文件和文件夹进行加密和权限设置,而FAT32则不具备这样的安全功能。在NTFS下,用户可以对电脑用户对该格式下所有的文件夹、文件进行加密、修改、运行、读取目录及写入权限的设置。此外,在磁盘分区下任意文件夹或文件上右键属性,在高级属性窗口中勾选中加密内容以便保护数据即可做到加密。

5、碎片和空间利用:随着时间的推移和使用次数的增加,文件可能会产生碎片。从FAT16的文件系统格式,到之后的FAT32然后再到现在的NTFS文件系统格式,从磁盘分区的格式不同,那么所产品的磁盘碎片也是越来越小。

6、磁盘配额:NTFS支持磁盘配额,可以在一个NTFS分区上为不同用户设置不同的磁盘空间配额,而FAT32不支持磁盘配额。

7、文件恢复:NTFS具有更好的文件恢复功能,可以恢复意外删除或格式化的文件,而FAT32的文件恢复功能相对较弱。

8、压缩和加密:NTFS支持文件和文件夹的压缩和加密,而FAT32不支持。

9、日志记录:NTFS支持事务日志记录,可以记录对文件系统的更改,而FAT32不支持。

10、文件链接:NTFS支持硬链接和符号链接,而FAT32不支持。

11、文件访问控制:NTFS支持更复杂的文件访问控制,可以针对不同用户或用户组设置不同的访问权限,而FAT32不支持。

12、安全性:NTFS具有更高的安全性,可以防止恶意软件或黑客对文件进行修改或删除,而FAT32的安全性相对较低。

综上所述,NTFS和FAT32在功能、性能、磁盘分区大小、单个文件大小、安全性和碎片和空间利用等方面存在显著差异。因此,在选择文件系统格式时,需要根据实际需求和使用场景进行选择。如果需要使用大容量磁盘并需要高级安全功能和数据恢复能力,则建议使用NTFS文件系统。如果只需要一个简单的文件系统用于存储少量数据,并且不需要高级功能,则FAT32文件系统可能是一个更好的选择。

二. MMU(内存管理单元)

​ 内存管理单元(Memory Management Unit,MMU)是计算机系统中的一个重要组成部分,主要负责管理计算机的内存(RAM)的访问。它负责将逻辑地址转换为物理地址,以及执行访问权限的检查和控制。MMU通常包括地址转换、内存保护、缓存控制等功能,是操作系统和硬件之间的重要接口。

​ 当程序运行时,它们生成的内存地址是逻辑地址,而实际存储器芯片上的位置是物理地址。MMU的主要功能之一是将逻辑地址转换为物理地址。这个过程通常涉及到分页或分段技术。

  1. 分页(Paging):在分页系统中,内存被划分为大小相等的页(通常是4KB或8KB)。MMU将逻辑地址的页号与页表中的物理页框号进行映射,从而找到相应的物理地址。这种方式使得内存的管理更加灵活,但会增加一些开销,如页表维护和TLB(Translation Lookaside Buffer)缓存的管理。
  2. 分段(Segmentation):在分段系统中,程序的逻辑地址空间被划分为若干段,每个段具有不同的权限和大小。MMU将逻辑地址的段号与段表中的物理地址进行映射,从而找到相应的物理地址。这种方式更加灵活,因为不同的段可以有不同的权限和大小,但也会增加管理复杂度。

除了地址转换,MMU还负责执行内存保护,确保程序只能访问其被授权的内存区域。它会检查每个内存访问是否合法,并在需要时触发异常。

此外,MMU还负责缓存控制。它可以将内存中的数据缓存在高速缓存中,以加快访问速度。但是,MMU需要确保缓存中的数据与内存中的数据保持一致,避免出现不一致的情况。

总的来说,MMU在计算机系统中起着至关重要的作用,它使得操作系统能够更加灵活地管理内存,并确保程序能够安全、高效地访问内存。

三 Linux 内核的作用

​ Linux 内核主要由 5 部分组成,分别为:进程管理子系统,内存管理子系统,文件子系统,网络子系统,设备子系统。

​ 由系统调用层(系统调用子系统)进行统一管理,应用层通过系统调用层的函数接口与内核进行交互,用户应用程序执行的

https://zhuanlan.zhihu.com/p/541076486

image

四 Linux 中目录文件和文件夹的区别

​ Linux中的目录文件 ( .directory ) 用于存放目录项,与 Windows 的文件夹的概念不同,他,并不是一个容器,而仅仅是个文件索引表,索引表由文件民和索引号组成。

​ Windows 的文件夹类似于一种容器,大文件夹里面有很多子夹和文件,子文件又套有各种文件夹和文件。

标签:文件,NTFS,MMU,FAT32,文件夹,内存,IO
From: https://www.cnblogs.com/JinBool/p/18178270

相关文章

  • 文件IO的学习
    FAT32和NTFS文件系统的区别什么是文件系统?文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。文件系统的作用?数据组织:文件系统将数据划分为文件和目录(或文件夹),并提供一种层次化的结构来组织这些数据,使用户和应用程序能够方便......
  • Linux系统目录和文件夹的区别
    Linux系统目录和文件夹的区别在Linux系统中,术语“目录”和“文件夹”通常可以互换使用,它们都指的是存储文件和子目录的容器。然而,在计算机科学和文件系统管理的上下文中,这两个术语有一些细微的差别。目录(Directory)在计算机科学中,目录通常指的是文件系统中的一个结构,它用于组织......
  • 免费的visual studio智能代码插件——CodeGeeX
    CodeGeeX是什么?什么是CodeGeeX?CodeGeeX是一款基于大模型的智能编程助手,它可以实现代码的生成与补全,自动为代码添加注释,不同编程语言的代码间实现互译,针对技术和代码问题的智能问答,当然还包括代码解释,生成单元测试,实现代码审查,修复代码bug等非常丰富的功能。CodeGeeX是一款基于......
  • IO一些基础必备知识点
    IO编程IO一些必备知识点目录IO编程IO一些必备知识点①了解FAT32以及NTFS区别②了解MMU如何将虚拟地址与物理地址转换③请简述Linux内核的作用Linux内核是链接硬件和上层应用的桥梁,通过这个桥梁我们可以直接在上层完成对硬件的操作④Linux系统目录和文件夹的区别⑤库函数与系统调......
  • fAT32文件系统与NTFS文件系统的区别
    FAT32文件系统FAT32(FileAllocationTable32)是一种较为古老的文件系统,它最初被设计用于MS-DOS和早期版本的Windows操作系统。FAT32文件系统的主要特点包括:兼容性:FAT32文件系统因其简单性而在多种操作系统和设备上得到了广泛的支持,包括Windows、MacOS和Linux等。文件大小限制:F......
  • Linux系统中的“文件夹”为何称之为目录
    什么是文件夹文件夹是一种用来组织和管理磁盘文件的数据结构文件存储也称为文件级存储或基于文件的存储,数据会以单条信息的形式存储在文件夹中。当需要访问该数据时,计算机需要知道相应的查找路径。存储在文件中的数据会根据元数据来进行整理和检索,这些元数据会告诉计算机文件所......
  • linux系统中文件夹和目录的区别
    *linux系统中目录和文件夹的区别:*Linux系统目录结构是一种层次化的文件系统结构,它定义了Linux操作系统中各个目录的作用和存放内容的规范。在Linux系统中,目录和文件的底层数据结构都是通过inode(索引节点)来进行管理的。inodes存储有关文件系统对象(如文件和目录)的元数据,比......
  • Session相关知识
    什么是Session当用户请求来自应用程序的Web页时,服务器会给每一个用户(浏览器)创建一个Session对象;用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去,默认情况下,只要浏览器没有关闭,这个Session就一直存在。Session的常用......
  • dart annotation
    dart/flutterannotation注解或者元编程dart或者是Java注解或者是Python元编程注解或者元编程都是装饰器模式的视线dart通过注解,生成相应的代码,最后编译Flutter相关命令flutterpubrunbuild_runnerbuild--delete-conflicting-outputs运行代码生成器构建项目......
  • Tensorflow object detection API (ubuntu18.04) 安装和踩坑;
    踩坑:将slim和models路径加入虚拟环境中;将slim和models路径加入系统路径中;(加入系统路径的时候,这个pwd) qit(持续更新)具体安装流程:(很多问题)2.0版本;(继续更新)condacreate-ntf_obj_det_api_v2python=3.8 (很丝滑)重新尝试tf1.0版本;参考:https://blog.csdn......