免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1923 | 回复: 0
打印 上一主题 下一主题

介绍文件组成成分 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-04 23:04 |只看该作者 |倒序浏览

     在solaris里面,所有文件都使用文件名和一个叫i节点(inode)的的记录。大部分文件也使用数据快(data block)。一般的,文件名和I节点是相关联的,并且Inode提供访问数据块(data block).
文件名
文件名是大部分经常用来访问和操作文件的对象。1个文件必须得有1个和i节点有关的名字。
I节点
    在solaris里面,I节点是用来记录一个文件信息的对象。一般的,I节点包含2部分。第一个部分,I节点包含文件的信息,像owner,permission和size。第二部分,I节点文件内容相关数据块的指针。
    I结点是编号的,并且每个文件系统都有自己的i节点列表。当一个新文件系统创建时候,一个完整的新的i节点里表也在那个文件系统里被创建。1个Inode的大小是1028B(=1K+4B)
数据块(Data Blocks)
数据块是硬盘空间的组成单元(硬盘当然是用来存数据的)。普通文件,目录和符号连接使用数据块(data block).设备文件不包含数据。(Devives files do not hold data).
文件类型
主要有4种文件类型:
普通文件(regular 0r ordinary files)
目录
符号连接
设备文件
普通文件,目录和符号连接都存储一种或者多种类型的数据。
设备文件不存储数据,相反地,设备文件提供访问设备。
用ls -l区分文件类型。
-            普通文件爱你
d            目录
l            符号连接
b            块指定设备文件 (block-special device files)
d            字符指定设备文件(charactor-special device files)
普通文件
    可能大部分普通的文件类型都是普通文件,普通文件是用户能存储许多不同类型的数据。普通文件可以存ASCII文本或者二进制数据,包含image data,database data,app-related data,等等。
    普通文件可以包含数据:Text,Binary Data,Images,Application data,databases。
例如:file1(Inode 1282) {Data Block}
目录:
目录存储带很多i节点文件名的信息。不像普通文件,目录只保存文件的name-to-inode相关信息。而普通文件保存许多各种不同类型的数据。
例如:dir(inode 4000){数据块  file1(inode=1234),dirA(inode=5678)}.
符号连接(个人感觉和XP里面的快捷方式差不多)
    符号连接是一个指向其他文件的文件。像目录一样,目录只包含目录信息,符号连接只包含一种数据类型。
    符号连接包含它指向的文件的路径名。因为符号连接使用其他文件的路径名,所以符号连接可以指向其他文件系统里的文件。
    符号连接的大小。符号连接总是匹配它包含的文件的路径名的字符数量。例如:
# ls -l bin
lrwxrwxrwx 1 root root 9 Sep 19 15:41 bin -> ./usr/bin
这个里面的bin的大小是9(./usr/bin一共是9个字符)
    符号连接可以指向普通文件,目录,其他设备文件和设备文件。他们可以勇绝对或者相对路径名。
创建方式:ln -s file1 link1
设备文件
    设备文件提供访问设备。不像普通文件,目录和符号连接,设备文件不实用数据块(data block).相反,设备文件的Inode信息保存(hold)参考设备的数量。可以用ls -l显示这些数量。
    一个长的设备文件的列表显示2个数字,用逗号隔开,文件的大小也会正常显示。这2个数字被叫做设备号的主和从(major and minor)。例如,下面的例子,设备文件dad@0,0:a引用主设备号136和从设备号8。
# cd /devices/pci@1f,0/pci@1,1/ide@3
# ls -l dad@0*
total 4
drwxr-xr-x 2 root sys 512 Sep 19 20:13 dad@0,0
brw-r----- 1 root sys 136, 8 Sep 23 08:35 dad@0,0:a
crw-r----- 1 root sys 136, 8 Sep 23 12:51 dad@0,0:a,raw
brw-r----- 1 root sys 136, 9 Sep 23 08:35 dad@0,0:b
crw-r----- 1 root sys 136, 9 Sep 23 12:51 dad@0,0:b,raw
brw-r----- 1 root sys 136, 10 Sep 23 12:51 dad@0,0:c
crw-r----- 1 root sys 136, 10 Sep 23 12:51 dad@0,0:c,raw
(output truncated)
这里的major设备号标识需要访问设备的设备驱动。这里的mior设备号标识设备驱动器控制的指定类型单元。
设备文件创建方法:devfsadm(solaris 5.8 or above),drvconfig(solaris 2 ~solaris 7 )。
设备文件和设备文件控制的设备之间存在直接关系。包含在Inode里的major和minor建立这种关系。
例如:dad@0,0:a文件的inode信息,包含136和8(major和minor)。major=136标识dad设备驱动器。dad设备驱动器控制IDE设备硬盘,在这里minor=8标识slice 0。
# modinfo -w | grep DAD
21 122e118 7b48 136 1 dad (DAD Disk Driver 1.86)
# modinfo -c | grep -w ’21’
21 1 dad LOADED/INSTALLED
设备文件分成2部分:字符指定设备和块指定设备。字符设备:数据是通过数据流访问的。块设备:对于硬盘设备,块设备文件调用基于已定义的块大小的I/0操作。块大小取决于特殊的设备。在进程和块设备之间传输数据首先是存储在基于内存kernel管理的缓存里(a kernel-managed memory-based cache)。当数据从块设备以重复的方式被访问的时候,这提供了更好的性能。块设备允许执行随即搜索,然而字符设备不允许随即搜索。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84098/showart_1359989.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP