当前位置:文档之家› 在linux上模拟uCOS_II实时操作系统的实现

在linux上模拟uCOS_II实时操作系统的实现

在linux上模拟uCOS_II实时操作系统的实现
在linux上模拟uCOS_II实时操作系统的实现

LINUX文件系统制作详细

Linux文件系统制作流程 关键词:ARM Linux yaffs文件系统移植 Linux文件系统简介 Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。 Linux下的文件系统结构如下: Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。 不同的文件系统类型有不同的特点,因而根据存储设备的硬件特性、系统需求等有不同的应用场合。在嵌入式Linux应用中,主要的存储设备为RAM(DRAM,

SDRAM)和ROM(常采用FLASH存储器),常用的基于存储设备的文件系统类型包括:jffs2,yaffs,cramfs,romfs,ramdisk,ramfs/tmpfs等。 >基于FLASH的文件系统 Flash(闪存)作为嵌入式系统的主要存储媒介,有其自身的特性。Flash的写入操作只能把对应位置的1修改为0,而不能把0修改为1(擦除Flash就是把对应存储块的内容恢复为1),因此,一般情况下,向Flash写入内容时,需要先擦除对应的存储区间,这种擦除是以块(block)为单位进行的。 闪存主要有NOR和NAND两种技术(简单比较见附录)。Flash存储器的擦写次数是有限的,NAND闪存还有特殊的硬件接口和读写时序。因此,必须针对Flash 的硬件特性设计符合应用要求的文件系统;传统的文件系统如ext2等,用作Flash的文件系统会有诸多弊端。 在嵌入式Linux下,MTD(Memory Technology Device,存储技术设备)为底层硬件(闪存)和上层(文件系统)之间提供一个统一的抽象接口,即Flash的文件系统都是基于MTD驱动层的(参见上面的Linux下的文件系统结构图)。使用MTD 驱动程序的主要优点在于,它是专门针对各种非易失性存储器(以闪存为主)而设计的,因而它对Flash有更好的支持、管理和基于扇区的擦除、读/写操作接口。 顺便一提,一块Flash芯片可以被划分为多个分区,各分区可以采用不同的文件系统;两块Flash芯片也可以合并为一个分区使用,采用一个文件系统。即文件系统是针对于存储器分区而言的,而非存储芯片。 1.jffs2 JFFS文件系统最早是由瑞典Axis Communications公司基于Linux2.0的内核为嵌入式系统开发的文件系统。JFFS2是RedHat公司基于JFFS开发的闪存文件系统,最初是针对RedHat公司的嵌入式产品eCos开发的嵌入式文件系统,所以JFFS2也可以用在Linux,uCLinux中。 Jffs2:日志闪存文件系统版本2(Journalling Flash FileSystem v2) 主要用于NOR型闪存,基于MTD驱动层,特点是:可读写的、支持数据压缩的、基于哈希表的日志型文件系统,并提供了崩溃/掉电安全保护,提供“写平衡”支持等。缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系而使jffs2的运行速度大大放慢。 目前jffs3正在开发中。关于jffs系列文件系统的使用详细文档,可参考MTD补丁包中mtd-jffs-HOWTO.txt。 jffsx不适合用于NAND闪存主要是因为NAND闪存的容量一般较大,这样导致jffs为维护日志节点所占用的内存空间迅速增大,另外,jffsx文件系统在

Linux文件系统剖析

2007 年12 月03 日 在文件系统方面,Linux? 可以算得上操作系统中的“瑞士军刀”。Linux 支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统。对于使用标准的和比较奇特的文件系统以及开发文件系统来说,Linux 是极好的平台。本文讨论Linux 内核中的虚拟文件系统(VFS,有时候称为虚拟文件系统交换器),然后介绍将文件系统连接在一起的主要结构。 基本的文件系统体系结构 Linux 文件系统体系结构是一个对复杂系统进行抽象化的有趣例子。通过使用一组通用的API 函数,Linux 可以在许多种存储设备上支持许多种文件系统。例如,read 函数调用可以从指定的文件描述符读取一定数量的字节。read 函数不了解文件系统的类型,比如ext3 或NFS。它也不了解文件系统所在的存储媒体,比如AT Attachment Packet Interface(ATAPI)磁盘、Serial-Attached SCSI(SAS)磁盘或Serial Advanced Technology Attachment(SATA)磁盘。但是,当通过调用read 函数读取一个文件时,数据会正常返回。本文讲解这个机制的实现方法并介绍Linux 文件系统层的主要结构。 什么是文件系统? 首先回答最常见的问题,“什么是文件系统”。文件系统是对一个存储设备上的数据和元数据进行组织的机制。由于定义如此宽泛,支持它的代码会很有意思。正如前面提到的,有许多种文件系统和媒体。由于存在这么多类型,可以预料到Linux 文件系统接口实现为分层的体系结构,从而将用户接口层、文件系统实现和操作存储设备的驱动程序分隔开。

Linux文件系统实验

实验编号与实验名称: 文件系统实验 实验目的: 熟悉文件和目录的基本操作;了解Linux的/proc文件系统 实验内容及要求(详见实验讲义与实验指导书): 内容: 1)在/usr目录下创建一个目录usr_test和文本文件test,并建立一个test文件的链接 test02。通过修改test文件中的内容查看test和test02中内容的情况,并分析原因。 2)编写程序,从/proc文件中抽取内核参数(任意的2个参数即可,如CPU时钟速度信 息等) 3)实现文件的拷贝,即把一个文件内容复制到另一个文件 要求: 对于内容1),给出操作步骤和结果分析,需回顾第二次实验中练习过的Shell命令和教材中的文件和目录操作系统调用 对于内容2)和3)给出完整C语言代码或者代码截图和代码执行结果,可参考本文件“实验预读”中相关内容和教材P.149/266图4-5相关代码 实验用到的软件(:) VMware 实验内容及关键步骤(代码)Q2(60分) 1)在/usr目录下创建一个目录usr_test和文本文件test,并建立一个test文件的链接 test02。通过修改test文件中的内容查看test和test02中内容的情况,并分析原因。

分析:在linux系统中通过link连接就可以通过第三方的查询,通过link函数后test01被绑定给test02中,所以可以通过test02去查询。 2.编写程序,从/proc文件中抽取内核参数(任意的2个参数即可,如CPU时钟速度信息等)

3.实现文件的拷贝,即把一个文件内容复制到另一个文件

实验过程中遇到的问题解决办法与实验体会Q3(10分)得分: 评阅教师特殊评语: 评阅教师: 日期:

linux文件系统的权限王国(一)

作者:池建强 在这个系列中和?大家聊聊 Linux 的?文件、?用户、?用户组、?文件系统的权限等内容,其中很多细节也是我使?用了很?长时间 Linux 后才真正掌握,希望?大家不?用那么久。 为什么是 Linux ?我觉得写技术的东?西还是相对严谨?一些好,虽然Unix 、Linux 、OS X ?一脉相承,但在具体命令上还是会有些差异,这个系列?文章?里所有的命令和显?示结果都是在 Linux 上进?行的,?大家可以对照在 Mac 上试试,当然最后也会讲?一点 OS X 的内容,否则怎么叫 MacTalk 呢? 在开始讲 Linux ?王国的?臣民之前,先介绍?一下?王国中最?牛的主:root ,这货不翻译为「根」,也不叫「管理员」,?而是被尊称为超级Linux ?文件系统的权限?王国(?一)

?用户,是不是觉得?高端霸?气?超级?二字绝不是恭维之词,从 Linux ?王国诞?生之初,root 就存在了,他会?一直霸占着超级?用户的?角?色并世世代代存在下去,没有禅让,没有民选,没有换位,所有的?用户都?自他?而起。如果你以为 root 会像上帝创造亚当和夏娃那样,让这?二位开开?心?心?生娃去了,那你就太Naive了。Linux 系统中的所有?用户要么由root 创建,要么借?用 root 的权限创建,等级极为森严,总之没有 root 的允许,想搞出?一位新?用户绝?无可能。看到这你们是不是都开始觉得计划?生育政策好啦? root 不仅能够管理?用户,还能管理?文件系统、进程、设备、??网络、通信、协议等等,总之他就像站在神?山上的神祗,俯视着芸芸众?生,看着数据信息在软件和硬件之间川流不息,时不时的做?一些计划性干预,如果有?人想超越系统的规则,他就能让你消失的像从来没有存在过。 所以那些成天叫嚣被蹂躏被代表的民众,看看 root,?大家?心理就会舒服?一些。 以 root 开篇,下?面我们聊聊 Linux 的?文件系统和索引节点。 Linux 的?文件系统本?身是?比较复杂的,仅 ext2、ext3 和 ext4 就得解释好?几天,本?文的重点不在于此,所以简单介绍?一下。?文件系统主要是?用来保存?文件和相关结构的,让?文件存储更安全、更快、更容易检索、能?支持更?大的物理介质等等。在 Linux 系统中,每个磁盘分区都可以看做?一个?文件系统,每个系统都有?自?己的??目录结构,Linux 会把这些分区按照?一定的?方式组织成统?一的??目录结构,?方便?用户访问。但是每个分区上的?文件系统都是独?立的,可以采?用不容的?文件格式,就像?一国两制?一样,虽然统?一,但是?自治。 那么如何查看?文件系统的格式呢?可以使?用 df -T -h 命令,T 表?示打印?文件格式,h 表?示?用G 或 M 来显?示?文件?大?小,如下:

详细分析Linux文件系统格式优劣

?摘要:Linux支持多种文件系统,包括ext2、iso9660、jffs、ext3、vfat、ntfs、romfs和nfs等,为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System) ?标签:文件系统 ?Linux由于其开源安全特性正在被多数企业所接受。Linux支持很多种文件系统,ext3、vfat、ntfs、romfs和nfs等,为了对各类文件系统进行统一管理,Linux引入了另一个文件系统VFS(Virtual File System)。下面我们就分析一下他的各种文件系统格式的特点 基于RAM的文件系统 (1)Ramdisk Ramdisk是将一部分固定大小的内存当作分区来使用。它并非一个实际的文件系统,而是一种将实际的文件系统装入内存的机制,并且可以作为根文件系统。将一些经常被访问而又不会更改的文件(如只读的根文件系统)通过Ramdisk放在内存中,可以明显地提高系统的性能。 在Linux的启动阶段,initrd提供了一套机制,可以将内核映像和根文件系统一起载入内存。 (2)ramfs/tmpfs Ramfs是LinusTorvalds开发的一种基于内存的文件系统,工作于虚拟文件系统(VFS)层,不能格式化,可以创建多个,在创建时可以指定其最大能使用的内存大小。(实际上,VFS 本质上可看成一种内存文件系统,它统一了文件在内核中的表示方式,并对磁盘文件系统进行缓冲。 Ramfs/tmpfs文件系统把所有的文件都放在RAM中,所以读/写操作发生在RAM中,可以用ramfs/tmpfs来存储一些临时性或经常要修改的数据,例如/tmp和/var目录,这样既避免了对Flash存储器的读写损耗,也提高了数据读写速度。 Ramfs/tmpfs相对于传统的Ramdisk的不同之处主要在于:不能格式化,文件系统大小可随所含文件内容大小变化。 Tmpfs的一个缺点是当系统重新引导时会丢失所有数据。 3.网络文件系统NFS(NetworkFileSystem) NFS是由Sun开发并发展起来的一项在不同机器、不同操作系统之间通过网络共享文件的技术。在嵌入式Linux系统的开发调试阶段,可以利用该技术在主机上建立基于NFS 的根文件系统,挂载到嵌入式设备,可以很方便地修改根文件系统的内容。 附录:NOR闪存与NAND闪存比较

实验五 Linux文件系统和权限管理

实验5 Linux文件系统和权限管理 1 实验目的 1、掌握Linux文件系统的控制机制及权限的表示方法。 2、掌握权限管理常用的命令。 2 实验环境 VMware中已经安装好CentOS5.4版本。 3 实验原理 1、Linux文件系统权限及管理机制可参见教材P83~P84。 2、Linux常用文件权限管理命令主要有:chmod、chown两个,这些命令的使用可参见教材P86~P104或者帮助手册。 4 实验任务 1、使用chm od、chown命令完成文件权限的设置、修改等操作。 5 实验步骤 1、使用命令查看/etc/hosts文件的权限,其权限是。 2、使用命令可以复制文件/etc/hosts到目录/tmp 下,然后使用命令或设置其读写权限为:文件所有者可以读、写和执行,同组用户可以读和执行,其他用户只可以执行。(要求使用两种方法实现) 3、修改题目2中复制的文件的所有者:所有者为用户test(需要事先创建),组所有者为m ail,使用的命令是。 4、查看系统当前的um ask值,并设置umask值为033,创建文件word,其权限是。(自己验证。想一想,为什么?) 5、将系统的时间设置为22:10的命令是,将日期和时间按照格式:mm/dd/yy hh:mm:ss显示输出的命令是。 6、保存2009年全年的日历在文件cal2009中的命令是。 7、将2009年1月的日历导出保存到文件cal.1中的命令是,将2009年2月的日历追加到2009年1月的日历后面的命令是。 8、假定需要显示信息:host: 主机名。使用hostnam e命令替换显示主机的名称的操作是

linux文件系统的比较

Linux日志文件系统及性能分析 简介:日志文件系统可以在系统发生断电或者其它系统故障时保证整体数据的完整性,Linux是目前支持日志文件系统最多的操作系统之一,本文重点研究了Linux常用的日志文件系统:EXT3、ReiserFS、XFS和JFS日志技术,并采用标准的测试工具PostMark和Bonnie++对它们进行了测试,给出了详细的性能分析,对Linux服务器应用具有重要的参考价值。 一、概述 所谓日志文件系统是在传统文件系统的基础上,加入文件系统更改的日志记录,它的设计思想是:跟踪记录文件系统的变化,并将变化内容记录入日志。日志文件系统在磁盘分区中保存有日志记录,写操作首先是对记录文件进行操作,若整个写操作由于某种原因(如系统掉电)而中断,系统重启时,会根据日志记录来恢复中断前的写操作。在日志文件系统中,所有的文件系统的变化都被记录到日志,每隔一定时间,文件系统会将更新后的元数据及文件内容写入磁盘。在对元数据做任何改变以前,文件系统驱动程序会向日志中写入一个条目,这个条目描述了它将要做些什么,然后它修改元数据。目前Linux的日志文件系统主要有:在Ext2基础上开发的Ext3,根据面向对象思想设计的ReiserFS,由SGI IRIX系统移植过来的XFS,由IBM AIX系统移植过来的JFS,其中EXT3完全兼容EXT2,其磁盘结构和EXT2完全一样,只是加入日志技术;而后三种文件系统广泛使用了B树以提高文件系统的效率。

回页首 二、Ext3 Ext3文件系统是直接从Ext2文件系统发展而来,目前Ext3文件系统已经非常稳定可靠,它完全兼容Ext2文件系统,用户可以平滑地过渡到一个日志功能健全的文件系统。Ext3日志文件系统的思想就是对文件系统进行的任何高级修改都分两步进行。首先,把待写块的一个副本存放在日志中;其次,当发往日志的I/O 数据传送完成时(即数据提交到日志),块就写入文件系统。当发往文件系统的I/O 数据传送终止时(即数据提交给文件系统),日志中的块副本就被丢弃。 2.1 Ext3日志模式 Ext3既可以只对元数据做日志,也可以同时对文件数据块做日志。具体来说,Ext3提供以下三种日志模式: ?日志(Journal ) 文件系统所有数据和元数据的改变都记入日志。这种模式减少了丢失每个文件所作修改的机会,但是它需要很多额外的磁盘访问。例如,当一个新文件被创建时,它的所有数据块都必须复制一份作为日志记录。这是最安全和最慢的Ext3日志模式。 ?预定(Ordered ) 只有对文件系统元数据的改变才记入日志。然而,Ext3文件系统把元数 据和相关的数据块进行分组,以便把元数据写入磁盘之前写入数据块。这

LINUX文件系统比较

文件系统比较 MogileFS MogileFS是一款开源的、高性能的、分布式的文件系统,用于组建分布式文件集群,跟Memcached是同门,都由LiveJournal旗下Danga Interactive公司开发。 MogileFS能干什么 最主要的功能就是:用来存取海量文件,而不用关心具体的文件存放位置、存储容量大小,以及文件损坏和丢失等问题。 MogileFS特点 1:应用层:不需要特殊的核心组件 2:无单点失败:MogileFS分布式文件存储系统安装的三个组件(存储节点、跟踪器、跟踪用的数据库),均可运行在多个机器上,因此没有单点失败。 3:自动进行文件复制:基于不同的文件“分类”,文件可以被自动的复制到多个有足够存储空间的存储节点上,这样可以满足这个“类别”的最少复制要求。 4:比RAID更好:在一个非存储区域网络的RAID中,磁盘是冗余的,但主机不是,如果你整个机器坏了,那么文件也将不能访问。MogileFS分布式文件存储系统在不同的机器之间进行文件复制,因此文件始终是可用的。 5:传输中立,无特殊协议 6:简单的命名空间:文件通过一个给定的key来确定,是一个全局的命名空间 MogileFS的适用性——擅长处理海量小文件 由于MogileFS不支持对一个文件的随机读写,因此注定了只适合做一部分 应用。比如图片服务,静态HTML服务。 FastDFS FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

Linux文件系统详解及常用命令

Linux文件系统介绍: 一、Linux文件结构 文件结构是文件存放在磁盘等存贮设备上的组织方法。主要体现在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径。 Linux使用树状目录结构,在安装的时候,安装程序已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。 ┃/根目录 ┏━━┳━━━┳━━━┳━━━╋━━━┳━━━┳━━━┳━━━┓ ┃┃┃┃┃┃┃┃┃ bin home dev etc lib sbin tmp usr var ┃┃ ┏━┻━┓┏━━┳━━┳━━┳━┻━┳━━┓ ┃┃┃┃┃┃┃┃ rc.d cron.d X11R6src lib local man bin ┃ ┏━━━┳━━┳━┻━┳━━━┓ ┃┃┃┃┃ init.d rc0.d rc1.d rc2.d ……linux bin lib src 该结构的最上层是根目录,其他的所有目录都是从根目录出发而生成的。 微软的DOS和windows也是采用树型结构,但是在DOS和windows中这样的树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,它们之间的关系是并列的。但是在linux中,无论操作系统管理几个磁盘分区,这样的目录树只有一个。从

结构上讲,各个磁盘分区上的树型目录不一定是并列的。 举例说明: 有一块硬盘,分成了4个分区,分别是/;/boot;/usr和windows下的fat 对于/和/boot或者/和/usr,它们是从属关系;对于/boot和/usr,它们是并列关系。 如果把windows下的fat分区挂载到/mnt/winc下,那么对于/mnt/winc和/usr 或/mnt/winc和/boot来说,它们是从属于目录树上没有任何关系的两个分支。 因为linux是一个多用户系统,制定一个固定的目录规划有助于对系统文件和不同的用户文件进行统一管理。下面列出了linux下一些主要目录的功用。 /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录,比如用户user的主目录就是/home/user,可以用~user 表示 /lib 标准程序设计库(动态链接共享库),作用类似windows里的.dll文件 /sbin 系统管理命令,存放的是系统管理员使用的管理程序 /tmp 公用的临时文件存储点 /root 系统管理员的主目录 /mnt 系统提供这个目录是让用户临时挂载其他的文件系统。 /lost+found 该目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里

Linux文件系统和分区

1.Ubuntu文件结构 /bin bin是Binary的缩写。存放系统中最常用的可执行文件(二进制)。 /boot 这里存放的是linux内核和系统启动文件,包括Grub、lilo启动器程序。 /dev dev是Device(设备)的缩写。该目录存放的是Linux的外部设备,如硬盘、分区、键盘、鼠标、usb等。 /etc 这个目录用来存放所有的系统管理所需要的配置文件和子目录,如passwd、hostname等。 /lib 存放共享的库文件,包含许多被/bin和/sbin中程序使用的库文件。 /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些零散文件。 /media ubuntu系统自动挂载的光驱、usb设备,存放临时读入的文件。 /mnt 作为被挂载的文件系统的挂载点。 /opt 作为可选文件和程序的存放目录,主要被第三方开发者用来简易安装和卸载他们的软件。 /proc 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这里存放所有标志为文件的进程, 比较cpuinfo存放cpu当前工作状态的数据。 /sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序,如系统管理、目录查询等关键命令文件。 / srv 存放系统所提供的服务数据。 /sys 组自豪系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。 /tmp 这个目录是用来存放一些临时文件的,所有用户对此目录都有读写权限。 /usr 存放与系统用户有关的文件和目录。 /usr/X11R6 存放X-Windows的目录; /usr/bin 用户和管理员的标准命令; /usr/sbin 存放root超级用户使用的管理程序;

Linux文件系统介绍

开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题!一语破天机:“尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具。这对 Linux 来说尤其如此,这是因为在UNIX 传统中,它使用文件 I/O 机制管理硬件设备和数据文件。” #一.什么是文件系统 文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。这种机制有利于用户和操作系统的交互。 每个实际文件系统从操作系统和系统服务中分离出来,它们之间通过一个接口层:虚拟文件系统或VFS来通讯。VFS使得Linux可以支持多个不同的文件系统,每个表示一个VFS 的通用接口。由于软件将Linux 文件系统的所有细节进行了转换,所以Linux核心的其它部分及系统中运行的程序将看到统一的文件系统。Linux 的虚拟文件系统允许用户同时能透明地安装许多不同的文件系统。 在Linux文件系统中,EXT2文件系统、虚拟文件系统、/proc文件系统是三个具有代表性的文件系统。

#二.什么是根文件系统 根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所挂载(mount)的第一个文件系统,内核代码的映像文件保存在根文件系统中,系统引导启动程序会在根文件系统挂载之后从中把一些初始化脚本(如rcS,inittab)和服务加载到内存中去运行。我们要明白文件系统和内核是完全独立的两个部分。在嵌入式中移植的内核下载到开发板上,是没有办法真正的启动Linux操作系统的,会出现无法加载文件系统的错误。 那么根文件系统在系统启动中到底是什么时候挂载的呢?先将/dev/ram0挂载,而后执行/linuxrc.等其执行完后。切换根目录,再挂载具体的根文件系统.根文件系统执行完之后,也就是到了Start_kernel()函数的最后,执行init的进程,也就第一个用户进程。对系统进行各种初始化的操作。 根文件系统之所以在前面加一个”根“,说明它是加载其它文件系统的”根“,既然是根的话,那么如果没有这个根,其它的文件系统也就没有办法进行加载的。它包含系统引导和使其他文件系统得以挂载(mount)所必要的文件。根文件系统包括Linux启动时所必须的目录和关键性的文件,例如Linux启动时都需要有init目录下的相关文件,在 Linux挂载分区时Linux一定会找/etc/fstab这个挂载文件等,根文件系统中还包括了许多的应用程序bin目录等,任何包括这些Linux 系统启动所必须的文件都可以成为根文件系统。Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。成功之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。在 Linux 中将一个文件系统与一个存储设备关联起来的过程称为挂载(mount)。使用 mount

LINUX文件系统详解

LINUX文件系统详解 一、物理磁盘到文件系统 文件系统是用来存储文件内容、文件属性、和目录。这些类型的数据如何存储在磁盘块上的呢?unix/linux使用了一个简单的方法。如图所示. 它将磁盘块分为三个部分: 1) 超级块,文件系统中第一个块被称为超级块。这个块存放文件系统本身的结构信息。比如,超级块记录了每个区域的大小,超级块也存放未被使用的磁盘块的信息。 2) I-切点表。超级块的下一个部分就是i-节点表,第个文件都有一些属性,如文件的大小、文件所有者、和创建时间等,这些性质被记录在一个称为i-节点的结构中。所有i-节点都有相同的大小,并且i-节点表是这些结构的一个列表,文件系统中每个文件在该表中都有一个i-节点。 3) 数据区。文件系统的第3个部分是数据区。文件的内容保存在这个区域。磁盘上所有块的大小都一样。如果文件包含了超过一个块的内容,则文件内容会存放在多个磁盘块中。一个较大的文件很容易分布上千个独产的磁盘块中,至于文件系统是如何跟踪这些磁盘块的,在第四节再讲。 二、创建一个文件的过程 我们现在知道文件的内容和属性是分开存放的,那么又是如何管理它们的呢。现在我们以创建一个文件为例来讲解。在命令行输入命令: $ who >userlist 当完成这个命令时。文件系统中增加了一个存放命令who输出内容的新文件,那么这整个过程到底是怎么回事呢? 文件有属性和内容,内核将文件内容存放在数据区,文件属性存放在i-节点,文件名存放在目录。图2显示了创建一个文件的例子,假如这个新文件要3 个存储块来存放内容。 四个步骤如下:

1) 存储属性也就是文件属性的存储,内核先找到一块空的i-节点。图2中。内核找到i-节点号47。内核把文件的信息记录其中。如文件的大小、文件所有者、和创建时间等 2) 存储数据即文件内容的存储,由于该文件需要3个数据块。因此内核从自由块的列表中找到3个自由块。图2中分别为627、200、992,内核缓冲区的第一块数据复制到块627,第二和第三分别复制到200和992. 3) 记录分配情况,数据保存到了三个数据块中。所以必须要记录起来,以后再找到正确的数据。分配情况记录在文件的i-节点中的磁盘序号列表里。这3个编号分别放在最开始的3个位置。 4) 添加文件名到目录,新文件的名字是userlist内核将文件的入口(47,userlist)添加到目录文件里。文件名和i-节点号之间的对应关系将文件名和文件和文件的内容属性连接起来,找到文件名就找到文件的i-节点号,通过i-节点号就能找到文件的属性和内容。 三、创建一个目录的过程 前面说了创建一个文件的大概过程,那么创建一个目录时又是怎么回事呢? 我们知道,目录其实也是文件,只是它的内容比较特殊:包含文件名字列表,列表一般包含两个部分:i-节点号和文件名。所以它的创建过程和文件创建过程一样,只是第二步写的内容不同。一个目录创建时至少包括两个链接:“.”,“..” 我们可以通过系统命令来查看目录的内容: 上图的结果是文件名和对应的i-节点号,其中“.”表示是当前目录。而“..”是当前目录的父目录。但也有特殊情况:我们查看要目录的情况: [root@localhost ~]# ls -i1a / 2 . 2 .. 98305 .autofsck 1310721 backup 我们发现“.”和“..”都指向i-节点2.实际上当用mkfs创建一个文件系统时,mkfs会将根目录的父目录指向自己 四、理解链接 五、如果有大文件如何实现 我们在第二节已经知道。文件内容的分配情况是必须记录在i-节点的磁盘序号列表里的。但是i-节点只包含一个最多含有13个项的分配链表,如果分配的数据块超过13个块时怎么办? Linux用到一个间接块来解决此问题.比如我们要记录14个块的编号,可以把前面10个记录在i-节点的磁盘序号列表里。另外4个编号放在一个数据块中。在i-节点的第11项里记录存

Linux文件系统类型介绍

Linux文件系统类型介绍 以超级用户权限登陆Linux,进入/Lib/modules/2.4.18-6mdk/kernel/fs目录执行命令(不同Linux发行版本的Fs目录有些不同你可以用查找FS文件夹的方法找到它): #ls Mandrake Linux 支持的文件系统类型 /Lib/modules/2.4.18-6mdk/kernel/fs中查出当前系统所支持的文件系统种类。从图-1中可以看到笔者使用的Mandrake Linux 8.2支持的文件系统非常多。Linux 系统核心支持十多种文件系统类型:jfs、ReiserFS、ext、ext2、ext3、iso9660、xf s、minx、msdos、umsdos、Vfat、NTFS、Hpfs、Nfs、smb、sysv、proc等。 这里我们对最常用的几个文件系统的发展情况和优缺点作详细介绍:ext、ext2、ex t3、jsf、、xfs、ReiserFS。 一、ext ext是第一个专门为Linux的文件系统类型,叫做扩展文件系统。它在1992年4月完成的。它为Linux的发展取得了重要作用。但是在性能和兼容性上存在许多缺陷。现在已经很少使用了。 二、ext2 ext2是为解决ext文件系统的缺陷而设计的可扩展的高性能的文件系统。又被称为二级扩展文件系统。它是在1993年发布的,设计者是Rey Card。ext2是Linux文件系统类型中使用最多的格式。并且在速度和CPU利用率上较突出,是GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。Ext2 可以支持256字节的长文件名,其单一文件大小

基于Linux的文件系统设计

无敌 操作系统课程设计 说明书 学院、系:软件学院 专业:软件工程 学生姓名:学号: 设计题目:基于Linux的模拟文件系统的设计与实现 起迄日期: 指导教师:

1.需求分析 1.1 功能介绍 基于Linux的模拟文件系统的设计与实现完成以下功能:(1)创建用户:创建多个用户,输入用户名;每个用户最多可以保存多个文件。 (2)用户登录:手动的登录已经创建的用户,正确输入用户名即可成功登录。 (3)创建二级文件目录(MD):手动的输入目录名称,(即设置主目录(MFD)和用户文件目录(UFD))。 (4)显示目录(show_content):将用户创建的目录显示在界面上。 (5)删除目录(delete_content):手动输入目录的名称即可删除已经创建的目录。 (6)进入目录:进入目录内部,可以进行文件的各种操作。 (7)复制目录(modify_content):在用户登录后,输入要修改的目录名称,对其进行修改,输入新的目录名并保存。 (8)建立一个文件(create):在目录中手动输入文件名,可以创建新的文件,在创建的同时输入文件的保护码,对文件内 容进行保护,防止信息泄露。

(9)删除一个文件(delete):手动输入已经创建的文件的名称,即可删除此文件。 (10)写文件(write):手动的在文件中写入内容。 (11)读文件(read):查看文件中的已经写入的内容。 (12)修改文件属性(modifyfile):通过修改属性改变文件类型。 基于其低廉成本与高度可设定性,Linux常常被应用于嵌入式系统,例如机顶盒、移动电话及行动装置等。在移动电话上,Linux已经成为与Symbian OS、Windows Mobile系统并列的三大智能手机操作系统之一;而在移动装置上,则成为Windows CE与Palm OS 外之另一个选择。目前流行的TiVo数位摄影机使用了经过定制化后的Linux。此外,有不少硬件式的网络防火墙及路由器,例如部份LinkSys的产品,其内部都是使用Linux来驱动、并采用了操作系统提供的防火墙及路由功能。 1.2 目的及意义 Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux 操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Window图形用户界面,如同我们使用Windows NT一样,允许

Linux 文件系统概述

Linux 文件系统概述 文件系统(file system)表示存储在计算机上的文件和目录的数据结构,也可以用于存储文件的分区或磁盘,操作系统通过文件系统可以方便地查寻和访问其中所包含的磁盘块。在Linux系统中,每个分区都是一个文件系统,都有自己的目录层次结构。Linux的最重要特征之一就是支持多种文件系统,这样它更加灵活,并可以和许多其它种操作系统共存。 1 文件系统的工作原理 Linux系统中的每个文件都是通过分配文件块的方式把数据存储在存储设备中,而分配信息本身也存储在磁盘上。不同的文件系统用不同的方法分配和读取文件块,例如DOS和Windows的FAT文件系统。 在Linux系统中,有两种常用的文件系统的分配策略:块分配(block allocation)和扩展分配(extent allocation)。块分配当文件变大的时候每一次都为这个文件分配磁盘空间,而扩展分配则是当某个文件的磁盘空间不够的时候,一次性为它分配一连串连续的块。 1.块分配 块分配机制提供了一个灵活而高效的文件块分配策略,在传统的Linux文件系统被广泛应用。磁盘上的文件块根据需要分配给文件,这样可以减少存储空间的浪费。例如,当一个文件慢慢变大的时候,就会造成文件中文件块的不连续。使得读取一个文件的时候有可能要随机而不是连续地读取文件块。这样的效率非常低,而且还增加了过多的磁盘寻道时间 可以通过优化文件块的分配策略(尽可能为文件分配连续的块)来避免文件块的随机分配。通过使用聪明的块分配策略,可以实现块的连续分配。这样就可以减少磁盘的寻道时间。 每一次当文件扩展的时候,块分配的算法就要写入一些关于新分配的块所在位置的信息。如果每一次文件扩展的时候只增加一个块,那么就需要很多额外的磁盘I/O用来写入文件块的结构信息。文件块的结构信息也就是meta-data,meta-data总是一起同时写入存储设备的,它的这种机制显著地降低整个文件系统的性能。使得改变文件大小的操作要等到所有的meta-data的操作都完成之后才能进行。 2.扩展分配 相对块分配而言,扩展分配则是当某个文件的磁盘空间不足时,一次性为文件分配很多连续的块。当创建一个文件的时候,很多文件块同时被分配;当文件扩展的时候,也一次分配很多块。文件系统的meta-data在文件创建的时候被写入,当文

linux-实验报告-文件系统与文件管理

学生课程实验报告书课程:《linux网络操作系统》 级系 专业班 学号: 姓名: 指导教师:

一、实验项目:用户与组群管理 二、实验日期: 三、实验原理: 1.熟悉Linux下常用的操作指令。 2.加深对文件,目录,文件系统等概念的理解。 3.掌握Linux文件系统的目录结构。 4.掌握有关Linux文件系统操作的常用命令。 5.了解有关文件安全方面的知识。 四、实验仪器: PC机 Redhat网络操作系统 五、实验步骤(纸张不够写可另外加纸并应装订): 进入虚拟机,并在此平台上练习文件管理有关命令.一般在[root @ localhost xxxx]$ 提示符下键入有关命令。 1.浏览文件系统 〈1〉运行pwd命令,确定你当前的工作目录。 〈2〉利用以下命令显示当前工作目录的内容:(理解各字段彻底意义。) 〈3〉运行以下命令:(反馈信息中.代表本身目录,..代表其父目录;选项a可以显示隐藏文件;选项i可以显示文件的I节点号) ls –ai

〈4〉使用mkdir命令建立一个子目录subdir,并用ls查看当前目录。 〈5〉使用带-d选项的ls命令,你只能看到有关子目录的信息(.表示本身目录)。 〈6〉使用cd命令,将工作目录改到根目录(/)上。 ①用相对路径将工作目录改到根目录。 ②用绝对路径将工作目录改到根目录。 〈7〉使用ls命令列出根目录的内容,再分别列出各子目录的内容,体会各目录作用及访问权限。

〈8〉使用ls-l命令列出/dev的内容。 Ls –l /dev 列出/dev目录的内容,文件太多显示多屏,各行第一个字符为b的表示块特别文件;各行第一个字符为c的表示字符特别文件。 〈9〉使用不带参数的命令cd,然后用pwd命令确定你当前的工作目录是什麽。 〈10〉使用命令cd ../..,你将工作目录移到什麽地方 2.查看你的文件 〈1〉利用cd命令,将工作目录改到你的主目录上。 〈2〉将工作目录改到你的子目录subdir,然后运行命令: date > file1 将当前日期和时间存放到新建文件file1中。 Ls –l 反馈信息中有新文件file1。请注意并记下文件长度为:

相关主题
文本预览
相关文档 最新文档