zoukankan      html  css  js  c++  java
  • Unix/Linux系统编程第七章学习笔记

    Unix/Linux系统编程第七章学习笔记

    作者:20191322wyl

    知识点总结

    文件操作级别

    1. 硬件级别
    • fdisk∶将硬盘、U盘或SDC盘分区。

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

    • fsck∶检查和维修系统。

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

      其中大多数是针对系统的实用程序。普通用户可能永远都不需要它们,但是它们是创建和维护系统不可缺少的工具。

    1. 操作系统内核中的文件系统函数

      每个操作系统内核均可为基本文件操作提供支持。

    2. 系统调用

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

    3. I/O库函数

      系统调用可让用户读/写多个数据块。

    4. 用户命令

      用户用Unix/Linux命令来执行文件操作,而不是编写程序。

    5. sh脚本

      比系统调用方便,但是必须手动输入命令。

    文件I/O操作

    用户模式下的程序执行操作
    FILE *fp = fopen(“file”, “r”);or FILE *fp = fopen(“file”,”w”);

    可以打开一个读/写文件流

    因为:

    fopen()在用户(heap)空间中创建一个FILE结构体,包含一个文件描述符fd、一个fbuf[BLKSIZE]和一些控制变量。会向内核中的 kopen() 发出一个fd=open(“file”,flags=READ or WRITE)系统调用。

    分区

    • 一个区块存储设备,如硬盘、U盘、SD卡等,可以分为几个逻辑单元,成为分区。分区表位于第一个扇区的字节偏移446(ox1BE)处,改扇区称为设备的主引导记录。表有4个条目,每个条目由一个16字节的分区结构体定义。

    • 如果某分区是扩展类型(类型编号=5),那么它可以划分为更多分区。假设分区P4是扩展类型,它被划分为扩展分区P5、P6、P7。扩展分区在扩展分区区域内形成一个链表。如下图所示:

    • 每个扩展分区的第一个扇区是一个本地MBR。每个本地MBR在字节偏移量0xIBE处也有一个分区表,只包含两个条目。第一个条目定义了扩展分区的起始扇区和大小。第二个条目指向下一个本地MBR。所有本地MBR的扇区编号都与P4的起始扇区有关。照例,链表以最后一个本地MBR中的0结尾。在分区表中,CHS值仅对小于8GB的磁盘有效。对大于8GB但小于4G扇区的磁盘,只有最后两个条目start _sector 和nr sector有意义。

    格式化分区

    fdisk只是将一个存储设备划分为多个分区。每个分区都有特定的文件系统类型,但是分区还不能使用。为了存储文件,必须先为特定的文件系统准备好分区。该操作习惯上称为格式化磁盘或磁盘分区。 在Linux中,它被称为mkfs,表示MAKE文件系统。在Linux中,命令 :mkfs -t TYPE [-b bsize] device nblocks

    在一个nblocks设备上创建一个TYPE文件系统,每个块都是bsize字节。如果bsize未指定,则默认大小为1KB.。

    挂载分区

    man 8 losetup:显示用于系统管理的losetup实用工具命令。

    EXT2文件系统

    • EXT2文件系统数据结构
    • 超级块
    • 块组描述符
    • 位图
    • 索引节点
    • 目录条目

    实践

    题目:创建一个虚拟磁盘映像文件,并在磁盘映像文件上运行fdisk

    过程:

    问题与解决

    问题

    一共可以创建多少个分区?

    解决

    我们可以在它下面使用最多65536个逻辑分区。但是这个分区的使用取决于OS到OS。所以在Linux中,MBR在扩展分区下使用最多60个逻辑分区。

  • 相关阅读:
    召开演示会议和总结会议
    召开每天的站立会议
    禅道管理中的项目管理--组织进行任务分解
    linux sort,uniq,cut,wc命令详解
    json2.js的用途(拯救IE)
    memcache的内存回收机制
    memcache内存分配机制
    Linux之Sed命令详解(总结一些实用例子)
    CentOS 设置网络(修改IP&修改网关&修改DNS)--update.14.08.15
    php中文字符串翻转
  • 原文地址:https://www.cnblogs.com/BillGreen/p/15390433.html
Copyright © 2011-2022 走看看