这个逻辑看起来挺完美无瑕的,但是计算机这个东西就是这么奇葩,你要是在深入点儿琢磨他,你就会发现很多想不到的问题,这里我们稍微深入点儿, Linux下一切皆文件想必大家都是耳熟能详,那么Linux操作系统是怎么管理这些文件的呢...这些文件是怎么分类的呢? 操作系统的逻辑结构已经被科学家规划的很完美了。...文件系统的作用就是管理计算机的所有文件,这样操作系统通过文件系统就可以管理所有文件了。既然这样我们就有必要对文件系统做个详细的了解,特别是Linux的文件系统。...这三种分类是我们今后的学习都会接触 到的,今天我们只说单机式文件系统。什么是单机式。文件系统,简单理解就是只能给一个操作系统使用的文件系统就是单机式文件系统。...文件系统的特点我也不多说,下面我用一幅图说明下他是怎么跟操作系统连接在一起的 从图上我们可以看到ext4文件系统是一个树状的结构,树根(/)挂载在操作系统上,这个就是操作系统管理文件的入口。
1 初识Linux OS Linux是一种开源的Unix-like操作系统内核,它是基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。...以下是Linux操作系统的一些主要特点和组成部分: 内核(Kernel): Linux内核是操作系统的核心,它管理系统资源,如处理器、内存、设备驱动程序等。...每个发行版都有自己的特点和包管理系统。 总体而言,Linux操作系统是一个强大、灵活且可定制的操作系统,广泛应用于服务器、嵌入式系统、超级计算机等各种领域。 2 文件系统的管理与使用 1....设置内存为 2GB 或更多,其余选项选择默认 值。加载下载好的 Linux 系统 ISO 镜像文件,启动虚拟机完成 Linux 系统安装。 3....,默认时使用标准I/O。
Linux文件系统是什么? Linux文件系统通常是Linux操作系统的一个内置层,用于处理存储的数据管理。它有助于在磁盘存储上安排文件。它管理文件名、文件大小、创建日期以及有关文件的更多信息。...Linux文件系统是保存在各个分区上的,通过它我们的操作系统可以快速地访问在硬盘上的存储数据,同时也方便我们通过程序将数据写入到硬盘上。...Ext 文件系统是较旧的版本,由于某些限制不能再使用。 Ext2 是第一个允许管理 2 TB 数据的 Linux 文件系统。...Ext4 文件系统是所有 Ext 文件系统中速度更快的文件系统。它是 SSD(固态驱动器)磁盘的一个非常兼容的选项,它是 Linux 发行版中的默认文件系统。 2....早些时候,ReiserFS 被用作 SUSE Linux 中的默认文件系统,但后来它改变了一些策略,所以SUSE回到了 Ext3。该文件系统动态支持文件扩展名,但在性能上存在一些缺陷。 4.
文件系统要解决的一个关键问题是怎样防止掉电或系统崩溃造成数据损坏,在此类意外事件中,导致文件系统损坏的根本原因在于写文件不是原子操作,因为写文件涉及的不仅仅是用户数据,还涉及元数据(metadata)包括...如果步骤2完成了,3未完成,结果是数据损坏,因为该文件认为数据块是自己的,但里面的数据其实是垃圾; 如果步骤2完成了,1未完成,结果是元数据不一致,因为该文件已经把数据块据为己有,然而文件系统却还认为该数据块未分配...以上方式把用户数据(user data)也记录在日志中,称为Data Journaling,Linux EXT3文件系统就支持这种方式,这种方式存在效率问题: 就是每一个写操作涉及的元数据(metadata...丢弃日志一样,重要的是文件系统的一致性和完整性是有保证的。...像Linux EXT3文件系统也是可以选择Data Journaling还是Ordered Journaling的。
在下方公众号后台回复:面试手册,可获取杰哥汇总的 3 份面试 PDF 手册。 和 CPU、内存一样,磁盘和文件系统的管理,也是操作系统最核心的功能。 磁盘为系统提供了最基本的持久化存储。...索引节点和目录项 文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。 我们要记住最重要的一点,在 Linux 中一切皆文件。...这里,下图是 Linux 文件系统的架构图,帮我们更好地理解系统调用、VFS、缓存、文 件系统以及块存储之间的关系。...直接 I/O,是指跳过操作系统的页缓存,直接跟文件系统交互来访问文件。 非直接 I/O 正好相反,文件读写时,先要经过系统的页缓存,然后再由内核或额外的系统调用,真正写入磁盘。...如果没有设置过,默认 的是非直接 I/O。 不过要注意,直接 I/O、非直接 I/O,本质上还是和文件系统交互。
Windows的文件系统 Microsoft Windows 使用两种主要的文件系统: NTFS,该操作系统的大多数现代版本默认使用的主要格式,以及 FAT,它继承自旧 DOS 并具有 exFAT 作为其后来的扩展名...2001 年,它进入了 Linux 内核,现在大多数 Linux 发行版都支持它,其中一些发行版,如 Red Hat Enterprise Linux,甚至默认使用它。...这种操作系统中使用的“硬链接”概念使得大多数Linux FS类型的相似之处在于文件名不被视为文件属性,而是被定义为某个目录中文件的别名。...BSD、Solaris、Unix的文件系统 这些操作系统最常见的文件系统是 UFS(Unix 文件系统),通常也称为 FFS (快速文件系统)。...目前,所有 Unix 系列操作系统都支持 UFS(不同版本),是 BSD OS 和 Sun Solaris OS 的主要文件系统。
,最后返回s->s_root指向的值,即:该文件系统的根目录。...生成的dentry实例最后被赋值给了sb->s_root,这样sb->s_root就指向了该文件系统的根目录。...mnt->mnt_root,即rootfs文件系统的根目录,再之后将root的值赋值给当前进程的当前目录和根目录字段。...这样,rootfs文件系统的整个挂载过程就结束了,最终的结果就是,当前进程的根目录就是rootfs文件系统的根目录。 那rootfs文件系统的根目录就是我们想要找的根目录吗?...当然不是,我们要找的根目录应该在硬盘上啊。 那硬盘上的文件系统的根目录是在哪里挂载的呢?硬盘上的文件系统和rootfs文件系统又是什么关系呢? 限于篇幅原因,我们下篇文章再讲。 完。
大家好,又见面了,我是你们的朋友全栈君。 我们前面一篇说了nginx的默认端口是80,可是空说无凭,我们用事实来说话。...我们首先用whereis nginx.conf来看一下哪些目录里面有nginx.conf文件,我们看到了一共有6个目录,这里是应该分别到这六个文件里面去看一下,但是由于我们提前找过了,是/etc/nginx...由于这个文件太大了,所以我就截了一头一尾的图片,大家将就着看看吧。 很明显,在第二个图的标红地方,我们看到了默认端口是80。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
继上篇文章 Linux根目录的文件系统是如何被挂载的,我们继续分析。...之后,prepare_namespace方法里又调用了mount_root方法,来挂载真正的根目录文件系统,即上面的/dev/nvme0n1p2硬盘分区中存放的ext4文件系统。...,也就是说,inode->i_rdev指向的是硬盘的/dev/nvme0n1p2分区,其实就是我们真正的根目录所在的硬盘分区。...最后,调用ksys_chroot(".")方法,将当前进程的根目录切换成当前目录,即真正的硬盘分区所代表的文件系统的根目录。 至此,Linux下根目录挂载的整个流程就结束了。...细心的朋友可能还会有个小疑问,硬盘分区所属的文件系统的原始目录为/dev/root,之后/dev/root又被挂载到/root目录,这里所说的目录都是rootfs文件系统的目录,但是,由上一篇文章可以看到
第五章 文件和文件系统 学习目的 让学生了解文件和文件系统的概念和特性,掌握Linux文件系统的基本操作。...概念和原理 5.1 文件和文件系统 5.1.1 文件系统 (1) 定义: 操作系统中的各类文件、管理文件的软件,以及管理文件所涉及到的数据结构等信息的集合。...关键字是能够唯一标识一个记录的数据项。 (3) 文件 ▪ 定义: 文件是具有文件名的一组相关元素(即记录)的集合,是文件系统中最大的数据单位。...路径的写法一定是由根目录/写起的 5.2 文件类型和权限 5.2.1 Linux文件系统特性 ▪ 普通文件,目录、字符设备、块设备、 套接字等在 Linux 中都是文件。...习题 Linux 文件系统的文件大致可以分成哪几类?分别是什么?
在Windows平台下,进入DOS窗口,输入:chcp ,可以得到操作系统的代码页信息,你可以从控制面板的语言选项中查看代码页对应的详细的字符集信息。...例如:我的活动代码页为:936,所以它对应的编码格式为GBK。 ? 代码页是字符集编码的别名,也有人称"内码表"。早期,代码页是IBM称呼电脑BIOS本身支持的字符集编码的名称。...当时通用的操作系统都是命令行界面系统,这些操作系统直接使用BIOS供应的VGA功能来显示字符,操作系统的编码支持也就依靠BIOS的编码。现在这BIOS代码页被称为OEM代码页。...图形操作系统解决了此问题,图形操作系统使用自己字符呈现引擎可以支持很多不同的字符集编码。早期IBM和微软内部使用特别数字来标记这些编码,其实大多的这些编码已经有自己的名称了。...了,GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准。
open函数的执行过程之前在这篇文章已经分析过,但是这篇文章里只是分析了某个文件系统中open函数的的调用过程。问题是,操作系统是如何知道应该使用哪个文件系统的呢?...lookup的函数核心代码是 return dir->i_op->lookup(dir,name,len,result); dir->i_op->lookup函数的值是根文件系统中定义,我们假设根文件系统是...我们去看iget的实现,这是实现跨文件系统的关键。看到这个我们就知道操作系统是如何协调多个文件系统运作的了。...在看这个函数之前,我们要先看一个东西,那就是在根文件系统中挂载其他文件系统的实现。在根文件系统中挂载其他文件系统是通过sys_mount函数实现的。这个函数调用了do_mount函数实现挂载。...当操作系统通过根文件系统ext的ext_lookup函数查找hello对应的inode时,ext_find_entry函数返回了hello对应的inode号。
3.2 linux支持的文件系统类型 目前比较流行的操作系统是Windows和Linux。Windows常用的分区格式有三种,分别是FAT16、FAT32、NTFS格式。...3.2.2 Linux文件系统介绍 一、Ext2 Ext2是GNU/Linux系统中标准的文件系统。...三、Linux swap 它是Linux中一种专门用于交换分区的swap文件系统。Linux是使用这一整个分区作为交换空间。一般这个swap格式的交换分区是主内存的2倍。...3.4.2 系统的umask值 文件或者目录在创建时默认拥有一定的权限,此默认识是可以设置的,umask命令 可以来定义用户创建文件或目录的默认权限。...umask 表示的是默认应该被减去的权限,不过文件和目录有点不同。
大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。 proc,用户空间和内核空间能够通过该接口通信, 与普通文件不同的是。这些虚拟文件的内容都是动态创建的。...proc文件系统是一个伪文件系统,它仅仅存在内存其中,而不占用外存空间。 它以文件系统的方式为訪问系统内核数据的操作提供接口。用户和应用程序 能够通过 proc得到系统的信息。...并能够改变内核的某些參数。 proc 文件系统能够被用于收集实用的关于系统和执行中的内核的信息。 对此文件系统的訪问同一般文件同样。...内核运行的上下文转换次数 cat /proc/stat|grep ctxt|awk'{print $2}’ 6.系统创建的进程数 cat /proc/stat|grep processes|awk...'{print $2}’ 7.当前可用的内存数量 cat /proc/meminfo|grep MemFree 版权声明:本文博客原创文章。
比如cat可以打开文件,读取数据,最后在终端显示: $cat test.txt 对于Linux下的程序员来说,了解文件系统的底层组织方式,是深入进行系统编程所必备的。...即使是普通的Linux用户,也可以根据相关的内容,设计出更好的系统维护方案。 存储设备分区 文件系统的最终目的是把大量数据有组织的放入持久性(persistant)的存储设备中,比如硬盘和磁盘。...Linux开机启动后,会首先载入MBR,随后MBR从某个硬盘的启动区加载程序。该程序负责进一步的操作系统的加载和启动。为了方便管理,即使某个分区中没有安装操作系统,Linux也会在该分区预留启动区。...启动区之后的是超级区(Super block)。它存储有文件系统的相关信息,包括文件系统的类型,inode的数目,数据块的数目。 随后是多个inodes,它们是实现文件存储的关键。...Linux以inode的方式,让数据形成文件。 了解Linux的文件系统,是深入了解操作系Linux原理的重要一步。
索引节点和目录项 文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。 我们要记住最重要的一点,在 Linux 中一切皆文件。...这里,下图是 Linux 文件系统的架构图,帮我们更好地理解系统调用、VFS、缓存、文 件系统以及块存储之间的关系。...直接 I/O,是指跳过操作系统的页缓存,直接跟文件系统交互来访问文件。 非直接 I/O 正好相反,文件读写时,先要经过系统的页缓存,然后再由内核或额外的系统调用,真正写入磁盘。...如果没有设置过,默认 的是非直接 I/O。 不过要注意,直接 I/O、非直接 I/O,本质上还是和文件系统交互。...这下我们也应该可以理解,“Linux 一切皆文件”的深刻含义。无论是普通文件和块设备、还是网络套接字和管道等,它们都通过统一的 VFS 接口来访问。
文件系统: 它们不是世界上最激动人心的技术,但是仍然很重要。本文我们将细数那些流行的 Linux 文件系统 - 它们是什么,它们能够做什么,以及它们的目标用户。...BtrFSB 树(B-tree)文件系统 (也被当做是 butterFS,黄油文件系统) 是 Oracle 为 Linux 研发的一款文件系统。它是一个全新的文件系统,而且正处于主要开发阶段。...目标用户:BtrFS 的开发者们许诺过,该文件系统是当前其他文件系统的新一代替代者。非常正确,虽然目前其处于开发中。...XFS 文件系统能够处理数量庞大的数据,事实上某些 XFS 用户的数据接近300TB 以上。它能做什么?XFS 是一个经历良好测试的数据存储文件系统,它是为了高性能操作而诞生的。...结论Linux 上有许多可用的文件系统。每个文件系统都有其特定的用途,以便于特定用户解决不同的问题。本文的焦点集中在 Linux 平台上文件系统的主流选择。毫无疑问,其它的场景下还有一些别的选择。
接下来我们就在分区上创建文件系统。 linux 下用 mkfs 来创建文件系统 用法 : mkfs -t 文件系统类型 设备名称 创建 ext3 文件系统 ? ...创建 FAT32 文件系统 (Linux 把 FAT32 识别为 vfat ) ? 下面重点讲一下 专门管理 ext 系列文件的 mke2fs . ...如果你 man mke2fs , mkfs.ext2 ,mkfs.ext3 和 mkfs.ext4 ,你会发现看到的是 同一个帮助文档,这说明这4个命令是一样的。 ...你也可以 cd /sbin 再 ls -il | grep mk 可以发现这几个命令的 inode 是一样的。 我们以 mke2fs 为例进行介绍。...由下图可以发现如果不用 -t 指定文件系统类型的话,默认为 ext2 并且 BLOCK SIZE 为 1024 。 ?
本文转载自 | 云技术实践 操作系统不再重要,而对于开发人员和云,这意味着Linux不再重要。 你可以从没有发生的事情中看到这一点的证据。...Kubernetes是新的企业级Linux Red Hat的Daniel Riek去年表达了最强烈的声明,宣称Kubernetes是新的企业Linux: AWS,Microsoft Azure,Google...Cloud是新的EMC,HP,Cisco,Sun和Oracle。...在这种情况下,Kubernetes是新的[操作系统]。 在这个世界中,根据云市场的衡量标准,Ubuntu是亚马逊网络服务上运行的最受欢迎的操作系统实例并不重要根本。...换句话说,Kubernetes将变得像一个操作系统 ,就像曾经成为关注焦点的Linux一样。
领取专属 10元无门槛券
手把手带您无忧上云