首页 > 其他分享 >学习笔记(4)

学习笔记(4)

时间:2023-10-01 21:01:36浏览次数:41  
标签:文件 调用 分区 系统 文件系统 笔记 学习 描述符

一、任务详情

自学教材第7,8章,提交学习笔记(10分),评分标准如下

  1. 知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容 (4分)
  2. 问题与解决思路,遇到问题最先使用chatgpt等AI工具解决,并提供过程截图(3分)
  3. 实践过程截图,代码链接(2分)
  4. 其他(知识的结构化,知识的完整性等,提交markdown文档,使用openeuler系统等)(1分)

二、知识点归纳

1.第七章

7.1 文件操作级别

(1)硬件级别: 硬件级别的文件操作包括:
fdisk:将硬盘、U盘或SDC盘分区
mkfs:格式化磁盘分区,为系统做好准备
fsck:检查和维修系统
碎片整理:压缩文件系统中的文件

(2)操作系统内核中的文件系统函数
操作系统内核提供了一组文件系统相关的函数,这些函数在内核层面支持基本文件操作。

(3)系统调用
用户模式程序使用系统调用来访问内核函数。

(4)I/O库函数
C语言提供了一系列标准的I/O库函数,这些函数封装了系统调用,提供更高级别的文件操作接口,使用户更方便地读写文件。

(5)用户命令
用户可以使用操作系统的命令行工具来执行文件操作,这些命令通常调用了底层的库函数,最终发出系统调用来执行文件操作。

7.2 文件I/O操作

7.3 低级别文件操作

  • 分区:一个块存储设备,如硬盘、U盘、SD卡等,可以分为几个逻辑单元,称为分区。
  • 格式化分区:fdisk只是将一个存储设备划分为多个分区。每个分区都有特定的文件系统类型,但是分区还不能使用。为了存储文件,必须先为特定的文件系统准备好分区。
  • 挂载分区:
    1.dd命令创建一个虚拟硬盘映像
    2.在vdisk上运行fdisk来创建一个分区P1
    3.使用扇区数在vdisk的分区1上创建一个循环设备
    4.格式化/dev/loop1
    5.挂载循环设备
    6.访问作为文件系统一部分的挂载设备
    7.设备使用完毕后卸载

7.4 EXT2文件系统简介

EXT2文件系统是一种在Linux操作系统中常用的文件系统。它是一种日志文件系统,是对EXT2系统的扩展。它兼容EXT2,并且从EXT2转换成EXT3并不复杂。

  • 引导块:EXT2的引导块(Block#0)用于引导操作系统,不用于文件系统操作。
  • 超级块:超级块(Block#1)包含关于整个文件系统的关键信息。
  • 块组描述符:块组描述符块(Block#2)用于描述块组的属性,包括块位图、索引节点位图和索引节点表的位置。
  • 位图:
    块位图(Bmap)(Block#8):用于表示磁盘块的分配情况,0表示空闲,1表示已分配。
    索引节点位图(Imap)(Block#9):用于表示索引节点的分配情况,0表示空闲,1表示已分配。
  • 索引节点:索引节点是文件的数据结构,每个文件都有一个相关联的索引节点,其中包含有关文件的元数据和数据块的信息。
  • 目录条目:EXT2中的目录由目录条目组成,每个目录条目包括文件名、索引节点号和其他元数据。

2.第八章

8.1 系统调用

系统调用(Syscall)是操作系统提供的一种机制,允许用户程序以有限的权限执行需要特权的操作。这些操作必须在内核模式(Kmode)下执行,而用户程序通常在用户模式(Umode)下运行。
Syscall 是用户程序与操作系统之间的接口,允许用户程序请求执行各种操作,如文件操作、进程管理、内存管理等。

8.2 系统调用手册页

大多数版本的Linux中在线手册页保存在/usr/man/目录
Ubuntu Linux中,保存在/usr/share/man目录

8.3 使用系统调用进行文件操作

系统调用是通过程序来发起的,其用法类似于普通函数调用。每个系统调用都有一个唯一的编号,通常是第一个参数,然后根据编号将请求路由到内核中的相应函数。

8.4 常用的系统调用

stat:获取文件状态信息
open:打开一个文件进行读写追加
close:关闭打开的文件描述符
read:读取打开的文件描述符
write:写入打开的文件描述符
lseek:重新定位文件描述符的读/写偏移量
symlink:创建一个符号链接

8.5 链接文件

  • 硬链接文件: 1n oldpath newpath
  • 符号链接文件:1n -s oldpathnewpath

8.6 stat系统调用

stat系统调用用于获取文件的状态信息,包括文件的权限、大小、链接数、所有者、组等信息。它需要文件的路径名作为参数,并将文件信息填充到一个 struct stat 结构中。

8.7 open-close-lseek系统调用

  • 打开文件和文件描述符:int open(char *pathname,int flags,mode_t mode)
  • 关闭文件描述符:int close(int fd)
  • lseek文件描述符:off_t lseek(int fd,off_t offset,int whence)

8.8 read()、write()系统调用

  • 将n个字节从打开的文件描述符读入用户空间的buf[]
  • 将n个字节从用户空间的buf[]写入文件描述符

3.苏格拉底挑战

image
image

二、问题与解决思路

问题

(1)我对文件I/O操作的主要步骤不太清楚
(2)我不清楚如何使用系统调用进行文件操作

解决思路

image
image

三、实践过程截图

使用系统调用来创建一个新文件并写入一些数据:
使用了open系统调用来打开或创建一个名为test.txt的文件,然后,我们使用write系统调用将字符串"Hello, world!"写入文件中。最后,我们使用close系统调用关闭文件。

标签:文件,调用,分区,系统,文件系统,笔记,学习,描述符
From: https://www.cnblogs.com/Euyq123/p/17739264.html

相关文章

  • 斜率优化学习笔记
    下面可能会用到一些叫上凸壳鸭下凸壳呀的名词,大家不用弄懂它的概念的说也不用望风而逃(我之前就望风而逃过(*/ω\*)),凸壳就简单理解成一个凸了一块的一段连线就好了。斜率优化有些地方不好用代数的语言刻画,比如下凸壳,比如凸包(凸包有的定义就直接写橡皮筋的比喻233333),以及为什么下凸......
  • 学习笔记四
    文件操作文件操作级别文件操作分为五个级别,按照从高到低的顺序如下:(1)硬件级别:硬件级别的文件操作包括:fdisk:将硬盘、U盘或SDC盘分区。mkfs:格式化磁盘分区、为系统做好准备。fsck:检查和维修系统。碎片整理:压缩文件系统中的文件。大多数是针对系统的实用程序。普通用......
  • 第七八章学习笔记
    第七八章学习笔记知识点总结第七章文件操作级别:文件操作级别
文件操作分为五个级别,按照从低到高的顺序排列如下。(1)硬件级别∶硬件级别的文件操作包括∶fdisk∶将硬盘、U盘或SDC盘分区。mkfs∶格式化磁盘分区,为系统做好准备。fsck∶检查和维修系统。碎片整理∶压缩......
  • 20211128《信息安全系统设计与实现》第七、八章笔记
    一、任务内容自学教材第7,8章,提交学习笔记(10分),评分标准如下1.知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”核心是要求GPT......
  • Linux操作系统学习2
    本周学习了Linux操作系统centos的用户管理,了解了用户和组的概念,同时也掌握了创建,修改与删除用户和组的方法。首先就是用户标识,也就是uid与gid,uid就是用户的id,gid就是用户组所属的id。学习了如下命令:查看当前用户登录信息的命令,id。查看文件所有者的命令:ll。查看进程的命令:psau......
  • 《信息安全系统设计与实现》第四周学习笔记
    第七章:文件操作文件操作级别硬件级别disk:将硬盘、U盘或SDC盘分区mkfs:格式化磁盘分区,为系统做好准备fsck:检查和维修系统碎片整理:压缩文件系统中的文件操作系统内核中的文件系统函数类Unix系统内核中的一些函数,其中前缀k表示内核函数系统调用用户模式程序使用系统调......
  • Python笔记:控制流优化
    零值判断Python当中有个语法糖是可以直接对某个对象做空值判断:ifnums_arr: pass不同类型的数据对应什么样的bool值呢?我们可以有如下的判断:None、0、False、空列表、空元组、空字典、空集合等等都对应布尔值为假。其余的对应布尔值为真。但是现在问题来了,对于开发者自......
  • 2023-2024-1 20231404《计算机基础与程序设计》第一周学习总结
    作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》 这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK01 这个作业的目标 浏览教材《计算机基础与程序设计》,每章提出问题并在期末解答 作业正文 https://www.cnblogs......
  • 20211316郭佳昊 《信息安全系统设计与实现(上)》第四周学习笔记
    一、任务要求[1]知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题核心是要求GPT:请你以苏格拉底的方式对我进行提问然后GPT就会......
  • 【学习笔记】set & multiset
    PS:本文仅起一个备忘的作用。setset指的是有序的不可重集,与数学上的定义类似。常用操作:p.insert(x):在\(p\)中插入\(x\),若\(p\)中已有\(x\)则返回false,否则返回truep.erase(x):在\(p\)中删除值为\(x\)的元素,返回删除的元素个数p.erase(pos):在\(p\)中删除迭代......