《Unix&Linux系统编程》第七章学习笔记

第7章 文件操作

7.1 文件操作级别

1.硬件级别

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

2.操作系统内核中的文件系统函数
前缀为k表示内核函数

3.系统调用
open()、read()、lseek()、close()

4.I/O库函数

FILE fopen()、fread();fwrite()、fseek()、fclose()、fflush()
char getc()、getchar()、ugetc()、putc()、putchar()
line gets()、fgets()、puts()、fputs()
formatted scanf()、fscanf()、sscanf()、printf()、fprintf()、sprintf()

5.用户命令
mkdir、rmdir、cd、pwd、ls、link、unlink、rm、cat、cp、mv、chmod、etc。

6.sh脚本

7.2 文件I/O操作

7.3 低级别文件操作

(一)分区

  • 一个块存储设备,如硬盘、U盘、SD卡等,可以分为几个逻辑单元,成为分区。
  • 分区表唯一第一个扇区的字节偏移446(0x1BE)处,成为设备的主引导记录(MBR)

(二)格式化分区

  • 为了存储文件,必须先为特定的文件系统准备好分区,该操作成为格式化磁盘或磁盘分区。
  • 为了确保数据的一致性,用户应该先卸载设备,然后自断开连接。

(三)挂载分区

7.4 EXT2文件系统

Linux一直使用EXT2作为默认文件系统,EXT3是EXT2的扩展,增加的主要是一个日志文件,EXT4是EXT3的扩展,增加了磁盘块的分配(连续的)。

  • Block#0:引导块,文件系统不使用它,用于容纳从磁盘引导操作系统的引导程序。
  • Block#1:超级块,用于容纳关于整个文件系统的信息。
  • Block#2:块组描述符块,EXT2将磁盘分成几个组(每组8192块),每组用一个块组描述符结构体描述。
  • Block#8:块位图,用来表示某种项的位序列。
  • Block#9:索引节点位图,用来代表一个文件的数据结构。
  • Block#10:索引节点,每个文件都用一个128字节(EXT4的是256字节)的独特索引节点结构体表示。

问题与解决:

Q:在虚拟机中能够创建多少个分区?

A:分区完全取决于磁盘类型格式。

MBR磁盘类型:使用MBR分区表的硬盘最多只能划分4个主分区磁盘,并且MBR最大仅支持2TB的硬盘,但拥有很好的兼容性,如果需要分区的硬盘容量超过2TB了,则需要使用GPT分区表类型,此分区表类型不受分区个数,硬盘大小的限制,最大支持18EB,且是一种新的硬盘分区标准。

GPT分区类型:如果我们在Linux中使用GPT分区类型,则在Linux系统中最多可以创建128个分区

(根据网络查询结果:(147条消息) linux最多创建几个扩展分区,Linux分区:最多支持四个主分区、扩展分区_象外的博客-CSDN博客

posted @ 2022-09-25 20:47  少管我  阅读(31)  评论(0编辑  收藏  举报