Linux是一套免费使用和自由传播的类Unix操作系统。
GUN(GUN's Not UNIX)
1,基础概念
基础概念文件系统是指操作系统中与管理文件有关的软件和数据。Windows文件系统是以驱动器的盘符为基础的,而且每一个目录与相应的分区对应。而Linux恰好相反,文件系统是一颗文件树,且它的所有文件和外部设备(如硬盘,光驱等)都是以文件形式挂在这个文件树上。
Windows下,目录结构属于分区;Linux下,分区属于目录结构。
因此,在Linux中把每一个分区和某一个目录结构对应,以后再对这个目录的操作就是对这个分区的操作,这样就实现了硬件管理手段和软件目录管理手段的统一。
这个把分区和目录对应的过程叫挂载,而这个挂载在文件树中位置就是挂载点。
2,主分区、扩展分区和逻辑分区
硬盘分区是针对一个硬盘进行操作的,它可以分为:主分区、扩展分区、逻辑分区。其中主分区就是包含 操作系统启动所必需的文件和数据的硬盘分区,要在硬盘上安装操作系统,则该硬盘必须要有一个主分区, 而且其主分区的数量可以是 1~3 个;扩展分区也就是除主分区外的分区,但它不能直接使用,必须再将 它划分为若干个逻辑分区才可使用,其数量可以有 0 或 1 个;而逻辑分区则在数量上没有什么限制。它们 的关系如下图所示。 一般而言,对于先装了 Windows 的用户,Windows 的 C 盘是装在主分区上的,可以把 Linux 安装在另一个 主分区或者扩展分区上。为了安装方便安全起见,一般采用把 Linux 装在多余的逻辑分区上。
通常,在 Windows 下的盘符和 Linux 设备文件的对应关系如下:
C 盘—/dev/hda1(主分区)
D 盘—/dev/hda5(逻辑分区)
E 盘—/dev/hda6(逻辑分区)
3.SWAP 交换分区
在硬件条件有限的情况下,为了运行大型的程序,Linux 在硬盘上划出一个区域来当作临时的内存, 而 Windows 操作系统把这个区域叫做虚拟内存,Linux 把它叫做交换分区 swap。在安装 Linux 建立 交换分区时,一般将其设为内存大小的 2 倍,当然也可以设为更大。
4.GRUB
GRUB 是一种引导装入器(类似在嵌入式中非常重要的 bootloader),它负责装入内核并引导 Linux 系统,位于硬盘的起始部分。由于 GRUB 多方面的优越性,如今的 Linux 一般都默认采用 GRUB 来引导 Linux 操作系统。但事实上它还可以引导 Windows 等多种操作系统。
小知识
在安装了 Windows 和 Linux 双系统后,系统是以 Linux 的 GRUB 作为引导装入器 来选择启动 Windows 或 Linux 的,因此,若此时直接在 Windows 下把 Linux 的分 区删除,会导致系统因没有引导装入器而无法启动 Windows,这点要格外小心。
5.root 权限
Linux 也是一个多用户的系统(在这一点上类似 Windows XP),不同的用户和用户组会有不同的权限,其中 把具有超级权限的用户称为 root 用户。root 的默认主目录在“/root”下,而其他普通用户的目录则在“/home” 下。root 的权限极高,它甚至可以修改 Linux 的内核,因此建议初学者要慎用 root 权限,不然一个小小的参 数设置错误很有可能导致系统的严重问题。
Linux 文件及文件系统
1.文件类型
Linux 中的文件类型与 Windows 有显著的区别,其中最显著的区别在于 Linux 对目录和设备都当作文件来 进行处理,这样就简化了对各种不同类型设备的处理,提高了效率。Linux 中主要的文件类型分为 4 种: 普通文件、目录文件、链接文件和设备文件。
(1)普通文件。 普通文件同 Windows 中的文件一样,是用户日常使用最多的文件。它包括文本文件、shell 脚本、二进制的可执行程序和各种类型的数据。
(2)目录文件。 在 Linux 中,目录也是文件,它们包含文件名和子目录名以及指向那些文件和子目录的指针。目录文件是 Linux 中存储文件名的惟一地方,当把文件和目录相对应起来时,也就是用指针将其链接起来之后,就构 成了目录文件。因此,在对目录文件进行操作时,一般不涉及对文件内容的操作,而只是对目录名和文件 名的对应关系进行操作。 另外,Linux 系统中的每个文件都被赋予惟一的数值,而这个数值被称作索引节点。索引节点存储在一个 称作索引节点表(Inode Table)中,该表在磁盘格式化时被分配。每个实际的磁盘或分区都有自己的索引 节点表。一个索引节点包含文件的所有信息,包括磁盘上数据的地址和文件类型。 Linux 文件系统把索引节点号 1 赋予根目录,这也就是 Linux 的根目录文件在磁盘上的地址。根目录文件 包括文件名、目录名及它们各自的索引节点号的列表,Linux 可以通过查找从根目录开始的一个目录链来 找到系统中的任何文件。 Linux 通过目录链接来实现对整个文件系统的操作。比如,把文件从一个磁盘目录移到另一实际磁盘的目录 时(实际上是通过读取索引节点表来检测这种动作的),这时,原先文件的磁盘索引号被删除,在新磁盘上 建立相应的索引节点。它们之间的相应关系如图所示。
(3)链接文件。 链接文件有些类似于 Windows 中的“快捷方式”,但是它的功能更为强大。它可以实现对不同的目录、文 件系统甚至是不同的机器上的文件直接访问,并且不必重新占用磁盘空间。
(4)设备文件。 Linux 把设备都当作文件一样来进行操作,这样就大大方便了用户的使用(在后面的 Linux 编程中可以更 为明显地看出)。在 Linux 下与设备相关的文件一般都在/dev 目录下,它包括两种,一种是块设备文件,另 一种是字符设备文件。 块设备文件是指数据的读写,它们是以块(如由柱面和扇区编址的块)为单位的设备,最简单的 如硬盘(/dev/hda1)等。
字符设备主要是指串行端口的接口设备。
2.文件属性
首先,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)对该文件的权限。 若该用户组对此没有权限,一般显示“-”字符。
目录权限和文件权限有一定的区别。对于目录而言,r 代表允许列出该目录下的 文件和子目录,w 代表允许生成和删除该目录下的文件,x 代表允许访问该目录
Linux 目录结构
参考资料:《嵌入式Linux应用程序开发标准教程》