《嵌入式 Linux应用程序开发标准教程(第2版)》——1.3 Linux文件及文件系统

1.3 Linux文件及文件系统

嵌入式 Linux应用程序开发标准教程(第2版)
在安装完Linux之后,下面先对Linux中一些非常重要的概念做一些介绍,以便进一步学习使用Linux。

1.3.1 文件类型及文件属性

1.文件类型
Linux中的文件类型与Windows有显著的区别,其中最显著的区别在于Linux对目录和设备都当作文件来进行处理,这样就简化了对各种不同类型设备的处理,提高了效率。Linux中主要的文件类型分为4种:普通文件、目录文件、链接文件和设备文件。

(1)普通文件。

普通文件同Windows中的文件一样,是用户日常使用最多的文件。它包括文本文件、shell脚本(shell的概念在第2章会进行讲解)、二进制的可执行程序和各种类型的数据。

(2)目录文件。

在Linux中,目录也是文件,它们包含文件名和子目录名以及指向那些文件和子目录的指针。目录文件是Linux中存储文件名的惟一地方,当把文件和目录相对应起来时,也就是用指针将其链接起来之后,就构成了目录文件。因此,在对目录文件进行操作时,一般不涉及对文件内容的操作,而只是对目录名和文件名的对应关系进行操作。

另外,Linux系统中的每个文件都被赋予惟一的数值,而这个数值被称作索引节点。索引节点存储在一个称作索引节点表(Inode Table)中,该表在磁盘格式化时被分配。每个实际的磁盘或分区都有自己的索引节点表。一个索引节点包含文件的所有信息,包括磁盘上数据的地址和文件类型。

Linux文件系统把索引节点号1赋予根目录,这也就是Linux的根目录文件在磁盘上的地址。根目录文件包括文件名、目录名及它们各自的索引节点号的列表,Linux可以通过查找从根目录开始的一个目录链来找到系统中的任何文件。

Linux通过目录链接来实现对整个文件系统的操作。比如,把文件从一个磁盘目录移到另一实际磁盘的目录时(实际上是通过读取索引节点表来检测这种动作的),这时,原先文件的磁盘索引号被删除,在新磁盘上建立相应的索引节点。它们之间的相应关系如图1.5所示。

(3)链接文件。

链接文件有些类似于Windows中的“快捷方式”,但是它的功能更为强大。它可以实现对不同的目录、文件系统甚至是不同的机器上的文件直接访问,并且不必重新占用磁盘空间。

(4)设备文件。

Linux把设备都当作文件一样来进行操作,这样就大大方便了用户的使用(在后面的Linux编程中可以更为明显地看出)。在Linux下与设备相关的文件一般都在/dev目录下,它包括两种,一种是块设备文件,另一种是字符设备文件。

块设备文件是指数据的读写,它们是以块(如由柱面和扇区编址的块)为单位的设备,最简单的如硬盘(/dev/hda1)等。
字符设备主要是指串行端口的接口设备。
2.文件属性
Linux中的文件属性如图1.6如示。

首先,Linux中文件的拥有者可以把文件的访问属性设成3种不同的访问权限:可读(r)、可写(w)和可执行(x)。文件又有3个不同的用户级别:文件拥有者(u)、所属的用户组(g)和系统里的其他用户(o)。

第一个字符显示文件的类型。

“-”表示普通文件。
“d”表示目录文件。
“l”表示链接文件。
“c”表示字符设备。
“b”表示块设备。
“p”表示命名管道,比如FIFO文件(First In First Out,先进先出)。
“f”表示堆栈文件,比如LIFO文件(Last In First Out,后进先出)。
“s”表示套接字。
第一个字符之后有三个三位字符组:

第一个三位字符组表示文件拥有者(u)对该文件的权限。
第二个三位字符组表示文件用户组(g)对该文件的权限。
第三个三位字符组表示系统其他用户(o)对该文件的权限。
若该用户组对此没有权限,一般显示“-”字符。
0115小知识

目录权限和文件权限有一定的区别。对于目录而言,r代表允许列出该目录下的文件和子目录,w代表允许生成和删除该目录下的文件,x代表允许访问该目录。

1.3.2 文件系统类型介绍

1.ext2和ext3
ext3是现在Linux(包括Red Hat,Mandrake)下常见的默认的文件系统,它是ext2的升级版本。正如Red Hat公司的首席核心开发人员Michael K.Johnson所说,从ext2转换到ext3主要有以下4个理由:可用性、数据完整性、速度以及易于转化。ext3中采用了日志式的管理机制,它使文件系统具有很强的快速恢复能力,并且由于从ext2转换到ext3无须进行格式化,因此,更加推进了ext3文件系统的推广。

2.swap文件系统
该文件系统是Linux中作为交换分区使用的。在安装Linux的时候,交换分区是必须建立的,并且它所采用的文件系统类型必须是swap而没有其他选择。

3.vfat文件系统
Linux中把DOS中采用的FAT文件系统(包括FAT12、FAT16和FAT32)都称为vfat文件系统。

4.NFS文件系统
NFS文件系统是指网络文件系统,这种文件系统也是Linux的独到之处。它可以很方便地在局域网内实现文件共享,并且使多台主机共享同一主机上的文件系统。而且NFS文件系统访问速度快、稳定性高,已经得到了广泛的应用,尤其在嵌入式领域,使用NFS文件系统可以很方便地实现文件本地修改,而免去了一次次读写Flash的忧虑。

5.ISO9660文件系统
这是光盘所使用的文件系统,在Linux中对光盘已有了很好的支持,它不仅可以提供对光盘的读写,还可以实现对光盘的刻录。

1.3.3 Linux目录结构

下面以Red Hat Enterprise 4 AS为例,详细列出了Linux文件系统中各主要目录的存放内容,如表1.1所示。

时间: 2024-11-16 18:33:50

《嵌入式 Linux应用程序开发标准教程(第2版)》——1.3 Linux文件及文件系统的相关文章

《嵌入式 Linux应用程序开发标准教程(第2版)》——导读

前 言 嵌入式 Linux应用程序开发标准教程(第2版) 第2版说明 本书第1版<嵌入式Linux应用程序开发详解>自2006年7月出版以来,受到了广大读者的一致好评,已经多次印刷,累计销量18000册.许多高等院校.职业学校和培训机构也将本书作为嵌入式专业的教材.许多读者提出了宝贵的意见和中肯的建议. 第2版图书在第1版基础上做了以下修订. 增加PPT教学课件:本书第2版增加了PPT教学课件,方便老师教学使用. 赠送嵌入式专家授课视频:本书第2版免费赠送超值的嵌入式教学视频,所讲内容均为嵌入

《嵌入式 Linux应用程序开发标准教程(第2版)》——1.1 嵌入式Linux基础

1.1 嵌入式Linux基础 嵌入式 Linux应用程序开发标准教程(第2版) 自由开源软件在嵌入式应用上受到青睐,Linux日益成为主流的嵌入式操作系统之一.随着MOTOROLA手机A760.IBM智能型手表WatchPad.SharpPDA Zaurus等一款款高性能"智能数码产品"的出现,以及Motorola.Samsung.MontaVista.Philips.Nokia.IBM.SUN等众多国际顶级巨头的加入,嵌入式Linux的队伍越来越庞大了.目前,国外不少大学.研究机构和

《嵌入式 Linux应用程序开发标准教程(第2版)》——2.2 Linux启动过程详解

2.2 Linux启动过程详解 嵌入式 Linux应用程序开发标准教程(第2版) 在了解了Linux的常见命令之后,下面详细讲解Linux的启动过程.Linux的启动过程包含了Linux工作原理的精髓,而且在嵌入式开发过程中非常需要这方面的知识. 2.2.1 概述 用户开机启动Linux过程如下: (1)当用户打开PC(intel CPU)的电源时,CPU将自动进入实模式,并从地址0xFFFF0000开始自动执行程序代码,这个地址通常是ROM-BIOS中的地址.这时BIOS进行开机自检,并按BI

《嵌入式 Linux应用程序开发标准教程(第2版)》——1.4 实验内容——安装Linux操作系统

1.4 实验内容--安装Linux操作系统 嵌入式 Linux应用程序开发标准教程(第2版) 1.实验目的 读者通过亲自动手安装Linux操作系统,对Linux有个初步的认识,并且加深对Linux中的基本概念的理解,熟悉Linux文件系统目录结构. 2.实验内容 安装Linux(Red Hat Enterprise 4 AS版本)操作系统,查看Linux的目录结构. 3.实验步骤 (1)磁盘规划. 在这一步骤中,需要留出最好有5GB以上的空间来安装Linux系统. (2)下载Linux版本. 可

《嵌入式 Linux应用程序开发标准教程(第2版)》——1.5 本章小结

1.5 本章小结 嵌入式 Linux应用程序开发标准教程(第2版) 本章首先介绍了Linux的历史.嵌入式Linux操作系统的优势.Linux不同发行版本的区别以及如何学习Linux.在这里要着重掌握的是Linux内核与GNU的关系,了解Linux版本号的规律,同时还要了解Linux多硬件平台支持.低开发成本等优越性. 本章接着介绍了如何安装Linux,这里最关键的一步是分区.希望读者能很好地掌握主分区.扩展分区的概念.Linux文件系统与Windows文件系统的区别以及Linux中"挂载&qu

《嵌入式 Linux应用程序开发标准教程(第2版)》——1.6 思考与练习

1.6 思考与练习 嵌入式 Linux应用程序开发标准教程(第2版) 1.查找相关资料,查看GNU所规定的自由软件的具体协议是什么. 2.Linux下的文件系统和Windows下的文件系统有什么区别? 3.指出读者Linux系统中的磁盘划分情况(如主分区.扩展分区的对应情况). 4.如何安装Linux? 5.Linux中的文件有哪些类,这样分类有什么好处? 6.若有一个文件,其属性为"-rwxr-rw-",说出这代表什么? 7.请说出下列目录中放置的是哪些文件. /etc/ /etc/

《嵌入式 Linux应用程序开发标准教程(第2版)》——2.1 Linux常用命令

2.1 Linux常用命令 嵌入式 Linux应用程序开发标准教程(第2版) 在安装完Linux再次启动之后,就可以进入到与Windows类似的图形化界面了.这个界面就是Linux图形化界面X窗口系统(简称X)的一部分.要注意的是,X窗口系统仅仅是Linux上面的一个软件(或者也可称为服务),它不是Linux自身的一部分.虽然现在的X窗口系统已经与Linux整合得相当好了,但毕竟还不能保证绝对的可靠性.另外,X窗口系统是一个相当耗费系统资源的软件,它会大大地降低Linux的系统性能.因此,若是希

《嵌入式 Linux应用程序开发标准教程(第2版)》——2.4 实验内容

2.4 实验内容 嵌入式 Linux应用程序开发标准教程(第2版) 2.4.1 在Linux下解压常见软件 1.实验目的 在Linux下安装一个完整的软件(嵌入式Linux的必备工具--交叉编译工具),掌握Linux常见命令,学会设置环境变量,同时搭建起嵌入式Linux的交叉编译环境(关于交叉编译的具体概念在本书后面会详细讲解),为今后的实验打下良好的基础. 2.实验内容 在Linux中解压cross-3.3.2.tar.bz2,并添加到系统环境变量中去. 3.实验步骤 (1)将光盘中的cros

《嵌入式 Linux应用程序开发标准教程(第2版)》——1.2 Linux安装

1.2 Linux安装 有了一个初步的了解后,读者是否想亲自试一下?其实安装Linux是一件很容易的事情,不过在开始安装之前,还需要了解一下在Linux安装过程中可能遇到的一些基本知识以及它与Windows的区别. 1.2.1 基础概念 1.文件系统.分区和挂载 文件系统是指操作系统中与管理文件有关的软件和数据.Linux的文件系统和Windows中的文件系统有很大的区别,Windows文件系统是以驱动器的盘符为基础的,而且每一个目录与相应的分区对应,例如"E:\workplace"是