【应用】03.文件与目录
【嵌入式八股】一、语言篇https://www.nowcoder.com/creation/manager/columnDetail/mwQPeM
【嵌入式八股】二、计算机基础篇https://www.nowcoder.com/creation/manager/columnDetail/Mg5Lym
【嵌入式八股】三、硬件篇https://www.nowcoder.com/creation/manager/columnDetail/MRVDlM
【嵌入式八股】四、嵌入式Linux篇(本专栏)https://www.nowcoder.com/creation/manager/columnDetail/MQ2bb0
2、文件与目录
系统调用,看【操作系统】相关部分,看【嵌入式Linux中文件系统构建部分】
虚拟文件系统(VFS)_Vane Zhang的博客-CSDN博客
【Linux操作系统】番外篇 6 Linux文件系统_哔哩哔哩_bilibili 【Linux操作系统-板书】番外篇6 Linux文件系统 - 哔哩哔哩 (bilibili.com)
47.什么是Linux中的文件系统?
解释Linux中不同的文件系统类型吗?
说出你知道的文件系统,至少3种。
何为文件系统,何为根文件系统? - 知乎 (zhihu.com)
Linux中的文件系统指的是文件和目录在硬盘或其他存储设备上的组织结构。它定义了文件和目录在存储设备上的物理位置以及如何访问和管理它们。
Linux中的文件系统采用树形结构,以根目录(/)为基础,下面有一系列的子目录和文件,这些子目录和文件可以通过路径名来访问。在Linux中,常用的文件系统包括:
- ext4文件系统:它是Linux系统中最常用的文件系统之一,支持文件大小达到几TB的大文件,还支持日志和数据完整性保护等功能。
- XFS文件系统:它是一种高性能的文件系统,适用于大型文件和大型存储设备,能够支持更高的文件系统大小。
- Btrfs文件系统:它是Linux中较新的文件系统之一,支持快照、压缩和数据校验等功能。
- NTFS文件系统:它是Windows系统中常用的文件系统,但是Linux系统也支持对NTFS文件系统的读写操作。
Linux系统还支持许多其他类型的文件系统,包括FAT、exFAT、HFS+等。
48.U盘FAT32,EXT4以及其他文件系统的了解
当涉及到文件系统时,FAT32、EXT4以及其他文件系统都是常见的选择。下面是对它们的一些了解:
-
FAT32(File Allocation Table 32):
- FAT32是一种较早的文件系统,最初由Microsoft引入,现已成为一种通用文件系统。
- 它对文件和目录进行组织和管理,使用32位的文件分配表来跟踪文件的存储位置。
- FAT32对文件和分区的大小有一定的限制,单个文件最大可达4GB,分区最大可达2TB。
- FAT32具有广泛的兼容性,可以在不同操作系统(如Windows、Mac、Linux)之间进行读写。
-
EXT4(Fourth Extended Filesystem):
- EXT4是Linux操作系统中常用的文件系统,是对EXT3文件系统的改进和扩展。
- 它支持更大的文件和分区大小,单个文件最大可达16TB,分区最大可达1EB(1 exabyte,1EB = 1,048,576 TB)。
- EXT4提供了更高的性能和更好的稳定性,支持日志功能,以提高文件系统的一致性和恢复能力。
- 它还支持许多高级特性,如数据日志、延迟分配、快照等。
-
其他文件系统:
- 除了FAT32和EXT4,还有许多其他文件系统可供选择,每个文件系统都有其自身的特点和用途。
- NTFS(New Technology File System)是Windows系统中常用的文件系统,支持较大的文件和分区大小,具有更好的安全性和可靠性。
- HFS+(Hierarchical File System Plus)是Mac操作系统中使用的文件系统,支持较大的文件和分区大小,并提供了一些特定于Mac的功能。
- exFAT(Extended File Allocation Table)是针对闪存存储设备(如U盘、SD卡)设计的文件系统,支持大文件和快速访问。
- ZFS(Zettabyte File System)是一种先进的文件系统,具有强大的数据完整性保护、快照、压缩和高级存储管理功能。
选择适合的文件系统取决于具体的应用需求和操作系统的支持。不同的文件系统具有不同的特性和性能,因此在选择时需要考虑文件大小、系统兼容性、性能要求和数据安全等因素。
文件系统的类型
常见的文件系统类型有:
FAT16,FAT32,NTFS三种常见的文件系统+优缺点 - 行业资讯 - 电子产品设计开发与电子技术学习交流
FAT32 NTFS EXT4 APFS HFS+
FAT32是Windows系统和许多其他设备使用的文件系统,但它有文件大小限制。NTFS是一个更新更高级的Windows文件系统,它支持更大的文件、更高的性能和更多的功能。EXT4是Linux系统使用的文件系统类型,可以提供更好的文件系统安全性和数据完整性。APFS和HFS+是苹果公司开发的文件系统,用于Mac OS和iOS系统。
文件系统的功能
文件系统的主要功能包括:
文件存储与组织 文件访问控制 磁盘空间管理 文件系统安全性与完整性
文件系统由数据块、目录、文件、卷等组成。不同的文件系统结构决定了它在存储空之间的利用效率和文件访问性能。同时,文件系统还可以提供存储安全性和完整性的保证,比如在存储数据时进行备份,或者为磁盘提供灾难恢复方案。
文件系统的应用
文件系统广泛应用于许多领域,如计算机、移动设备和云存储。在计算机领域,文件系统是重要的系统软件之一,负责管理存储设备和实现数据访问管理。在移动领域,文件系统集成在智能手机、平板电脑等设备中,管理设备的内部存储和外部SD卡存储。在云存储领域,文件系统用于管理云存储服务提供商的数据存储池,以保证数据的安全性和可靠性。
49.往flash存数据的情况,突然断电,文件系统的制作有什么考虑
当将数据存储到闪存(如Flash)设备时,在突然断电的情况下,可能会发生数据丢失或文件系统损坏的风险。为了应对这种情况,以下是在制作文件系统时需要考虑的一些因素:
-
数据一致性:在将数据写入闪存之前,应该确保数据的一致性。这可以通过使用事务操作或写入日志等机制来实现。事务操作确保相关数据的原子性,要么全部写入成功,要么完全失败。写入日志则记录每次写入的操作,以便在系统重新启动时进行恢复。
-
缓冲区管理:使用缓冲区管理来减少对闪存的频繁写入。将数据先存储在内存中的缓冲区中,然后按照一定的策略(如定时、缓冲区满或事务提交)进行闪存的批量写入。这样可以减少对闪存的写操作次数,降低断电时数据丢失的概率。
-
写入保护:使用写入保护机制来防止在断电时闪存设备继续写入数据。例如,可以使用电源监控电路或超级电容器等设备,当检测到断电时,立即停止写入操作,以保护闪存中已经存储的数据。
-
文件系统一致性检查:在系统重新启动时,应该进行文件系统一致性检查。这可以通过运行文件系统检查工具(如fsck命令)来识别和修复文件系统中的错误。文件系统检查可以帮助恢复损坏的文件系统,确保数据的完整性和可访问性。
-
定期备份:定期备份闪存中的数据是一种预防措施。通过定期将闪存中的数据备份到可靠的存储介质(如硬盘或云存储)中,可以降低数据丢失的风险,并在断电或闪存损坏时恢复数据。
50.Linux目录结构,/usr、/tmp、/etc目录的作用?
/bin | 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。 |
/etc | 存放系统管理和配置文件 |
/home | 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 |
/usr | 用于存放系统应用程序,比较重要的目录**/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。/usr/bin** 众多的应用程序**/usr/sbin** 超级用户的一些管理程序 /usr/lib 常用的动态链接库和软件包的配置文件 /usr/man 帮助文档 /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里 /usr/local/bin 本地增加的命令 /usr/local/lib 本地增加的库 |
/opt | 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。 |
/proc | 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。 |
/root | 超级用户(系统管理员)的主目录(特权阶级) |
/sbin | 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。 |
/dev | 用于存放设备文件。 |
/mnt | 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。 |
/boot | 存放用于系统引导时使用的各种文件 |
/lib | 存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。 |
/tmp | 用于存放各种临时文件,是公用的临时文件存储点。 |
/var | 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。) |
/lost+found | 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里 |
51.解释Linux中的文件权限组?
所有者(Owner)指的是文件或目录的创建者或所有者,是文件或目录的主要控制者,具有最高的权限,可以读取、写入和执行该文件或目录。
组(Group)指的是一个或多个用户的集合,它们被赋予访问文件或目录的权限。文件或目录的所有者可以将其分配给一个或多个组,并为每个组指定特定的权限。
所有用户(Others)指的是所有未包含在文件或目录所有者或组中的用户。通常,管理员会限制其他用户的权限,以确保只有有权限的人才能访问敏感信息。
在Linux系统中,文件权限组指的是文件或目录对用户和组的权限控制。在Linux中,每个文件都与一个所有者和一个或多个组相关联,可以通过chmod命令设置不同的权限组。
权限组通常由三个部分组成:,每个部分可以被设置为允许(表示为“r”、“w”或“x”)或拒绝(表示为“-”)。这些权限可以应用于文件的所有者、文件所在
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
查阅整理上千份嵌入式面经,将相关资料汇集于此,主要包括: 0.简历面试 1.语言篇 2.计算机基础 3.硬件篇 4.嵌入式Linux【本专栏】 (建议PC端查看)