首页 > 其他分享 >文件IO的学习

文件IO的学习

时间:2024-05-07 20:12:23浏览次数:21  
标签:文件 https MMU 文件系统 学习 内核 IO Linux 内存

FAT32和NTFS文件系统的区别

什么是文件系统?

文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。

文件系统的作用?

  • 数据组织: 文件系统将数据划分为文件和目录(或文件夹),并提供一种层次化的结构来组织这些数据,使用户和应用程序能够方便地查找和访问所需的信息。
  • 存储管理: 文件系统负责跟踪存储介质上空闲和已用的空间,管理文件的分配和释放,确保有效利用存储资源。
  • 文件操作: 文件系统提供创建、读取、写入、删除、复制、移动、重命名等文件和目录的基本操作。
  • 数据安全性: 文件系统可以提供访问控制和权限管理,以确保只有授权用户才能访问特定文件或目录。这些机制帮助保护敏感数据免受未经授权的访问。
  • 数据完整性和恢复: 文件系统可能包含数据完整性检查和恢复机制,以应对存储介质损坏或文件系统错误。这些功能有助于确保数据的可靠性。

区别概要

FAT32(File Allocation Table 32)和NTFS(New Technology File System)是两种不同的文件系统。主要区别在于:

  1. 文件大小和分区大小限制:
    • FAT32最大文件大小为4GB,最大分区大小为2TB。
    • NTFS支持更大的文件和分区大小,最大文件大小为16EB(exabytes),最大分区大小为16EB。
  2. 安全性和稳定性:
    • NTFS提供了更强的安全性和稳定性,支持访问控制列表(ACL)和加密等功能,可以更好地保护数据。
    • FAT32相对较简单,不支持像NTFS那样的高级安全功能。
  3. 文件系统恢复:
    • NTFS拥有更好的文件系统恢复能力,可以更容易地修复损坏的文件系统。
    • FAT32在出现文件系统损坏时可能需要更多的手动干预。
  4. 兼容性:
    • FAT32更广泛地兼容于不同的操作系统和设备,如Windows、Mac和Linux,以及许多嵌入式系统。
    • NTFS在Windows系统中有更好的性能和支持,但在其他操作系统上的兼容性可能有限。

总的来说,如果需要更大的文件和分区大小、更好的安全性和稳定性,以及更强的文件系统恢复能力,那么NTFS是更好的选择。如果需要更好的兼容性和简单性,那么FAT32可能更合适。

参考:

Overview of FAT, HPFS, and NTFS File Systems:https://learn.microsoft.com/en-us/troubleshoot/windows-client/backup-and-storage/fat-hpfs-and-ntfs-file-systems

文件系统:https://zh.wikipedia.org/wiki/文件系统#DOS_/_Microsoft_Windows支援的檔案系统

文件系统:https://baike.baidu.com/item/文件系统/4827215

简直不要太硬了!一文带你彻底理解文件系统:https://www.cnblogs.com/cxuanBlog/p/12565601.html

一口气搞懂「文件系统」,就靠这 25 张图了:https://zhuanlan.zhihu.com/p/183238194

MMU(内存管理单元)

什么是MMU?

MMU 是内存管理单元(Memory Management Unit)的缩写。它是计算机系统中的一个重要组成部分,负责处理主存储器(RAM)和CPU之间的数据传输和转换。

MMU的作用?

  1. 地址转换: MMU 负责将程序中使用的虚拟地址转换为对应的物理地址。虚拟地址是由程序员编写的程序使用的地址空间,而物理地址是真实的内存地址。通过地址转换,MMU使得CPU能够正确地访问内存中的数据和指令。
  2. 内存保护: MMU 可以设置访问权限和保护机制,以防止程序越界访问或修改系统关键数据。通过在地址转换过程中检查权限位或设置保护位,MMU可以确保程序只能访问其被授权访问的内存区域,从而增强系统的安全性。
  3. 虚拟内存管理: MMU 支持虚拟内存系统,通过将部分数据从RAM(随机存取存储器)转移到硬盘等辅助存储设备上,从而扩展可用的内存空间。虚拟内存允许程序使用比物理内存更大的地址空间,并且可以有效地管理内存资源,提高系统的性能和灵活性。
  4. 内存映射: MMU 可以实现内存映射,将外设的地址空间映射到CPU的地址空间中。这样,CPU就可以通过访问特定的内存地址来与外设进行数据交换,而不需要直接操作外设地址。
  5. 提高性能: MMU 的地址转换和虚拟内存管理可以提高系统的性能。通过将部分数据存储在硬盘等辅助存储设备上,虚拟内存系统减少了对RAM的需求,从而减少了内存碎片和数据交换的次数,提高了系统的整体性能。

参考:

MMU原理:https://zhuanlan.zhihu.com/p/354142930

MMU内存管理单元:https://www.cnblogs.com/alantu2018/p/9002309.html

请简述Linux内核的作用

什么是Linux内核?

Linux® 内核是 Linux 操作系统(OS)的主要组件,也是计算机硬件与其进程之间的核心接口。它负责两者之间的通信,还要尽可能高效地管理资源。

Linux内核组成?

  1. 进程管理:负责管理系统中的进程,包括创建、调度、终止进程等操作。
  2. 内存管理:管理系统的物理内存和虚拟内存,包括内存分配、回收、页面置换等功能。
  3. 文件系统:提供对文件和文件系统的访问,包括文件的创建、读写、删除以及文件系统的格式化、挂载等操作。
  4. 设备驱动程序:管理系统中的硬件设备,包括对设备的初始化、数据传输、中断处理等。
  5. 网络协议栈:实现各种网络协议,包括TCP/IP协议栈,用于网络通信和数据传输。
  6. 系统调用接口:提供给用户空间程序访问内核功能的接口,用户程序可以通过系统调用请求内核执行特定操作。

Linux内核的作用?

  1. 硬件管理: Linux 内核负责管理计算机系统的硬件资源,包括 CPU、内存、硬盘、网络接口等。它通过驱动程序与硬件进行通信,控制硬件的初始化、配置和操作,以及处理硬件中断和异常。
  2. 进程管理: 内核负责管理系统中运行的进程。它分配 CPU 时间片给各个进程,并在进程间进行调度,以确保系统资源的合理利用和公平分配。此外,内核还负责创建、销毁和管理进程的生命周期。
  3. 内存管理: Linux 内核管理系统的内存资源,包括物理内存和虚拟内存。它负责内存分配和释放,虚拟地址到物理地址的映射,页面交换和页面管理等任务,以确保系统内存的高效利用和稳定性。
  4. 文件系统: 内核提供文件系统服务,负责管理文件和目录的创建、读写、删除等操作。它通过文件系统驱动程序与存储设备进行通信,支持各种文件系统类型,如 ext4、NTFS、FAT 等,并提供统一的文件系统接口供用户空间程序使用。
  5. 设备驱动: Linux 内核包含大量的设备驱动程序,用于与各种硬件设备进行通信和控制。这些驱动程序负责初始化设备、处理设备中断和异常,并提供统一的设备接口给用户空间程序调用。
  6. 网络通信: 内核支持各种网络协议和网络设备驱动,负责管理网络接口、路由表、数据包转发等任务,以实现网络通信功能。
  7. 安全性和权限管理: 内核实施系统的安全策略和权限控制机制,确保系统资源和数据的安全性。它管理访问权限、执行权限和资源访问控制列表(ACL),并提供安全机制如 SELinux(Security-Enhanced Linux)等。

参考:

什么是 Linux 内核?:https://www.redhat.com/zh/topics/linux/what-is-the-linux-kernel

一文看懂Linux内核!Linux内核架构和工作原理详解:https://zhuanlan.zhihu.com/p/342056802

Linux系统内核概述:https://wiki.deepin.org/zh/01_软件wiki/03_linux内核/Linux系统内核概述

分析Linux 内核(Kernel)组成:https://zhuanlan.zhihu.com/p/541076486

Linux系统中目录和文件夹的区别

linux 中目录 是一个文件索引表,由文件名和索引号组成

crazy3min_bd69d65c4d9b1dae75df05e8aaec43ed

f34dd6a9e72e2471d26fa7bbd68def52

参考

linux文件索引号,linux文件系统索引节点浅析:https://blog.csdn.net/weixin_36053084/article/details/116630256

标签:文件,https,MMU,文件系统,学习,内核,IO,Linux,内存
From: https://www.cnblogs.com/crazy3min/p/18178272

相关文章

  • 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......
  • Linux中的目录与文件夹的区别
    Linux中的目录与文件夹的区别今天学习到了文件IO方面,知道了在Linux中使用命令mkdir创建的并不是文件夹而是目录,有很多人喜欢将此认为是文件夹,严格意义上俩者是有很大的不同,今天通过查询资料得知俩者的区别,希望一下对于疑惑的你有所帮助。目录Linux中的目录与文件夹的区别首先为......