• 《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博客

  • 相关阅读:
    判断ios版本
    DBL_EPSILON和 FLT_EPSILON的用法
    __bridge,__bridge_retained和__bridge_transfer的意思,区别与使用
    ios俩个APP之间跳转、传值,以及直接跳转到指定app页面 或者 app 评价页面 的方法
    如何参与GitHub开源项目
    第202题:快乐数
    第217题:存在重复元素
    第234题:回文链表
    第242题:有效的字母异位词
    JAVASRIPT
  • 原文地址:https://www.cnblogs.com/weihehahaha/p/16728852.html
Copyright © 2020-2023  润新知