1.
普通文件
我们用
ls
-lh
来查看某个文件的属性,可以看到有类似-rwxrwxrwx,值得注意的是第一个符号是
-
,这样的文件在Linux中就是普通文件。这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具...
....
或
cp工具等。漏友高这类文件的删除方式是用rm
命令。
2.
目录文件
当我们在某个目录下执行,看到有类似
drwxr-xr-x
,这样的文件就是目录,目录在Linux是一个比较特殊的文件。注意它的第一个字符是d。创建目录的命令可以用
mkdir
命令,或cp命令,cp可以把一个目录复制为另一个目录。删除用rm
或rmdir命令。
3.
字符设备或块设备文件
区块(block)设备文件
:就是一些储存数据,
以提供系统随机存取的接口设备,举例来说,硬盘与软盘等就是啦。
你可以随机的在硬盘的不同区块读写,这种装置就是成组设备。你可以自行查一下/dev/sda看看,
会发现第一个属性为[
b
]。
字符(character)设备文件:亦即是一些串行端口的接口设备,
例如键盘、鼠标等等。这些设备的特色就是一次性读取的,不能够截断输出。
举例来说,你不可能让鼠标跳到另一个画面,而是滑动到另一个地方。第一个属性为
[
c
]。
4.
数据接口文件(sockets):
数据接口文件(或者:套接口文件),这种类型的文件通常被用在网络上的数据承接了。我们可以启动一个程序来监听客户端的要求,
而客户端就可以透过这个socket来进行数据的沟通了。第一个属性为
[
s
],
最常在/var/run这个目录中看到这种文件类型了。
5.
符号链接文件:
当我们查看文件属性时,会看到有类似
lrwxrwxrwx,告如注意第一个字符是l,这类文件是链接文件。是通过ln
-s
源文件名
新文件名创建的。这和Windows *** 作系统中的快捷方式有点相似。
实话,只了解一个文件不形象,找了一点资料。相互联系的。希望对搭槐纤你有用。当然,里面也有块的解释,而且说的还是不错的。系统中能够随机(不需要按顺序)访问固定大小数据片(chunks)的设备被称作块设备,这些数据片就称作块。最常
见的块设备是硬盘,除此以外,还有软盘驱动器、CD-ROM驱动器和闪存等等许多其他块设备。注意,它们都是以安装文件系统的方式使用的——这也是块设备
的一般访问方式。
另一种基本的设备类型是字符设备。字符设备按照字符流的方式被有序访问,像串口和键盘就都属于字符设备。如果一个硬件设备是以字符流的方式被访问的话,那就应该将它归于字符设备;反过来,如果一个设备是随机(无序的)访问的,那么它就属于块设备。
这两种类型的设备的根本区别在于它们是否可以被随机访问——换句话说就是,能否在访问设备时随意地从一个位置跳转到另一个位置。举
个例子,键盘这种设备提供的就是一个数据流,当你敲入“fox”
这个字符串时,键盘驱动程序会按照和输入完全相同的顺序返回这个由三个字符组成的数据流。如明神果让键盘驱动程序打乱顺序来读字符串,或读取其他字符,都是没
有意义的。所以键盘就是一种典型的字符设备,它提供的就是用户从键盘输入的字符流。对键盘进行读 *** 作会得到一个字符流,首先是“f”,然后是“o”,最后
是“x”,最终是文件的结束(EOF)。当没人敲键盘时,字符流就是空的。硬盘设备的情况就不大一样了。硬盘设备的驱动可能要求读取磁盘上任意块的内容,
然后又转去读取别的块的内容,而被读取的块在磁盘上位置不一定要连续,所以说硬盘可以被随机访问,而不是以流的方式被访问,显然它是一个块设备。
内核管理块设备要比管理字符设备细致得多,需要考虑的问题和完成的工作相比字符设备来说要复杂许多。这是因为字
符设备仅仅需要控制一个位置—当前位置—而块设备访问的位置必须能够在介质的不同区间前后移动。所以事实上内核不必提供一个专门的子系统来管理字符设备,
但是对块设备的管理却必须要有一个专门的提供服务的子系统。不仅仅是因为块设备的复杂性远远高于字符设备,更重要的原因是块设备对执行性能的要求很高;对
硬盘每多一分利用都会对知仿整个系统的性能带来提升,其效果要远远比键盘吞吐速度成倍的提高大得多。另外,我们将会看到,块设备的复杂性会为这种优化留下很大
的施展空间。
简单来讲,块设备可以随机存取,而字符设备不能随机存取,那裸设备又该如何解释呢?
难道裸设备,如磁盘裸设备也不能随机读取吗?那在数据库中用裸设备建一个2g的数据文件,为了存取最后一个数据块,难道ORACLE还要把前面的所有数据块都读一遍,显然不符合事实,如果这样解释呢, *** 作系统不能随机读取,并不意味着数据库也不能随机读取。
块设备通过系统缓存进行读取,不是直接和物理磁盘读取。字符设备可以直接物理磁盘读取,不经过系统缓存。(如键盘,直接相应中断)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)