学习Unix文件系统基础

系统 其他OS
文章中,我们会讲解下Unix文件系统基础的知识。内核文件子系统,是主要负责访问和管理系统及用户文件。Unix文件类型有许多种。

学习Unix,我们要从基础开始。这里,我们就来学习下Unix文件系统基础。Unix内核有两个基本的子系统:Unix文件子系统和进程控制子系统。Unix文件子系统负责文件的相关操作和管理进程控制子系统则负责与进程相关的操作与管理。

内核文件子系统

它主要负责访问和管理系统及用户文件。Unix系统只是把文件看作是一组数据字节,对它们的解释是通过系统提供的某种结构进行的。Unix内核文件子系统使用了三个数据结构来描述每一个文件以及访问文件的途径,它们分别是与具体进程相关的文件描述符表项,与内核相关的文件表项,与每个文件相关的索引节点。

文件描述符表:在内核中,对应于每个进程,都有一个文件描述符表,用来标识改进程要打开的所有文件。该表中的每一项对应一个进程打开的文件,每一项中有一个称为文件描述符(file description)的整型数用来标识文件。

文件表:文件表中的每一项对应于内核中打开的文件,主要描述用户对文件的访问权限及读写起始地址。索引节点(Index Node,又称inode)文件的具体信息是通过索引节点来描述的。根据所在位置的不同,inode分为磁盘inode和内存inode。

进程要访问文件,必须通过上述三种数据结构来进行,过程具体如下:

进程先访问与它对应的文件描述符表,通过它访问文件表,进而访问inode表中与文件相关的inode表项,***通过inode去访问文件,如下图所示。

文件类型

Unix文件类型有许多种,当用户使用ls –l filename命令时,所列内容的***项的***位就标识了文件系统的类型。

正规文件(regular file):又称为普通文件,在使用ls –l时,所列内容的***项的***位为“-”。系统中源码、文本和shell程序等都是正规文件。

目录文件:在Unix系统中,目录是一种特殊的文件,它的内容是所包含的文件的信息:文件的位置、大小、文件的创建时间等。使用ls –l时,***项***列的标识为“d”。目录文件只能由操作系统或专门的程序来读取和修改,普通用户无法直接访问目录文件,只能读取目录文件的内容。

套接字:socket是Unix系统中用于计算机之间相互通信的应用程序的接口它将完成网络上的I/O操作。在Unix系统中,socket并不是一个真正的文件,但是它被抽象成一个文件,使用ls –l命令时,***项***位的标识为“s”。

设备文件(device file):Unix系统为了实现与外设相关的操作,提供设备文件专门负责内存与外设间的I/O操作。Unix系统中有两种设备文件:字符设备文件(character device file)和块设备文件(block device file)。

字符设备文件用于与外设进行无缓冲的I/O操作,使用ls –l时,其***项***位标识为“e”;块设备文件用于与外设进行有缓冲的I/O操作,使用ls –l时,其***项的***位标识为“b”。一般来说,系统中的磁盘驱动器(包括硬盘和CDROM)为块设备文件,磁带驱动器和终端驱动器为字符设备文件。键盘和显示器为系统的两个标准输入/输出的字符设备文件。

有名管道(FIFO文件):Unix系统提供了使用管道实现进程间通信的方法。它是一个临时文件,严格遵守先进先出的原则,因此又称为FIFO文件。在使用ls –l时,***项***位的标识为“p”。

链接(link):系统中的链接是一个已经存在的文件的另一个名字,它不复制文件的内容。有两种链接方式,一种是硬链接(hard link),另一种是符号链接(symbolic link),又称软链接。硬链接和原有文件是存储在同一物理地址的两个不同的名字,因此硬链接是相互的;符号链接的内容只是一个所链接文件的文件名,在使用ls –l时,符号链接的***项的***位为“l”。

在这里,我们关于Unix文件的知识,我们就学习这些简单的知识。

【编辑推荐】

  1. Unix病毒和蠕虫如何工作
  2. Unix病毒、蠕虫和木马威胁了我们的电脑
  3. Linux/Unix平台不是无懈可击
  4. Unix操作系统市场3大角逐
  5. SCO Unix取消IBM的UNIX类OS授权
责任编辑:小霞
相关推荐

2010-04-13 13:55:36

Unix文件系统

2010-04-15 16:24:10

Unix操作系统

2010-05-10 19:03:00

Unix文件

2010-04-26 18:11:55

Unix文件系统

2010-05-04 14:36:40

Unix文件系统

2010-04-26 18:35:18

Unix文件

2010-04-13 13:31:31

Unix文件

2011-03-23 14:00:44

2010-04-29 10:11:17

Unix系统

2010-04-30 15:51:48

Unix系统

2010-05-05 17:46:32

Unix文件系统

2010-04-08 15:58:24

Unix操作系统

2011-03-23 14:28:29

安全Unix系统find

2010-04-30 17:03:44

Unix文件系统

2010-06-22 16:18:54

2015-07-27 09:22:53

Unix文件系统命令

2010-04-13 14:00:10

Unix文件

2010-04-07 18:42:42

Unix命令

2010-07-27 10:15:38

NFS网络文件系统

2010-05-04 17:09:56

点赞
收藏

51CTO技术栈公众号