linux虚拟文件整体架构|什么是Linux系统架构

linux虚拟文件整体架构|什么是Linux系统架构的第1张示图

① linux常见文件结构体有哪些

linux虚拟文件系统核心数主要有以下几个数据结构: * 超级块结构(struct super_block {…} ) 该结构保存了一个被安装在内linux系统上的文容件系统的信息。对于基于磁盘的文件系统,该结构一般和保存在磁盘上的"文件系统控制块"对应。

② linux 虚拟文件系统的作用以及工作原理~~

我的理解,虚拟文件系统其实就是 通用文件操作的统一API接口,因为LINUX支持很多文件系版统,他不可能为权每个文件系统都设计一个API接口,这样,LINUX累,运行在LINUX上的程序更累,所以LINUX为了简化操作,就设计的通用API接口(专业术语,就是虚拟文件系统),这样程序不必关心,运行在LINUX上的是哪个文件系统,就对程序透明了,而具体的文件系统操作,有LINUXn内核完成就说这么多了,不懂可以再问O(∩_∩)O~

③ 什么是Linux系统架构

内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如下图所示。

linux内核说明

内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管

理等。这些组成其实是需要详细说明的

2 . linux shell

shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的 命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。目前主要有下列版本的shell。a.Bourne Shell:是贝尔实验室开发的。 b.BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,大部分linux的发行套件使用的都是这种shell。c.Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。

d.C Shell:是SUN公司Shell的BSD版本。

3 . linux 文件系统

文件系统是文件存放在磁盘等存储设备上的组织方法。Linux系统能支持多种目前流行的文件系统,如EXT2、 EXT3、 FAT、 FAT32、 VFAT和ISO9660。

4. linux 应用

标准的Linux系统一般都有一套都有称为应用程序的程序集,它包括文本编辑器、编程语言、X Window、办公套件、Internet工具和数据库等。

④ Linux系统一般由哪4个部分组成

linux系统由硬件系统、系统核心、用户环境、应用程序组成。Linux全称GNU/Linux,是一种回免费使用和自由答传播的类UNIX操作系统。

其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。

(4)linux虚拟文件整体架构扩展阅读:

优点

1、Linux由众多微内核组成,其源代码完全开源;

2、Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈。

3、Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;

⑤ Linux文件组织结构是什么

一切从“/”开始

在Linux系统中,目录、字符设备、块设备、套接字、打印机等都被抽象成了文件,即刘遄老师所一直强调的“Linux系统中一切都是文件”。既然平时我们打交道的都是文件,那么又应该如何找到它们呢?在Windows操作系统中,想要找到一个文件,我们要依次进入该文件所在的磁盘分区(假设这里是D盘),然后在进入该分区下的具体目录,最终找到这个文件。但是在Linux系统中并不存在C/D/E/F等盘符,Linux系统中的一切文件都是从“根(/)”目录开始的,并按照文件系统层次化标准(FHS)采用树形结构来存放文件,以及定义了常见目录的用途。另外,Linux系统中的文件和目录名称是严格区分大小写的。例如,root、rOOt、Root、rooT均代表不同的目录,并且文件名称中不得包含斜杠(/)。Linux系统中的文件存储结构如图6-1所示。

前文提到的FHS是根据以往无数Linux系统用户和开发者的经验而总结出来的,是用户在Linux系统中存储文件时需要遵守的规则,用于指导我们应该把文件保存到什么位置,以及告诉用户应该在何处找到所需的文件。但是,FHS对于用户来讲只能算是一种道德上的约束,有些用户就是懒得遵守,依然会把文件到处乱放,有些甚至从来没有听说过它。这里并不是号召各位读者去谴责他们,而是建议大家要灵活运用所学的知识,千万不要认准这个FHS协定只讲死道理,不然吃亏的可就是自己了。《Linux就该这么学》一起学习linux, 在Linux系统中,最常见的目录以及所对应的存放内容如表所示。

Linux系统中常见的目录名称以及相应内容

目录名称 应放置文件的内容

/boot 开机所需文件—内核、开机菜单以及所需配置文件等

/dev 以文件形式存放任何设备与接口

/etc 配置文件

/home 用户主目录

/bin 存放单用户模式下还可以操作的命令

/lib 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数

/sbin 开机过程中需要的命令

/media 用于挂载设备文件的目录

/opt 放置第三方的软件

/root 系统管理员的家目录

/srv 一些网络服务的数据文件目录

/tmp 任何人均可使用的“共享”临时目录

/proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等

/usr/local 用户自行安装的软件

/usr/sbin Linux系统开机时不会使用到的软件/命令/脚本

/usr/share 帮助与说明文件,也可放置共享文件

/var 主要存放经常变化的文件,如日志

/lost+found 当文件系统发生错误时,将一些丢失的文件片段存放在这里

⑥ 简述linux系统的特点以及文件的结构

1.模块化程度高Linux的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大部分;其独特的模块机制可根据用户的需要,实时地将某些模块插入或从内核中移走,使得Linux系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。2.源码公开由于Linux系统的开发从一开始就与GNU项目紧密地结合起来,所以它的大多数组成部分都直接来自GNU项目。任何人、任何组织只要遵守GPL条款,就可以自由使用Linux 源代码,为用户提供了最大限度的自由度。这一点也正投嵌入式系统所好,因为嵌入式系统应用千差万别,设计者往往需要针对具体的应用对源码进行修改和优化,所以是否能获得源代码 对于嵌入式系统的开发是至关重要的。加之Linux的软件资源十分丰富,每种通用程序在Linux上几乎都可以找到,并且数量还在不断增加。这一切就使设计者在其基础之上进行二次开发变得非常容易。另外,由于Linux源代码公开,也使用户不用担心有“后闸”等安全隐患。同时,源码开放给各教育机构提供极大的方便,从而也促进了Linux的学习、推广和应用。3.广泛的硬件支持Linux能支持x86、ARM、MIPS、ALPHA和PowerPC等多种体系结构的微处理器。目前已成功地移植到数十种硬件平台,几乎能运行在所有流行的处理器上。由于世界范围内有众多开发者在为Linux的扩充贡献力量,所以Linux有着异常丰富的驱动程序资源,支持各种主流硬件设各和最新的硬件技术,甚至可在没有存储管理单元MMU 的处理器上运行,这些都进一步促进了Linux在嵌入式系统中的应用。4.安全性及可靠性好内核高效稳定。Linux内核的高效和稳定已在各个领域内得到了大量事实的验证。Linux中大量网络管理、网络服务等方面的功能,可使用户很方便地建立高效稳定的防火墙、路由器、工作站、服务器等。为提高安全性,它还提供了大量的网络管理软件、网络分析软件和网络安全软件等。5.具有优秀的开发工具开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器(In Circuit Emulator,ICE),它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。在线仿真器的价格非常高,而且只适合做非常底层的调试。如果使用的是嵌人式Linux,一旦软硬件能支持正常的串口功能,即使不用在线仿真器,也可以很好地进行开发和调试工作,从而节省了一笔不小的开发费用。嵌入式Linux为开发者提供了一套完整的工具链(Tool Chain),能够很方便地实现从操作系统到应用软件各个级别的调试。6.有很好的网络支持利文件系统支持Linux从诞生之日起就与Internet密不可分,支持各种标准的Internet网络协议,并且很容易移植到嵌入式系统当中。目前,Linux几乎支持所有主流的网络硬件、网络协议和文件系统,因此它是NFS的一个很好的平台。另一方面,由于Linux有很好的文件系统支持(例如,它支持Ext2、FAT32、romfs等文件系统),是数据各份、同步和复制的良好平台,这些都为开发嵌入式系统应用打下了坚实的基础。7.与UNIX完全兼容目前,在Linux中所包含的工具和实用程序,可以完成UNIX的所有主要功能。但由于Linux不是为实时而设计的,因而这就成了Linux在实时系统中应用的最大遗憾。不过,目前有众多的自由软件爱好者正在为此进行不懈的努力,也取得了诸多成果。

⑦ linux目录结构

/ 根目录bin 可执来行文件目录源boot 系统启动dev 外部设备etc 配置文件home 用户主目录lib 库文件目录usr USR目录var 动态文件目录proc 虚拟文件目录 够详细了吧。

⑧ linux文件系统的组成和作用

/bin 见截图中的解释

/boot 是系统启动时所需文件的存放处。

/dev 顾名思义就是存放设备文件的地方。包括鼠标,键盘等设备的驱动文件等

/etc见截图中的解释

/home ..

/lib 包括其他一些目录下的lib文件夹存放的是 函数运行时所调用的函数库

/mnt 是软盘和光盘的挂载点

/opt 是安装软件的目录

/proc 虚拟文件系统,目录中的文件存放在内存中。包括可以查看CPU的信息。

/sbin ..

/srv 存放网页的文件夹 支持www等服务

/temp是存放临时文件的(所以重要文件不要放在这里)

/user 存放与用户相关的信息

/var 用来管理系统运行期间的信息

⑨ Linux文件系统目录结构解析

下载一个程序源代码,编译并且安装的时候,如果不特别指定安装的程序路径,那么默认会将程序相关的文件安装到这个目录的对应目录下。例如,安装的程序可执行文件被安装(安装实质就是复制到了/usr/local/bin下面,此程序(可执行文件所需要依赖的库文件被安装到了/usr/local/lib目录下,被安装的软件如果是某个开发库(例如Qt,Gtk等那么相应的头文件可能就被安装到了/usr/local/include中等等。也就是说,这个目录存放的内容,一般都是我们后来自己安装的软件的默认路径,如果择了这个默认路径作为软件的安装路径,被安装的软件的所文件都限制在这个目录中,其中的子目录就相应于根目录的子目录。/proc特殊文件目录:这是一个特殊的目录,它同样是一个虚拟文件系统。通过这个目录下的各个文件,可以查看系统的内核信息。/opt保留的文件目录:一些自定义软件包或者第三方工具,就可以安装在这里。/mnt文件系统或设备的通用挂载点:这个目录一般是用于存放挂载储存设备的挂载目录的,比如磁盘,光驱,网络文件系统等,当我们需要挂载某个磁盘设备的时候,可以把磁盘设备挂载到这个目录上去,这样我们可以直接通过访问这个目录来访问那个磁盘了。可以在/mnt目录下面多建立几个子目录,挂载的时候挂载到这些子目录上面,也可以在任意位置设置挂在点,但是不建议这么做。/media挂载的媒体设备目录:挂载的媒体设备目录,一般可移动设备挂载到这里,例如cdrom,loppy和cdrecord等。/var内容经常变化的目录:此目录下文件的大小可能会改变,如缓冲文件,日志文件,缓存文件,等一般都存放在这里。/tmp临时文件目录:该目录存放系统中的一些临时文件,文件可能会被系统自动清空。的系统直接把tmpfs类型的文件系统挂载到这个目录上,tmpfs文件系统由linux内核支持,在这个文件系统中的数据,实际上是内存中的,由于内存的数据断电易失,当系统重新启动的时候我们就会发现这个目录被清空了。/lost+found恢复文件存放的位置:当系统崩溃的时候,在系统修复过程中需要恢复的文件,可能就会在这里被找到了,这个目录一般为空。以上目录,是最常见的重要目录。其中,有些目录初学者容易混淆,这里简单区分一下:/bin,/sbin与/usr/bin,/usr/sbin:/bin一般存放对于用户和系统来说“必须”的程序(二进制文件)。/sbin一般存放用于系统管理的“必需”的程序(二进制文件,一般普通用户不会使用,根用户使用)。/usr/bin一般存放的只是对用户和系统来说“不是必需的”程序(二进制文件)。/usr/sbin一般存放用于系统管理的系统管理的不是必需的程序(二进制文件)。/lib与/usr/lib:/lib和/usr/lib的区别类似/bin,/sbin与/usr/bin,/usr/sbin。/lib一般存放对于用户和系统来说“必须”的库(二进制文件)。/usr/lib一般存放的只是对用户和系统来说“不是必需的”库(二进制文件)。

⑩ 虚拟文件系统的Linux虚拟文件系统简介

1引言linux中允许众多不同的文件系统共存,如ext2,ext3,vfat等。通过使用同一套文件i/o系统调用即可对linux中的任意文件进行操作而无需考虑其所在的具体文件系统格式;更进一步,对文件的操作可以跨文件系统而执行。如图1所示,我们可以使用cp命令从vfat文件系统格式的硬盘拷贝数据到ext3文件系统格式的硬盘;而这样的操作涉及到两个不同的文件系统。图1.跨文件系统的文件操作“一切皆是文件”是unix/linux的基本哲学之一。不仅普通的文件,目录、字符设备、块设备、套接字等在unix/linux中都是以文件被对待;它们虽然类型不同,但是对其提供的却是同一套操作界面。图2.一切皆是文件而虚拟文件系统正是实现上述两点linux特性的关键所在。虚拟文件系统(virtualfilesystem,简称vfs),是linux内核中的一个软件层,用于给用户空间的程序提供文件系统接口;同时,它也提供了内核中的一个抽象功能,允许不同的文件系统共存。系统中所有的文件系统不但依赖vfs共存,而且也依靠vfs协同工作。为了能够支持各种实际文件系统,vfs定义了所有文件系统都支持的基本的、概念上的接口和数据结构;同时实际文件系统也提供vfs所期望的抽象接口和数据结构,将自身的诸如文件、目录等概念在形式上与vfs的定义保持一致。换句话说,一个实际的文件系统想要被linux支持,就必须提供一个符合vfs标准的接口,才能与vfs协同工作。实际文件系统在统一的接口和数据结构下隐藏了具体的实现细节,所以在vfs层和内核的其他部分看来,所有文件系统都是相同的。图3显示了vfs在内核中与实际的文件系统的协同关系。图3.vfs在内核中与其他的内核模块的协同关系我们已经知道,正是由于在内核中引入了vfs,跨文件系统的文件操作才能实现,“一切皆是文件”的口号才能承诺。而为什么引入了vfs,就能实现这两个特性呢?在接下来,我们将以这样的一个思路来切入文章的正题:我们将先简要介绍下用以描述vfs模型的一些数据结构,总结出这些数据结构相互间的关系;然后选择两个具有代表性的文件i/o操作sys_open()和sys_read()来详细说明内核是如何借助vfs和具体的文件系统打交道以实现跨文件系统的文件操作和承诺“一切皆是文件”的口号。

未经允许不得转载:山九号 » linux虚拟文件整体架构|什么是Linux系统架构

赞 (0)