文档库 最新最全的文档下载
当前位置:文档库 › 一种加载在uCOS_II内核上的嵌入式文件系统_王命延

一种加载在uCOS_II内核上的嵌入式文件系统_王命延

一种加载在uCOS_II内核上的嵌入式文件系统_王命延
一种加载在uCOS_II内核上的嵌入式文件系统_王命延

收稿日期:2004-04-20

作者简介:王命延(1959-),男,教授.

文章编号:1006-0464(2005)02-0197-03

一种加载在uCOS -II 内核上的嵌入式文件系统

王命延,余爱军

(南昌大学计算机科学工程系,江西南昌 330029)

摘 要:分析了文件系统在嵌入式应用中的重要作用,在剖析了u CO S -II 内核工作原理的基础上,借鉴FA T16文件系统,构建了一个适合嵌入式应用的文件系统FA T8,并详细介绍了如何在uCO S -II 内核上实现。关键词:u CO S -II ;嵌入式实时操作系统;嵌入式文件系统中图分类号:TP316.2 文献标识码:A

随着嵌入式系统应用要求的不断提高,系统资

源的进一步丰富,系统的复杂程度也不断提高。为了充分发挥32/64位处理器的功能和性能优势,提高系统的可靠性,缩短开发周期,越来越多的工程师在他们的项目开发中选择嵌入式实时操作系统(简称RT OS )。商业RTOS 虽然功能齐全、调试手段丰富,但是价格也是异常昂贵。因此,对于一些小公司、小企业以及科研单位,使用免费的、开放的RTOS 是一种不错的选择。

uCOS -II 是一个源码公开的嵌入式实时操作系统内核,经过十几年的发展,已经在众多领域的应用中取得了成功,证明了uCOS -II 内核的性能是优越的。uCOS -II 是一个可裁减的实时多任务内核,在把它应用到一个具体的项目时,可以根据实际需求量身定做地加载一些模块,如TCP /I P 、文件系统、图形界面等等,使uCOS -II 成为一个面向问题的实用的嵌入式操作系统。

文件系统在嵌入式操作系统中占据着重要的位置,不仅因为像数据采集、多媒体应用这样一类系统应用涉及大量数据的存储、加工、转换等,需要文件系统的支持。而且在所有的高端嵌入式应用中,嵌入式操作系统为了屏蔽外围硬件的操作细节,为应用开发者提供统一标准的API 调用也必须要文件系统的支持。

本文首先介绍uCOS -II 内核的工作原理,然后介绍如何修改uCOS -II 内核并加载一个嵌入式文件系统FAT8。

1 uCO S -II 内核工作原理

uCOS -II 多任务操作系统工作原理[1]

:首先初始化处理器,再初始化操作系统,主要完成任务控制块(TCB )初始化,TCB 优先级表初始化,TCB 链表初始化,事件控制块(ECB )链表初始化,空任务的创建等等;然后创建新任务,并且新任务的创建

可以嵌套进行;最后调用OSSTART ()函数启动多任务调度。

系统任务调度有两种触发方式:中断级的和任务级的。

中断级的调度是系统多任务调度开始后,启动时钟节拍源开始计时,给系统提供周期性的时钟中断信号,实现延时和超时确认。当时钟中断来临时,系统把当前正在执行的任务挂起,进行中断处理,判断有无任务延时到期,若有则使该任务进入就绪态,并把所有进入就绪态的任务的优先级进行比较,通过任务切换去执行最高优先级的任务,若没有别的任务进入就绪态,则恢复现场继续执行原任务。

任务级的调度是通过任务发软中断命令或依靠处理器在任务执行中调度函OSSCHEDULE (),如任务要等待信号量或一个正在执行的任务被悬挂起来时,就需要在此任务中调度,找出目前处于就绪态的优先级最高的任务去执行。当没有任何任务进入就绪态时,就去执行空任务OSI DLE ()。

2 建立嵌入式文件系统

2.1 嵌入式文件系统的构成

许多嵌入式系统需要文件系统的支持,而uCOS -II 不提供文件系统,需要开发人员根据实际的需求情况自己建立文件系统。嵌入式系统一般都用大容量电子盘(Flash )做永久存储介质的,这种设备的特性就是数据只能被整块(B lock )地改写

(擦除),所以数据需要按照整块存储[2]

,不同的电子盘每块的大小也不同,如4KB 、16KB 等。

本文仿照FAT16(File A lloca ti o n Tab l e )文件系统[3]

建立FAT8文件系统。在此系统中,把文件作为一种无结构的字节序列,用户任务可以在文件中加入任何内容,并且以任何方式来处理它们。为了便于管理和提高访问速度,不设置子目录管理。文

第29卷第2期

2005年4月

南昌大学学报(理科版)

Journa l o f N anchang U niversity (N a t u ra l Science )V o.l 29N o .2

Ap r .2005

 

件也是以“簇”(C l u ster)为单位,分块存储。每个簇的大小根据实际系统的电子盘特性固定为整块的大小。

整个文件系统由文件分配表和文件目录表组成。文件分配表的表项号就是簇号,每个表项号1个字节,所以是8位的文件分配表(FAT8),这样就用表项号的形式登记上大容量电子盘的所有块,表项的内容表示该文件的下一个簇的簇号。文件目录表登记文件的相关信息(如创建时间、文件属性等),同时登记上文件的首簇号。这样,读取文件的时候,首先在文件目录表中找到相应的文件的首簇号,读取完一个簇以后,如果一个文件大于一个簇(电子盘的一个块),就从文件分配表中找到下一个簇的号码,然后继续读取,直到文件分配表中下一个簇号码为0FFH时为止。整个文件系统结构如图1和图2所示。

00H

01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH …

0FFH 0AH

07H

09H 01H 05H

0FFH 0BH 0FFH

图1 文件分配表(FAT8)

00H 01H 02H F il e1_N a m e03H type…

F il e2_N a m e06H type…

…………

图2 文件目录表(每项固定占16字节)

File1_Na m e文件的起始簇号为03H,文件包括电子盘块号:03H,07H,05H,09H。

File2_Na m e文件的起始簇号为06H,文件包括电子盘块号:06H,01H,0AH,0B H。

2.2 数据结构定义

系统对文件的操作是围绕着某些数据结构进行的,如目录项、文件分配表、文件结构体、用户任务控制块中的文件请求登记项[4]等等。

目录项数据结构定义

typedef str uct

{

I N T8U Na m e[8];//文件名

I N T8U Ex t N a m e[3];//文件扩展名

I N T16U A ttr;//文件属性

I N T32U C reate Da te T i m e;//创建时间

I N T32U Change Da ta T i m e;//最近修改时间

I N T8U Start B lock;//在电子盘的起始块号

I N T32U Size;//文件大小

}OS_D I RI TE M;

文件结构体定义

typedef str uct

{

I N T8U buffer[BL K_SI ZE];//文件缓冲区

I N T8U cu r B l o ck;//当前簇位置

I N T8U m ode;//打开模式

I N T32U num;//缓冲区中写入和读出的字节数

I N T32U c u r Pos;//文件读写的当前位置

I N T32U size;//文件大小

}OS_FILE;

2.3 对uCOS-II内核的修改

为了加载的文件系统跟内核很好的配合工作,需要在uCOS-II内核中增加一些相关数据结构,并对原来的相关数据结构进行必要的修改。

用户任务对文件进行读写操作时,系统必须维护当前被用户任务所打开的所有文件,用文件控制块来登记这些被打开的文件,其定义如下: typedef str uct//占用6字节大小

{

OS_FCB*pNext;//指向下一个控制块

OS_DI RI TE M*D irIte m;//文件目录项的内容

I N T8U LinkCount;//打开此文件的用户数量

I N T8U*Pa t h N a m e;//文件的绝对路径

}OS_FCB;

一个用户任务可能同时打开几个文件,对文件读写时要记录下文件的当前位置,以便在挂起后重新调度运行时能从这个位置继续进行。用打开文件数据结构来描述:

typedef str uct//占用8字节

{

OS_OPE NFI LE*p N ex t;//下一个打开的

198南昌大学学报(理科版)2005年 

文件

OS _FCB *pFCB ;//被打开的文件的文件控制块

I N T32U Position ;//文件的当前读写位置

}OS _OPE NFI LE ;

修改原有的任务控制块OS _TCB ,增加一个指向打开文件的指针OS _FI LE *pFile 。系统中各数据结构之间的关系如图3所示。

修改系统初始化OSInit ()过程,增加初始化文件系统OSFileInit ()的调用

图3 嵌入式文件系统数据结构之间的关系

2.4 基本API 调用

vo i d OSFileInit ():在系统初始化的时候调用这个函数,调入文件系统相关数据结构。void OSFile -Fo r m at ():初始化电子盘,建立文件分配表、目录表、文件控制块等等。

OS _FI LE *OSFile Open (I N T8U *filena m e ,I NT8U m ode ):以读或写方式打开指定文件,返回文件结构体。

vo i d OSF il e C lose (OS _FILE *pFile ):关闭已打开的文件,释放缓冲区,保证文件操作的安全。I NT32U OSFileRead (OS _FILE *pF il e ,I N T8U r eadBu ff ,I N T32U nReadBy te ):读取文件到缓冲区,每次读取的字节数由第三个参数指定。

B OOLEAN OSF il e W rite (OS _FI LE *pF il e ,I NT8U w riteBuff ,I N T32U n W rit e By te ):把缓冲区中的内容写入到文件中,每次写入的字节数由第三个参数指定。

vo i d OSFile B lckE rase (I N T8U blck ):Flash 块擦除。

vo i d OSFilePg W rite (I N T16U page ):页写入。I NT16U OSFile Ge t A ttr (I N T8U *filena m e ):读取文件属性。

I N T16U OSFileSe t A ttr (I N T8U *filena m e ):设置文件属性。

I N T32U OSF il e Seek (I N T8U *filena m e ):设置文件读写位置。

void OSF il e Check ():检查F lash 盘,修复损坏文件等。

3 F A T8的特点

3.1 额外资源耗费小

Flash 文件系统的资源消耗主要包括程序代码开销、占用处理器时间、运行时内存开销以及额外的Flash 存储器消耗。FAT8结构简单、系统资源开销小,以同时保存10个文件来统计,结果如图4所示,是绝大多数的嵌入式应用能承受的。

F lash 占用情况 运行时RAM 占用情况程序代码占用:6K 文件打开表:0.14K 静态数据结构占用:4K 页面缓冲区:0.5K 交换缓冲区占用:16K 其他:0.06K

合计占总量(4M ):0.65% 合计占总量(2M ):0.07%图4 FA T8文件系统的内存占用情况分析

3.2 存取效率高

文件系统存取效率的瓶颈是文件块的寻址,而F AT8发展地继承了DOS 文件系统FAT16的技术成熟、效率高等特性。系统有全局的文件分配表数组,利用数组的随机访问特点,大大提高了文件簇的寻址速度。同时紧扣嵌入式应用的特点和要求,省去了子目录的功能,加快了文件的检索速度。3.3 可靠性好

嵌入式系统的应用条件一般都比较恶劣,如电压的不稳定以及突发性的断电等,这些对F lash 存储器造成的影响是很大的,嵌入式文件系统自然要充分考虑到这点,采取相应的措施以提高系统的可靠性。FAT8在每次初始化文件系统时,都要对文件分配表和目录表这两个极重要的数据结构作最新备份以防不测,还提供OSFile Check ()系统调用,检查F lash 盘文件系统并在必要时修复错误。3.4 移植性好

F AT8是为uCOS -II 订制的文件系统,所以数据结构及函数的定义都采用uCOS -II 的与平台无关的数据类型,所以只要能运行uCOS -II 的平台,就能很方便地实现FAT8。同时,FAT8的命名、注释符合uCOS -II 风格,增强了代码的可读性。

4 结 论

本论文提出了一个简易的嵌入(下转第204页)

199 第2期 王命延等:一种加载在uCOS -II 内核上的嵌入式文件系统

人们在长期研究避孕疫苗的过程中发现,并非只有全长hZP3蛋白产生的抗体才能阻止精卵结合,其中的某些片断产生的抗体同样能够阻断精卵结合。因此,我们所表达的hZ3.3蛋白具有研究意义,但该蛋白的糖基化程度和模式,以及它是否能阻断受精并使卵巢病理的发生率降到最低还有待进一步深入研究。

参考文献:

[1] Isabe lA Lea,E sthe r E W i dg ren,M ichae l G O'R and.A-

nalysis of R ecomb i nan t M ou se Z ona Pe ll ucida P ro tein2

(ZP2)C onstruc ts for I mm unocon traception[J].V ac-

c i ne,2002,20:1515-1523.

[2] M a rgaret P aterson,Z oe A Jenn i ngs,M a rtin R W ilson,e t

a.l The Contracepti ve Po ten tia l of ZP3and ZP3Peptides

in a P ri m a t e m ode l[J].Journa l of R ep roducti ve I mm u-

no l ogy,2002,53:99-107.

[3] Lo rra i ne E K err,M arga re t P a t e rson,R John A it ken.M o-

l ecular Basis o f Sper m-egg Interac tion and t he P ros-

pec ts fo r I mmunocontracepti on[J].Jou rna l o f R eproduc-

tive I mm uno l ogy,1998,40:103-118.

[4] Screekrishna K,K ropp K E.Pich i a Past oris[M].In:

W olf K ed.N onconven tiona l Yeasts in Bio techno l ogy:A

H andbook,H e i de l berg:Sp ri nger-V e rlag Be rlin,1997,

293-311.

[5] B agavant H,F usi F M,Baisch J,e t a.l I mmunogenicit y

and Contracep tive Po t ential of a H u m an Z ona P ell ucida3

P ep tide V accine[J].Bio l Reprod,1997,56:764-770. [6] Jeffrey D H a rris,Christ ophe r A Se i d,G rego ry K F on-

t eno t,et a.l Expression and Pu rifi ca tion o f R ecomb i nan t

H u m an Zona Pe ll uc i da P ro t e i ns[J].P rote i n Expression

and Pu rifica tion,1999,16:298-307;

[7] Inv itrogen Co rporation.A M anua l o fM e t hods f o r Express-

i ng R ecomb i nan t P ro teins[P].USA.

CL ON I NG AND EXPRE SSI ON OF THE GENE hZ3.3ENCOD I NG

FRAG M ENT O F HU M AN ZONA PELLUCI DA3

I N PICH I A PASTORS

XI ONG Bo,C AO Zuo-w u,HE Liu-m i e,FENG Y i-x i n g,Q I U Ping-m ing

(Instit u t e o f R eproductive I mmuno logy,Jinan Unive rsity,G uangzhou510632,China)

Abst ract:I n o r der to exp l o r e t h e m o l e cu lar m echanis m o f zona pe ll u cida-sper m interaction,a DNA frag m ent (387bp)co rresponding to hZP3pepti d e fr agm ent191~319w as a m plified by PCR fr o m hZP3cDNA and then subc l o ned into t h e MCS of expr ession vector pPI C ZαA.The r eco m binant plas m id pPI C ZαA-hZ3.3was trans-fo r m ed into Pich ia pastoris yeastX-33via e lectr oporation,and t h en high-copy transfo r m antsw ere screened ou t on the YPDS p lates w ith high concen tration Zoeci n.A ft e r induction of0.5%m e t h ano l,a specific peptide frag-m en t o f37kD or so w as expressed and secreted out of t h e ce lls.W este r n-b l o t r esult sho w ed t h at t h e peptide could b ind anti-hum an zona anti b ody specifica ll y.These suggested a reco m binan t hu m an zona pelluc i d a frag m ent hZ3.3gene expr ession vector had been successf u ll y constr ucted and hZ3.3peptide had been expressed in the en-g ineered yeasts.

K ey w ords:hum an zona pell u cida3;clon i n g;P ic hia pastoris;expression

(上接第199页)

式文件系统FAT8,并在uCOS-II上实现。增强了uCOS-II的实用性和灵活性。根据定制嵌入式实时操作系统功能模块的思想,对于不同的实际应用需求,还可以修改uCOS-II并加载诸如TCP/I P、设备驱动、图形界面等其他模块。

参考文献:

[1] 邵贝贝.源码公开的实时嵌入式操作系统uCO S-II

[M].北京:中国电力出版社,2001.

[2] 陈智育.嵌入式系统中的F lash文件系统[J].单片机

与嵌入式系统应用,2002;(2):5-8.

[3] 郑宗汉.实时系统软件基础[M].北京:清华大学出版

社,2002.

[4] 董 明,刘 加,刘润生.适宜于嵌入式多媒体应用的

F l a s h文件系统[J].电子技术应用,2002,9:24-27.

AN E M BEDED FI LE S YSTE M FOR uC O S-II

WANG M ing-yan,Yu A i-j u n

(D epa rt m ent of C o m puter S cience and Eng i neering,N anchang Un i ve rsit y,N anchang330029,China)

Abst ract:The i m portance of file sy ste m in e m bedded syste m applicati o n is ana l y sed i n t h e paper.A ft e r ana to my ing t h e uCOS-II kerne l,we constr uct an e m bedded file syste m na m ed FAT8using FAT16as a reference,and then describe its i m ple m en tation on uCOS-II in de tails.

K ey w ords:uCOS-II;RTOS;e mbedded file sy ste m

204南昌大学学报(理科版)2005年 

Linux内核—文件系统模块的设计和开发

Linux内核—文件系统模块的设计和开发 郑小辉 摘要:目前,Linux技术已经成为IT技术发展的热点,投身于Linux技术研究的社区、研究机构和软件企业越来越多,支持Linux的软件、硬件制造商和解决方案提供商也迅速增加,Linux在信息化建设中的应用范围也越来越广,Linux产业链已初步形成,并正在得到持续的完善。随着整个Linux产业的发展,Linux技术也处在快速的发展过程中,形成了若干技术热点。 本文介绍了Linux的发展和特点,以及与其他文件系统的区别。文中主要是对Linux2.4.0内核文件系统源代码的分析,并参考其文件格式设计一个简洁的文件系统。源代码的分析主要介绍了VFS文件系统的结构,Linux自己的Ext2文件系统结构,以及文件系统中的主要函数操作。 在设计的简洁文件系统中,通过调用一些系统函数实现了用户的登录、浏览目录、创建目录、更改目录、创建文件以及退出系统功能。 关键字:Linux 源代码分析文件系统Ext2 Linux内核

Linux kernel -Design and development for the File System Module Zheng xiaohui Abstract: Currently, Linux IT technology has become a hot development technology. Participating in Linux technology research communities, research institutes and software enterprises are in support of Linux more and more, software and hardware manufacturers and solution providers have increased rapidly, In the development of the information industry the Linux application is also increasing, Linux industry chain has taken shape, and is sustained improvemently. With the entire industry in the development of Linux, and Linux is also at the rapid development process, formed a number of technical points. This paper presents the development of Linux and features, and with other file system differences. The main text of the document is Linux2.4.0 system kernel source code analysis, and I reference its file format to design a simple file system. The analysis of the source code mainly on the VFS file system structure, Linux Ext2 its own file system structures, file systems and the main function operation. In the design of the file simple system, some system function is used to achieve function such as: the user's login, browse catalogs, create directories, Change directory, create documents and withdraw from the system function and etc. Key words: Linux, the source code, file system, Ext2, Linux kernel

基于32位ARM920T内核的微处理器的嵌入式Linux系统构建详解

基于32位ARM920T内核的微处理器的嵌入式Linux系统构建详解目前,在嵌入式系统中基于ARM微核的嵌入式处理器已经成为市场主流。随着ARM技术的广泛应用,建立面向ARM构架的嵌入式操作系统成为当前研究的热点问题。 已经涌现出许多嵌入式操作系统,如VxWork,windows-CE,PalmOS,Linux等。在众多的嵌入式操作系统中,Linux以其开源代码及免费使用倍受开发人员的喜爱。本文选用的微处理器S3C2410是基于32位ARM920T内核的微处理器,基于此处理器构造一Linux 嵌入式操作系统,将其移植到基于32位的ARM920T内核的系统中,在此基础上进行应用程序开发。 l、开发环境介绍 1.1、基于S3C2410ARM920T的硬件平台 该系统的硬件平台为深圳旋极公司提供,硬件的核心部件为三星$3C2410ARM920T芯片,外围还包括:64MNANDFLASH和RAM外围存储芯片;串口、网口和USB外围接口;CSTNLCD和触摸屏外围显示设备;UDAl34lTS的外围音频设备。S3C2410处理器和外围设备共同构成了基于ARM920T的开发板。 1.2、嵌入式Limlx软件系统 该嵌入式Linux的软件系统包括以下4个部分:引导加载程序vivi;Linux2.6.14内核;YAFFS2文件系统以及用户程序。他们的可执行映像依次存放在系统存储设备上. 与通常的嵌入式系统布局有所不同,本系统在引导加载程序和内核映像之间还增加了一个启动参数区,在这个区里存放着系统启动参数。引导加载程序通过调用这些参数来决定启动模式、启动等待时间等,这些启动参数的增加加强了系统的灵活性。本系统采用64MNANDFLASH的存储设备。 2、嵌入式Linux系统设计与实现 2.1、引导加载程序vivi

实验四Linux内核移植实验

合肥学院 嵌入式系统设计实验报告 (2013- 2014第二学期) 专业: 实验项目:实验四 Linux内核移植实验 实验时间: 2014 年 5 月 12 实验成员: _____ 指导老师:干开峰 电子信息与电气工程系 2014年4月制

一、实验目的 1、熟悉嵌入式Linux的内核相关代码分布情况。 2、掌握Linux内核移植过程。 3、学会编译和测试Linux内核。 二、实验内容 本实验了解Linux2.6.32代码结构,基于S3C2440处理器,完成Linux2.6.32内核移植,并完成编译和在目标开发板上测试通过。 三、实验步骤 1、使用光盘自带源码默认配置Linux内核 ⑴在光盘linux文件夹中找到linux-2.6.32.2-mini2440.tar.gz源码文件。 输入命令:#tar –jxvf linux-2.6.32.2-mini2440-20110413.tar对其进行解压。 ⑵执行以下命令来使用缺省配置文件config_x35 输入命令#cp config_mini2440_x35 .config;(注意:x35后面有个空格,然后有个“.”开头的 config ) 然后执行“make menuconfig”命令,但是会出现出现缺少ncurses libraries的错误,如下图所示: 解决办法:输入sudo apt-get install libncurses5-dev 命令进行在线安装ncurses libraries服务。

安装好之后在make menuconfig一下就会出现如下图所示。 ⑶配置内核界面,不用做任何更改,在主菜单里选择退出,并选“Yes”保存设置返回到刚命令行界面,生成相应配置的头文件。 编译内核: #make clean #make zImage 在执行#make zImage命令时会出现如下错误: 错误:arch/arm/mach-s3c2440/mach-mini2440.c:156: error: unknown field 'sets' specified in initializer 通过网上查找资料 于是在自己的mach-mini2440.c中加入 #include

操作系统简单文件系统设计及实现

简单文件系统的设计及实现 一、实验目的: 1、用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解 2、要求设计一个 n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write等命令。 二、实验内容: 1、设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。 2、程序采用二级文件目录(即设置主目录[MFD])和用户文件目录(UED)。另外,为打开文件设置了运行文件目录(AFD)。 3、为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作 4、算法与框图 ?因系统小,文件目录的检索使用了简单的线性搜索。 ?文件保护简单使用了三位保护码:允许读写执行、对应位为 1,对应位为0,则表示不允许读写、执行。 ?程序中使用的主要设计结构如下:主文件目录和用户文件目录( MFD、UFD); 打开文件目录( AFD)(即运行文件目录) 文件系统算法的流程图如下

三、工具/准备工作: 在开始本实验之前,请回顾教科书的相关内容。并做以下准备: 1) 一台运行Windows 2000 Professional或Windows 2000 Server的操作系统的计算机。 2) 计算机中需安装Visual C++ 6.0专业版或企业版 四、实验要求: (1)按照学校关于实验报告格式的要求,编写实验报告(含流程图); (2)实验时按两人一组进行分组,将本组认为效果较好的程序提交检查。

文件系统介绍

文件系统简介: 理论上说一个嵌入式设备如果内核能够运行起来,且不需要运行用户进程的话,是不需要文件系统的。文件系统简单的说就是一种目录结构,由于linux操作系统的设备在系统中 是以文件的形式存在,将这些文件进行分类管理以及提供和内核交互的接口,就形成一定的目录结构也就是文件系统。文件系统是为用户反映系统的一种形式,为用户提供一个检测控制系统的接口。 根文件系统,就是一种特殊的文件系统。那么根文件系统和普通的文件系统有什么区别呢?由于根文件系统是内核启动时挂在的第一个文件系统,那么根文件系统就要包括Linux 启动时所必须的目录和关键性的文件,例如Linux启动时都需要有用户进程init对应的文件,在Linux挂载分区时Linux一定会找/etc/fstab这个挂载文件等,根文件系统中还包括了许多的应用程序,如/bin目录下的命令等。任何包括这些Linux 系统启动所必须的文件的文件系统都可以称为根文件系统。 Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、ramfs和nfs 等,为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS,为各类文件系统提供一个统一的操作界面和应用编程接口。下图是linux文件系统层次关系图。 MTD MTD(memory technology device内存技术设备)是用于访问memory设备(ROM、flash)的Linux的子系统。MTD的主要目的是为了使新的memory设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。MTD的所有源代码在/drivers/mtd子目录下。

嵌入式Linux内核移植详解(顶嵌)

内核移植阶段 内核是操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。直接对硬件操作是非常复杂的,所以内核通常提供一种硬件抽象的方法来完成这些操作。硬件抽象隐藏了复杂性,为应用软件和硬件提供了一套简洁,统一的接口,使程序设计更为简单。 内核和用户界面共同为用户提供了操作计算机的方便方式。也就是我们在windows下看到的操作系统了。由于内核的源码提供了非常广泛的硬件支持,通用性很好,所以移植起来就方便了许多,我们需要做的就是针对我们要移植的对象,对内核源码进行相应的配置,如果出现内核源码中不支持的硬件这时就需要我们自己添加相应的驱动程序了。 一.移植准备 1. 目标板 我们还是选用之前bootloader移植选用的开发板参数请参考上文的地址: https://www.wendangku.net/doc/5f3464669.html,/thread-80832-5-1.html。bootloader移植准备。 2. 内核源码 这里我们选用比较新的内核源码版本linux-2.6.25.8,他的下载地址是 ftp://https://www.wendangku.net/doc/5f3464669.html,/pub/linux/kernel/v2.6/linux-2.6.25.8.tar.bz2。 3. 烧写工具 我们选用网口进行烧写这就需要内核在才裁剪的时候要对网卡进行支持 4. 知识储备 要进行内核裁剪不可缺少的是要对内核源码的目录结构有一定的了解这里进 行简单介绍。 (1)arch/: arch子目录包括了所有和体系结构相关的核心代码。它的每一个子 目录都代表一种支持的体系结构,例如i386就是关于intel cpu及与之相兼容体 系结构的子目录。PC机一般都基于此目录。 (2)block/:部分块设备驱动程序。 (3)crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验 算法。 (4) documentation/:文档目录,没有内核代码,只是一套有用的文档。 (5) drivers/:放置系统所有的设备驱动程序;每种驱动程序又各占用一个子目 录:如,/block 下为块设备驱动程序,比如ide(ide.c)。 (6)fs/:所有的文件系统代码和各种类型的文件操作代码,它的每一个子目录支持 一个文件系统, 例如fat和ext2。

实验四 ramdisk 根文件系统的制作

实验四ramdisk根文件系统的制作 一.实验目的 1.熟悉根文件系统组织结构; 2.定制、编译ramdisk根文件系统。 二.实验设备 1.硬件:EduKit-IV 嵌入式教学实验平台、Mini2410 核心子板、PC 机; 2.软件:Windows 2000/NT/XP、Ubuntu 8.04、其他嵌入式软件包。 三.实验内容 利用6.3 中的已经完成的文件系统,生成一个根文件系统镜像。 四.实验原理 ramdisk是内核初始化的时候用到的一个临时文件系统,是一个最小的linuxrootfs系统,它包含了除内核以外的所有linux系统在引导和管理时需要的工具,做为启动引导驱动,包含如下目录: bin,dev,etc,home,lib,mnt,proc,sbin,usr,var。还需要有一些基本的工具:sh,ls,cp,mv……(位于/bin 目录中);必要的配置文件:inittab,rc,fstab……位于(/etc目录种);必要的设备文件:/dev/tty*,/dev/console,/dev/men……(位于/dev目录中);sh,ls等工具必要的运行库:glibc。1.制作ramdisk根文件系统映像 1)单击菜单应用程序->附件->终端打开终端,设置环境变量: $ source /usr/local/src/EduKit-IV/Mini2410/set_env_linux.sh $ source /usr/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/path.sh 2)执行命令切换到ramdisk实验目录下: $cd $SIMPLEDIR/6.4-ramdisk 3)运行脚本文件: $ sudosh ramdisk-install.sh shell 脚本命令说明: #!/bin/bash # # ramdisk-install.sh - Make ramdiskfilesystem. # # Copyright (C) 2002-2007

操作系统实验5文件系统:Linux文件管理

实验5 文件系统:Linux文件管理 1.实验目的 (1)掌握Linux提供的文件系统调用的使用方法; (2)熟悉文件和目录操作的系统调用用户接口; (3)了解操作系统文件系统的工作原理和工作方式。 2.实验内容 (1)利用Linux有关系统调用函数编写一个文件工具filetools,要求具有下列功能:*********** 0. 退出 1. 创建新文件 2. 写文件 3. 读文件 4. 复制文件 5. 修改文件权限 6. 查看文件权限 7. 创建子目录 8. 删除子目录 9. 改变当前目录到指定目录 10. 链接操作 *********** 代码: #include #include #include #include #include #include #include #include void menu(void); void openfile(void); void writefile(void); void readfile(void); void copyfile(void); void chmd(void); void ckqx(void); void cjml(void); void scml(void); void ggml(void); void ylj(void); int main() { int choose; int suliangjin=1;

menu(); scanf("%d",&choose); while(choose!=0) { switch(choose) { case 1:openfile();break; case 2:writefile();break; case 3:readfile();break; case 4:copyfile();break; case 5:chmd();break; case 6:ckqx();break; case 7:cjml();break; case 8:scml();break; case 9:ggml();break; case 10:ylj();break; } menu(); scanf("%d",&choose); } return 0; } void menu(void) { printf("文件系统\n"); printf("1.创建新文件\n"); printf("2.写文件\n"); printf("3.读文件\n"); printf("4.复制文件\n"); printf("5.修改文件权限\n"); printf("6.查看文件权限\n"); printf("7.创建子目录\n"); printf("8.删除子目录\n"); printf("9.改变目前目录到指定目录\n"); printf("10.链接操作\n"); printf("0.退出\n"); printf("请输入您的选择...\n"); } void openfile(void) { int fd; if((fd=open("/tmp/hello.c",O_CREAT|O_TRUNC|O_RDWR,0666))<0) perror("open");

文件系统实验报告

嵌入式系统实验报告(二) --嵌入式文件系统的构建 138352019陈霖坤一实验目的 了解嵌入式操作系统中文件系统的类型和作用 了解JFFS2文件系统的优点及其在嵌入式系统中的作用 掌握利用Busybox软件制作嵌入式文件系统的方法 掌握嵌入式linux文件系统的挂载过程 二实验内容与要求 编译BusyBox,以BusyBox为基础,构建一个适合的文件系统; 制作ramdisk文件系统映像,用你的文件系统启动到正常工作状态; 研究NFS作为根文件系统的启动过程。 三Busybox介绍 BusyBox最初是由Bruce Perens在1996年为Debian GNU/Linux安装盘编写的,其原始构想是希望在一张软盘上能放入一个开机系统,以作为急救盘和安装盘。后来它变成了嵌入式Linux设备和系统和Linux发布版安装程序的实质标准,因为每个Linux可执行文件需要数Kb的空间,而集成两百多个程序的BusyBox可以节省大量空间。Busybox集成了包括mini-vi编辑器、/sbin/init、文件操作、目录操作、系统配置等应用程序。 Busybox支持多种体系结构,可以选择静态或动态链接,以满足不同需要。 四linux文件系统 文件系统是对一个存储设备上的数据和元数据进行组织的机制,linux文件系统接口设计为分层的体系结构,从而将用户接口层、文件系统实现层和操作存储设备的驱动程序分隔开。 在文件系统方面,linux可以算得上操作系统中的“瑞士军刀”。Linux支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统,而且对于使用标准的和比较奇特的文件系统以及开发文件系统来说,linux是极好的平台,这得益于linux内核中的虚拟文件系统(VFS,也称虚拟文件系统交换器)。 文件结构 Windows的文件结构是多个并列的树状结构,不同的磁盘分区各对应一个树。Linux的文件结构是单个的树,最上层是根目录,其它目录都从根目录生成。不同的linux发行版集

实验四 文件系统实验报告

实验四文件系统实验 一 . 目的要求 1、用高级语言编写和调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。 2、要求设计一个 n个用户的文件系统,每次用户可保存m个文件,用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有Create、delete、open、close、read、write等命令。 二 . 例题: 1、设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。 2、程序采用二级文件目录(即设置主目录[MFD])和用户文件目录(UED)。另外,为打开文件设置了运行文件目录(AFD)。 3、为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。 4、算法与框图: ①因系统小,文件目录的检索使用了简单的线性搜索。 ②文件保护简单使用了三位保护码:允许读写执行、对应位为 1,对应位为0,则表示不允许读写、执行。 ③程序中使用的主要设计结构如下: 主文件目录和用户文件目录( MFD、UFD) 打开文件目录( AFD)(即运行文件目录)

文件系统算法的流程图如下: 三 . 实验题: 1、增加 2~3个文件操作命令,并加以实现。(如移动读写指针,改变文件属性,更换文件名,改变文件保护级别)。 #include #include #include #include #define MAXSIZE 100 #define ADDSIZE 50 #define PT elem+l-> length #define N 4 typedef struct term{/*班级和学期的结构体*/ char class1[10]; char term1[10]; }term; typedef struct student{/*学生成绩信息的结构体*/ term st;/*班级和学期结构体放于此结构体中*/ char num[10]; char name[12]; float course[4]; float total; float average; int bit; }lnode,*stu; typedef struct{ lnode *elem;/*指向上个结构体的指针*/ int size;/*最大能放lnode结构体成员的个数*/ int length;/*当前长度*/ }sqack,*sq; sqack *l; void init(void)/*动态分配存储空间*/ { l-> elem=(stu)malloc(MAXSIZE*sizeof(lnode)); l-> length =0; l-> size=MAXSIZE; } void input(void)/*输入学生的信息*/ { lnode *newbase,*p; char cla[10],ter[10],ch; int n,i; if(l-> length> =l-> size){ newbase=(stu)realloc(l-> elem,(l-> size +ADDSIZE)*sizeof(lnode));/*追加存储空间*/ l-> elem =newbase; l-> size +=ADDSIZE; } p=l-> elem; do { printf( "输入班级和学期(学期用这种格式,如2005年上学期2005 1,2005年下学期2005 2;先输入班级,回车后再输入学期)\n "); gets(cla); gets(ter); printf( "要输入多少个名单?"); scanf( "%d ",&n); printf( "输入学生的成绩\n学号\t姓名\t科目1\t科目2\t科目3\t科目4\n "); for(i=0;i num ,p-> name,p-> course[0],p-> course[1],p-> course[2],p-> course[3]); strcpy(p-> st.class1,cla); strcpy(p-> st.term1,ter); ++l-> length ; } printf( "要继续吗?(y/n) ");

Linux内核配置编译与文件系统构建要点

Linux内核配置编译与文件系统构建 南京大学 黄开成101180046 2012.11.11 一:实验目的 1.了解嵌入式系统的开发环境,内核与文件系统的下载和启动; 2.了解Linux内核源代码的目录结构及各自目录的相关内容,了解Linux内核各配置选项内容和作用,掌握Linux内核的编译过程; 3.了解嵌入式操作系统中文件系统的类型和应用、了解JFFS2文件系统的优点及其在嵌入式系统中的作用、掌握利用Busybox软件制作嵌入式文件系统的方法,并且掌握嵌入式Linux文件系统的挂载过程。二:实验环境说明 1.PC机使用openSUSE 14 Enterprise 系统。 2.开发板使用深圳市武耀博德信息技术有限公司生产的基于Inter 的PXA270处理器的多功能嵌入式开发平台EELIOD。 3.PC机通过RS-232串口与开发板相连,在PC机终端上运行minicom 程序构造一个开发板上的终端,用于对开发板的控制。 4.PC机与开发板通过ethernet网络相连接,并可在开发板上通过加载网络文件系统(NFS)与PC机通信。 5.Bootloader可以通过tftp协议从PC机上下载内核镜像和根文件系统镜像。下载目录为/tftpboot 。 6.用于开发板的Linux内核源码为linux-2.4.21-51Board_EDR,

busybox版本为busybox-1.00-pre5。 7.交叉编译器的路径为/usr/local/arm-linux/bin/arm-linux。 三:实验操作过程和分析记录 1.嵌入式系统的开发环境和开发流程: 1.1启动minicom和开发板 在PC机上打开一个终端,输入: >minicom 按Ctrl+A-o进入minicom的configuration界面。对串行通信接口进行配置,串口设置为:/dev/ttyS0(串口线接在PC机的串口1上)、bps=115200、8位数据、无校验、无流控制。 然后打开开发板电源,看到屏幕有反应之后,按任意键进入配置界面,如果长时间没有按下任何键,bootloader将会自动从flash中读取内核和根文件系统并启动开发板上的Linux系统。 分析:嵌入式系统中,通常并没有像PC机中BIOS 那样的固件程序,因此整个系统的加载启动任务完全由bootloader来完成。bootloader的主要作用是:初始化硬件设备;建立内存空间的映射图;完成内核的加载,为内核设置启动参数。 按0进入命令行模式,出现51board>,可以设置开发板和PC机的IP 地址: 51board> set myipaddr 192.168.208.133(设置开发板的IP地址) 51board> set destipaddr 192.168.208.33(设置PC机的IP地址)注意IP地址的设置:使其处于同一网段,并且避免和其他系统的

根文件系统移植

实验五根文件系统移植 实验目的: 通过本次实验,使大家学会根文件系统移植的具体步骤,并对根文件系统有更近一步的感官认识。让同学理解由于根文件系统是内核启动时挂在的第一个文件系统,那么根文件系统就要包括Linux启动时所必须的目录和关键性的文件,任何包括这些Linux 系统启动所必须的文件都可以成为根文件系统。 实验硬件条件: 1、实验PC机一台,TINY6410开发板一台 2、电源线,串口线,数据线。 实验软件条件: 1、VMware Workstation, 2、Ubuntu10.04 3、mktools-20110720.tar.gz 4、busybox-1.13.3-mini2440.tgz, 5、SecureCRT以及dnw烧写工具 实验步骤: 一、实验步骤 1.进入rootfs目录,查看压缩文件,具体操作指令如下:

2.发现有两个压缩文件夹,分别进行解压: 3.tar xvzf busybox-1.13.3-mini2440.tgz, 4.tar xvzf mktools-20110720.tar.gz,解压完成后, 5.查看文件夹#ls

二、实验步骤 1.修改架构,编译器#cd busybox-1.13.3/ 2.进入后查看#ls 3.#gedit Makefile 4.修改 164行 CROSS_COMPILE ?=arm-linux- 5.修改190行 ARCH ?= arm 6.保存后,退出!

三、实验步骤 1.修改配置 #make menuconfig 2.若出现如下提示

3.需调整到最大化。

4.把Busybox Settings -----→>Build Option ------→> Build BusyBox as astatic binary (no shared libs) 选择上,其他的默认即可。 然后一直退出,保存即可 5.接着执行 make接着执行 make install 6.最终生成的文件在_install 中 #cd _install

操作系统实验---文件系统

实验报告 实验题目:文件系统 姓名: 学号: 课程名称:操作系统 所在学院:信息科学与工程学院 专业班级:计算机 任课教师:

实验项目名称文件系统 一、实验目的与要求: 1、通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及其内部实现。 2、熟悉文件管理系统的设计方法,加深对所学各种文件操作的了解及其操作方法的特点。 3、通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。 4、通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。 二、实验设备及软件: 一台PC(Linux系统) 三、实验方法(原理、流程图) 试验方法 (1)首先应当确定文件系统的数据结构:主目录、子目录以及活动文件等。主目录和子 目录都以文件的形式存放于磁盘,这样便于查找和修改。 (2)用户创建文件,可以编号存储于磁盘上。如file0,file1,file2…并以编号作为物理地 址,在目录中登记。 文件系统功能流程图 图1.文件系统总体命令分析

图 2.登录流程图图 3. ialloc流程图 图4.balloc流程图图5.密码修改流程图

图6.初始化磁盘 图 7.显示所有子目录 dir/ls 操作流程图

图8.创建文件 creatfile 、创建目录 mkdir 流程图 图9.改变当前路径 cd 操作流程图

实验原理 1.文件操作 ◆mkdir 创建目录文件模块,输入 mkdir 命令,回车,输入文件名,回车,即会在当前目录文件下创建一个名为刚刚输入的文件名的目录文件。在该创建过程中首先要判断该目录中有没有同名的文件,如果有的话就创建失败,还要判断在该目录下有没有创建文件的权限,有权限才可以创建。具体流程图查看第二节,系统流程图设计部分。 ◆del 删除文件模块,输入 del命令,回车,输入文件名,回车,即会在当前目录文件下删除一个名为刚刚输入的文件名的数据文件。在该删除过程中要判断该目录中是否存在该文件,如果不存在就没有必要执行该操作了,还要判断在该目录下有没有删除文件的权限,有权限才可以删除。具体流程图查看第二节,系统流程图设计部分。 ◆ls 显示当前目录下所有目录的模块,输入 ls 命令,回车 ,即会在屏幕上显示当前目录下的所有目录。在该过程中要判断该目录中是否为空,如果为空就没有必要执行该操作了。执行操作时,要调用 readdir (INode inode )函数 ,先读入文件内容到 content 里面,然后直接输出。如果子目录里面还有子目录,则通过递归,一并输出来。具体流程图查看第二节,系统流程图设计部分。 ◆chmod 改变文件权限模块,输入 chmod 命令,回车,输入文件名,回车,即会根据不同类别的用户在屏幕上提示要改变哪一类用户的权限。如果是文件拥有者执行该操作,他可以选择修改自己、其他用户的权限;如果是文件所属组成员执行该操作,他可以选择修改自己、其他用户的权限;如果是其他用户执行该操作,他只能选择修改自己的权限;在该过程中要判断该目录中是否存在该文件,如果不存在就没有必要执行该操作了。执行操作时,要判断对该文件有没有执行写操作的权利,没有就不能进行。具体流程图查看第二节,系统流程图设计部分。 ◆cd 改变当前所在目录的模块。输入 cd,回车,相应的字符串,回车,则会根据输入字符串的不同跳转到不同的目录下。如果字符串是‘ .’ ,则到当前目录;如果字符串是‘ ..’ ,则到父目录;如果字符串是‘/’ ,则到根目录;如果字符串是当前目录下的子目录,则到该子目录;如果字符串是一个决定路径,则到该绝对路径。当然在执行的时候要判断有没有该子目录或者该绝对路径,如果没有的话,就不能执行。具体流程图查看第二节,系统流程图设计部分。 2. 用户操作 ◆login 用户注销模块,输入 login ,回车,当前用户就退出了,需要重新登录。 ◆pw 用户修改口令模块,输入 pw ,回车,则会提示输入原始密码,输入正确了才可以提示输入新密码,并且要求新密码输入两次,两次一样了才能通过修改密码成功。具体流程图查看第二节,系统流程图设计部分。 ◆logout 用户退出系统模块,输入 logout ,回车,系统自动退出。

嵌入式Linux根文件系统制作

实训项目四-嵌入四Linux系统根文件系统制作一. 项目实施目的 了解 UP-CUP2440 型实验平台Linux 系统下根文件系统结构 掌握根文件系统的搭建过程 掌握busybox、mkcramfs等工具的使用方法 二. 项目主要任务 使用busybox生成文件系统中的命令部分,使用mkcramfs工具制作CRAMFS 格式的根文件系统。 分析根文件系统etc目录下重要配置文件的格式及语法,熟悉根文件系统的启动过程 三. 基本概念 1.文件系统基本概念 Linux的一个最重要特点就是它支持许多不同的文件系统。这使Linux非常灵活,能够与许多其他的操作系统共存。Linux支持的常见的文件系统有:JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。随着时间的推移, Linux支持的文件系统数还会增加。Linux是通过把系统支持的各种文件系统链接到一个单独的树形层次结构中,来实现对多文件系统的支持的。该树形层次结构把文件系统表示成一个整个的独立实体。无论什么类型的文件系统,都被装配到某个目录上,由被装配的文件系统的文件覆盖该目录原有的内容。该个目录被称为装配目录或装配点。在文件系统卸载时,装配目录中原有的文件才会显露出来。在Linux 文件系统中,文件用i节点来表示、目录只是包含有一组目录条目列表的简单文件,而设备可以通过特殊文件上的I/O 请求被访问。 2.常见的嵌入式文件系统 嵌入式Linux系统一般没有大容量的磁盘,多使用flash存储器,所以多采用基于Flash(NOR和NAND)的文件系统或者RAM内存的文件系统。 (1)Flash根据结构不同分为 NOR Flash和NAND Flash。基于flash的文件系统主要有: jffs2:RedHat基于jffs开发的文件系统。

《嵌入式系统》考试试卷及答案

《嵌入式系统》课程试卷 考试时间:__120___分钟开课学院___计算机___ 任课教师____________ 姓名______________ 学号_____________班级_______________ 一.单项选择题(2 × 20): 1下面不属于Xscale微架构处理器的主要特征有:( ) A.采用了7级超级流水线、动态跳转预测和转移目标缓冲器BTB技术(Branch Target Buffer)。 B.支持多媒体处理技术、新增乘/累加器MAC、40位累加器、兼容ARM V5TE 指令和特定DSP型协处理器CP0。 C.采用了32KB的指令Cache。 D.采用了64KB的数据Cache。 2以下不属于XScale超级流水线的流水级是( ) A.寄存器文件/移位级(FR) B.写回级(XWB) C.寄存器读取级 D.和执行级二(X2) 3 目前嵌入式系统领域中使用最广泛、市场占有率最高的实时系统是:() A. Symbian B. Windows CE C. VxWorks D. QNX 4 下面那句话的描述是不正确的?( ) A.在一个基于XScale内核的嵌入式系统中,系统在上电或复位时通常都从

地址0x00000000 处开始执行 B.引导装载程序通常是在硬件上执行的第一段代码,包括固化在固件中的 引导代码(可选)和Boot Loader两大部分。 C.在嵌入式系统中,Boot Loader不依赖于硬件实现。 D.Boot Loader就是在操作系统内核运行之前运行的一段小程序。 5 通常情况下,目标机上的Boot Loader通过串口与主机之间进行文件传输,下面不属于通常使用的传输协议的是:( ) A.modem协议 B.xmodem协议 C.ymodem协议 D.zmodem协议 6 Make预置了一些内部宏,其中$@表示:() A.没有扩展名的当前目标文件 B.当前目标文件 C.当前目标文件最近更新的文件名 D.当前目标文件最近更新的文件名 7 在Default kernel command string “root=1f03 rw console=ttyS0,115200 init=/linuxrc”中,代表根文件系统(“/”) 的设备文件主号码是什么?( ) A.1f B.03 C.ttyS0 D.115200 8 用命令dd if=/dev/zero of=ramdisk_img bs=1k count=8192创建的ramdisk_img 其空间大小为多少?( ) A.8M bit

内核与文件系统的烧写

安阳师范学院计算机与信息工程学院 《嵌入式系统》 课程设计 实践选题:内核与文件系统的烧写 专业班级: 指导教师: 姓名学号: 成绩评定:

题目:内核与文件系统的烧写 一、问题描述及分析 把 Linux 操作系统针对具体的目标平台做必要改写之后,安装到该目标平台使其正确的运行起来。建立根文件系统的初始文件,并且把生成的zImage以及rootfs.img文件和自己编写的测试程序烧录到pxa70开发板上。 因此,我们首先要进行内核裁剪生成所需的zImge文件,然后建立跟文件目录,并运用交叉编译arm-linux-gcc生成可执行的测试程序文件移动入建立的跟文件目录,然后运用mkfs.jffs2工具生成文件系统镜像文件。 二、课程设计内容 1、系统结构与软件设计流程

2、任务分工 XXX:编写测试程序以及烧录文件到开发板XXX:进行内核裁剪 XXX:进行根文件系统建立 3、软件操作说明 SecureCRT 5.1操作说明: 打开界面: 配置端口:

连接: Tftp32操作说明: 见详细步骤tftp32配置 4、主要实现方法 包括开发环境、编译环境、运行环境描述,主要技术要点等内容。 开发环境: 硬件:UP-TECHPXA270A 嵌入式实验仪,PC 机 pentumn500 以上, 硬盘10G 以上 软件:PC机操作系统 REDHAT LINUX 9.0 +MINICOM + AMRLINUX 开发环境 编译环境:arm-linux-gcc交叉编译环境 运行环境:PXA270开发板 详细步骤: (1)裁剪内核 进入内核所在目录,键入 make menuconfig 您就会看到配置菜单

Linux内核与跟文件系统的关系

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 命令将一个文件系统附着到当前文件系统层次结构中(根)。在执行挂装时,要提供文件系统类型、文件系统和一个挂装点。根文件系统被挂载到根目录下“/”上后,在根目录下就有根文件系统的各个目录,文件:/bin /sbin /mnt等,再将其他分区挂接到/mnt 目录上,/mnt目录下就有这个分区的各个目录,文件。

相关文档
相关文档 最新文档