在我们的游历过程中,你或许已经注意到一类怪异的目录项目,特别是在/boot和/lib目录中。当用ls -l命令查看时,你将看到如下内容:
[code]lrwxrwxrwx 25 Jul 3 16:42 System.map -> /boot/System.map-2.0.36-3
-rw-r--r-- 105911 Oct 13 1998 System.map-2.0.36-0.7
-rw-r--r-- 105935 Dec 29 1998 System.map-2.0.36-3
-rw-r--r-- 181986 Dec 11 1999 initrd-2.0.36-0.7.img
-rw-r--r-- 182001 Dec 11 1999 initrd-2.0.36.img
lrwxrwxrwx 26 Jul 3 16:42 module-info -> /boot/module-info-2.0.36-3
-rw-r--r-- 11773 Oct 13 1998 module-info-2.0.36-0.7
-rw-r--r-- 11773 Dec 29 1998 module-info-2.0.36-3
lrwxrwxrwx 16 Dec 11 1999 vmlinuz -> vmlinuz-2.0.36-3
-rw-r--r-- 454325 Oct 13 1998 vmlinuz-2.0.36-0.7
-rw-r--r-- 454434 Dec 29 1998 vmlinuz-2.0.36-3[/code]
注意这些文件,System.map, module-info 和vmlinuz。看到文件名后的奇怪标识符了吗?
这三个文件被称为标识符链接。标识符链接是一种特殊的文件,用来指向其它的文件。通过这一类文件,可以给一单独的文件冠以多个名字。以下是运行原理:当系统对一标识符链接冠名以后,它随即成为它指向文件的一个透明映像。(类似于windows中的快捷方式)
这一类文件真是太棒了,这一功能非常方便实用。让我们回过头来再看一下以上列出的目录(原Red Hat 5.2系统的/boot目录内容)。这一系统安装了多个版本的Linux内核。我们可以从vmlinuz-2.0.36-0.7 和vmlinuz-2.0.36-3文件推知这一结论。它们的文件名告诉我们2.0.36-0.7 和2.0.36-3两个版本均被安装了。因为在目录列表中,我们能够很容易看出文件名中包含版本号的不同。不管怎样,这将引起依赖于固定内核文件名的的程序的混淆。这些程序或许希望内核文件被简称为vmlinuz。这也正是标识符链接文件引进的魅力所在。通过创建一个命名为vmlinuz的标识符链接文件,指向vmlinuz-2.0.36-3文件,就能让我们解决这一问题。
可以使用ln命令来创建标识符链接文件。
Temoc 于 2006-10-17 19:27:31发表:
受教中