当前位置:文档之家› vxWorks文件系统详细介绍资料

vxWorks文件系统详细介绍资料

vxWorks文件系统详细介绍资料
vxWorks文件系统详细介绍资料

VxWorks为块设备(磁盘)的实时使用提供了两种本地文件系统:一种与MS-DOS文件系统相兼容,另一种与RT-11文件系统相兼容。这些文件系统的支持库分别为dosFsLib和rt11FsLib。VxWorks还提供了一种简单的raw文件系统,这个文件系统把整个磁盘作为一个单独的大文件。这个文件系统的支持库是rawFsLib。

VxWorks还为不使用标准文件或目录结构的磁带设备提供了一个文件系统。磁带卷被看作一个raw设备,整个卷就是一个大文件。这个文件系统的支持库是tapeFsLib。另外,VxWorks提供了一个文件系统支持库cdromFsLib,它允许应用程序从依照ISO9660标准文件系统格式化的CD-ROMs中读取数据。

在VxWorks中,文件系统不受块设备种类型或它的驱动程序的约束。VxWorks块设备都使用一个标准接口,以便文件系统可以与设备驱动程序自由的混合。做为选择,你可以写自己的能被驱动程序以相同方式使用的文件系统,只要在文件系统、驱动程序和I/O系统间遵循同样的标准接口。VxWorks的I/O体系结构使得在一个VxWorks系统中可以有多样的文件系统,甚至其类型也可以不同。块设备界面在3.9.4块设备中讨论。

1 与MS-DOS兼容的文件系统:dosFs

使用dosFs文件系统格式化的磁盘与MS-DOS(直至6.2版本)磁盘是相兼容的。由两个文件系统初始化的硬盘之间在格式上有细微区别。然而,数据自身是兼容的,而且dosFs可被配置成使用MS-DOS格式化的磁盘。

DosFs文件系统向不同要求的实时应用程序提供了良好的适应性。主要特点包括:

l 文件和目录分等级排序,允许有效地组织,在一卷上可以创建任意数量的文件。

l 每个文件可以是连续存储或非连续存储的。非连续存储的文件可使硬盘空间利用率更高,连续存储的文件可以增强系统性能。

l 具有与广泛可用的存储器和可恢复介质的兼容性。应用VxWorks(不使用dosFs文件扩展名)、MS-DOS PCs和其它系统创建的磁盘可以自由的交换。如果分区表被说明,那么硬盘也是兼容的。

l 具有从有dosFs文件系统的本地SCSI设备引导VxWorks的能力。

l 可以使用比通常MS-DOS允许的8个字符的文件名加3个字符的扩展名更长的文件名。

l NFS(网络文件系统)的支持。

1.1磁盘组织

MSDOS/ dosFs文件系统提供了一种以灵活方式组织磁盘数据的方法。它维护指定目录、每个包含文件或其它的目录的等级设置。文件可以被设置其搜索路径;文件扩展时,新的磁盘空间被自动分配。分配给一个文件的磁盘空间不必一定是连续的,这样可以使磁盘空间浪费最小。然而,为了提高它的实时性,dosFs文件系统允许连续空间被预先个别地分配给文件,从而使查找操作最块,行为更加确定。MS-DOS/dosFs文件系统的通常组织结构如图1,其中的多个单元在下面的部分论述。

图1 MS-DOS磁盘组织

-------------------------------

引导扇区扇区0

-----------------------------

文件分配表(FAT)

-----------------------------

根目录

------------------------

文件和子目录

----------------------------

在MS-DOS/dosFs文件系统中,分配给文件的磁盘空间由一个或多个磁盘簇组成。一个簇为一组连续的磁盘扇区。软盘通常由两个扇区组成一簇;固定硬盘由更多的扇区组成一簇。文件系统可以一次分配的最小的磁盘空间为一簇。虽然每簇有巨大数量的扇区允许在固定大小的文件分配表(FAT;见文件分配表)中描述一个巨大的磁盘,但是这可能会导致磁盘空间的浪费。

引导扇区

MS-DOS/dosFs硬盘或磁盘的第一个扇区称为引导扇区。其中包含有多种配置数据。其中一些数据域描述硬盘的物理性质(例如总扇区数),另外一些域描述文件系统变量(例如根目录的大小)。

引导扇区信息在初始化时写入磁盘。dosFs文件系统可以使用在另一个系统上初始化过的磁盘(例如,在MS-DOS PC上使用FORMAT),或者VxWorks可以使用ioctl()调用中的FIODISKINIT函数初始化磁盘。

随着MS-DOS标准的发展,多样的域被加入到引导扇区的定义中。VxWorks 下的磁盘初始化使用MS-DOS 5.0版本定义

的引导扇区域。

MS-DOS 初始化硬盘时,在引导扇区中加入一个分区表。而VxWorks不创建这样一个表。所以两个系统初始化的硬盘是不同的。如果设备的块补偿参数创建程序将超出分区表范围的数据指向数据区的第一个字节,那么VxWorks可以读取被MS-DOS 格式化的磁盘文件。

文件分配表

每个MS-DOS/dosFs卷包含一个文件分配表(FAT)。对每一个分配给文件或目录的磁盘上的簇,FA T中都有一个条目。当簇没有使用过时(可分配),它的条目值为零。如果簇分配给一个文件,它的条目值是文件下一部分的簇号。如果簇位于文件的最后,它的条目值是-1。所以,文件或目录的表述由一个FAT条目链表组成。如2例所示,一个文件由簇2、300和500组成。簇3是没有使用过。

注意:dosFs不映射坏的磁盘扇区到FAT中

图2:FAT条目

此主题相关图片如下:

FAT的每个条目占12或16位。最多包含4085簇的磁盘卷用12位条目;多于4085簇的磁盘用16位条目。条目(特别是12位条目)最初利用英特尔8088体系配置的优点,编码为特殊形式。然而,因为所有的FAT操作都通过dosFs文件系统执行;所以编码和译码与VxWorks应用程序无关。

一个卷通常包括多个FAT拷贝。这种冗余允许数据在第一份FAT中发生介质错误事件时得到恢复。

警告:如果是指定配置,dosFs 文件系统维护多个FAT拷贝;然而,在错误事件中,拷贝不是自动使用的。

FAT的大小和FAT拷贝的数量是由引导扇区中的域决定的。对于使用dosFs文件系统初始化的磁盘,这些参数是在dosFsDevInit( )调用(通过设置卷配置结构DOS_VOL_CONFIG中域)期间被指定的。

根目录

每个MS-DOS/dosFs卷包含一个根目录。根目录总是占有紧接着FAT拷贝的一组连续的磁盘扇区。根目录占领的磁盘区域不在FAT中被条目描述。

根目录的大小是固定的,它的大小被引导扇区中的一个域指定,作为允许的目录项的最大数值。对于使用dosFs文件系统初始化的磁盘,这个大小是在dosFsDevInit( )调用(通过设置卷配置结构DOS_VOL_CONFIG中域)期间被指定的。因为根目录有一个固定的大小,所以目录为满时再向其中加入项将返回一个错误。

子目录

除了根目录外,MS-DOS/dosFs卷有时包含一个子目录层。和根目录一样,子目录也包含文件和其它子目录项; 不过,在有些方面它们不同与根目录,而是类似于文件。

l 第一、象文件一样,每个子目录都被另一个目录中的项描述。这样的一个目录项通过在文件属性字节中一个位设置来说明它描述了一个子目录。同时,子目录与根目录不同,它有用户指定名。

l 第二、分配给子目录的磁盘空间由FAT条目连接而成的一组磁盘组成。这意味着子目录可以随着条目的加入而增大,并且子目录不一定要由连续的簇组成。根目录与子目录不同,能由任意数量的扇区组成,并且不必等于簇的整数倍数。l 第三,子目录通常包含两个专用的项。“.”项指向子目录本身,“..”项指向子目录的父目录。而根目录不包含这些专用项。文件

在MO-DOS/dosFs文件系统中分配给文件的磁盘空间是由FAT中的条目链在一起的一组簇。一个文件不一定由连续的簇组成;可以以任意顺序分配磁盘任意位置的不同的簇。

每个文件在其目录中有一个描述项。这个项包含文件名、大小、最后一次修改的时间和日期,还有文件的几个重要属性(只读文件,系统文件,隐藏文件,存档文件)。这个条目也包含文件的起始簇数;剩下的簇用FAT定位。

卷标

一个MS-DOS/dosFs磁盘可以有一个相关的卷标。卷标在根目录中是一个特殊项。它不包含文件名和子目录,而是包含一个识别卷的字符串。这个字符串可以包含最多11个字符。卷标项是通过在目录项中的一个特殊的文件属性字节的值来识别的。

注意虽然卷标条目没有用ls()报告出来。不过它占了根目录固定数目的条目中的一个。

卷标可以通过使用带有FIOLABELSET函数参数的ioctl()调用加入到dosFs卷。如果卷标不存在,就在卷的根目录加一个卷标项,否则,改变卷标字符串的值。这个卷标条目占据一个固定的根目录条目数;当根目录满时增加一个条目将导致一个错误。

当前的卷标字符串可以通过调用带有FIOLABELGET函数参数的ioctl()来获得。如果没有卷标,这个调用将返回一个错误,并设置errno为S_dosFsLib_NO_LABEL。

在VxWork或MS-DOS5.0(或更高版本)下初始化的磁盘,其引导扇区也包含卷标字符串。

1.2 初始化dosFs文件系统

注意在任何其它操作能被执行之前,dosFs文件系统库(dosFsLib)必须通过dosFsInit()调用进行初始化。这个程序带有一个参数――可以在同一时间打开的dosFs文件描述符的最大数。文件描述符的数目是在初始化时被分配,而且应用程序打开一个文件、目录或文件系统设备时,就使用了一个文件描述符。

dosFsInit()程序在I/O系统驱动器表中也为文件系统创建了一个条目(用isoDrvInstall())。这个条目为dosFs文件操作指定条目指针,并且可以用于dosFs文件系统中所有的设备。分配给dosFs文件系统的驱动器数记录在全局变量dosFsDrvNum中。

DosFsInit()通常在VxWorks系统启动之后被usrRoot()任务调用。使用这种初始化,在项目工具VxWorks view中选择INCLUDE_DOSFS,在Params属性标记中设置NUM_DOSFS_FILES为想打开文件的最大数。

1.3 使用dosFs初始化设备

dosFs文件系统初始化后,下一步是创建一个或更多的设备。设备通过设备驱动器的设备创建程序(xxDevCreate())来创建。驱动程序向块设备描述符结构(BLK_DEV)返回一个指针。BLK_DEV结构描述了设备的物理形式,同时也指定设备驱动程序提供给文件系统的程序。更多块设备的信息参见3.9.4块设备。

设备刚创建之后,块设备没有与其相关联的名字和文件系统。为了初始化一个块设备用于dosFs文件系统,已经创建好的块设备必须与dosFs相关联,并指派一个名字。这由dosFsDevInit()完成。它的参数有:用来标识设备的名字、块设备描述符结构和卷配置结构DOS_VOL_CONFIG(见4.2.4卷结构)。例子:

DOS_VOL_DESC *pV olDesc;

DOS_VOL_CONFIG configStruct;

pV olDesc = dosFsDevInit ("DEV1:", pBlkDev, &configStruct);

dosFsDevInit()调用执行下列任务:

l 为设备命名,把设备加入I/O系统设备表(用iosDevAdd())。

l 为设备分配并初始化文件系统卷描述符

l 返回指向卷描述符的一个指针。这个指针用来在一些文件系统调用时识别磁卷

用dosFs初始化设备并不格式化磁盘,也不用MS_DOS结构(根目录,FAT,等等)初始化磁盘。可以在有数据存在于MS_DOS文件系统中的磁盘上使用dosFsDevInit()调用;可以使用ioctl()函数中FIODISKFORMA T和FIODISKINIT 分别实现磁盘格式化和DOS磁盘初始化。

DosFsMkfs()调用提供了一种简易的dosFs设备初始化的方法。如下

l 提供了一组缺省的配置值。

l 调用dosFsDevInit()。

l 使用带有FIODISKINIT的ioctl()函数初始化磁盘。

默认的dosFsMkfs()不能使任何dosFs-specific卷选项

(DOS_OPT_CHANGENOW ARN,DOS_OPT-AUTOSYNC,DOS_OPT-LONGNAMES,DOS_OPT_LOWERCASE,或DOS_OPT_EXPORT)可用。在调用dosFsMkfs()初始化磁盘之前使用dosFsMkfsOptionsSet(),可以使这些选项中的所有组合有效。有关默认配置值的更多信息,见dosFsMkfs()手册。

1.4 卷配置

卷的配置结构(DOS_VOL_CONFIG)在调用dosFsDevInit()时使用。这个结构包含多种描述磁盘上数据分布的dosFs文件系统变量。结构中的大多数域与引导扇区中的相符。表1列出在DOS_VOL_CONFIG结构中的域。

表1:DOS_VOL_CONFIG域。

域描述

dosvc_mediaByte 媒体描述符字节

dosvc_secPerClust 每簇的扇区数

dosvc_nResrvd 第一个FAT拷贝之前的保留扇区数,最小值为1(引导扇区)

dosvc_nFats FAT拷贝数

dosvc_secPerFat 每个FAT拷贝的扇区数

dosvc_maxRootEnts 根目录中条目的最大值

dosvc_nHidden 隐藏扇区数,通常为0

dosvc_options VxWorks特殊文件系统选项

dosvc_reserved 风河公司为将来使用保留

调用dosFsConfigInit()是初始化DOS_VOL_CONFIG的简便方法。它把配置变量作为参数并装入结构。这对从Tornado shell中交互地初始化设备很有用(见Tornado 用户手册:shell)。DOS_VOL_CONFIG结构必须在dosFsConfigInit( )调用

DOS_VOL_CONFIG 域

在表1中除了最后两个DOS_VOL_CONFIG域,都描述了标准MS_DOS的特征。

域dosvc_options对于dosFs文件系统很特殊。这个域可能的选项见表2

表2:dosFs卷选项

选项16进制值描述

DOS_OPT_CHANGENOW ARN 0x1 磁盘可能在没有警告的情况下被改动.

DOS_OPT_AUTOSYNC 0x2 I/O期间使磁盘同步

DOS_OPT_LONGNAMES 0x4 使用不受8.3规格的限制的大小写敏感文件名

DOS_OPT_EXPORT 0x8 允许使用NFS输出

DOS_OPT_LOWERCASE 0x40 在磁盘上使用小写文件名

前两个选项说明同步磁盘缓存块与物理设备的动作。剩下的选项用于扩展dosFs的性能。

DOS_OPT_CHANGENOW ARN

如果磁盘没有被卸载就可被替换,或在状态就绪检查中发生变化,则设置这个选项。在这种情形中,有规则的检查磁盘来确定否发生改变。这将引起系统重大的开支;那么,我们推荐使用一种总是在移除前同步和卸载磁盘的机制,或至少声明状态就绪改变的机制。如果这样的机制适当,或磁盘是不可移动的,则不设置这个属性。自动同步模式在DOS_OPT_CHANGENOW ARN被设置时自动允许(见下面有关DOS_OPT_AUTOSYNC的描述)。

DOS_OPT_AUTOSYNC

设置这个属性可确保磁盘缓存器中的目录和FAT数据被修改后尽快写入物理设备,而不仅仅是在文件关闭时被写入物理设备。数据尽可能存储到物理介质上,从而避免在系统紧急事件中丢失数据。因为使用自同步模式时将降低性能,所以。然而,DOS_OPT_AUTOSYNC设置不能使dosFs在每个write()后自动向磁盘中写数据。这将意味着极大地降低了性能。如果你的应用程序要求dosFs在每个write()后自动向磁盘中写数据,每次调用write()后使用带有FIOFLUSH的ioctl ()函数

注不论什么时候设置DOS_OPT_CHANGENOW ARN,自动同步模式都可以自动允许。

DOS_OPT_LONGNAMES

设置这个属性使系统允许使用大小写敏感文件名,文件名长度不受MS-DOS8.3版本的限制。

DOS_OPT_EXPORT

设置这个选项来初始化想使用NFS输出的文件系统。dosFs初始化生成附加的支持NFS协议所需的内存数据结构。这个选项对初始化文件系统(可以被输出的)是必不可少的,但它不真正输出文件系统。

DOS_OPT_LOWERCASE

设置这个选项来迫使dosFs创建的文件名使用小写字母字符。

(除了DOS_OPT_LONGNAMES选项是激活的,通常文件名用大写字母字符)如果dosFs卷是通过基于PC的NFS的客户机装载的,则需要设置这个选项。如果DOS_OPT_LONGNAMES选项也被指定,则这个选项无效。

计算配置值

在DOS_VOL_CONFIG结构中,dosvc_secPerClust和dosvc_secPerFat的值必须基于被使用的特殊的设备进行计算。dosvc_secPerClust

这个域用来说明组成一个单独的簇的连续扇区数。因为一簇是每次可以被分配的最小磁盘空间,簇的大小决定了磁盘分配控制的细微程度。每簇中扇区数越多,每次分配的扇区数越多,从而降低了磁盘空间使用的整个效率。因此,通常每簇使用尽可能少的扇区,不过每簇少于两个扇区通常是不必要的。

FAT条目最大为16位;那么,可以被描述的簇的最大值为65536(64KB,或0x1000),这就是一个设备的簇的最大值。为了确定一簇中适当的扇区数,以0x1000(64k)划分磁盘上的所有扇区(BLK_DEV结构中的bd_nBlocks域),进位舍入到下一个整数,最终结果就是每簇中的扇区数;把这个值赋予DOS_VOL_CONFIG结构中的dosvc_secPerClust域。dosvc_secPerFat

这个域指定磁盘上每个FAT拷贝必需的扇区数。要计算出这个值,首先确定磁盘的总簇数。总簇数等于总扇区数(BLK_DEV结构中的bd_nBlocks)除以每簇的扇区数。如前面提到的,磁盘的簇的最大数为64KB。

簇数随每个FAT条目的位数增加:如果总簇数小于等于4085,FAT条目为12位;如果簇数大于4085,FAT条目为16位。增加的结果是每个FAT拷贝所需的总字节数。这个字节数除以每个扇区的大小(BLK_DEV结构中的bd_bytesPerBlk域),决定了每个FAT拷贝的扇区数(按扇区的大小划分);如果有一些残余,结果再加一。把最终的值赋予dosvc_secPerFat 域。

假定512字节扇区,每个拷贝最大可能的FAT占用256个扇区,计算如下

对于软盘,许多标准磁盘配置用于MS-DOS系统。通常,配置通过媒体描述符字节的值唯一识别(至少针对一种给定大小的软盘),虽然一些制造商对不同的格式使用完全相同的值。一些广泛使用的配置参见表3。

固定磁盘不使用标准磁盘配置,因为它们很少附属于外部的系统,。通常固定磁盘使用0xF8的介质格式字节。

表3:MS_DOS 软盘配置

容量160KB 180KB 320KB 360KB 1.2MB 720KB 1.44MB

尺寸5.25" 5.25" 5.25" 5.25" 5.25" 3.5" 3.5"

面1 1 2 2 2 2 2

磁道40 40 40 40 80 80 80

扇区/磁道8 9 8 9 15 9 18

字节/扇区512 512 512 512 512 512 512

secPerClust 1 1 2 2 1 2 1

nResrvd 1 1 1 1 1 1 1

NFats 2 2 2 2 2 2 2

如前所述,在dosfs文件系统设备应用dosfsdevinit()首次初始化时,多种磁盘配置参数被指定。这些参数保存在卷描述符dos_vol_desc中。而带有不同参数值的磁盘可能被放置在初始化过的设备驱动器中。如果用另一个磁盘取代磁盘(带有最后输入到卷描述符的配置参数),那么新磁盘的配置参数必须在使用之前获得。

当磁盘被装载时,引导扇区信息从磁盘上读取出来。此数据用来更新在卷描述符中的配置数据。注意这个操作发生在磁盘存取的开始。而且在卷被卸载(使用dosfsvolunmount())或一个准备好的替换操作被执行之后,又再次执行这个操作。配置数据的自动重新初始化有重要的含义。卷描述符数据在初始化磁盘(使用fiodiskinit)时使用;这样,磁盘使用最近装载的磁盘的配置初始化,而不考虑在dosfdevinit()期间的初始规格,因此我们推荐在磁盘装载之前,在dosfsdevinit ()之后紧接着使用fiodiskinit。(设备以raw模式打开,fiodiskinit ioctl()函数执行后,关闭设备。)

已初始化过磁盘的使用

如果你使用一块已经初始化过的有ms-dos引导扇区、fat、根目录的磁盘(例如,使用统一的ms-dos格式),则不需要在dosfsdevinit()中提供卷配置数据。

可以忽略ms-dos配置数据(通过指定一个null指针代替在dosfsdevinit( )期间dos_vol_config结构的地址),不过仅仅在你确信卷的首次使用伴随完全格式化和初始化过的磁盘时才使用这种方法。

当装载一个已经初始化过的磁盘时,所有标准的ms-dos配置值都从磁盘引导扇区获取。而指向dosfs的选项必须被指明。。dos_opt_longnames(不受8.3版本限制的大小写敏感文件名),使用这个选项初始化过的磁盘可以通过引导扇区中一个特殊的卷id字符串自动识别。

dos_opt_changenowarn, dos_opt_autosync, dos_opt_lowercase, 和dos_opt_export选项只记录在内存中,不放在磁盘上。因此当用null代替dos_vol_config结构指针初始化磁盘时,不能删除这些选项。另外可以使用dosfsdevinitoptionsset()程序设置这些选项为默认值;除非支持明了的dos_vol_config信息,不然默认值将应用于后面所有使用dosfsdevinit()初始化的dosfs文件系统。

卷配置信息访问

可以通过在tornado shell中使用dosfsconfigshow()2和dosfsconfigget()获得磁盘信息。这里参考tornado(shell)。

使用dosfsconfigshow()显示象最大连续区域和设备名这样的配置信息。例如:

-> dosfsconfigshow "/ram1/"

value = 0 = 0x0

输出到标准输出设备,如下

device name: /ram1/

total number of sectors: 400

bytes per sector: 512

media byte: 0xf0

# of sectors per cluster: 2

# of reserved sectors: 1

# of fat tables: 2

# of sectors per fat: 1

max # of root dir entries: 112

# of hidden sectors: 0

removable medium: false

disk change w/out warning: not enabled

auto-sync mode: not enabled

long file names: not enabled

exportable file system: not enabled

volume mode: o_rdwr (read/write)

available space: 199680 bytes

max avail. contig space: 199680 bytes

dosfsconfigget程序把磁盘信息存储到dos_vol_config结构中。这对于初始化一个新磁盘(与已有磁盘相同配置)很有用,另外对于用dosfsmkfs()在磁盘上初始化dosfs文件系统,并需要获取被计算的目前配置值也很有用。

装载卷

通常磁盘卷在对磁盘上文件或目录的第一个open()或creat()操作时自动装载。(某些ioctl()调用也可以引起磁盘装载)。如果在dosfsdevinit()调用期间,一个null指针被指定代替dos_vol_config结构的地址,那么磁盘被立即装载以获得配置值。

磁盘装载时,从磁盘上读取引导扇区、fat和目录数据。卷描述符dos_vol_desc被更新以反映新装载磁盘的配置。

自动装载发生在dosfsvolumount()或替换就绪操作之后的第一个文件存取时。如果磁盘在带有dos_opt_changenowarn 选项设置的dosfsdevinit()调用期间被定义,磁盘会被周期性地自动装载。当磁盘以raw模式打开时自动装载不会发生;见打开整个设备(raw模式)。

警告:因为设备名是被使用简单子链匹配的i/o系统识别的,所以文件系统不使用单独的斜杠(/)作为文件名。如果使用斜杠可能发生意外的结果。

可以使用usrfdconfig()装载卷,但是这个程序不返回dos_vol_desc结构。用usrfdconfig()装载的卷不能使用许多dosfs 命令,包括dosfsvolunmount()。不过dofs的ioctl()命令(包括fiounmount)通过fd存取卷信息,所以可以和usrfdconfig ()一起使用。

文件i/o

dosfs文件系统设备上的文件创建、删除、读写都使用标准vxworks i/o程序: creat( )、remove( )、write( )和read( )。

整个设备的打开(raw模式)

可以打开整个的dosfs卷。这是在open()和creat()调用期间通过只指定设备名来实现。当一个合法文件被打开时返回一个文件描述符;然而,在文件操作符上的操作影响整个设备。以这种方式打开整个卷叫作raw模式。

打开整个设备的通常原因是为ioctl()函数获得一个不属于某个文件的文件描述符。如fionfree函数,它返回在卷上的有效字节数。然而,对于许多此类函数,文件描述符可以是任何打开的此卷的,甚至一个特定文件的文件描述符。

当一个磁盘用ms-dos数据结构初始化(引导扇区、空的根目录、fat)时,以raw模式打开此设备。ioctl()函数fiodiskinit 执行初始化。

可以以raw模式读写磁盘上的数据。在这种模式下,整个的磁盘数据区被看作一个单独的大文件。没有目录条目用来描述用raw模式写的任何数据。

有关对整个设备(包括使用ms-dos的数据结构的区域)低级i/o,,见4.4 raw文件系统:rawfs和有关“vxworks 参考手册>库”下的rawfslib的在线参考。

子目录创建

当子目录达到最大条目数时,子目录可以在根目录以外的任何目录下创建。子目录有两种创建方式:

1.使用带有fiomkdir函数的ioctl():目录名传递给ioctl()。ioctl()调用使用的文件描述符可以通过以下方式获得:打开整个卷(raw模式)、一个正规文件或卷上的另一个目录。

2.使用open():创建一个目录,o_creat选项必须设置在标记参量中打开,fstat_dir选项必须设置在模式参量中。open ()调用返回一个文件描述符(描述新目录)。这个文件描述符用于只读,当不再需要时关闭这个描述符。

使用以上两种方法的任意一种方法创建目录,新目录名必须被指明。这个名字可以是一个全称路径名,或是一个相对于当前工作目录的路径名。

子目录删除

被删除的目录必须是空的(除了“.”和“..”条目)。删除目录有两种方法:

1.使用带有fiormdir函数的ioctl()调用,指定目录名。另外,文件描述符可以指向卷上的任何文件、目录、或卷自己。

2.使用remove()函数,指定目录名。

目录条目

每个dosfs目录包含一组条目描述它的文件和子目录。每个条目包含有关文件或子目录的信息:

文件名

一个8字节字符串(如果需要,空格填补)指定文件名。(命名可以长至40个字符;详情见4.2.18长文件名支持)

文件扩展名

一个3字节的字符串(空格填补)指定文件名或子目录名的一个延长部分。(如果选择了不受8.3版本限制的高级文件名,扩展概念是不适用的。)

文件属性

一个字节域指定文件的特征;

时间

文件编码创建修改的时间

日期

文件编码的创建修改的日期

簇号

文件内开始簇的数目。通过搜索fat找后来的簇

文件大小

文件的大小,对描述子目录的条目来说这个域通常为零。

读目录条目

在dosfs卷上的目录可以使用opendir(),readdir(),rewinddir(),和closedir()程序来搜索。这些调用可以用来确定文件名和子目录。

使用fstat()或stat()函数可以获得有关指定文件更详细的信息。连同标准文件信息,被这些程序使用的结构还从目录条目返回文件属性字节。

文件属性

在dosfs目录条目中的文件属性字节由一组标记位组成,每位标志一个特殊的文件特征。文件属性字节描述的特征见下表。表:文件属性字节中的标记

vxworks 标记名十六进制值描述

dos_attr_rdonly 0x01 只读

dos_attr_hidden 0x02 隐藏文件

dos_attr_system 0x04 系统文件

dos_attr_vol_label 0x08 卷标

dos_attr_directory 0x10 子目录

dos_attr_archive 0x20 存档文件

当一个文件被打开为o_wronly或o_rdwr时,dos_attr_rdonly被选中。如果标记设置了,open()返回error,并且设置errnos 为_dosfslib_read_only。

警告:ms-dos隐藏文件和系统文件标记(dos_attr_hidden和dos_attr_system)被dosfslib忽略。虽然他们保持完整,但他们不产生特殊的处理(例如,带有这些标记的条目当搜索目录时被公布)。

卷标标记dos_attr_vol_label用来说明一个包含磁盘的dosfs卷标的目录条目。标签不是必须的,如果使用了,每卷只有一个卷标条目,在根目录中。当读一个目录的内容时,卷标条目不被报告(用readdir())。只有使用ioctl()函数fiolabelget 时,卷标条目才被确定。使用ioctl()函数fiolabelset,卷标可以被设置成任何11个字符或更少字符的字符串。在这些ioctl()调用期间任何打开到此卷的文件描述符都可以使用。

目录标记dos_attr_directory用来指出这个条目不是一个正规的文件而是一个子目录。

存档标记dos_attr_archive在文件被创建或修改时被设置。这个标记被其他搜索卷的程序(寻找修改过的文件并选择存档)使用。这样的程序必须清除存档标记,因为vxworks不做这个工作。

属性字节中的所有标记(除了目录和卷标标记)可以使用ioctl()函数filoattribset设置或清除。这个函数调用在指定文件打开后改变其属性。在filattribset调用中指定的属性字节值被直接复制;为了保护存在的标记设置,使用stat()或fstat ()确定当前的属性,然后使用and和or操作改变他们。

例:设置dosfs文件属性

这个例子使一个dosfs文件只读,并保持其他属性不变

#include "vxworks.h"

#include "iolib.h"

#include "dosfslib.h"

#include "sys/stat.h"

#include "fcntl.h"

status changeattributes (void)

{

int fd;

struct stat statstruct;

/* open file */

if ((fd = open ("file", o_rdonly, 0)) == error)

return (error);

/* get directory entry data */

if (fstat (fd, &statstruct) == error)

return (error);

/* set read-only flag on file */

if (ioctl (fd, fioattribset, (statstruct.st_attrib | dos_attr_rdonly))

== error)

return (error);

/* close file */

close (fd);

}

文件日期和时间

目录条目包含一个文件和目录的时间和日期。这个时间在文件创建时被设置,并在文件被修改后关闭时被更新。描述子目录的条目不被更新——它们总是包含目录的创建日期和时间。

dosfslib库在内在结构中维持日期和时间。然而通常没有一个装置来自动更新时间和日期,这提供了两种不同的设置日期和时间的方法。

第一种方法应用两个程序dosfsdateset()和dosfstimeset()。使用如下:

dosfsdateset(1990,12,25)/*设置日期为1990年12月25日*/

dosfstimeset(14,30,22)/*设置时间为14:30:22*/

必须按时调用这些程序来更新日期和时间的值。

第二种方法要求一个用户支持的钩子程序。如果使用dosfsdatetimeinstall()安装了时间和日期的钩子程序,只要dosfslib 要求获取当前日期和时间,程序就被调用。这样可以利用可被读取硬件日历时钟来获取当前时间。也可以用于其它的维持当前时间日期的应用软件。

定义日期/时间钩子程序如下(datetimehook是一个例子名,真正的程序名可以是任何名)

void datetimehook

(

dos_date_time * pdatetime /* ptr to dosfs date & time struct */

)

在钩子程序的入口,包含最近的时间和日期的dos_date_time结构设置在dosfslib中。接下来,钩子程序用当前正确的时间和日期填充结构。结构中没有发生改变的区域保持先前的值。

ms-dos规格在文件时间标记上仅提供了2秒间隔的时间戳。如果在dosfstimeset()或日期/时间钩子程序里指定的秒数是带零头的,那么它四舍五入到下一个偶数。

dosfslib使用的日期和时间被初始为1998年1月1日,00:00:

VxWorks常用命令汇总

VxWorks常用的命令 1.与任务相关的命令 sp function,[arg1],...,[arg9] -启动任务,最多接受9个参数,默认的优先级100、堆栈20000字节 period n,function,[arg1],...,[arg8] -创建一个周期调用function的任务,周期为n秒,最多接受8个参数 repeat m,function,[arg1],...,[arg8] -创建一个反复调用function的任务,调用次数为m,m=0时永久调用,最多也是8个参数 ts tidX -挂起任务 tr tidX -恢复挂起的任务 td tidX -删除任务 i tidX -显示任务基本信息,参数为0时显示全部任务 ti tidX -显示任务详细信息,包括寄存器、堆栈等 tt tidX -显示任务的函数调用关系 checkStack tidX -显示任务堆栈使用的历史统计,参数为0时显示全部任务 [其中tidX可以为任务ID 也可以为任务名] 2、系统信息 lkup ["string"] -在系统符号表中查找并列出含有"string"字符的函数及全局变量,有两个特殊参数: 0,给出符号表统计;""(空字符串),列出全部符号 lkAddr addr -显示addr地址附近的符号表 l addr,[n] -显示addr地址开始的n条指令的反汇编,n省略时默认为10条指令 h [n] -n为0时列出最近执行的shell命令,默认20条;n非0时,设定shell记录的历史命令的数目 d [addr,[number],[width]] -显示addr地址开始的number个单元的内容,width定制每个单元的宽度,可以是1、2、4、8 m addr,[width] -按width宽度修改addr地址的内容,width可以是1、2、4、8 memShow 1 -显示系统分区上空闲和已分配空间的总数等 printErrno value -打印系统定义的错误码的宏 3、与网络相关的命令 ifShow ["ifname"] - show info about network interfaces inetstatShow - show all Internet protocol sockets tcpstatShow - show statistics for TCP udpstatShow - show statistics for UDP ipstatShow - show statistics for IP icmpstatShow - show statistics for ICMP arpShow - show a list of known ARP entries

数据库管理系统

8.1 知识点 8.1.1 数据库管理系统概述 DBMS的系统目标 数据库管理系统是数据库系统的核心,从用户角度来看,一个DBMS应尽可能具备的 系统目标是:用户界面友好、结构清晰和开放性。 DBMS的基本功能 DBMS主要是实现对共享数据有效的组织、管理和存取,所以DBMS具有以下基本功能: 1.数据库定义功能 2.数据存取功能 3.数据库管理功能 4.数据组织、存储和管理功能 5.数据库的建立和维护功能 6.其他如DBMS与其他软件系统的通信功能,与其他DBMS或文件系统的数据转换 功能 8.1.2 数据库管理系统的结构和运行过程 DBMS程序模块的组成 DBMS是一种由各种模块组成系统软件,主要的模块有: 1.据定义方面的程序模块 数据定义的程序模块主要包括如下内容: 文本框: 考纲要求 2.数据库设计的目标、内容和方法 3.数据库应用开发工具 4.数据库技术发展 (1)模式、外模式、存储模式的定义模块,在RDBMS中就是创建数据库、创建表、 创建视图、创建索引等定义模块。 (2)安全性定义,如授权访问。 (3)完整性定义,如主键、外键、以及其他一些完整性约束条件 2.数据操纵方面的程序模块 数据操纵的程序模块主要包括如下内容: (1)查询处理程序模块 (2)数据更新程序模块 (3)交互式查询程序模块 (4)嵌入式查询程序模块 3.数据库运行管理的程序模块 数据库运行管理主要包括:系统启动的初始化、建立DBMS的系统缓冲区、建立系统 工作区、打开数据字典、安全性检查、完整性检查、并发控制、事务管理、运行日志管理等。 4.据库组织、存储和管理方面的程序模块 数据库组织、存储和管理方面的程序模块主要包括:文件读写和维护、存储路径管理 和维护、缓冲区管理等。 5.据库建立、维护和其他方面的程序模块 数据库建立、维护和其他方面的程序模块主要包括初始装入程序、转储程序、恢复程

vxWorks文件系统详细介绍

VxWorks为块设备(磁盘)的实时使用提供了两种本地文件系统:一种与MS-DOS文件系统相兼容,另一种与RT-11文件系统相兼容。这些文件系统的支持库分别为dosFsLib和rt11FsLib。VxWorks还提供了一种简单的raw文件系统,这个文件系统把整个磁盘作为一个单独的大文件。这个文件系统的支持库是rawFsLib。 VxWorks还为不使用标准文件或目录结构的磁带设备提供了一个文件系统。磁带卷被看作一个raw设备,整个卷就是一个大文件。这个文件系统的支持库是tapeFsLib。另外,VxWorks提供了一个文件系统支持库cdromFsLib,它允许应用程序从依照ISO9660标准文件系统格式化的CD-ROMs中读取数据。 在VxWorks中,文件系统不受块设备种类型或它的驱动程序的约束。VxWorks块设备都使用一个标准接口,以便文件系统可以与设备驱动程序自由的混合。做为选择,你可以写自己的能被驱动程序以相同方式使用的文件系统,只要在文件系统、驱动程序和I/O系统间遵循同样的标准接口。VxWorks的I/O体系结构使得在一个VxWorks系统中可以有多样的文件系统,甚至其类型也可以不同。块设备界面在3.9.4块设备中讨论。 1 与MS-DOS兼容的文件系统:dosFs 使用dosFs文件系统格式化的磁盘与MS-DOS(直至6.2版本)磁盘是相兼容的。由两个文件系统初始化的硬盘之间在格式上有细微区别。然而,数据自身是兼容的,而且dosFs可被配置成使用MS-DOS格式化的磁盘。 DosFs文件系统向不同要求的实时应用程序提供了良好的适应性。主要特点包括: l 文件和目录分等级排序,允许有效地组织,在一卷上可以创建任意数量的文件。 l 每个文件可以是连续存储或非连续存储的。非连续存储的文件可使硬盘空间利用率更高,连续存储的文件可以增强系统性能。 l 具有与广泛可用的存储器和可恢复介质的兼容性。应用VxWorks(不使用dosFs文件扩展名)、MS-DOS PCs和其它系统创建的磁盘可以自由的交换。如果分区表被说明,那么硬盘也是兼容的。 l 具有从有dosFs文件系统的本地SCSI设备引导VxWorks的能力。 l 可以使用比通常MS-DOS允许的8个字符的文件名加3个字符的扩展名更长的文件名。 l NFS(网络文件系统)的支持。 1.1磁盘组织 MSDOS/ dosFs文件系统提供了一种以灵活方式组织磁盘数据的方法。它维护指定目录、每个包含文件或其它的目录的等级设置。文件可以被设置其搜索路径;文件扩展时,新的磁盘空间被自动分配。分配给一个文件的磁盘空间不必一定是连续的,这样可以使磁盘空间浪费最小。然而,为了提高它的实时性,dosFs文件系统允许连续空间被预先个别地分配给文件,从而使查找操作最块,行为更加确定。MS-DOS/dosFs文件系统的通常组织结构如图1,其中的多个单元在下面的部分论述。 图1 MS-DOS磁盘组织 ------------------------------- 引导扇区扇区0 ----------------------------- 文件分配表(FAT) ----------------------------- 根目录 ------------------------ 文件和子目录 ---------------------------- 簇 在MS-DOS/dosFs文件系统中,分配给文件的磁盘空间由一个或多个磁盘簇组成。一个簇为一组连续的磁盘扇区。软盘通常由两个扇区组成一簇;固定硬盘由更多的扇区组成一簇。文件系统可以一次分配的最小的磁盘空间为一簇。虽然每簇有巨大数量的扇区允许在固定大小的文件分配表(FAT;见文件分配表)中描述一个巨大的磁盘,但是这可能会导致磁盘空间的浪费。 引导扇区

企业文档管理系统-文档资料

企业文档管理系统-文档资料 ZOpen EDM: 企业文档管理系统 ZOpen EDM是润普公司针对企业文档管理开发的 一个即装即用的产品。 使用ZOpen EDM文档管理系统,能够可靠地集中 存储企业的海量文档,委托权限管理,支持文档的元 数据,提供多种的文档挖掘线索,提供多种文档展现 方法,最终提高工作效率、减少重复工作、加强部门 之间的沟通,有效的管理企业最重要的智力资产。 ZOpen EDM文档管理系统的典型适用领域包括:学校、咨询公司、律师事务所、监理公司、开发部门、市场部门、企业文档管理和控制部门、服务和支持部门、呼叫中心、金融企业等。 更多参看: , 产品主页: , Flash演示: Flash 演示(一) Flash 演示(二) 上海润普网络信息技术有限公司 info@https://www.doczj.com/doc/075459281.html, 1 ZOpen EDM产品特性 1.1 易用 易用的Web界面

所有文档,可直接通过浏览器访问,网站界面类似Windows资源管理器。Web 界面非常易用,最终用户免安装,免使用培训。 即便出差在外,只要开通网络端口,也可通过https安全连接访问网站。 集成的FTP批量文件拖放 在IE浏览器中点击网页上的链接,无需二次 登录,可直接激活windows的web文件夹,使用 Windows资源管理器来进行批量上传、下载。 和桌面编辑器集成 在网页上点击“编辑”链接,可直接激活 word等编辑器进行编辑,可自动保存文件到服务

器。 上海润普网络信息技术有限公司 info@https://www.doczj.com/doc/075459281.html, 此功能大大简化通常的文件下载、编辑、上传的复杂过程,实现了和桌面编辑器的无缝集成。 文档预览 直接在浏览器中预览word、PPT、PDF等格式的文件,用户甚至不必安装相应的桌面编辑软件。 此功能简化了文档的下载、打开的繁琐(耗时)过程,方便文档的查看。邮件发送 点击网页发送图标,可直接在网站上,通过填写表单发送文件邮件到指定地址。 可查找网站集成的用户邮件地址薄,选择接收用户的邮件地址。用户不必借助任何其他工具,可方便发送文件。

vxWorks开发环境构建步骤及开发资源

vxWorks开发环境构建步骤及开发资源 技创科技(Technique Innovator Inc.) https://www.doczj.com/doc/075459281.html, 一、Tornado集成开发环境构成 Tornado是集成开发环境的名称,主要由帮助及参考文档、操作系统vxWorks、开发工具(编译器、调试器、编辑器、target server等,据统计,挂接在Tornado下的可选工具和第三方有数百个)等三部分构成,分别对应三个目录: i.docs/ 所有文档都集中在该目录中, books.html是根索引,入门级开发请务必查看 以下文档: ●如果要熟悉使用界面及Tornado使用、创建工程,请参考:Tornado用户手册 及Tornado集成开发环境的HELP->content调出来的联机帮助文档; ●vxWorks的编译是使用标准GNU Makefile来编译连接的,要了解Makefile语 法请参考”GNU Make”;具体的Make rules存放在target/h/make/目录下。 ●如何调试?请参考“Debugging with GDB” ●vxWorks构成、特点及kernel,编程等:请参考:VxWorks Programmer's Guide, 系统调用、库函数接口标准等,请参考:VxWorks Reference Manual ●有关BSP(board support package)的构成、初始化、底层驱动等,请参考“BSP Reference” ●网络应用编程指南(socket编程): “VxWorks Network Programmer's Guide” ii.host/ 该部分存放主机端(开发机)的工具,如Tornado.exe,make.exe,编译器、调试器及TCL命令解释器等等,开发中要用到的工具都存放在目录 host\x86-win32\bin 下,部分命令是.exe文件,部分是.bat的,其中有torvars.bat文 件,是设置Tornado集成开发环境的环境变量用的,在使用其他工具前,要运行它 设置正确的环境变量及可执行文件搜索路径。 iii.target/ vxWorks操作系统、源码、BSP、设备驱动、头文件、配置文件等config/ BSP的存放地方,底层开发者绝大部分时间在该目录下度过,该目录下除了all/和comps/外,其他每个目录对应一种硬件板的BSP,开发者在 做BSP开发时,原则上除了对应BSP目录能修改外,target/目录下的其他 所有目录都不应该作出改动,否则会影响到其他BSP,常用BSP有: pid7t/ →ARM公司推出的pid7 ARM7TDMI评估板的BSP integratorX/ →ARM公司推出的integratorXXX评估板的BSP tk4510a/ →我们要使用的S3C4510B板的BSP SNDS100/ →三星公司推出的SNDS100(KS3C50100/S3C4510B)板的 BSP h/ 头文件存放地点,包括vxWorks的及所有其他组件的 arch/arm/ ARM体系结构相关头文件 make/ 编译连接时要用到的规则都存放在这里 vxWorks.h wind Kernel(vxWorks的核心”Wind Kernel”的API及常量说明) lib/ vxWorks是一个商用操作系统,其不开放源码部分的.o文件及.a(库文件)文件存放在这里(当然,除了config/目录外,所有其他目录下的*.c源码在编

模拟一个简单二级文件管理系统

模拟一个简单二级文件管理系统 设计目的:通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 设计内容:模拟一个简单二级文件管理系统 一、实验内容描述 1 实验目标 本实验的目的是通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现. 2 实验要求 为DOS系统设计一个简单的二级文件系统.要求做到以下几点: ①可以实现下列命令: login 用户登录 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 ②列目录时要列出文件名、物理地址、保护码和文件长度. ③源文件可以进行读写保护. 二、程序主要内容 1设计思路 程序中要求每个用户在登陆后才可对其拥有的文件进行操作,用户对于其他用户的文件无操作权.文件操作包括浏览、创建、删除、打开、关闭、阅读、写入、修改模式.其他操作包括新建用户、帮助、用户登入、用户登出、退出系统. 在程序文件夹下有个名为“file”的系统根目录,此目录下包括:一个名为“mfd”的文件,记录所有注册过的帐号及密码;用户文件,以用户名作为文件名,内容为其拥有的文件名及属性;一个名为“keiji”的文件夹.“keiji”文件夹中包括:“”指针文件,记录所有已用的物理地址;一些以物理地址为名的文件,内容为文件内容. 2 数据结构 file结构体系统文件数据结构: fpaddrint,文件的物理地址、flengthint,文件长度、fmodeint,文件模式 0.只读;1.可写;2.可读写;3.保护、 fname[]char,文件名; filemode结构体文件状态数据结构: isopenint,文件当前状态,0.关闭;1.打开、modeint,文件模式 0.只读;1.可写;2.可

VxWorks操作系统RTP介绍和使用方法

VxWorks操作系统RTP介绍和使用方法 从VxWorks6.x开始引入RTP(VxWorks real time process project)模式编程,这种模式的优点是应用程序相互独立,互不影响,而且增加了内核的稳定性,缺点是由于“内核态”与“用户态”的内存拷贝,其执行效率有所降低,随着CPU 速度越来越快,这点效率的牺牲已经越来越不重要。相比较于传统的DKM (downloadable kernel module project),RTP适合多个团队独立运作,然后汇总联试,这种模式除了全局函数不能再shell里直接调用外,其对应用程序几乎不做任何约束,原有的DKM工程代码稍作修改即可正常运行。内核变化较大,需要添加较多的组件,内存需要较好的划分,为保持应用程序直接调用函数调试的习惯,需要封装接口供用户使用。 现简单的介绍RTP使用方法,并给出demo代码供参考。 1.新建并编译工程: (1)File->new->VxWorks real time process project,如图【1】 图【1】 (2)一路next后,选择如图【2】所示的编译器

图【2】 (3)选择Finish后,工程新建完毕。 (4)导入源文件:这里的源文件名称是fooRtpApp.c,一种较快捷的方式是选 中新建的工程,按下F5,源文件会出现在工程中. (5)右键选择编译,出现如图【3】,选择Continue继续。 图【3】 编译完成后,会生成vxe格式的可执行文件,此处为usrAppA.vxe。 2.下载可执行性文件 待板子启动后,使用ftp将vxe文件下载到板子中。步骤如下: (1)运行->cmd,打开对话窗口,如图【4】所示:

电子档案管理系统解决方案设计

电子文档信息管理系统 解决方案

山东东昀电子科技有限公司

目录 1. 系统功能模块的划分和各模块的设计 (1) 1.1总体功能设计 (1) 1.2信息管理 (4) 1.2.1 数据录入 (5) 1.2.2 文件上传、下载 (6) 1.3日常管理 (7) 1.3.1 检索查询 (7) 1.3.3 统计报表 (8) 1.4视频资料管理 (10) 1.4.3 媒体文件资料管理 (10) 1.5系统设置 (11) 1.5.1 建立符合用户要求的文档管理结构 (11) 1.5.2 对现有文档管理系统的其他设置 (12) 1.6系统安全 (13) 1.6.1 用户管理 (14) 1.6.2 角色管理 (14) 1.6.3 权限管理 (14) 1.7日志管理 (17) 1.8数据存储和备份 (18) 1.8.1 数据存储 (18) 1.8.2 数据备份 (20)

1. 系统功能模块的划分和各模块的设计1.1总体功能设计 如图所示:

电子文档信息自动化管理系统总体设计如上面的系统逻辑架构,根据文档管理工作的分工不同分为:信息采集、日常管理、信息服务、系统安全、系统设置、软件接口六个部分。 其中信息采集、日常管理和信息服务三部分包括了用户文档信息管理的主要业务内容,实现了文档信息的收集整理、日常管理和利用服务的网络化和电子化。 信息采集主要负责文档信息的整理、编目与电子文件的自动挂接,完成文档信息的收集、录入和数字化工作。 日常管理部分主要完成电子文档的鉴定、销毁、移交、编研、征集等工作,同时可以辅助实体管理、形成文档的目录、进行借阅、利用、统计等管理工作。 信息服务主要通过简单方便的方式,为用户提供快捷的文档信息服务。 系统安全则充分保证了文档系统和数据的安全性,使对电子文档信息的安全管理能够控制到每一具体功能操作和每一具体文件。 系统设置部分为用户搭建符合自身文档信息管理需要的文档管理结构提供了定制工具,可以让用户自己量身定制本单位的文档管理结构,无论是从眼前,还是从长远考虑,都将比

EPON常用命令讲解

EPON常用命令讲解 ?数据业务基本排查 ?语音业务基本排查 ?930软件脚本简介 ?其他常用命令 ?典型案例分析 数据业务基本排查 基本思路: 在PON系统内GSWC、EC2、ONU各业务环节上应保证: 配置正确 配置生效 MAC地址正确转发 ?FTTH型ONU ?FTTB型ONU 配置核查 Onu switch目录: show vlan all显示所有端口vlan; show vlan 查看交换芯片单个vlan及其所属端口的信息,如果此端口配置为出口剥离vlan,相应端口显示为UN;反之显示为VF show vlan default 显示所有端口的untag属性的vlanid; Onu Debug下相关命令: ddd show port [|all] vlan config显示系统QinQ不使能下的Fe端口vlan的配置信息show port [|all] vlan service显示系统QinQ使能下的Fe端口vlan的配置信息show port [|all] vlan translation table显示端口的软件vlan转换表 EC2 Pon目录: show qinq_config <1-2> <1-24> 查询qinq模式下ONU端口业务信息 端口检查 show port status查看交换芯片端口的状态,可以查看用户端口是否接了终端,工作模式是否正确等 查看地址转发表

ONU swtich目录 show arl查看mac地址转发表,会显示学习到的端口、vlanid和mac地址,如果用户的vlan id同时上下行数据中学到,其中26端口( CPU端口)表示下行数据正常,用户端口1-24表示上行数据正常; OLT fdb目录 show fdb slot <1-8,11-18>查看上行数据时,查看业务卡(EC2)fdb表 show fdb slot 29查看下行数据时,查看上联口fdb表 主控盘学的地址的VID应该是最外层VLAN的VID。 如果,上下行fdb表都正确,但是拨号拨不上去,可以在OL T的上连口抓包,查看进出的包内容。如果有出去的包而无回来的包,则可以判断出是上游设备出问题。 如果fdb表学习不正确,则VLAN配置有问题,可以根据fdb表的情况,先判断问题出现在哪一个设备上,再查看VLAN配置有无问题。 其他处理方式: 如时延大、丢包、组播业务等问题,可分别在EPON系统与其他系统的接口处利用抓包工具查看定位,由于上联口只能封装单层vlan,Qinq和单层vlan方式会略有差别。 FTTN型ONU 与其他ONU差异 FTTN型ONU相对其他类型ONU比较独立,对于普通的数据、语音业务,OLT相当于“透传”的通道。 配置核查: FSWB Profile目录下 创建/修改/查看ADSL2+端口模板参数: add xaplus profile ; set dsl-profile ; show dsl-profile ; 主要查看4个方面: 1.编码类型(lineCoding) 一般编码类型在开通的下行速率低于8Mb/s时采用G .dmt,大于8M时采用adsl2plusauto。 2.线路类型(channelMode) 线路类型采用interleaved更为稳定 3.训练速率(dnFastMaxTxRate,dnIntlMaxTxRate,upFastMaxTxRate,upIntlMaxTxRate) ADSL 一般最大上行可达速率为800Kb/s,下行可达速率为8Mb/s ADSL2+一般最大上行可达速率为1Mb/s,下行可达速率为28Mb/s 配置时上行速率不要超过1Mb/s,推荐640Kb/s

学生信息管理系统数据库设计

数据库技术 实 验 报 告 学校 专业 年级 学号 姓名 年月日

学生信息管理系统数据库设计 一、数据库的建立 1. 建库说明 数据库的建立用企业管理器,基本表的建立用SQL语言。 数据库名称为:学生信息管理系统。 2. 建立数据库命令如下: Create database 学生信息管理系统 二、数据表的建立 1. 建表 命令: CREATE TABLE [dbo].[学生档案信息] ( [Sno] [varchar] (50) NOT NULL , [Sname] [char] (10) NOT NULL , [Ssex] [char] (10) NOT NULL , [Sclass] [char] (10) NOT NULL , [Birth] [int] (4) NOT NULL , [Saddress] [char] (10) NOT NULL , [Sdept] [varchar] (50) NOT NULL , [Stime] [int] (4) NOT NULL ,

) ON [PRIMARY] GO (2)班级设置信息表: 命令: CREATE TABLE [dbo].[班级设置信息] ( [Sgrade] [char] (10) NOT NULL , [Szclass] [int] (4) NOT NULL , [Syear] [char] (5) NOT NULL , [Scroom] [char] (5) NOT NULL , [Steacher] [char] (10) NOT NULL , [Stotal] [int] (4) NOT NULL , [Ssub] [varchar] (8000) NOT NULL , ) ON [PRIMARY] GO (3)院系信息表: 命令: CREATE TABLE [dbo].[院系信息] ( [Syname] [varchar] (50) NOT NULL , [Spro] [varchar] (1000) NOT NULL ,

VxWorks操作系统RTP介绍和使用方法

VxWorks 操作系统RTP 介绍和使用方法 从VxWorks 6.x开始引入RTP(VxWorks real time process projec模t) 式编程,这种模式的优点是应用程序相互独立,互不影响,而且增加了内核的稳定性,缺点是由于“内核态”与“用户态”的内存拷贝,其执行效率有所降低,随着CPU 速度越来越快,这点效率的牺牲已经越来越不重要。相比较于传统的DKM (downloadable kernel module project ),RTP适合多个团队独立运作,然后汇总 联试,这种模式除了全局函数不能再shell 里直接调用外,其对应用程序几乎不 做任何约束,原有的DKM 工程代码稍作修改即可正常运行。内核变化较大,需 要添加较多的组件,内存需要较好的划分,为保持应用程序直接调用函数调试的 习惯,需要封装接口供用户使用。 现简单的介绍RTP使用方法,并给出demo 代码供参考。 1. 新建并编译工程: (1) File->new-> VxWorks real time process projec如t, 图【1】 图【1】 (2) 一路next 后,选择如图【2】所示的编译器

图【2】 (3) 选择Finish 后,工程新建完毕。 (4) 导入源文件:这里的源文件名称是fooRtpApp.c ,一种较快捷的方式是选 中新建的工程,按下F5,源文件会出现在工程中. (5) 右键选择编译,出现如图【3】,选择Continue 继续。 图【3】 编译完成后,会生成vxe 格式的可执行文件,此处为usrAppA.vxe 。 2. 下载可执行性文件 待板子启动后,使用ftp 将vxe 文件下载到板子中。步骤如下: (1)运行->cmd,打开对话窗口,如图【4】所示:

文档管理系统的解决方案.doc

文档管理系统解决方案 2010.08

1概述 .............................................................................................................................................................................. - 4 - 1.1系统目标 (4) 1.2系统框架 (4) 2设计方案 ...................................................................................................................................................................... - 5 - 2.1系统管理 (5) 2.1.1组织机构 ........................................................................................................................................................ - 5 - 2.1.2人员管理 ........................................................................................................................................................ - 5 - 2.1.3编码配置 ........................................................................................................................................................ - 6 - 2.1.4权限管理 ........................................................................................................................................................ - 6 - 2.1.5文档后台管理 ................................................................................................................................................ - 6 - 2.2文档管理主页 (6) 2.2.1文档发布 ........................................................................................................................................................ - 6 - 2.2.2文档排名 ........................................................................................................................................................ - 6 - 2.2.3文档推荐 ........................................................................................................................................................ - 6 - 2.2.4文档分类 ........................................................................................................................................................ - 6 - 2.3文档管理功能 (6) 2.3.1文档上传 ........................................................................................................................................................ - 7 - 2.3.2文档下载 ........................................................................................................................................................ - 7 - 2.3.3文档阅读 ........................................................................................................................................................ - 7 - 2.3.4文档播放 ........................................................................................................................................................ - 7 - 2.3.5文档查找 ........................................................................................................................................................ - 8 - 2.3.6文档统计 ........................................................................................................................................................ - 8 - 2.4系统接口 (8)

VxWorks操作系统MakeFile

VxWorks操作系统MakeFile(一) 时间:2008-8-24 夜 版权申明:本文为水煮鱼为水煮鱼@博客园撰写,不得用于商业用途,如需摘用,请与水煮鱼联系。 1、介绍 本文将介绍为什么要将你的C源代码分离成几个合理的独立文档,什么时候需要拆分,那又怎么拆分呢? 然后再介绍如何使用GUN Make使你的编译和链接步骤自动化。可能你使用的是其他的make工具,但是其实道理都差不多。当然如果你对自己的编程工具有怀疑的话,可以不妨实际的试试。 2、多文件项目介绍 a. why? 为什么使用多文件项目?他们有什么好处呢? 从表面上看,多文件项目是够复杂的了,又要头文件,又需要extern申明,并且如果你要查找一个文件的话,还需要在更多的文件里搜索。 但是如果把其考虑成一个项目,那一个项目根据功能划分为小的模块,那就不难理解了。 想想如果是一个一万行代码,如果你把其放到一个文件里,则在编译的时候,则需要对一万行代码进行重新编译。不过如果你如果把其放到不同的文件里,那修改一行,则只需要编译一个文件就可以了。可能你会说,一万行代码,就算全部编译,那点时间也基本可以忽略不计,但是实际情况是,在一个大的系统里,可能代码达到几十万甚至上百万,千万行代码的规模。以我们的项目为例,目前代码规模已经达到了上千万行的级别,如果全部重新编译,则将耗费几个小时甚至半天的时间。如果将其划分多多个文件,则修改一行所引入的编译代码,将不会随着你代码规模的增大而增大。所以多个文件的优点不言自明了。 不过对于不便于搜索的问题,其实只要文件划分得当,也并不会造成多大的困难。其实,从多个目标文件生成一个程序包比从一个单一文件生成程序包要好的多。当然,实际上这是不是一个优势还与你所使用的系统有关。但是当使用gcc/ld(一个GUN C编译器/连接器)把一个程序包连接到一个程序时,在连接的过程中,它会尝试不去连接没有使用到的部分,但它每次只能从程序包中把一个完整的目标文件排除在外。因此,如果你修改了一个程序包中某一个目标文档中任何一个符号的话,那么这个目标文件整个都会被连接进来。要是一个程序包被非常充分的分解的话,那么经过链接后,得到的可执行文件会比从一个大目标文件组成的程序包连接得到的文件小的多。 并且常常我们的程序是模块化的,高内聚,低耦合,使得文件之间共享部分被减少到了最少,因此采用多文件的方式,可以比较容易的找到代码中的bug。 b.when? 那什么时候分解你的项目? 如果你开发的是一个大项目,在开始前,应该好好考虑一下你将如何实现,并且将生成几个文件来存放你的代码。当然,在项目的开发过程中,你可以建立新的我文件,但是这将打乱你的整体布局,可能造成你整体结构的调整。因此特别建

常用数据库管理系统介绍

常用数据库管理系 统介绍 1

常见数据库管理系统简介 当前市场上比较流行的数据库管理系统产品主要是Oracle、IBM、Microsoft和Sybase、mysql等公司的产品,下面对常见的几种系统做简要的介绍: 11.4.1 Oracle Oracle数据库被认为是业界当前比较成功的关系型数据库管理系统。Oracle公司是世界第二大软件供应商,是数据库软件领域第一大厂商(大型机市场除外)。Oracle的数据库产品被认为是运行稳定、功能齐全、性能超群的贵族产品。这一方面反映了它在技术方面的领先,另一方面也反映了它在价格定位上更着重于大型的企业数据库领域。对于数据量大、事务处理繁忙、安全性要求高的企业,Oracle无疑是比较理想的选择(当然用户必须在费用方面做出充分的考虑,因为Oracle数据库在同类产品中是比较贵的)。随着Internet的普及,带动了网络经济的发展,Oracle适时的将自己的产品紧密的和网络计算结合起来,成为在Internet应用领域数据库厂商的佼佼者。Oracle数据库能够运行在UNIX、Windows等主流操作系统平台,完全支持所有的工业标准,并获得最高级别的ISO标准安全性认证。Oracle采用完全开放策略,能够使客户选择最适合的解决方案, 2

同时对开发商提供全力支持。Oracle数据库系统的特点有: ?无范式要求,可根据实际系统需求构造数据库。 ?采用标准的SQL结构化查询语言。 ?具有丰富的开发工具,覆盖开发周期的各阶段。 ?数据类型支持数字、字符、大至2GB的二进制数据,为数据库的面向对象存储提供数据支持。 ?具有第四代语言的开发工具(SQL*FORMSSQL*REPORTS、SQL*MENU等)。 ?具有字符界面和图形界面,易于开发。Oracle7以后得版本具有面向对象的开发环境CDE2。 ?经过SQL*DBA控制用户权限,提供数据保护功能,监控数据库的运行状态,调整数据缓冲区的大小。 ?分布优化查询功能。 ?具有数据透明、网络透明,支持异种网络、异构数据库系统。并行处理采用动态数据分片技术。 ?支持客户机/服务器体系结构及混合的体系结构(集中式、分布式、客户机/服务器)。 ?实现了两阶段提交、多线索查询手段。 ?支持多种系统平台(Linux、HPUX、SUNOS、OSF/1、VMS、 Windows、OS/2)。 3

MPC8377硬件环境下vxworks仿真的建立过程

MPC8377硬件环境下vxworks仿真的建立过程 2012-8-7 U-BOOT常用命令: 重启:reset 查看环境变量:printenv 修改环境变量:例如修改PC机IP,setenv serverip “……” 保存环境变量:saveenv 下载bootrom:run laodvx 如果需要用到其他命令,在命令行输入“?”查看。 1.首先,需要在FLASH中烧写好U-BOOT,把串口和网线连接好(如果多串口和网口的话,请检查并接在正确的位置),打开串口调试工具并设置在数据读取状态,然后上电,在倒计时读秒完成前在命令输入行输入任何信息进入U-BOOT层。 命令行 U-BOOT读秒区 2.在命令行输入printenv命令会显示U-BOOT的信息,如果ip不是我们想要的,可以通过setenv serverip “……”来修改,如下图中就把ip从192.168.1.24

改为192.168.1.43,修改完成后需要saveenv,然后reset,整个修改完成。 Printenv命令后的ip信息 Setenv serverip ”192.168.1.43” 后的结果 3.下载bootrom。先找到vxworks编译好的bootrom.bin文件,例如:本PC 上的路径C:\WindRiver-GPPVE-3.6-PPC-Eval\vxworks-6.6\target\config\mds837x,如下图。 需要的bootrom文件 把bootrom复制到tftp软件所在的位置,如下图。

放置好的bootrom文件 然后启动tftp软件,并在命令行输入:run loadvx,成功后如下图,至此bootrom 下载完毕。 下载成功后tftp显示信息 4.Vxworks下载。首先启动Vxworks6.6自带的ftp server,并配置好登陆用户和密码以及相关设置,主要有两部分设置,如下图。

数据库信息管理系统JAVA实现

任课教师签名: 日期: 注:1. 以论文或大作业为考核方式的课程必须填此表,综合考试可不填。“简要评语” 栏缺填无效。 2. 任课教师填写后与试卷一起送院系研究生秘书处。 3. 学位课总评成绩以百分制计分。

图书管理信息数据库系统-JAVA实现 目录

一、需求说明 1、任务概述 满足在线书店管理的需求,实现管理流程。主要功能包括用户注册、用户登录、购物商场、在线购物、订单管理、系统导航、用户退出、权限控制等。 2、需求分析 功能需求 在线书店系统作为一个网络购物网站,它仿照淘宝网等知名购物网站,其总体要求即实现购物网站的基本功能。具体功能要求如下: 1)商品管理。这是管理员的功能。要实现增删改查图书、仓库管理的功能。 2)用户管理。包括用户注册、用户登录和用户退出三个方面,用户还可以更改部分注册信息。用户登录成功后,在首页面 可看到书籍展示。 3)购物车管理。可以修改、删除选购书籍,并保存购物列表。当用户退出时或session失效时,自动保存用户购物车列表 书籍。 4)订单管理。要实现生成订单,删除、修改、查询订单,提交订单。提交后的订单,只能查看订单信息,不能进行修改, 也不能删除。 5)权限控制。主页面和注册页面任何人都可以访问,其他页面,只有已经登录成功的用户才可访问;若用户还没有登录系 统,则返回到登录页面。 、数据描述 用户类型、权限类型、管理员等。 动态数据 新用户的注册、新书的录入、购书的信息、生成订单等等。 数据库介绍 数据库名称为shop,有八个表,分别为管理员表(Admin)、用户注册表(User)、图书信息登记表(Book)、图书上架信息登记表(Storage)、购物车图书列表(Shopcar),用户购买书籍的订单表(Order)、订单明细表(OrderBook)、购物车表(CartItem)。 3、系统功能概要图

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