首页 > 系统相关 >Linux第七、八章学习笔记

Linux第七、八章学习笔记

时间:2023-09-28 22:34:58浏览次数:31  
标签:文件 八章 int 分区 系统 文件系统 笔记 调用 Linux

第七、八章学习笔记

第七章 文件操作

文件操作级别

文件操作分为五个级别,按照从高到低的顺序如下:

(1)硬件级别:硬件级别的文件操作包括:

  • fdisk:将硬盘、U盘或SDC盘分区。

  • mkfs:格式化磁盘分区、为系统做好准备。

  • fsck:检查和维修系统。

  • 碎片整理:压缩文件系统中的文件。

    大多数是针对系统的实用程序。普通用户永远可能都不需要它们,但是它们是创建和维护系统不可或缺的工具。
    (2)操作系统内核中的文件系统函数:每个操作系统内核均可为基本文件操作提供支持。
    (3)系统调用:用户模式程序使用系统调用来访问内核函数。
    (4)I/O库函数:系统调用何以让用户读/写多个数据块,这些数据块只是一系列字节。
    为方便用户使用,C语言提供了一些列标准的I/O函数,同时提高了运行效率。除了读/写内存位置的sscanf()/sprintf()函数之外,所有其他I/O库函数都建立在系统调用之上,也就是说,他们最终会通过系统内核发出实际数据传输的系统调用。
    (5)用户命令:用户可以使用Linux/Unix命令来执行文件操作。
    (6)sh脚本:虽然比系统调用方便得多,但是必须要手动输入命令,如果使用的是GUI,必须拖放文件图标和点击指向设备来输入,操作烦琐且耗时。

文件I/O操作

分区

一个块存储设备,如硬盘、U盘、SD卡等,可以分为几个逻辑单元,称为分区。各分区均可以格式化为特定的文件系统,也可以安装在不同的操作系统上。分区表位于第一个扇区的字节偏移446(0x1BE)处,该扇区称为设备的主引导记录(MBR)

扩展类型分区(类型编号=5),每个扩展类型分区的第一个扇区是一个*地MBR。每个本地MBR在字节偏移量0x1BE处也有一个分区表,只包含两个条目。

  • 第一个条目定义了扩展分区的起始扇区和大小;

  • 第二个条目定义指向下一个本地MBR。所有本地MBR的扇区编号都与P4的起始扇区有关。

    格式化分区

fdisk只是将一个存储设备划分为多个分区。每个分区都有特定的文件系统类型,但是分区还不能使用。存储文件必须先为特定的文件系统准备好分区。称为格式化磁盘或磁盘分区。

EXT2文件系统

多年来,Linux一直使用EXT2作为默认文件系统。EXT3中增加的主要内容是一个日志文件,记录系统更改记录。日志可在文件系统崩溃时更快从错误中恢复。

  • Block#0: 引导块,文件系统不会使用它。它用于容纳从磁盘引导操作系统的引导程序。

  • Block#1: 超级块(在硬盘分区中字节偏移量为1024)。用于容纳关于整个文件系统的信息。 超级块中一些重要字段。

第八章 使用系统调用进行文件操作

操作系统中,进程以两种不同模式运行:

  • 内核模式(Kmode):执行特殊权限操作;

  • 用户模式(Umode):权限非常有限,不可执行任何需要特殊权限的操作;

系统调用(syscall)一种允许进程进入Kmode执行Umode不允许操作的机制。

man2子目录列出了所有系统调用手册页。手册页的SYNOPSIS(摘要)部分列出了系统调用所需的头文件。

系统调用必须由程序发出。

链接文件

在Unix/Linux中,每个文件都有一个路径名。但是,Unix/Linux允许使用不同的路径名来表示同一个文件。这些文件叫作LINK (链接)文件。有两种类型的链接,即硬链接和软链接或符号链接。

stat与文件索引节点

stat与文件索引节点:

stat的工作原理:每个文件都有一个独有的索引节点数据结构,包含文件的所有信息。每对设备由主、次设备号标识,stat系统调用只是查找文件的索引节点并将信息从索引节点复制到stat结构体中。(st_dev和st_ino除外,他们分别是设备号和索引节点编号)

open-close-lseek 系统调用

  • open:打开一个文件进行读、写、追加
    int open(char *file, int flags, int mode);
  • close:关闭打开的文件描述符
    int close(int fd);
  • read:读取打开的文件描述符
    int read (int fd, char buf[ ], int count);
  • write:写入打开的文件描述符
    int write(int fdr char buf[ ], int count);
  • lseek:将文件描述符的字节偏移量重新定位为偏移量
    int lseek(int fd, int offset, int whence);
  • umask:设置文件创建掩码;文件权限为(mask &〜umask)

苏格拉底挑战

文件操作

输入图片说明输入图片说明

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

输入图片说明输入图片说明

chatGPT答疑

如何使用系统调用来实现这个目标?

输入图片说明

Linux怎么将文件路径名转化为索引节点

输入图片说明

实践过程截图

将文件路径名转化为索引节点

输入图片说明

将一个src文件复制到dest文件中

输入图片说明

标签:文件,八章,int,分区,系统,文件系统,笔记,调用,Linux
From: https://www.cnblogs.com/nql2/p/17736597.html

相关文章

  • 学习笔记4 第七八章的自学归纳
    第7章文件操作文件操作五个级别1.硬件级别:普通用户不会接触,但它是创建和维护系统不可缺少的工具fdisk、mkfs、fsck2.操作系统内核中的文件系统函数每个操作系统内核均可为基本文件操作提供支持。在类unix函数中前缀k表示内核函数3.系统调用用户模式程序使用系统调用来访问......
  • 信息安全系统设计与实现——学习笔记4
    任务详情:自学教材第7,8章,提交学习笔记(10分)Part1知识点归纳&GPT提问知识点归纳chap7文件操作级别硬件级别fdiskmkfsfsck碎片整理操作系统内核中的文件系统函数系统调用I/O库函数用户命令sh脚本文件I/O操作低级别文件操作分区Command(mforhelp):m---......
  • 信息安全系统设计与实现 学习笔记4
    文件操作文件操作级别硬件级别:fdisk将硬盘、U盘或SDC盘分区。mkfs:格式化磁盘分区,为系统做好准备。fsck:检查和维修系统。碎片整理:压缩文件系统中的文件。操作系统内核中的文件系统函数kmount(),kumount()kmkdir(),krmdir()系统调用用户模式使用系统调用来访问内核函数......
  • 阅读笔记1
    《程序员的修炼之道:从小工到专家》这本书第一章主要介绍了程序员的成长路径和所需技能。通过阅读这一章,我深刻认识到程序员的成长不是一个简单的过程,而是一个需要不断努力和修炼的旅程。在这一章中,作者们首先介绍了程序员的成长路径,即从小工到专家的发展历程。这个历程包括掌握基......
  • 阅读笔记2
    《程序员的修炼之道:从小工到专家》的第二章节聚焦于“从问题到解决方案”。这一章节主要讲述了如何从问题的初始状态到最后解决问题的过程,强调了理解问题、找出解决方案以及实现解决方案的重要性。在这一部分,作者详细讨论了如何理解和描述问题。首先,他们提出要充分理解问题的本质......
  • openGauss学习笔记-83 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT使用内
    openGauss学习笔记-83openGauss数据库管理-内存优化表MOT管理-内存表特性-MOT使用内存和存储规划本节描述了为满足特定应用程序需求,在评估、估计和规划内存和存储容量数量时,需要注意的事项和准则,以及影响所需内存数量的各种数据,例如计划表的数据和索引大小、维持事务管理的内存......
  • 《Unix/Linux系统编程》教材学习笔记第七章、第八章
    chapter7文件操作级别文件操作分五个级别,从低到高排序如下:1.硬件级别:硬件级别的文件操作包括fdisk:将硬盘、U盘或SDC盘分区。mkfs:格式化磁盘分区,为系统做好准备。fsck:检查和维修系统。碎片整理:压缩文件系统中的文件。其中大多说是针对系统的实用程序。2.操作系统内核中......
  • 学习笔记4
    第七、八章文件操作文件操作级别1.硬件操作  大多数是针对系统的实用程序2.操作系统内核中的文件系统函数  每个操作系统内核均可为基本文件操作提供支持3.系统调用  用户模式程序使用系统调用来访问内核函数  每个库函数都会发出一个系统调用,使进程进入内核模式......
  • [笔记]组成原理_2024年考纲
    一、计算机系统概述(一)计算机系统层次结构1.计算机系统的基本组成2.计算机硬件的基本结构3.计算机软件和硬件的关系4.计算机系统的工作原理“存储程序”工作方式,高级语言程序与机器语言程序之间的转换,程序和指令的执行过程。(二)计算机性能指标吞吐量、响应时间;CPU时钟周期、......
  • 9月《程序员修炼之道:从小工到专家》阅读笔记
    一、注重实效的哲学1我的源码让猫吃了无论是什么任务,我们都可能出现错误,这时,我们需要尽可能处理好他们以示诚实坦率。我们必须承担责任,一味的推卸责任毫无用处。要找各种选择,而非借口。2软件的熵熵在软件中代表“软件腐烂”。究其原因,最重要为开发项目时的心理/文化。那么为什......