UNIX操作系统的文件管理

合集下载

UNIX系统管理-第四章:文件系统布局

UNIX系统管理-第四章:文件系统布局

UNIX系统管理-第四章:文件系统布局目标完成这一章,你能作以下事情:描述为什么要区分动态文件系统和静态文件系统描述/sbin,/usr,/stand,/etc,/dev,/var(操作系统相关目录)的主要内容描述/opt,/etc/opt,和/var/opt(应用程序相关)的主要内容使用find,和whereis命令在文件系统中查找文件介绍文件系统范例许多系统管理任务都要求系统管理员知道系统和应用程序的配置文件和日志文件的位置,并能对这些文件进行操作。

所以了解文件系统组织结构,可以让你能找到这些文件并进行系统管理的工作。

下面介绍标准的A T&T SVR4文件系统布局。

文件系统中的文件可以通过不同的方法分类。

例如可以分为静态文件和动态文件,可执行文件和配置文件。

这些分类原则组成了文件系统的逻辑结构,并且能够简化系统管理的任务。

文件系统可以分为静态和动态两个部分文件系统中的文件和目录被分为静态和动态两类。

静态文件和目录中的内容很少更改,除非是安装补丁或者安装操作系统或安装应用程序。

可执行文件,库,和系统启动工具,都被认为是静态的。

动态文件和目录是经常更改的。

配置文件。

临时文件,和用户文件被认为是动态的。

区分动态和静态数据提供了以下的优点:系统备份更容易磁盘空间管理更简单可执行文件和配置文件配置数据和可执行代码是分别保存的。

分开保存配置文件和可执行文件能够提供了如下优点:当操作系统升级的时候,对配置数据的更改不会丢失。

可以很容易地通过网络共享可执行文件,同时每个主机自己的配置文件可以存储在本地主机上文件系统布局操作系统的可共享部分的数据存在于/usr,和/sbin下面。

只有操作系统能够安装文件到这些目录下去。

应用程序位于/opt下面。

/usr,/sbin目录和/opt下面的应用程序子目录能够在网络中的主机之间共享。

因为它们不包含每个主机特定的信息。

每个主机特定的信息位于文件系统的动态数据目录下。

UNIX系统文件管理分析

UNIX系统文件管理分析
返回本章首页
6.1.1 文件与文件系统的概念
1.文件的定义 文件是具有标识符(文件名)的一组相关信息的 集合。标识符是用来标识文件的。不同的系统对 标识符的规定有所不同。文件的确切定义有两种 说法: (1)文件是具有标识符的相关字符流的集合。 (2)文件是具有标识符的相关记录的集合。
下一页
2.文件系统的定义 文件系统是操作系统中负责存取和管理文件信息 的机构。它由管理文件所需的数据结构(如文件 控制块,存储分配表等)和相应的管理软件以及 访问文件的一组操作组成。
返回本节
6.1.2 文件的分类、属性及文件系统的功能 1.文件的分类 2.文件的属性 3.文件系统的功能
下一页
1.文件的分类 按文件的用途分类可分为以下三类。 (1)系统 文件。 (2)用户文件 (3)库文件。 按文件中的数据形式分类 (1)源文件。 (2)目标文件。 (3)可执行文 件。
下一页
返回本节
6.2 文件的逻辑结构
6.2.1 逻辑结构 6.2.2 存取方法
返回本章首页
6.2.1 逻辑结构
1.有结构的文件 有结构的文件是指由若干个相关的记录构成的文 件,又称记录式文件。 2.无结构文件 无结构文件又称流式文件,组成流式文件的基本 信息单位是字节或字,其长度是文件中所含字节 的数目,如大量的源程序,库函数等采用的就是 流式结构。
返回本节
6.2.2 存取方法
(1)顺序存取。顺序存取是最简单的方法。它 严格按照文件信息单位排列的顺序依次存取,后 一次存取总是在前一次存取的基础上进行,所以 不必给出具体的存取位置。 (2)随机存取。随机存取又称直接存取,在存 取时必须先确定进行存取时的起始位置(如记录 号、字符序号等)。
返回本节

UNIX文件操作

UNIX文件操作

关于本系列通常,UNIX®管理员都拥有一套常用的辅助进程管理的关键实用工具、诀窍和系统。

本文提供了各种用于简化各个过程的关键实用工具、命令行链和脚本。

这些工具中的一部分来自于操作系统,而大部分的诀窍则来源于长期的经验积累和减轻系统管理员的工作压力的要求。

本系列文章主要专注于最大限度地利用各种UNIX 环境中可用的工具,包括简化异类环境中的管理任务的方法。

使用 cp如果您使用 -r 命令行选项递归到其子目录中,标准的 cp 命令可用于复制整个目录树。

该选项将对非标准的文件执行未知的操作。

有些 UNIX 变种和 GNU cp 工具支持 -R 选项,使用该选项可以正确地复制命名管道、链接和其他的文件。

对于最简单的应用,cp 命令可以将目录复制到具有不同名称的新目录(请参见清单 1)。

然而,当在 cp 命令中指定源文件和目标位置时,您应该加以小心,因为其处理方式可能对结果有很大的影响。

例如,假设您希望将目录 /home/mc 复制到目录/export/home/mc。

如果 /export/home/mc 不存在,那么清单 2会将目录/home/mc 复制到 /export/home/mc。

然而,如果 /export/home/mc 已经存在,那么清单 2会将目录 /home/mc 复制到这个目录中,并创建新的目录 /export/home/mc/mc。

要将一个目录中的内容复制到一个已有的目录中,可以选择源目录中的文件,如清单 3所示。

cp 工具有一个非常有用的选项,-p 命令行选项,它还可以确保维持每个文件的权限和所有权。

使用 tartar 命令最初用来将文件归档到磁带(确切地说,是磁带驱动器)。

例如,您可以使用清单 4中的命令,将当前目录中的文件复制到磁带上。

清单 4. 使用 tar 将当前目录中的文件复制到磁带可以对清单 4进行如下分析:c 选项创建一个新的存档。

f 选项使用命令行中的下一个选项作为目标名称。

第6章Unix文件管理共29页

第6章Unix文件管理共29页

成组链接法
第一组3 51~449 共99块 第二组251~350 共100块 第三组151~250 共100块 苇四组 51~150 共l00块 第五组 12~50 共39块
即从后面块向前分组,每组100块,但第一组为9 9块,最后的第五组不足100块,也成一组。第一 组的空闲盘块的物理块号及块数登记在第二组的 第一块中,第二组的空闲盘块物号及块数登记在 第三组的第一块
2. 磁盘文件卷结构
Sector #
0 Boot Record
1 Super Block
inode Table
Data (File & Directory)
Volume Structure in UNIX
• 超级块:描述文件系统的状态,包括磁盘空闲块栈, 空闲i结点栈
• i节点(inode list):存放文件说明信息,每项64字 节
time_t di_ctime; /*文件最近一次创建时间*/
};
3. 空闲i结点的分配和释放
• 2.系统打开文件表
一个文件可以被同一进程或不同进程,用同一或不同路径名,
相同或不同的打开方式(读、写)同时打开。
系统打开文件表
struct file {
unsigned short f_flags; /* 文件操作标志 */
4. 磁盘空闲块的分配和释放
Super Block
count 41 0 350 ... 40 187
#350 count 50
0 400
...
49 351
#400 count 50
0 450
...
49 401
Last One ... count 46
00 ...

unix命令

unix命令

Unix命令1. 简介Unix是一个多用户、多任务操作系统,因其稳定性、安全性和可靠性而广泛应用于服务器和工作站环境中。

Unix系统提供了丰富的命令行工具,这些工具可以通过命令行终端或shell程序来调用和使用。

本文档将介绍Unix系统中常用的一些命令,涵盖文件和目录操作、进程管理、系统监控等方面。

2. 文件和目录操作2.1 lsls命令用于列出目录下的文件和子目录。

常用选项包括:•-l:以长格式显示文件和目录的详细信息•-a:显示所有文件和目录,包括隐藏文件•-h:以人类可读的格式显示文件大小例如,执行ls -l命令可以列出当前目录下的所有文件和子目录,并显示详细信息。

2.2 cdcd命令用于切换当前工作目录。

可以使用绝对路径或相对路径作为参数。

例如,执行cd /home/user可以切换到/home/user目录。

执行cd ..可以返回上一级目录。

2.3 cpcp命令用于复制文件或目录。

常用选项包括:•-r:递归复制目录及其内容•-i:覆盖已存在的文件时进行提示例如,执行cp file1 file2可以复制file1到file2。

2.4 mvmv命令用于移动文件或目录,也可用于重命名文件或目录。

例如,执行mvfile1 file2可以将file1重命名为file2。

2.5 rmrm命令用于删除文件或目录。

常用选项包括:•-r:递归删除目录及其内容•-f:强制删除,无需确认例如,执行rm file1可以删除file1。

3. 进程管理3.1 psps命令用于列出系统中运行的进程。

常用选项包括:•-e:显示所有进程,包括系统级进程•-f:显示详细信息,包括进程间的关系例如,执行ps -e可以列出系统中所有进程的信息。

3.2 toptop命令用于实时监测系统中的进程。

它可以显示当前资源使用情况和每个进程的详细信息,如CPU使用率、内存使用量等。

按下q键可以退出top命令。

3.3 killkill命令用于终止指定的进程。

UNIX系统下文件描述符参数的管理

UNIX系统下文件描述符参数的管理

UNIX系统下文件描述符参数的管理Unix系统环境里,内核(kernel)利用文件描述符(file descriptor)来访问文件,文件描述符是由无符号整数表示的句柄。

打开现存文件或新建文件时,内核会返回一个文件描述符。

读写文件也需要使用文件描述符来指定待读写的文件。

文件描述符的有效范围是0 到OPEN_MAX。

习惯上,标准输入(standard input)的文件描述符是0,标准输出(standard output)是1,标准错误(standard error)是2。

POSIX 定义了STDIN_FILENO、STDOUT_FILENO 和STDERR_FILENO 来代替0、1、2。

这三个符号常量的定义位于头文件unistd、h。

一、什么情况下,会新建和打开文件:1、A JVM opens many files in order to read in the classes required to run your application、High volume applications can use a lot of files in many ways、2、each new socket requires a file、Clients and Servers communicate via TCP sockets、3、Each browser's http request consumes TCP sockets when a connection is established to a Server、二、文件描述符的释放:1、在文件关闭或进程终止时被关闭的。

2、如果想重用某个文件描述符,必须关闭与之关联的所有文件描述符(父进程和子进程:文件描述符可以继承,可由子进程使用)。

3、TIME_WAIT 结束时,才会释放TCP 套接字文件描述符。

(在Unix系统中, TIME_WAIT在kernel参数tcp_time_wait_interval中设置、默认值是240秒)4、打开新文件时将会重用关闭的文件描述符下面我们分别讨论一下opne_max参数的设置与监控:一、Linux系统1、查看1、使用ulimit命令查看系统允许当前用户进程打开的文件数限制:[ccb@as4~]$ulimit -n1024这表示当前用户的每个进程最多允许同时打开1024个文件。

第07章 UNIX文件管理系统

第07章 UNIX文件管理系统

2)文件系统安装与拆卸 安装文件系统命令mount mount [option] filesystem mountpoint 说明: option可取:
-h -----输出该命令帮助信息 -V-----输出该命令版本号 -a -----按fstab文件所指位置安装所有文件系统 -F-----为设备生成一个安装点 -r-----安装的只读文件 -w----安装文件可读可写
卸载文件系统umount umount[option] filesystem option可取:
-a-----对所有在/etc/mtab中描述的文件卸载 -h-----输出帮助信息并退出 -n-----卸载时不写/etc/mtab -r-----当卸载失败时,重装成只读文件系统 -V-----输出umount版本号
• 不同用户的不同级别共享 • 父子进程对文件的共享 • 文件的链接共享 使用硬链接及符号链接的命令: % lnabc.c xyz.c % ln-s xyz.c def.c (查看结构) • 通过管道线的文件共享 管道文件的大小限定及访问特性
硬连接及符号链接原理图
返回
有关文件处理的系统调用
1.文件描述符 高级语言中的输入/输出库函数是对FILE类型的指针操 作,c语言处理中自动打开stdin,stdout,stderr三个文 件。 系统调用中用一个整形数描述打开的文件,它就是文 件描述符。
1)检索当前目录的索引节点 2)通过当前目录找到当前目录文件查 出..节点 3)检索..索引节点 4)通过..文件找到..文件查出a的索引节 点号 5)检索a的索引节点号 6)找到a的目录文件,查出b的索引节点 号 7)检索b,找到b的文件位置 8)访问文件b
3.文件共享的实现及应用 UNIX中有多种文件共享方式:

UNIX操作系统的文件管理

UNIX操作系统的文件管理





(1) i-count 内存inode访问计数。若为0,表示此节点为空闲, 某文件被打开时,其内存inode里的此项就加1。 只有所有用户都关闭了此文件,以使i-count为0 后,这个文件才被真正关闭。 (2) i-number 与此内存inode相对应的外存inode编号。
5、打开文件控制块file和file表
文件系统磁盘存储区的分布图




每一个文件的inode节点占用32个字节,因此每一个inode 块包含16个文件控制块。这些inode顺序编号,一个文件 占用了某inode,则其编号就成为这个文件的内部标识, 第1号inode是专门用于根目录文件的。 数据结构filsys 共有12 项内容,下面给出与我们讲述有关 的六项。 (1) s-isize inode区占用的盘块数; (2) s-fsize 盘块总数; (3) s-nfree 直接管理(也就是s-free[100]指向)的空闲块 数; (4) s-free[100] 空闲块索引表 (5) s-ninode 直接管理的空闲inode节点数; (6) s-sinode[100] 空闲inode节点索引表。 至于如何通过filsys来对空闲inode和空闲盘进行具体管理, 详情见后面关于UNIX文件系统资源管理综述部分。

4外node记录了一个文件的属性和有关信息。可以想象,在对某一
文件的访问过程中,会频繁地涉及到它,于是它就要不断来回于内、 外存之间,这当然是极不经济的。为此,UNIX在系统占用的内存区 里开辟了一张表——内存inode表(或活动文件控制块表、活动索引 节点表),该表共有100个表目,每个表目称为一个内存文件控制块 inode,当需要使用某文件的信息,而在内存inode 表中找不到其相 应的inode时,就申请一个内存inode,把外存inode的大部分内存拷 贝到这个内存inode 中,随之就使用这个内存 inode 来控制磁盘上的 文件。在最后一个用户关闭此文件后,内存inode的内容被写到外存 inode,然后释放以供它用。 内存inode的结构基本上与外存inode相同。增加的有关项目有:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UNIX操作系统的文件管理
一、UNIX文件系统的基本工作原理


1、UNIX文件的逻辑结构及分类 UNIX 系统中文件的逻辑结构采用所谓无结构的 流式文件,即是把文件视为一个无内部结构的字 符流。,并把它们分为: (1) 一般文件 (2) 目录文件
由文件的目录组成的文件称为目录文件。
在 UNIX 里,为了加快文件目录的搜索速度, 便于实施文件共享,而把这些内容划分为两部 分: 一部分称为该文件的文件控制块(或索引节点) inode ,它包含了文件的长度、物理位置、文 件组、文件类型、存取权限、共享信息、管理 住处等内容; 另一部分仍称为该文件的目录,它只含文件名以 及 相 应 inode 节 点 的 编 号 ( 见 图 ) 。 因 此 , UNIX 的目录文件虽也是由文件的目录组成, 但相比之下要比通常所说的目录文件简单许多。

UNIX 在树型结构的基础上增加交叉连接部分, 以达到文件共享的目的。在 UNIX 系统中,是通 过文件的 inode 节点来实现文件共享勾连的,并 且只允许勾连到代表一般文件的叶节点上去。由 图18可知,wang和lee共享文件f2。
二、UNIX文件系统的数据结构综述


在UNIX文件系统的实施过程中,涉及到多种数 据结构。有一类数据结构用于对文件的静态管理, 因此都分布在文件所在的存储设备上,它们包括 外存文件控制块inode、目录,以及存储资源管 理信息块filsys三种; 另一类数据结构用于文件打开时的管理,因此都 出现在内存,它们包括内存文件控制块inode、 打开文件控制块file、以及进程打开文件表三种。


(3) 文件目录中的勾连

为了实现文件共享,UNIX允许对一般文件节点 实行交叉连接,这称为勾连。它是通过在同一 文件系统中的两个不同目录项里填入同一个外 存inode节点编号来实现的,图9-25中的虚线处 反映的正是这种勾连。譬如说,一般文件的原 有路径名为 /a31 ,则在目录文件中就应有一目 录项,其文件名为 a31 ,对应的外存 inode 编号 为n。如果再给它另起一个路径名/a0/bx31,则 在目录文件a0中应该新设置一个目录项,它的 文件名部分填入 bx31 ,它的外存 inode 编号仍 填为n。另外,在编号为n的外存inode里,将inlink 的值加 1 。于是文件系统中就有两个目录 项同时指向这一个inode ,实现了对文件a31的 不同名共享。
(3) 文件系统的目录结构

在UNIX文件系统里,基本文件系统和子文件系统都独立 采用树型带勾连的目录结构。所谓树型,即它们各自都 有一个根目录文件,在根目录文件中所列的文件,可以 是一个目录文件,也可以是一个一般文件或特殊文件。 这样一层层地发展下去,就形成了一个通常意义下的树 型文件目录结构。在这种结构下,叶节点为一般文件或 特殊文件,中间节点为目录文件。图18是UNIX文件系统 的目录结构图,我们以方框代表目录文件,圆圈代表一 般文件或特殊文件。

当某进程欲打开一个文件时,首先在自己 user 结构的 打开文件表里申请一个打开文件号 fd (即找到一个 uofile[ ]中的空表目),随之在系统打开文件控制块表里 申请一个 file 结构,且将其位置 fp 填入 u-ofile 表目中。 然后在内存 inode 表里找到该文件的内存 inode ,或申 请一个内存 inode ,并将位置信息填入相应 file 中的 finode, i-count 加1。这样,如果该文件的内存 inode 原 先就在内存inode表中,那么现在这个进程则又一次通 过同一路径名不同路径名将它打开。由于它们都有自 己的file结构,所以它们对这个文件可以持有不同的操 作要求,拥有各自的读、写指针,从而形成了通过不 同的file结构,使用一个内存inode的共享形式。这种共 享在 file 结构里的 f-count 都为 1 ,但因大家都指向同一 个内存inode,故内存inode里面的i-count则大于1(有 几个file结构指向它,它的i-count就为几),图22描述 了这一情形。
文件系统磁盘存储区的分布图




每一个文件的inode节点占用32个字节,因此每一个inode 块包含16个文件控制块。这些inode顺序编号,一个文件 占用了某inode,则其编号就成为这个文件的内部标识, 第1号inode是专门用于根目录文件的。 数据结构filsys 共有12 项内容,下面给出与我们讲述有关 的六项。 (1) s-isize inode区占用的盘块数; (2) s-fsize 盘块总数; (3) s-nfree 直接管理(也就是s-free[100]指向)的空闲块 数; (4) s-free[100] 空闲块索引表 (5) s-ninode 直接管理的空闲inode节点数; (6) s-sinode[100] 空闲inode节点索引表。 至于如何通过filsys来对空闲inode和空闲盘进行具体管理, 详情见后面关于UNIX文件系统资源管理综述部分。




一个文件可以被同一进程或不同进程、用同一路径名不同路径名、 具有同一特性或不同特性(读、写、执行)同时打开。做为内存 inode ,基本上只包含文件的静态信息(如文件的物理结构、勾连 情况、存取权限等),没有记录下一个文件被打开时的动态信息。 为此,UNIX又在系统占用的内存区里开辟一张表)——打开文件控 制块表,简称file表,共有100个表目,每一个表目称做一个打开文 件控制块file。主要内容有 (1) f-flag打开文件的特性,指明对文件的读、写要求 (2) f-count共享该file的进程数 (3) f-inode指向对应于此打开文件的内存inode 每当打开一个文件时,都要在该表里申请分配一个file,形成这个打 开文件的控制块。
6、进程打开文件表

在 进 程 的 user 结 构 里 , 设 有 一 个 整 型 数 组 uofile[15] ,它被称为该进程的打开文件表。在进 程打开一个文件时,分配到一个打开文件控制块 file,就把这个控制块的地址填入u-ofile[ ]的一个 元素里。于是,这个打开文件就和它在u-ofile[ ] 中占据的位置形成一个对应关系,这个位置就是 打开文件号。图 21 给出了 UNIX文件系统中各数 据结构之间的关系。

3、存储资源管理信息块 文件系统所在存储设备上的存储资源,主要有 两个用途,一是用来存放外存文件控制块inode, 一是 用 来存 放 文件 信 息或 扩 展的 地 址索 引表 (当文件是大型的巨型的时,就需要这样做)。 为了能对盘块的使用情况加以管理,UNIX将这 些管理信息集中放在一个数据结构 —— 存储资 源管理信息块filsys中。filsys总是固定在1#盘块 上,这一盘块通常称作该文件系统的管理块。 这样,整个磁盘空间的安排情况就如图 20 所示。




(1) i-count 内存inode访问计数。若为0,表示此节点为空闲, 某文件被打开时,其内存inode里的此项就加1。 只有所有用户都关闭了此文件,以使i-count为0 后,这个文件才被真正关闭。 (2) i-number 与此内存inode相对应的外存inode编号。
5、打开文件控制块file和file表

4外存 、内存文件控制块 inode和内存inode表 inode记录了一个文件的属性和有关信息。可以想象,在对某一
文件的访问过程中,会频繁地涉及到它,于是它就要不断来回于内、 外存之间,这当然是极不经济的。为此,UNIX在系统占用的内存区 里开辟了一张表——内存inode表(或活动文件控制块表、活动索引 节点表),该表共有100个表目,每个表目称为一个内存文件控制块 inode,当需要使用某文件的信息,而在内存inode 表中找不到其相 应的inode时,就申请一个内存inode,把外存inode的大部分内存拷 贝到这个内存inode 中,随之就使用这个内存 inode 来控制磁盘上的 文件。在最后一个用户关闭此文件后,内存inode的内容被写到外存 inode,然后释放以供它用。 内存inode的结构基本上与外存inode相同。增加的有关项目有:

共享打开文件的另一种情形是由父进程创建子 进程引起的。在 UNIX 中,当父进程创建一个 子进程时,先要继承父进程的 u-ofile 表的全部 内容。这样它和父进程使用同一个file结构,对 这个文件有相同的操作要求和读写指针。所以, 这种共享打开文件表现为通过共享同一个file结 构来体现,图23描述了这一情形。由此可知, 在 UNIX 里提供了两种文件共享的方式,第一 种是在目录结构里通过勾连,对同一文件提供 不同路径名,以达到能够异名共享的目的;第 二种是在打开文件结构里,通过共享同一个file 结 构 或 共 享 同 一 个 内存inode而实现对打开文件的共享。
2、目录和目录文件


(1) 目录
UNIX中的每个文件都有一个目录项,目录项中记录了文件的名字以及该 文件对应的外存inode的编号。文件名是一个文件的外部标识,而这个文 件的外存inode编号,则是它的内部标识。可以看出,文件的目录项建立 起了文件内、外部标识之间的对应关系:根据文件名找到它的目录项,由 目录项的外存inode编号找到文件控制块inode,从而获得该文件的信息。 (2) 目录文件 UNIX视每张目录表为一目录文件。作为一个文件,它有自己的名字以及 对应的外存inode。要注意的是,每个文件系统(基本的或子文件系统) 都有一个根目录文件,它的外存inode总是放于文件存储设备上inode区中 的第一个,于是保证很容易从它出发,到达树型目录结构上的的存储空间,每个 盘块的容量为512字节,因此存放目录文件的盘块中,每一盘块可以存放 32个文件的目录。有了这些,UNIX文件目录的树型结构可以细化成如图 19所示。

三、UNIX文件的物理结构

相关文档
最新文档