linux系统是哪个国家开发的(linux系统是哪国开发的)

访客3年前黑客资讯552

  本文的目的是从战略的角度讨论Linux文件系统的概念,而不是描述一个特定的文件系统,比如EXT4是如何工作的。此外,本文不是文件系统命令的教程。-大卫两者

  本文导航

  编译自:https://open source.com/life/16/10/introduction-Linux-文件系统

  作者:大卫博思

  翻译:ucasFL

  本文的目的是从战略的角度讨论Linux文件系统的概念,而不是描述一个特定的文件系统,比如EXT4是如何工作的。此外,本文不是文件系统命令的教程。

  每一台通用计算机都需要将各种数据存储在硬盘(HDD)或者其他类似的设备上,比如USB存储器。这有两个原因。之一,电脑关机时,内存(RAM)会丢失内容。虽然有非易失性RAM,可以在电脑关机后存储数据(比如USB闪存、固态硬盘闪存),但是闪存比标准的易失性RAM贵很多,比如DDR3等类似类型的RAM。

  数据需要存储在硬盘上的另一个原因是,即使是标准的RAM也比普通硬盘贵得多。虽然RAM和硬盘的价格都在快速下降,但是RAM的价格还是以字节计算的。我们用字节做个快速计算:基于16 GB RAM的价格和2 TB硬盘的价格。计算表明,RAM的价格比硬盘贵71倍左右。今天,一个典型的内存的价格大约是每字节0.00000004373750美米。

  直观展示很久以前RAM的价格。在计算机发展的早期,一种随机存取存储器是基于阴极射线管屏幕上的点。这种RAM很贵,1美米/字节左右。

  您可能听过其他人以不同且令人困惑的方式谈论文件系统。文件系统这个词本身有多种含义,所以你需要从一个讨论或文件的上下文中理解它的正确含义。

  我会根据我的观察,在不同的情况下使用“文件系统”这个词来定义它的不同含义。请注意,虽然我试图遵循标准的“官方”含义,但我打算根据它的不同用法来定义这个术语(见下文)。也就是说,我将在本文的后续章节中更详细地讨论它。

  磁盘存储是文件系统必不可少的功能,它有一些有趣且不可或缺的细节。显然,文件系统是用来为非易失性数据的存储提供空间的,这是它的基本功能。然而,它也有许多基于需求的重要功能。

  所有文件系统都需要提供一个命名空间,这是一种命名和组织的 *** 。它定义了文件的命名方式、文件名的更大长度以及文件名中字符集子集可以使用的所有可用字符集。它还定义了磁盘上数据的逻辑结构,例如使用目录来组织文件,而不是将所有文件收集到一个庞大的文件混合物中。

  定义命名空间后,米数据结构是为命名空间提供逻辑基础所必需的。这包括所需的数据结构应该能够支持分层目录结构,同时,它可以通过该结构确定硬盘空间中的块是否被使用或可用,支持修改文件或目录的名称,并提供关于文件大小、创建时间、最后访问或修改时间以及数据在磁盘空间中所属的文件的位置或位置的信息。其他米数据用于存储有关磁盘细分的高级信息,如逻辑卷和分区。这种更高级别的米数据及其表示的结构包含描述存储在驱动器或分区中的文件系统的信息,但它独立于文件系统米数据。

  文件系统还需要一个应用程序接口(API),它提供对文件系统对象(如文件和目录)进行操作的系统函数调用的访问。API还提供了创建、移动和删除文件等功能。它还提供算法来确定某些信息,例如文件在文件系统中的位置。这种算法可以用来解释磁盘速度和最小化磁盘碎片等术语。

  现代文件系统还提供了一种安全模型,这是一种定义文件和目录访问权限的方案。Linux文件系统安全模型确保用户只能访问自己的文件,而不能访问其他用户的文件或操作系统本身。

  最后一个组件是实现所有这些功能所需的软件。Linux使用两层软件来提高系统和程序员的效率。

  图一:1:Linux两层文件系统的软件实现。

  这两层中的之一层是Linux虚拟文件系统。虚拟文件系统为内核和开发人员访问所有类型的文件系统提供了单一命令集。虚拟文件系统软件通过调用特殊的设备驱动程序与不同类型的文件系统进行交互。特定文件系统的设备驱动程序是第二层实现。设备驱动程序将标准文件系统命令集解释为分区或逻辑卷上的特定类型的文件系统命令。

  作为一个通常很有条理的处女座,我喜欢把东西存放在更小、更有条理的容器里,而不是同一个大容器里。目录的使用使我能够存储文件,并在我想查看文件时找到它们。目录也称为文件夹,之所以称为文件夹,是因为其中的文件类似地存储在物理桌面上。

  在Linux和许多其他操作系统中,目录可以被组织成树状层次结构。Linux的目录结构是在Linux文件系统层次标准[1]中定义的(LCTT翻译:请参考本文[2])。当通过目录引用访问目录时,较深的目录名由正斜杠(/)连接形成一个序列,如/var/log和/var/spool/mail。这些叫做路径。

  下表简要列出了标准的、众所周知的和预定义的顶级Linux目录及其用途。

  /(根文件系统)

  根文件系统是文件系统的顶层目录。它必须包含在安装其他文件系统之前启动Linux系统所需的所有文件。它必须包含启动其余文件系统所需的所有可执行文件和库。文件系统启动后,所有其他文件系统将作为根文件系统的子目录装载在标准的预定义装载点上。

  /bin

  /bin目录包含用户的可执行文件。

  /boot

  包含启动Linux系统所需的静态引导程序、内核可执行文件和配置文件。

  /dev

  该目录包含连接到系统的每个硬件设备的设备文件。这些文件不是设备驱动程序,而是代表计算机上每台计算机都可以访问的设备。

  /等

  包含主机的本地系统配置文件。

  /home

  主目录存储用户文件,每个用户在/home目录中都有一个子目录(作为其主目录)。

  /lib

  包含启动系统所需的共享库文件。

  /media

  安装外部可移动设备的地方,例如,主机可以与USB驱动器连接。

  /mnt

  普通文件系统(如不可移动介质)的临时挂载点,管理员可以在修复或处理文件系统时使用。

  /opt

  可选文件,如供应商提供的应用程序,应该安装在这里。

  /root

  这不是根(/)文件系统。它是根用户的主目录。

  / *** in

  系统二进制文件这些是系统管理的可执行文件。

  /tmp

  临时目录。 *** 作系统和许多程序用来存储临时文件。用户也可以在这里临时存储文件。请注意,存储在此处的文件可能会随时删除,恕不另行通知。

  /usr

  该目录包含可共享和只读文件,包括可执行的二进制文件和库、man文件和其他类型的文档。

  /var

  变量数据文件存储在这里。这些文件包括日志文件、MySQL和其他数据库文件、Web服务器数据文件、邮件等。

  表1:顶层1:Linux文件系统层次结构

  这些目录及其子目录如表1所示。在所有子目录中,粗体显示的目录是根文件系统的必要组成部分。也就是说,它们不能作为单独的文件系统创建,也不能在引导时装载。这是因为它们(尤其是它们的内容)必须在系统启动时出现,这样系统才能正确启动。

  /media目录和/mnt目录是根文件系统的一部分,但它们从不包含任何数据,因为它们只是临时装载点。

  表1中剩余的非粗体目录不需要在系统启动期间出现,但稍后会装载到根文件系统上。在启动阶段,它们为主机执行有用的工作做准备。

  有关这些目录及其子目录的更多详细信息,请参考官方的Linux文件系统级别标准[3](FHS)网页。 *** 对FHS也有很好的介绍[4]。应尽可能遵循这些标准,以确保操作和功能的一致性。无论主机上使用的文件系统类型如何,这种分层目录结构都是相同的。

  在一些使用非Linux操作系统的个人电脑上,如果有多个物理硬盘或分区,每个硬盘或分区将被分配一个驱动器号。必须知道文件或程序位于哪个硬盘上,如C:或D:然后,您可以在命令中使用驱动器号。以D:为例。为了进入D:驱动器,您可以使用cd命令将工作目录更改为正确的目录,以便找到所需的文件。每个硬盘都有自己独立完整的目录树。

  Linux文件系统将所有物理硬盘驱动器和分区统一到一个目录结构中。它们都是从顶层根目录(/)开始的。所有其他目录及其子目录都位于一个Linux根目录下。这意味着只有一个目录树来搜索文件和程序。

  因为只有一个文件系统,/home、/tmp、/var、/opt或/usr可以在不同于根(/)文件系统的物理硬盘驱动器、分区或逻辑分区上创建,然后装载到装载点(目录)上,从而成为根文件系统树的一部分。即使是可移动驱动器,如USB驱动器或外部USB或ESATA硬盘,也可以安装在根文件系统上,成为目录树不可或缺的一部分。

  当从一个版本的Linux发行版升级到另一个版本,或者从一个发行版换到另一个发行版的时候,用这种方式创建不同分区的好处就可以看得很清楚了。通常除了Fedora中的dnf-upgrade之类的任何升级工具之外,明智的做法是在升级过程中偶尔重新格式化包含操作系统的硬盘,以清除长期积累的垃圾。如果/home目录是根文件系统的一部分(位于同一硬盘上),它也会被格式化,然后需要通过以前的备份进行恢复。如果/home目录是一个单独的文件系统,安装程序将识别它并跳过它的格式。对于存储数据库、邮箱、网页和其他可变用户和系统数据的/var目录也是如此。

  将Linux系统目录树的某些部分视为单独的文件系统还有其他原因。例如,很久以前,我不知道将所有必需的Linux目录作为根(/)文件系统的一部分可能会有什么问题,所以一些非常大的文件填充了/home目录。因为/home目录和/tmp目录不是单独的文件系统,而是根文件系统的简单子目录,整个根文件系统都被填满了。因此,操作系统没有空间来存储临时文件或扩展现有数据文件。首先,应用程序开始抱怨没有空间保存文件,然后操作系统开始异常运行。在开始单用户模式并清除/home目录中的冗余文件后,我终于可以再次工作了。然后,我使用非常标准的多文件系统设置来重新安装Linux系统,从而避免了系统崩溃的再次发生。

  我曾经遇到过Linux主机还在运行,但是不允许用户通过GUI桌面登录的情况。我可以使用其中一个虚拟控制台[5]通过命令行界面(CLI)本地登录,然后远程使用SSH。问题原因是/tmp文件系统已满,无法创建GUI桌面登录所需的一些临时文件。因为命令行界面登录不需要在/tmp目录下创建文件,可用空间不足并不妨碍我使用命令行界面登录。在这种情况下,/tmp目录是一个单独的文件系统,/tmp所在的逻辑卷上仍然有很多可用空间。我只是简单的扩展了/tmp逻辑卷[6]的容量来容纳主机需要的临时文件,问题就解决了。请注意,此解决方案不需要重新启动,当/tmp文件系统扩展时,用户可以登录到桌面。

  我在一家大科技公司做实验室管理员的时候,又遇到了一次失败。开发人员将应用程序安装在错误的位置(/var)。结果,应用程序崩溃,因为/var文件系统已满,并且由于空间不足,新的日志消息无法附加到存储在/var/log中的日志文件。但是,系统仍在运行,因为根文件系统和/tmp文件系统尚未填满。删除应用程序并将其重新安装到/opt文件系统后,问题就解决了。

  Linux系统支持大约100种分区类型的读取,但是只能创建和写入少数。但是,在同一个根文件系统上装载不同类型的文件系统是很常见的。在这种情况下,术语文件系统指的是在硬盘驱动器或逻辑卷的分区中存储和管理用户数据所需的结构和米数据。Linux系统的fdisk命令可以识别的文件系统类型完整列表在这里[7],可以感受到Linux系统与多种类型系统的高度兼容性。

  Linux支持读取这么多类型的分区系统主要是为了提高兼容性,这样至少可以和其他一些计算机系统的文件系统进行交互。以下列出了在Fedora中创建新文件系统时的所有可选类型:

  其他发行版支持创建不同的文件系统类型。例如,CentOS 6仅支持创建在上表中用粗体标记的文件系统类型。

  Linux系统上的术语“挂载”文件系统是指在计算机开发的早期阶段,需要将磁带或可移动磁盘组物理挂载到合适的驱动设备上。操作系统物理放置在驱动器上后,会将文件系统逻辑挂载到磁盘上,这样操作系统、应用程序和用户就可以访问文件系统的内容。

  挂载点只是一个目录,就像其他目录一样,它是作为根文件系统的一部分创建的。例如,主文件系统安装在目录/主目录下。文件系统可以装载在其他非根文件系统的装载点上,但这并不常见。

  在Linux系统启动的初始阶段,根文件系统会挂载到根目录(/)。其他文件系统稍后由Linux引导程序挂载,如SystemV下的rc或较新的Linux发行版中的systemd。启动过程中文件系统的挂载由/etc/fstab配置文件管理。一种简单的内存 *** 是,fstab代表“文件系统表”,其中包含需要装载的文件系统列表。这些文件系统指定了特定文件系统可能需要的挂载点和选项。

  使用mount命令将文件系统装载到现有目录/装载点。通常,作为装载点的任何目录都应该是空的,并且不包含其他文件。Linux系统不会阻止用户挂载文件系统所在的目录,也不会阻止用户将文件系统挂载到包含文件的目录。如果在现有目录或文件系统上装载文件系统,其原始内容将被隐藏,只有新装载的文件系统的内容才可见。

  通过这篇文章,我希望澄清一些围绕文件系统这个术语可能存在的歧义。我花了很长时间,在一个好老师的帮助下,才真正理解和体会到Linux文件系统的复杂性、优雅性和功能性,以及它的全部意义。

  如果你有任何问题,请写在下面的评论里,我会尽力回答。

  Linux的另一个重要概念是一切都是文件[8]。这个概念对于用户和系统管理员来说有一些有趣而重要的实际应用。在我说完这个理由之后,你可能会想看我的文章:一切都是文件[9],会在我计划下个月写的关于/dev目录的文章之前写完。(LCTT译本,也参见本文[10])灯塔

相关文章

vivlas面膜怎么样 vivlas面膜多少钱

由于范冰冰入驻了小红书,林允妹子的带货能力也不不容小觑,所以说那些爱护肤保养的人的小金库现在已经瘪了,不过林允的带货里面,有一款面膜大家都很好奇,这款面膜的效果怎么样呢,好用吗,价格是多少呢,友谊长存...

美团单车“复工指数”出炉:福州这三类地区骑行“最热”

近日,全国各地疫情逐渐平稳,陆续复工复产。美团单车通过大数据提取“复工指数”发现:共享单车的使用迎来春节假期后的一轮恢复性增长。在“复工指数”排名中,福州位列全国第,用户平均单次骑行时长和距离均有较大...

找黑客查开房记录-黑客必学基础知识(小学语文必学基础知识)

找黑客查开房记录-黑客必学基础知识(小学语文必学基础知识)

找黑客查开房记录相关问题 黑客必学基础知识相关问题 怎么做游戏黑客 杉德被盗(杉德久付mpos) 手机怎么防黑客...

2019上海租房中介费标准(2018上海租房中介费50%)

  上海市是现代化大城市,上海市区根据中介公司租房子,这在其中的收费标准有什么?今日就由PChouse给你一一解释。   上海市租房中介费扣除规范一般是政府部门管控、中介公司自定、在网上找房子三种规...

华夏黑客联盟官网(华夏黑客联盟官网怎么进不去)

一、华夏黑客联盟官网(华夏黑客联盟官网怎么进不去)方法总结 1、华夏黑客同盟怎么进不了了呀?怎么回事?因为华夏黑客同盟涉嫌破解绿坝并且成功华夏黑客同盟的站长被警察SS抓去喝茶了。华夏黑客同盟论坛怎么...

黑客教你定位qq地址(黑客教你定位地址软件)

黑客教你定位qq地址(黑客教你定位地址软件)

不知道对方IP,只知道QQ号码能否知道其所在地? 1、不能。QQ号和IP地址没有任何关联,无法通过QQ号来查询IP地址。2、那肯定查不到,QQ号只是个账户登录码,与IP没任何关系,IP地址是由登录者所...