技术标签: 深入理解操作系统原理 操作系统 文件系统
操作系统对系统的软件资源(不论是应用软件和系统软件)的管理都以文件方式进行,承担这部分功能的操作系统称为文件系统。
计算机系统对系统中软件资源:无论是程序或数据、系统软件或应用软件都以文件方式来管理。文件是存贮在某种介质上的(如磁盘、磁带等)并具有文件名的一组有序信息的集合。 文件名是由字符和数字组成的,例如MS-DOS中文件名由三部分组成,格式如下:[<盘符>] <文件名> [.扩展名]。格式 [ ] 中是可以省略,盘符为存放文件的磁盘驱动器号,如用A:和C:分别 表示软盘和硬盘驱动器;文件名由1∽8个字符组成。扩展名为由“.”开始的1-3个字符组成,如.EXE表示可执行的浮动代码文件,.TXT表示ASCⅡ码文本文件,.LIB表示库文件,.BAT表示批处理文件等。
UNIX 文件系统将文件分成普通文件、目录文件、设备文件(特殊文件)和符号连接文件(Symbolic link)等几类,UNIX把所有I/O设备作为特殊文件,对I/O设备操作模仿为对普通文件的存取,这样将文件与设备的I/O尽可能统一起来。
数据项是描述一个对象的某些属性的字符集,它是数据的基本单位,一个数据项有一个值。记录是一组相关数据项的集合,用于描述一个对象某方面的属性。 文件是具有文件名的一组相关记录的集合。数据库是相关数据的集合。
文件系统是操作系统中以文件方式管理计算机软件资源的软件和被管理的文件和数据结构(如目录和索引表等)的集合。
从系统角度来看,文件系统是对文件存储器的存储空间进行组织、分配和回收,负责文件的存储、检索、共享和保护。从用户角度来看,文件系统主要是实现“按名存取”,文件系统的用户只要知道所需文件的文件名,就可存取文件中的信息,而无需知道这些文件究竟存放在什么地方。
文件系统的类型:
(1)FAT文件系统(MS-DOS文件系统、msdos)
它是MS-DOS操作系统使用的文件系统,它也能由Windows98/NT、linux、SCO UNIX等操作系统访问。文件地址以FAT表结构存放,文件目录32B,文件名为8个基本名加上一个“.”和3个字符扩展名。
(2)扩展文件表系统(vfat)
它是Windows98使用的扩展的DOS文件系统,它在MS-DOS文件系统基础上增加了对长文件名(最多到256B)支持。
(3)NTFS(NT文件系统)
它是Windows NT操作系统使用的文件系统,它具有很强的安全特性和文件系统恢复功能,可以处理巨大的存储媒体,支持多种文件系统。
(4)ext2(二级扩展文件系统)
它是Linux操作系统使用的高性能磁盘文件系统,它是对Minux操作系统中使用的文件系统扩展(ext)的扩展。它支持256字符的文件名,最大可支持到4TB的文件系统大小。
(5)HPFS(高性能文件系统、hpfs)
它是OS/2操作系统使用的文件系统。
(6)S51K/S52K(sysv)
它是AT&T UNIX S V 操作系统使用的1KB/2KB文件系统。
(7)CD-ROM文件系统(iso9660)
它是符合ISO9660标准的支持CD-ROM的文件系统,它有High sierra CD-ROM和Rock Ridge CD-ROM二种类型。
(8)UDF通用磁盘格式文件系统
UDF(Universal Disk Format)文件系统是依据光学储存技术协会(Optical Storage Technology Association, OSTA)的通用磁盘格式文件系统规格1.02版所制定的。它提供了对 UDF格式媒体的只读访问(例如DVD光盘)。Windows98提供对UDF文件系统支持。
现代操作系统(如Windows 2000/XP、Linux、UNIX等)提供了对多种文件系统的支持。
(1)Windows 2000/XP
Windows 2000/XP支持FAT文件系统、NTFS、HPFS、CD-ROM文件系统等多种文件系统。 Windows 2000执行体内I/O系统分成I/O管理程序、文件系统驱动程序和盘驱动程序三层,不同的文件系统采用不同的文件系统驱动程序,系统用动态连接库对这些文件系统进行装入和卸出并适宜于将来的扩展。
(2)Linux
Linux支持ext、ext2、msdos、vfat、iso9660、hpfs等多种文件系统。Linux采用虚拟文件系统VFS支持许多不同类型的文件系统,VFS是物理系统与服务之间的一个接口层,它屏蔽各类文件系统的差异,给用户和程序提供一个统一的接口。使用命令mkfs创建各类文件系统。
文件的组织是指文件的构造方式,从用户观点出发观察到的文件组织结构称为文件的逻辑结构;而文件在外存上的存储组织形式称为文件的物理结构,又称文件的存储结构。
从用户观点出发观察到的文件组织结构称为文件的逻辑结构,逻辑结构的文件称逻辑文件。逻辑文件从结构上分成二种形式,一种是无结构的流式文件,另一种是有结构的记录式文件。
流式文件是指对文件内信息不再划分单位,它是依次的一串字符流构成的文件。记录式文件是用户把文件内的信息按逻辑上独立的含义划分信息单位,每个单位称为一个逻辑记录(简称记录)。所有记录通常都是描述一个实体集的,有着相同或不同数目的数据项,记录的长度可分为定长和不定长记录两类。
记录文件有顺序、索引、索引顺序、直接、分区和堆文件几种。
用户通过对文件的存取来完成对文件的修改、追加和搜索等操作。常用的存取方法有顺序存取法、随机存取法(直接存取法)和按键存取法三种。
UNIX、Linux和Windows等操作系统都采用顺序存取和随机存取两种方法。
文件在存储介质上的组织方式称为文件的存储结构或称文件的物理结构、物理文件。
外存分配方法有连续分配、链接分配、索引分配,相应物理文件有:顺序文件、链接文件、索引文件。
MS-DOS文件系统的文件物理结构采用FAT表结构。该结构为了克服链接文件随机读取任一逻辑块需要化费多次盘I/O操作的不足,将各盘块中的链接指针集中存放在盘的开始部分,构成一张表,称为FAT表。(这称为显式链接)FAT表每一项存放链接指针(下一个簇号),每个FAT表项占12位或16位,称为FAT12或FAT16。对于软盘因为容量小,簇数也少,采用12位FAT表,对于硬盘则采用16位FAT表。
FAT表文件系统原为小硬盘的目录结构而设计,由于簇的数目最多只能用16位表示,即最多只能有64K个簇,要用FAT表管理大的磁盘分区,只能采取增大每簇所包含的扇区数,一般根据磁盘的类型和容量大小来决定簇的大小。
为了实现“按名存取”,系统必须为每个文件设置用于描述和控制文件的数据结构,它至少要包括文件名和存放文件的盘物理地址,这个数据结构称为文件控制块FCB,文件控制块的有序集合称为文件目录,即一个文件控制块FCB就是一个文件目录项。文件控制块FCB中包含的信息有以下三类:
目录结构的组织关系到文件系统的存取速度,关系到文件共享性和安全性,因此组织好文件的目录是设计文件系统的重要环节。
UNIX为了加快目录的寻找速度,UNIX将文件控制块FCB中文件名和文件说明分开。文件说明为索引节点,各文件索引节点集中存放在索引节点区,索引节点按索引节点号排序。而文件名与索引节点号构成目录项,UNIX S V 操作系统的文件名14个字节,索引节点2个字节,共16个字节构成目录项。同一级目录项构成目录文件,在文件区存放。
Linux目录文件中的目录项会变长,以保证系统支持文件名长度可变,最长达255个字符。目录项的前三项是定长的,包含以下信息:(1)索引节点号(4B);(2)目录项长度(2B);(3)文件名长度(2B)。目录项最后是文件名,目录项不能跨越二个块 。
每个文件有一个存放在磁盘索引节点区的索引节点,称为磁盘索引节点,它包括以下内容:(1)文件主标识符和同组用户标识符;(2)文件类型:是普通文件、目录文件、符号连接文件或特别文件(又分块设备文件或字符设备文件);(3)文件主,同组用户和其它人对文件存取权限(读R、写W、执行X);(4)文件的物理地址(5)文件长度(字节数);(6)文件链接数(7)文件最近存取和修改时间等。
文件共享是指不同的用户使用不同的文件名来使用同一文件。在用一般共享目录结构时,一用户增加文件的内容,只改变自己的文件目录,其它用户不知改变。
磁盘是常用的存储设备,它具有容量大,存取速度快,可以实现随机存取等优点,是现代操作系统的必需存储设备,也是实现虚拟存储器所必需的硬件。
一个物理磁盘在逻辑上可分为几个区域,分区信息存放在主引导块分区表中。分区表中保存磁盘各种分区起始和终止的磁头、柱面、扇区、总的扇区数等信息。在主引导块中有三种类型分区:主分区、扩展区和逻辑分区。主分区是常用的,加载一个操作系统所需文件安装其上,操作系统必须从主分区上引导,一个硬盘上只能有四个主分区。为了突破四个分区的限制,就要在四个分区中创建立一个扩展分区。扩展分区其实是一个逻辑盘,它不能格式化,也不能分配盘符。但可在扩展分区中创建一个或多个逻辑分区,(或称逻辑驱动器),每个逻辑分区分配一个盘符,可以格式化成一个特定的文件系统,MS-DOS、Windows98和WindowsNT可用fdisk命令将硬盘分区。
为了实现存储空间的分配和回收,系统应为存储空间设置相应的结构以记住存储空间的使用情况,并配以相应算法方便地对存储空间进行分配和回收,下面介绍几种常用的文件存储空间管理方法。
影响文件安全性的主要因素,第一是人为因素,即由于人们有意或无意的行为,而使文件系统中的数据遭到破坏或丢失;第二是系统因素,即由于系统的某部分出现异常情况,而造成对数据的破坏或丢失,特别是作为数据存储介质的磁盘,在出现故障或损坏时,会对文件系统的安全性造成影响;第三是自然因素,即存放在磁盘上的数据,随着时间的推移将可能发生溢出或逐渐消失。
为了确保文件系统的安全性,可针对上述原因而采取以下措施:
(1)通过存取控制机制来防止由人为因素所造成的文件不安全性。
(2)通过磁盘容错技术,来防止由磁盘部分的故障所造成的文件不安全性。
(3)通过“后备系统”来防止由自然因素所造成的不安全性。
文件系统对文件的保护常采用存取控制方式进行,所谓文件的存取控制就是不同的用户对文件的访问规定不同的权限,以防止文件被未经文件主同意的用户访问。
随着计算机应用范围扩大,在所有稍具规模的系统中,都从多个级别上来保证系统的安全性。
文件系统中不论硬件和软件都会因电源中断和变化,用户粗野和不慎的操作而发生损坏和错误,所以为使至关重要的文件系统万无一失,应对保存在辅存中的文件采取一些保险措施,这些措施中最简便方法是“定期转储”,使一些重要的文件有多个副本。
文章浏览阅读2k次。以上是用了网上说的三种方法,最后可以看出只有在overflow: hidden;外层书写position: relative;才能帮助overflow: hidden内层的子元素使用定位脱离被隐藏的命运。_css子元素不受父元素影响
文章浏览阅读1.4k次,点赞2次,收藏12次。PyQt自定义气泡弹窗,可以透明度变化、自动关闭,用于一些动作提示_pyqt5 气泡对话框
文章浏览阅读160次。点击:File->Settings->Editor->File Encodeings,再把编码格式均设置为UTF-8,把Transparent native-to-ascaii conversion勾选上,点击Apply,点击OK即可。_idea solon插件
文章浏览阅读278次。资源限制时间限制:1.0s 内存限制:256.0MB问题描述求1+2+3+...+n的值。输入格式输入包括一个整数n。输出格式输出一行,包括一个整数,表示1+2+3+...+n的值。样例输入4样例输出10样例输入100说明:有一些试题会给出多组样例输入输出以帮助你更好的做题。一般在提交之前所有这些样例都需要测试通过才行,但这不代表这几组样例数据都正确了你的程序就是完全正确的,潜在的错误可能仍然导致你的得分较低。样例输出5050数._百米赛跑 题目难度:简单 时间限制:1000ms 内存限制:512mb 题目描述 小t作为班级的
文章浏览阅读88次。本文研究了小波变换的有关定义,理论和性质,尤其是小波变换的多分辨分析理论和离散小波变换理论;研究比较了图像边缘提取的一些方法,着重研究了图像检索的基本方法和基于小波变换的商标图像检索方法,在MATLAB工作环境下对其进行仿真试验,并对实验结果进行了分析和比较.我们还将作进一步研究,使之具有实用价值.近年来出现的小波分析方法作为有力的分析工具被用。_基于dwt实现频域变换图像还原系统的参考文献最新
文章浏览阅读578次,点赞16次,收藏21次。本文比较了四种不同的自适应控制器,用于估计四旋翼飞机的质量和惯性矩阵。四旋翼飞机是一个欠驱动系统,其动态模型难以精确建模。本文首先推导了四旋翼飞机的动态模型并进行解耦,然后在持续激励信号下,使用恒定增益 (CG)、有界增益遗忘 (BGF)、缓冲层 (CF) 和基于跟踪误差 (TEB) 四种自适应控制器进行参数估计,并比较了它们的性能。最后,在参数估计完成后,本文提出了一种基于动态扩展的反馈线性化和输入输出解耦方法,用于跟踪平坦输出空间中指定的轨迹,其中平坦输出包括位置和偏航角。
文章浏览阅读1.1k次,点赞23次,收藏16次。ngrok是一款用Golang语言打造的开源的内网穿透软件,它可以帮助我们把内网的应用提供给外网用户访问。_ngrok
文章浏览阅读3.9k次。SQLite简介SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、P_km.myqite.cn
文章浏览阅读281次。选题背景:企业固定资产管理系统是指通过信息技术手段,对企业的固定资产进行全面管理和监控的一种综合性管理系统。随着企业规模的不断扩大和固定资产数量的增加,传统的手工记录和管理方式已经无法满足企业日常运营的需求。固定资产作为企业重要的生产要素和财务资源,对于企业的正常运转和发展至关重要。因此,设计和实现一个高效的企业固定资产管理系统具有重要的意义。该系统旨在提高固定资产的利用率、降低管理成本、减少资产损失,为企业提供更便捷、高效的固定资产管理环境。因此,对于企业固定资产管理系统的选题背景具有重要的意义。意_资产系统总体结构设计
文章浏览阅读481次。下载redis压缩包,然后解压压缩文件;进入到解压缩后的redis文件目录(此时可以看到Makefile文件),编译redis源文件;把编译好的redis源文件安装到/usr/local/redis目录下,如果/local目录下没有redis目录,会自动新建redis目录;进入/usr/local/redis/bin目录,直接./redis-server启动redis(此时为前端启动redis);将redis启动方式改为后端启动,具体做法:把解压缩的redis文件下的redis.conf文件复制到/_redis集成
文章浏览阅读184次。作者:再见紫罗兰来源:http://www.cnblogs.com/linxiyue/p/8030604.html在 Python中,实例对象是由类生成的,而类本身也是可以被传递和自省的对象。那么类对象是用什么创建和生成的呢?答案是元类,元类就是一种知道如何创建和管理类的对象。让我们回顾一个内置函数type(),type不仅可以返回对象的类型,而且可以使用类名称、基类元组、类主体定义的字典作为参数..._python的元类 aop
文章浏览阅读682次,点赞7次,收藏9次。MyShell AI倾力打造的高品质多语言文本到语音库MeloTTS正式开源,该库不仅支持中英混合发音,更能实现清晰、自然的语音输出,为用户带来前所未有的语音合成体验。值得一提的是,MeloTTS在普通CPU上也能实现实时语音合成,极大地提升了语音合成的效率和便捷性。MeloTTS以其卓越的技术,确保了转换后的声音自然流畅,仿佛真人般娓娓道来,为您的文字内容注入生动的语音表现。MeloTTS,一款强大的文字转语音工具,现已支持英语、西班牙语、法语、中文、日语和韩语等多种语言,让您的文字内容跃然“声”上。_melotts