首页 > 其他分享 >2023-2024-1 20211327 信息安全系统设计与实现 学习笔记5(必做)

2023-2024-1 20211327 信息安全系统设计与实现 学习笔记5(必做)

时间:2023-10-15 19:11:52浏览次数:36  
标签:文件 函数 Linux 文件系统 2024 2023 20211327 目录 EXT2

学习笔记5

  • EXT2文件系统概述
  • 1级和2级文件系统函数
  • 实践过程

EXT2文件系统概述

EXT2(Second Extended File System)是Linux操作系统早期使用的文件系统,它是EXT文件系统家族的第二个版本,于1993年首次引入。在现代Linux系统中已经被后续版本的EXT文件系统(如EXT3和EXT4)所取代。

1.历史和发展:

EXT2是EXT文件系统的改进版本,由Rémy Card开发于1993年。它取代了EXT文件系统,旨在提供更好的性能和可靠性。

2.特点:

  • 无日志:与后续的EXT3和EXT4文件系统不同,EXT2没有日志功能。这意味着在系统非正常关闭或崩溃时,EXT2更容易导致文件系统损坏,需要运行fsck(文件系统检查)工具来修复问题。
  • 性能:相对于EXT文件系统,EXT2提供了更好的性能,尤其在大文件和目录操作方面。
  • 限制:最大文件大小为2 TB,最大文件系统大小为4 TB。

3.文件和目录结构:

EXT2使用类似树的数据结构来组织文件和目录。每个文件和目录都有一个节点,称为inode(索引节点),用于存储元数据信息,如文件权限、所有者、文件大小和时间戳。
文件数据存储在数据块中,而inode包含指向这些数据块的指针。

4.文件系统一致性:

由于缺乏日志功能,EXT2在系统崩溃或意外断电时可能会导致文件系统损坏。因此,需要运行fsck工具来修复问题,这可能需要一些时间。

5.可移植性:

EXT2文件系统在不同的Linux发行版之间具有良好的可移植性,这使得可以轻松地在不同的Linux系统之间共享EXT2格式的存储介质,如硬盘分区或USB驱动器。

6.使用场景:

由于其性能和可移植性,EXT2仍然在某些嵌入式系统和旧版Linux发行版中找到用途,但在现代Linux系统中已不再是首选文件系统。后续版本的EXT文件系统,如EXT3和EXT4,引入了日志功能和更多高级功能,提供了更好的数据一致性和性能。

1级和2级文件系统函数

在Linux系统中,文件系统函数被组织为一级文件系统函数和二级文件系统函数,这些函数提供了与文件系统交互的接口。

一级文件系统函数

1.文件操作函数:

  • open:打开文件,获取文件描述符。
  • close:关闭文件描述符。
  • read:从文件中读取数据。
  • write:向文件中写入数据。
  • lseek:设置文件指针位置。

2.目录操作函数:

  • opendir:打开目录。
  • readdir:读取目录中的条目。
  • closedir:关闭目录。
  • mkdir:创建目录。
  • rmdir:删除目录。
  • chdir:更改当前工作目录。

3.文件和目录属性函数:

  • stat:获取文件/目录的元数据。
  • chmod:更改文件/目录的权限。
  • chown:更改文件/目录的所有者。
  • utime:更改文件/目录的访问和修改时间戳。

4.链接和符号链接函数:

  • link:创建硬链接。
  • symlink:创建符号链接。
  • readlink:读取符号链接的目标。

5.删除函数:

  • unlink:删除文件。
  • remove:删除文件或目录。

6.文件描述符操作函数:

  • dup:复制文件描述符。
  • dup2:将一个文件描述符复制到另一个文件描述符。
  • pipe:创建管道。

二级文件系统函数

这些函数是针对特定的文件系统类型,如EXT4、XFS、Btrfs等,它们提供了对文件系统的更高级别控制和操作。这些函数的名称和功能会根据不同的文件系统而变化,但一般包括以下:

1.文件系统挂载和卸载函数:

  • mount:将文件系统挂载到指定的挂载点。
  • umount:卸载文件系统。

2.日志和快照函数:

用于文件系统日志和快照管理的函数,如EXT4中的journalctl和Btrfs中的btrfs subvolume。

3.磁盘管理和块设备函数:

用于底层磁盘管理和块设备访问的函数,如XFS中的xfs_growfs用于扩展文件系统。

4.高级文件系统属性函数:

用于访问特定文件系统属性的函数,如EXT4中的e2fsck用于检查和修复文件系统。

5.文件系统扩展和压缩函数:

用于扩展或压缩文件系统的函数,以适应不同的存储需求。

实践过程

标签:文件,函数,Linux,文件系统,2024,2023,20211327,目录,EXT2
From: https://www.cnblogs.com/shen-jianxiang/p/17765988.html

相关文章

  • Pycharm 2023版安装教程(附激活码,亲测有效)
    PyCharm是一种PythonIDE(集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。第一步:下载Pycharm安......
  • 2023-2024-1 20231305 《计算机基础与程序设计》第三周学习总结
    2023-2024-120231305《计算机基础与程序设计》第三周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2022-2023-1计算机基础与程序设计第一周作业)这个作业的目标<自学教材并完......
  • 2023-2024-1 20231422徐清恬《计算机基础与程序设计》第三周学习总结
    这个作业属于哪个课程2023-2024-计算机基础与程序设计这个作业要求在哪里2023-2024-计算机基础与程序设计这个作业的目标自学计算机科学概论第2章,第3章,《C语言程序设计》第2章作业正文(https://www.cnblogs.com/Augenstern4545/p/17765954.html)教材学习内容......
  • 2023-2024-1 20231418 《计算机基础与程序设计》第3周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如[2023-2024-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里<作业要求的链接>(如2023-2024-1计算机基础与程序设计第三周作业这个作业的目标<自学教材:计算机科学概论......
  • 20231014
    20231014NOIP#20总结时间安排7:40~8:15看题,\(A\)一眼切了,\(B\)有点感觉不知道能过多少,\(C,D\)都不太会。8:15~8:25写\(A\)。8:25~9:25\(B\)拼个包,左右拼了\(70\)。9:25~10:00发现\(C\)部分分是个区间\(DP\),快写。写完后输出一下方案找到了结论,哦这道题会了。......
  • 2023-2024-1 20231402《计算机基础与程序设计》第3周学习总结
    2023-2024-120231402《计算机基础与程序设计》第3周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第3周作业这个作业的目标自学计算机科学概论第2章,第3章,《C语言程序设计》第2章......
  • 2023-2024-1 20231414 《计算机基础与程序设计》第三周总结
    学期(2023-2024-1)学号(20231414)《计算机基础与程序设计》第三周学习总结作业信息这个作业属于哪个课程<班级的链接>(2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2023-2024-1计算机基础与程序设计第三周作业)这个作业的目标<写上具体方面......
  • 2023_10_15_DAY_01_JAVA_SE_Java基础知识_下_流程控制语句
    2023_10_15_DAY_01_JAVA_SE_Java基础知识_下_流程控制语句分支【选择】结构if语句if(表达式){ 执行语句块;}//if语句的代码执行过程为:如果条件表达式返回真值,则执行功能代码块中的语句;//如果条件表达式返回值为假,则不执行功能代码块。语法说明:if是该语句中的关键字,后......
  • 2023年了都,不会还有入坑Java 的吧?^?
    初识Java一、java语言历史概述Java语言是Sun公司于1990年开发的,当时Green项目小组的研究人员正在致力于为未来的智能设备开发一种新的编程语言。对于新语言的设计,Sun公司研发人员并没有开发一种全新的语言,而是根据嵌入式软件的要求,对C++进行了改造,去除了留在C++的一些不太......
  • 2023/10/15 模拟赛总结
    没考,\(0+0+0+0=0\)。T1-tvST表+单调栈。代码还在调。T2-card不会,好像要权值线段树。T3-moez,运用同余即可。//J2023|BLuemoon_#include<bits/stdc++.h>usingnamespacestd;constintkMaxN=1e5+5;intn,d,s[kMaxN],ans,c;intmain(){cin>>......