当前位置:文档之家› 在UNIX裸设备和文件系统之间移动ORACLE

在UNIX裸设备和文件系统之间移动ORACLE

在UNIX裸设备和文件系统之间移动ORACLE
在UNIX裸设备和文件系统之间移动ORACLE

在UNIX裸设备和文件系统之间移动ORACLE

一、关于裸设备

1.1 什么是裸设备(RAW DEVICE)

裸设备是指未创建文件系统的磁盘分区(raw partition)或逻辑卷(raw logical volume),应用程序直接通过一

个字符设备驱动程序对它进行访问。如何对设备上的数据读写决定于使用它的应用程序。由于对裸设备的操作不通过UNIX的缓冲区,数据在ORACLE的数据缓冲区(BUFFER CACHE)和磁盘之间直接传递,所以使用裸设备在一定程度上能够提高I/O性能,适合I/O量大的系统。另外OPS/RAC (Oracle Parallel Server/Real Application Cluster)环境下,多个节点同时访问同一个数据库,所以CONTROL FILE、DATA FILE、REDO LOG都必须建在RAW DEVICE上。

1.2 裸设备的可用空间

不同的UNIX对裸设备的管理不完全相同,特别要注意的是某些UNIX在每个裸设备的头部要保留一定的空间,应用程序在使用裸设备时不可以覆盖这一部分,否则会对裸设备造成损坏。所以一个裸设备的实际可用空间是分配给裸设备的空间再减去这部分操作系统保留空间。下面是常用UNIX的OS Reserved Size列表:

UNIX OS Reserved Size

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

SUN Solaris 0

HP-UX 0

IBM AIX 4k

Tru64 UNIX 64k

Linux 0

1.3 dd命令

UNIX上读写裸设备不能使用cp, cpio, tar等命令,必须用dd,下面是几个dd常用参数的简单说明,更详细的信息请参考UNIX使用手册或用命令man dd。

dd [ operand=value ... ]

if=file 指定输入文件,缺省值是标准输入

of=file 指定输出文件,缺省值是标准输出

bs=n 设置输入和输出的块大小为n字节,也可以用“k”作单位

skip=n 在拷贝之前跳过n个输入块,缺省值是0

seek=n 在拷贝之前从输出文件首部跳过n块,缺省值是0

count=n 指定拷贝的块数,缺省拷贝到输入文件结束

1.4 对本文中示例的说明

a. 所有例子中ORACLE的DB_BLOCK_SIZE都是8k

b. /oradata是一文件系统目录

c. /dev/rlv_data,/dev/rlv_redo和/dev/rlv_ctrl是三个RAW DEVICE,大小均为8MB(8192k)

d. 在未提到操作系统时,默认是AIX,OS_RESERVED_SIZE=4K

二、移动数据文件(DA TAFILE)

2.1 在裸设备上建立数据文件

用以下命令建立表空间:

SQL> CREATE TABLESPACE ts_test DATAFILE '/dev/rlv_data ' SIZE 8180k;

SIZE指定的数值必须小于或等于8180k,否则语句将会失败:

ORA-01119: error in creating database file '/dev/rlv_data '

ORA-27042: not enough space on raw partition to fullfill request

这个最大值的计算方法如下:

8192k(RAW DEVICE SIZE) - 4k (OS_RESERVED_SIZE) - 8k (DB_BLOC K_SIZE) = 8180k

为什么还要减去一个DB_BLOCK_SIZE呢?这是因为ORACLE建立DATAFILE时,在命令中SIZE指定的大小之外,还要在文件头另加一个BLOCK,叫作“Oracle OS Header Block”,里面保存有这个文件的逻辑块大小和文件块数等信息。这一点并不是在RAW DEVICE上建DATAFILE特有的,如果你在文件系统上建一个DA TAFILE,指定SIZE 1000k的话,你用ls -l或dir命令看到的文件大小将是1008k (DB_BLOCK_SIZE=8K)。

2.2 在文件系统和裸设备之间移动数据文件

2.2.1 从文件系统到裸设备

a. 在文件系统上建一个4M的DA TAFILE

SQL> CREATE TABLESPACE test DA TAFILE '/oradata/test.dbf ' SIZE 4M;

b. 查看一下这个新建的DA TAFILE的大小(注:4202496 = 4M + 8K)

$ ls -l /oradata/test.dbf

-rw-r----- 1 oracle dba 4202496 Aug 29 15:01 /oradata/test.dbf

c. 按下表公式确定dd的参数

d. 在数据库没有OPEN的状态下,用dd进行拷贝,下面给出命令及输出

AIX$ dd if=/oradata/test.dbf of=/dev/rlv_data bs=4k seek=1

1026+0 records in

1026+0 records out

Tru64$ dd if=/oradata/test.dbf of=/dev/rlv_data bs=64k seek=1

64+1 records in

64+1 records out

Other$ dd if=/oradata/test.dbf of=/dev/rlv_data bs=1024k

4+1 records in

4+1 records out

2.2.2 从裸设备到文件系统

a. 确定数据文件实际大小file_size,用于下一步计算dd的参数count。如果count计算不对,拷贝出的数据文件无效,数据库无法打开。

SQL> SELECT bytes, blocks, bytes/blocks db_block_size, bytes+bytes/blocks fi le_size

FROM dba_data_files WHERE file_name= '/dev/rlv_data ';

BYTES BLOCKS DB_BLOCK_SIZE FILE_SIZE

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

4194304 512 8192 4202496

b. 按下表公式确定dd的参数,min表示二者之中取较小的

c. 在数据库没有OPEN的状态下,用dd进行拷贝,下面给出命令及输出

AIX$ dd if=/dev/rlv_data of=/oradata/test2.dbf bs=4k skip=1 count=1026

1026+0 records in

1026+0 records out

Tru64$ dd if=/dev/rlv_data of=/oradata/test2.dbf bs=8k skip=8 count=513

513+0 records in

513+0 records out

Other$ dd if=/dev/rlv_data of=/oradata/test2.dbf bs=8k count=513

513+0 records in

513+0 records out

2.2.3 无论从FILE SYSTEM拷贝到RAW DEVICE还是反之,想让ORACLE以新的数据文件打开数据库,必须进行RENAME操作

SQL> STARTUP MOUNT;

SQL> ALTER DA TABASE RENAME FILE 'oldfilename ' TO 'newfilename ';

SQL> ALTER DA TABASE OPEN;

三、移动联机重作日志(ONLINE REDO LOG)

3.1 在裸设备上建ONLINE REDO LOG

用以下命令增加一组ONLINE REDO LOG:

SQL> ALTER DATABASE ADD LOGFILE GROUP 4 '/dev/rlv_redo ' SIZE xxxxk;

在裸设备上建REDO LOG时也要计算SIZE子句可使用的最大值,方法类似于在2.1中建DA TAFILE时的计算方法,唯一不同的是要把公式中的DB_BLOCK_SIZE换成REDO_BLOCK_SIZE(即REDO LOG的逻辑块大小)。这个REDO_BLOCK_SIZE在不同操作系统上取值不同,用以下两种方法均可得到这个值,同时还可计算出REDO LOG的实际文件大小file_size):

方法1:dump现有的REDO LOG FILE

SQL> ALTER SYSTEM DUMP LOGFILE '/oradata/redo01.log ';

SQL> SHOW PARAMETER user_dump_dest

查看user_dump_dest目录下刚产生的trc文件:

FILE HEADER:

Software vsn=135294976=0x8107000, Compatibility Vsn=135290880=0x8106000

Db Id=3227187598=0xc05af98e, Db Name= 'V817 '

Control Seq=12474=0x30ba, File size=8192=0x2000

File Number=5, Blksiz=512, File Type=2 LOG

方法2:用ORACLE提供的工具dbfsize,对文件系统和RAW DEVICE上的文件都适用

$ dbfsize /oradata/redo01.log

Database file: /oradata/redo01.log

Database file type: file system

Database file size: 8192 512 byte blocks

从以上两个输出都可得知REDO_BLOCK_SIZE=512,blocks=8192

file_size=(blocks + 1) * REDO_BLOCK_SIZE = (8192+1)*512=4194816

如果已知所在平台的REDO_BLOCK_SIZE,也可以通过查询数据字典来计算file_size:

SQL> SELECT b.member, b.bytes, b.bytes+512 file_size FROM v$logfile a, v$log b

WHERE a.group#=b.group# and a.member= '/oradata/redo01.log ';

MEMBER BYTES FILE_SIZE

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

/oradata/redo01.log 4194304 4194816

下表列出了常用OS上的ORACLE REDO_BLOCK_SIZE:

OS REDO_BLOCK_SIZE

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

Windows 512

SUN Solaris 512

HP-UX 1024

IBM AIX 512

Compaq Tru64 UNIX 1024

Linux 512

3.2在文件系统和裸设备之间移动ONLINE REDO LOG

参见 2.2拷贝DA TAFILE的过程,唯一不同是要把DB_BLOCK_SIZE换成REDO_BLOCK_SIZE。另外,REDO LOG也可以不用dd进行拷贝,而采用删除重建的方法:

SQL> SELECT * FROM v$log; --be sure it 's not current and archived

SQL> ALTER SYSTEM SWITCH LOGFILE; --if it’s current, force switch SQL> ALTER DA TABASE DROP LOGFILE GROUP n;

SQL> ALTER DA TABASE ADD LOGFILE GROUP n 'newlogfilename ' SIZE xxxxM;

四、移动控制文件(CONTROL FILE)

4.1在裸设备上建控制文件

ORACLE的控制文件是执行CREATE DA TABASE或CREATE CONTROLFILE语句时生成的,其名字是由初始化参数文件init$ORACLE_SID.ora中的control_files参数指定。CONTROL FILE的大小不能显式指定,而且随着数据库的运行,它还会自动增长,所以为控制文件划分裸设备时要根据经验,留好足够的余量,以免不必要的麻烦。CONTROL FILE的逻辑块大小和DB_BLOCK_SIZE相同,而且文件头部也和DATAFILE 一样有一块“Orac le OS Header Block”。

4.2在文件系统和裸设备之间移动控制文件

4.2.1 使用dd复制

拷贝CONTROL FILE的方法基本与2.2中拷贝DA TAFILE相同,唯一不同是当由裸设备向文件系统拷贝时,如何确定CONTROL FILE的实际大小file_size (ORACLE数据字典里没有CONTROL FILE大小的数据)。下面介绍两个方法:

方法1:执行完下面的SQL语句,再到user_dump_dest目录查看刚产生的trc文件

SQL> ALTER SESSION SET EVENTS 'IMMEDIATE TRACE NAME CON TROLF LEVEL 10 ';

FILE HEADER:

Software vsn=135266304=0x8100000, Compatibility Vsn=134217728=0x8000000

Db Id=1937054535=0x73751b47, Db Name= 'O817 '

Control Seq=5838=0x16ce, File size=476=0x1dc

File Number=0, Blksiz=8192, File Type=1 CONTROL

方法2:用ORACLE提供的工具dbfsize

$ dbfsize /oradata/control01.ctl

Database file: /oradata/control01.ctl

Database file type: file system

Database file size: 476 8192 byte blocks

从以上两个方法的输出结果都可得到file_size=(476+1)*8192=3907584

4.2.2 使用SQL命令复制

相对于4.2.1介绍的用dd拷贝CONTROL FILE,下面用SQL语句进行复制的方法更为简洁:

SQL> STARTUP MOUNT

SQL> ALTER DA TABASE BACKUP CONTROLFILE TO 'newcontrolfile ';

语句中newcontrolfile既可以是文件系统文件,也可以是RAW DEVICE,所以在MOUNT 状态下运行这个命令就可以生成一个与现有CONTROL FILE完全相同CONTROL FILE 复件。

4.2.3 修改初始化参数文件(init$ORACLE_SID.ora)

无论用 4.2.1还是 4.2.2的方法产生了新的CONTROL FILE,为了让数据库使用新的

CONTROL FILE,只要修改init$ORACLE_SID.ora里的control_files参数即可。

五、Recovery Manager (RMAN)

RMAN是ORACLE8开始提供的备份与恢复工具,它能自动正确地跳过裸设备头部的OS Reserved Block,通过使用RMAN的BACKUP和RESTORE功能,可以方便地达到把DATAFILE和CONTROL FILE在文件系统和裸设备之间移动的目的,具体操作过程在这里不再详述,请参见RMAN手册。

磁盘空间管理模拟实验

目录 摘要 (2) 前言 (3) 正文 (4) 1. 实验目的 (4) 2. 设计思想 (4) 3. 实验结构图 (5) 4. 各模块的伪码算法 (5) 5. 测试分析 (10) 6. 测试结果 (11) 7. 源程序 (14) 总结 (24) 参考文献 (25) 致谢 (26)

摘要 要把文件信息存放在存储介质上,必须先找出存储介质上可供使用的空闲块。存储介质上某个文件不再需要时,又要收回它所占的存储空间作为空闲块。用户作业在执行期间经常要求建立一个新文件或撤消一个不再需要的文件,因此,文件系统必须要为它们分配存储空间或收回它所占的存储空间。如何实现存储空间的分配和收回,取决于对空闲块的管理方法,主要有两种对磁盘存储空间的分配和收回的方法:位示图法(用一张位示图(简称位图)来指示磁盘存储空间的使用情况),空闲块链接法(在UNIX操作系统中,把磁盘存储空间的空闲块成组链接)。 关键词:磁盘的分配和回收管理;位示图;成组链接。

前言 通过该题目的设计过程,掌握磁盘存储管理的原理、软件开发方法并提高解决实际问题的能力。学习使用位示图管理磁盘空间的分配与回收,了解程序运行前和回收磁盘的物理地址过程。学会用模拟UNIX系统的成组链接法实现磁盘空间的管理。了解UNIX的命令及使用格式,熟悉UNIX/LINUX的常用基本命令,练习并掌握UNIX提供的vi编辑器来编译C程序,学会利用gcc、gdb编译、调试C程序。希望通过本次设计过程可以提高自己的分析问题的能力和实际动手的能力,将学到的知识用于实践中。

正文 1. 实验目的 磁盘格式化时,系统把磁盘存储空间分成许多磁道。每个磁道又分成若干个扇区(又叫做块)。这些空间就是用来存放用户文件的。当用户的文件不再需要时,就应该删除。把一个文件存放到磁盘上时,可以组织成连续文件,链接文件,索引文件等。因此,磁盘空间的分配方法也有两种,一种是连续空间的分配;一种是不连续空间的分配(又叫动态分配)。如何充分有效的利用磁盘空间,是操作系统应解决的重要课题之一。通过本实验,使学生对磁盘空间的分配与回收有一个较深入的理解。 2. 设计思想 位示图法: 一个简单的管理方法是用一张位示图(简称位图)来指示磁盘存储空间的使用情况。一个盘组的分块确定后,根据分配的总块数决定位图由多少个字组成,位图中的每一位与盘组分块一一对应。位示图是一张可以反映磁盘空间是否被占有的模拟图,用一个二维数组表示磁盘的空间,数组内每一个元素表示磁盘内相应的分块,数组元素为“1”表示该块已被占,“0”表示该块为空。数组元素位置与磁盘分块一一对应,即可描述出磁盘空间的利用情况。 成组链接法: 首先定义磁盘分配数组并初始化,9个一维数组分别表示9个空闲块,程序运行时,先将专用块A〔0〕复制到内存中,然后进行功能选择,分配时,查MA,从中找出空闲块号,当一组的空闲块只剩第一块时,应把该块中指出的下一组的空闲块数和块号复制到专用块这,然后把该块分配给申请者,当一组的空

UNIX操作系统常用命令使用方法

UNIX系统及BSJ2200系统培训 第一章SUN系统介绍 第一节SUN的发展史 (一)硬件体系 81--89 Sun1/2/3 CISC Motrala 680x0系列 89--94 Sun4/60 sparc1 Risc sparc 65 sparc1+ 70 sparc2 Server : Sun/290/670/690 93--96 Sparc10/20 SuperSparc Server : 1000/2000 96--97 Ultra1(140/170/170E/200E) UltraSparc SBUS体系结构,UPA接口 Ultra2 Server : E150,E3000 98--99 Ultra5 ,Ultra10 PCI体系结构(IDE外设) Ultra30,Ultra60 Server : E250,E450,E3500 2000-至今BLADE 150/2000/2500 (二)软件体系 Solaris 1.x SunOS 4.1.3+OpenWindow 1.x BSD Solaris 2.x System V 32bit 2.5.1 SunOS 5.5.1 +OpenWindows 2.6 SunOS5.6+CDE1.2 Solaris 2.7(7) 64 bit Solaris 2.8(8) for sparc平台/intel x86平台 Solaris 2.9(9) for sparc平台/intel x86平台 第二节SUN系统的安装 以SUN Ultra5(9.1G)硬盘Solaris2.7为例,步骤如下: 1、在OK提示下输入:boot cdrom 2、出现“Select Language and local”时,选择“Continue”按钮。 3、出现“The Solaris installation program”时,选择“Continue”按钮。 4、出现“Identify this system”时,选择“Continue”按钮。 5、出现“Hostname”时,先输入机器名后,再选择“continue”按钮。 6、出现“Network connectively”时,先选择“Yes”,再选择“Continue”。 7、出现“IP Address”时,输入IP后,选择“Continue”。 8、出现“Confirm Infirmation”时,选择“Continue”。 9、出现“Name service”时,先选择“None”后,再选择“Continue”。 10、出现“Confirm Infirmation”时,选择“Continue”。 11、出现“Subnets”时,先输入“NO”,再输入“Continue”。 12、出现“Time Zone Geographic region”时,输入“Set”。 13、出现“Geographic region”时,选“Asia Eastern HongKong”。

unix文件系统UNIX系统下各文件的作用

unix文件系统:UNIX系统下各文件的作用疯狂代码 https://www.doczj.com/doc/4618246816.html,/ ?:http:/https://www.doczj.com/doc/4618246816.html,/UnixFreeBsd/Article26179.html /etc/auth:数据库文件 /etc/auth/subsystems:带保护子系统授权数据库 /etc/auth/system:整个系统范围内授权数据 /etc/conf:系统配置主目录 /etc/conf/bin:和unix核心有关命令 /etc/conf/cf.d:包含了用于连接unix核心所需配置文件和主要系统配置命令 /etc/conf/init.d:系统串口状态描述文件 /etc/conf/mfsys.d:unix系统上几个文件系统描述信息文件 /etc/conf/node.d:设备节点描述文件 /etc/conf/pack.d:核心目标模块 /etc/conf/pack.d/Sdsk:SCSI硬盘驱动 /etc/conf/pack.d/Srom:SCSI CD-ROM驱动 /etc/conf/pack.d/Stp:SCSI磁带接口卡驱动 /etc/conf/pack.d/ad:ADAPTEC 154X SCSI接口卡驱动 /etc/conf/pack.d/aio:异步硬盘I/O驱动 /etc/conf/pack.d/astmf:增强型VGA显示接口卡 /etc/conf/pack.d/aud:系统审计 /etc/conf/pack.d/busmouse:总线形鼠标驱动 /etc/conf/pack.d/cdb:MC146818驱动(CMOS时钟) /etc/conf/pack.d/cdt:CD-ROM/TAPE驱动 /etc/conf/pack.d/cga:IBM彩色图形接口板驱动 /etc/conf/pack.d/ciha:386/486CBUS SCSI硬盘控制卡驱动 /etc/conf/pack.d/clone:(安装X sight所需)clone模块 /etc/conf/pack.d/cn:主控台驱动  /etc/conf/pack.d/cpqs:Compaq SCSI磁带接口卡驱动 /etc/conf/pack.d/cpyrt:版权设备驱动 /etc/conf/pack.d/cr_uni: Corollary显示接口卡驱动 /etc/conf/pack.d/ct:Wangtec盒式带驱动 /etc/conf/pack.d/da:VGA、EGA、CGA设备驱动 /etc/conf/pack.d//dda:merge和vp/ix直接设备访问驱动 /etc/conf/pack.d/dk:硬盘定位(Layout)支持驱动 /etc/conf/pack.d/dma:DMA通道驱动

unix文件系统

模拟Unix文件系统寒假实践报告 学号:19212122 班级:计科121 姓名:单旭 组长:顾建东

课程设计具体进展: 以初步完成设计及代码编写,需要进行进一步的调试和完善。 具体设计: 【课设原理】 UNIX采用树型目录结构,每个目录表称为一个目录文件。 一个目录文件是由目录项组成的。每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;后14B为文件名,是该文件的外部标识。所以,文件目录项记录了文件内、外部标识的对照关系。根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。UNIX的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。UNIX中的文件系统磁盘存储区分配图如下: i节点区文件存储区 本次课程设计是要实现一个简单的模拟UNIX文件系统。我们在磁盘中申请一个二进制文件模拟UNIX内存,依次初始化建立位示图区,I节点区,数据块区。并给已打开的文件建立文件打开表。 设计思想: 先建立512个块,每个块对应512个字节,在建立一个有512个元素的字符数组,每个元素对应相应的块号,不管是文件或是目录都有I节点,建立自己设定数目元素的I节点表,并依次把位图区,I节点表,数据块区每个元素映射到一个二进制文件上。在每一次的操作中如果相应元素有变动,则对应在文件中更新输出相应数据,以便下一次启动程序的时候可以快速导入上一次的数据。 数据结构: //用户 typedef struct { char user_name[10]; // 用户名 char password[10]; // 密码 } User; //i节点 typedef struct { short inum; // 文件i节点号 char file_name[10]; // 文件名 char type; // 文件类型 char user_name[10]; // 文件所有者

UNIX和Linux操作系统概述

第1章UNIX和Linux操作系统概述 练习题和解答 1.在UNIX大家族的以下分支中,哪两个分支对成就UNIX的辉煌起到了至关重要的作用? A.MIT B.GNU C.BSD D.POSIT E.BESYS F.System V 【解答】这一题是测试你对UNIX的简要发展史以及对UNIX发展影响巨大的两个分支的熟悉程度。根据本章1.2节有关UNIX的简要发展史的介绍——对UNIX操作系统的发展贡献最大的是它的两个分支——加州大学Berkeley分校的BSD和AT&T公司的System V,可以断定答案C和F是正确的。 答案:C和F 2.为什么Linux操作系统总是在一个被称为Linux Standard Base(LSB)的通用标准下开发和颁布? A.防止互用性(interoperability) B.防止服从POSIX标准 C.确保应用一级的多样性 D.确保不同发布之间的兼容性 【解答】这一题是测试你对UNIX和Linux设计思想和实现的理解程度。虽然在本章中并没有直接讨论过本题的答案,但是根据本章1.2节~1.6节的介绍我们可以断定只有答案D是正确的,因为其他几个答案都与UNIX和Linux设计理念相违背。 这里需要解释的是POSIX是IEEE标准,其全名是Portable Open Systems Interface(可移植开放系统接口/界面)。 答案:D 补充练习题和解答 3.UNIX被称为有史以来最稳定的操作系统,请问在以下所列的原则中有哪两个对这种稳定性起到了比较大的作用?

A.容易修改终端用户程序 B.所有程序的配置数据都以二进制文件存储 C.整个策略的决策都是由内核做出的 D.UNIX操作系统中的每一件东西或者是一个文件或者是一个进程【解答】这一题是测试你对UNIX设计理念的理解程度。根据本章1.3节有关UNIX 设计理念的解释——所有的操作系统配置数据都存储在正文文件中,可以断定答案B是错误的。 根据本章1.3节有关UNIX设计原则的介绍——“每一个操作系统命令或应用程序都很小,而且只完成单一的功能。UNIX操作系统提供了许多小的应用程序,每个应用程序都能够很好地执行单一的功能。当需要一个新功能时,UNIX的通用原则是为此创建一个单独的程序而不是扩展一个已经存在的应用程序的功能。”,可以断定答案C是错误的。 利用排除法可以断定,答案A和D是正确的。 答案:A和D 4.由自由软件基金会(Free Software Foundation,FSF)发起的GNU项目的目标就是创建一个自由的UNIX克隆。根据你的理解,以下哪个陈述适用于FSF的“自由”这一术语? A.在获得软件的同时源代码将免费提供 B.软件是全部免费的而仅仅收取修复软件故障的费用 C.软件是以可运行(可安装)形式免费自由分发的 D.软件是自由分发的但是并没有提供再分发这个软件的自由 【解答】这一题是测试你对GNU项目与自由软件的熟悉程度。根据本章1.4节有关GNU项目与自由软件的介绍——“你有修改该程序满足自己需求的自由(为使该自由实际上可实施,你必须可接触源代码,因为没有源代码的情况下,在一个程序中做修改是非常困难的)。”,可以断定答案A是正确的。 根据本章1.4节有关GNU项目与自由软件的介绍——“自由软件(Free Software)这一术语有时被错误地理解,其实它与价格无关。”,所以答案B和C肯定是错误的。 根据本章1.4节有关GNU项目与自由软件的介绍——“你有权利发布该程序修改过的版本,从而让其他人得益于你的改进。”,可以断定答案D是错误的。 答案:A 5.多用户可以共享一个UNIX计算机,这使得利用一个用户的空闲时间来服务其他用户成为可能。操作系统的这一特性被称为什么? A.数据共享 B.时间共享 C.一次性初始化 D.轻量级的内核线程

操作系统模拟unix文件系统实验报告

操作系统大型实验 班级:学号:姓名: 一实验介绍…………………………………………………………………… 1.实验名称 2.实验目的 3.实验内容及要求 二实验环境…………………………………………………………………… 三实验设计…………………………………………………………………… 1.数据结构设计 2.系统流程设计 3.实现命令操作 四模块详解…………………………………………………………………… 1 .文件操作 2 .用户操作 五实验演示…………………………………………………………………… 1 .初始化磁盘块 2 .用户登录 3 .目录操作 4 .文件操作 六源代码……………………………………………………………………… 七实验心得体会…………………………………………………………………… 1.调试中遇到的问题总结 2.实验感悟

一、实验介绍 1.实验名称 操作系统大型实验 2.实验目的 完成一个 UNIX/Linux文件系统的子集的模拟实现,了解Unix文件系统的实现机制。 3.实验内容及要求 (1)文件卷结构设计 0#块可省略 I节点栈及空间为20项 块大小为512字节 卷盘块数大于100 I节点盘块数大于10块 (2)I节点结构设计 文件大小 文件联接计数 文件地址 文件拥有者 文件所属组 文件权限及类别 文件最后修改时间 其中文件地址为六项:四个直接块号,一个一次间址,一个两次间址 (3)目录结构 用16字节表示,其中14字节为文件名,2字节为I节点号 (4)用户及组结构 用户信息中包括用户名、口令,所属组,用户打开文件表 (5)文件树结构 除(4)要求外,适当考虑UNIX本身文件树结构 (6)实现功能 Ls 显示文件目录 Chmod 改变文件权限 Chown 改变文件拥有者 Chgrp 改变文件所属组 Pwd 显示当前目录 Cd 改变当前目录 Mkdir 创建子目录 Rmdir 删除子目录 Mv 改变文件名 Cp 文件拷贝 Rm 文件删除 Ln 建立文件联接 Cat 连接显示文件内容 Vi 文件写入 Mk 创建文件

unix操作系统

Unix操作系统浅析 摘要:本文较详细的介绍了什么是UNIX操作系统,以及UNIX操作系统的发展历史,UNIX系统的基本结构,UNIX操作系统的优势,UNIX操作系统和LINUX操作系统的区别和联系。 关键字:UNIX,LINUX 一、引言 UNIX ,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。UNIX操作系统最早由Ken Thompson、D ennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。经过长期的发展和完善,目前已成长为一种主流的操作系统技术和基于这种技术的产品大家族。由于UNIX具有技术成熟、结构简练、可靠性高、可移植性好、可操作性强、网络和数据库功能强、伸缩性突出和开放性好等特色,可满足各行各业的实际需要,特别能满足企业重要业务的需要,已经成为主要的工作站平台和重要的企业操作平台。它主要安装在巨型计算机、大型机上作为网络操作系统使用,也可用于个人计算机和嵌入式系统。曾经是服务器操作系统的首选,占据最大市场份额,但最近在跟WINDOWS SERVER以及Linux的竞争中有所失利。 二、UNIX历史 初创期Unix的诞生和Multics(Multiplexed Information and Computi ng System)是有一定渊源的。Multics是由麻省理工学院,AT&T贝尔实验室和通用电气合作进行的操作系统项目,被设计运行在GE-645大型主机上,但是由于整个目标过于庞大,糅合了太多的特性,Multics虽然发布了一些产品,但是性能都很低,最终以失败而告终。AT&T最终撤出了投入Multics项目的资源,其中一个开发者,Ken Thompson则继续为GE-645开发软件,并最终编写了一个太空旅行游戏。经过实际运行后,他发现游戏速度很慢而且耗费昂贵——每次运行会花费75美元。在Dennis Ritchie的帮助下,Thompson用PDP-7的汇编语言重写了这个游戏,并使其在DEC PDP-7上运行起来。这次经历加上Multics 项目的经验,促使Thompson开始了一个DEC PDP-7上的新操作系统项目。Thom pson和Ritchie领导一组开发者,开发了一个新的多任务操作系统。这个系统包括命令解释器和一些实用程序,这个项目被称为UNICS(Uniplexed Informat ion and Computing System),因为它可以支持同时的多用户操作。后来这个名字被改为UNIX。发展期最初的Unix是用汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的。B语言在进行系统编程时不够强大,所以Thompson和Ritchie对其进行了改造,并与1971年共同发明了C语言。1973 年Thompson和Ritchie用C语言重写了Unix。在当时,为了实现最高效

unix文件系统详解

UNIX文件系统的路径组织结构 UNIX并不使用驱动器名如C: D:等来标记一硬盘或分区,在整个系统上,不管有多少个硬盘,分区是怎样的,只有一个根目录,叫做root 标记为/ ,其下任何一个子目录,却可以是一个硬盘或一个分区,而且是可随时改变的,比如今天你可以设置/tmp 为硬盘上一个分区,明天你可以设置他为一个你新装的硬盘,如果你需要对这方面深入了解,你必须去看看这方面的专业书籍。现在我要让你知道的是在通常情况下,一个UNIX系统的各个标准目录下面的文件是什么,以免你哪天万幸进入了人家的系统,但连人家的主页在那里都找不到,下面以FreeBSD为例,说说UNIX文件系统的路径组织结构 FreeBSD和其他UNIX类操作系统一样有一套"标准"的路径组织结构。在标准两个字上加上引号是因为各种UNIX类操作系统的路径组织结构虽基本相同,但总存在一些小的差别。FreeBSD的这种路径组织结构为系统管理提供了很大的方便,用户可以方便的确定所需要的文件存储的位置。 / 根文件系统,用于存储系统内核,启动管理和其他文件系统的装载点。 /bin 系统启动时需要的一些通用可执行程序。 /cdrom 光盘驱动器的装载点。 /compat 与系统兼容有关的内容,如系统模拟等。 /dev 设备入口点。在UNIX系统上,每个设备都作为一个文件来看待,这里放着所有系统能够用到的各个设备 /etc 各种配置文件。非常重要的一个目录,所有的配置文件(你可以看成是windows 的注册表)包括用户密码文档等存放在这里 /mnt 软盘等其他文件系统的装载点。 /modules 内核可装载模块。 /proc 进程文件系统,存储指向当前活动进程的虚拟内存的伪文件。 /root root用户的工作目录。 /sbin 系统可执行文件。 /stand 独立执行的程序,sysinstall就在这个目录下。在安装配置系统时用到 /usr 第二个文件系统。基本上是和系统核心无关但又属于操作系统的一部分的一个目录,大多数的应用程序,还有各用户的私有资料存放在这个子系统

UNIX操作系统课程设计

操作系统课程设计 模拟UNIX文件系统的设计及实现 院系:国际教育学院 班级:计07 – 4班 姓名:符龙 指导教师:孙昌立 2011 年5 月18 日

操作系统课程设计任务书 一、题目:银行家算法 二、设计要求 (1)小组成员分工协作完成。要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。 (2)查阅相关资料,自学具体课题中涉及到的新知识。 (3)采用结构化、模块化程序设计方法设计,功能要完善,界面美观。 (4)所设计的系统应有菜单、动画和音乐。 (5)按要求写出课程设计报告,并于设计结束后1周内提交。其主要内容包括:封皮、课程设计任务书,指导教师评语与成绩、目录、概述、软件总体设计、详细设计、软件的调试、总结、谢启、附录:带中文注释的程序清单、参考文献。报告一律用A4纸打印,中文字体为宋体,西文字体用Time New Roma,一律用小四号字,行距采用“固定值”18磅,首行缩进2字符。总体设计应配合软件总体模块结构图来说明软件应具有的功能。详细设计应用传统或N-S流程图和屏幕抓图说明,调试的叙述应配合出错场景的抓图来说明出现了哪些错误,如何解决的。 三、课程设计工作量 由于是设计小组团结协作完成设计任务,一般每人的程序量在200行有效程序行左右,不得抄袭。 四、课程设计工作计划 2011年5月10日,指导教师讲课,学生根据题目准备资料; 2011年5月12日,设计小组进行总体方案设计和任务分工; 2011年5月13日~2009年6月23日,每人完成自己承担的程序模块并通过独立编译; 2011年5月14日~2009年6月29日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行; 2011年5月16日,验收、撰写报告; 2011年5月18日,验收或总结。 指导教师签章 教研室主任签章 操作系统课程设计指导教师评语与成绩

操作系统课程设计--基于Linux的模拟文件系统的设计与实现

简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。 Linux不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。用户不但可以从Internet上下载Linux及其源代码,而且还可以从Internet上下载许多Linux的应用程序。可以说,Linux本身包含的应用程序以及移植到Linux上的应用程序包罗万象,任何一位用户都能从有关Linux的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。这对Windows NT、Windows98、MS-DOS或OS/2等商品化操作系统来说是无法做到的。 Linux具有:稳定、可靠、安全的优点,并且有强大的网络功能。其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。在相关软件的支持下,可实现WWW、FTP、DNS、DHCP、E-mail等服务,还可作为路由器使用,利用IPCHAINS/IPTABLE网络治理工具可构建NAT及功能全面的防火墙。 Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux 操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。

第一章:UNIX操作系统简介

第一章:UNIX操作系统简介 学习目标 学完这一章,你能做到以下事情: 描述UNIX系统的基本组成和基本功能 1.1 什么是操作系统? 操作系统是一种特殊的用于控制计算机(硬件)的程序(软件)。 操作系统在资源使用者和资源之间充当中间人的角色。为众多的消耗者协调分配有限的系统资源。系统资源包括,CPU,内存,磁盘,和打印机。举个例子,一个用户(也可以是程序)将一个文件存盘,操作系统就会开始工作:管理磁盘空间的分配,将要保存的信息由内存写到磁盘等。 当用户要运行一个程序时,操作系统必须先将程序载入内存,当程序执行时,操作系统会让程序使用CPU。在一个分时系统中,通常会有多个程序在同一时刻试图使用CPU。 操作系统控制应用程序有序地使用CPU ,就好象一个交通警察在一个复杂的十字路口指挥交通。十字路口就象是CPU;每一条在路口交汇的支路好比一个程序,在同一时间,只有一条路的车可以通过这个路口,而交通警察的作用就是指挥让哪一条路的车通过路口,直到让所有路口的车辆都能通过路口。 UNIX操作系统的历史 UNIX操作系统1969年在贝尔实验室诞生。Ken Thompson在Rudd Canaday, ,Doug Mcllroy,Joe Ossana,and Dennis Ritchie,的协助下,写出一个小的分时系统,开始得到关注,在许诺为实验室的管理人员提供一个文档准备工具后,UNIX先驱们可以使用到一台更大的计算机,从而得以继续他们的开发工作。 在七十年代的中期,一些大学得到使用UNIX的许可,并很快在学院之间得到广泛流行,其主要的原因是: 小巧:最早的UNIX系统只占用512K字节的磁盘空间,其中系统内核使用16K,用户程序使用8K,文件使用64K。 灵活:源代码是可利用的,UNIX是用高级语言写成,提高了操作系统的可移植性。 便宜:大学能以一盘磁带的价格得到一个UNIX系统的使用许可。早期的UNIX系统提供了强大的性能,使其能在许多昂贵的计算机上运行。 以上优点在当时掩盖了系统的不足: 没有技术支持:AT&T在当时大部分的资源和都用在MUTICS上,没有兴趣 开发UNIX系统。 Bug的修补:由于没有技术支持,bug的修补也得不到保证。 很少的,或者根本没有说明文档:用户有问题经常只能是去看源代码。 当UNIX传播到位于California的Berkeley大学的时候,Berkeley大学的使用者们创建了自己的UNIX版本,在得到国防部得支持后,他们开发出了许多新的特性。但是,作为一个研究机构,Berkeley大学提供的版本和A T&T的版本一样,也没有技术支持。 当A T&T意识到这种操作系统的潜力后就开始将UNIX商业化,为了加强产品性能,他们在AT&T的不同部门进行UNIX系统开发,并且开始在系统中结合Berkeley开发出的成果。UNIX最终的成功可以归结为: 一个灵活的、包含多种工具的用户界面与操作环境。 模块化的系统设计可以很容易地加入新的工具。 支持多进程,多用户并发的能力。

Unix操作系统介绍

UNIX操作系统简介 UNIX发展过程 UNIX系统是美国麻省理工学院(MIT)在1965年开发的分时操作系统 Multics(Multiplexed Information and Computing Service System)的基础上不断演 变而来的,它原是MIT和贝尔实验室等为美国国防部研制的。贝尔实验室的系统程序设计人员汤普逊(Thompson)和里奇(Ritchie)于1969年在 PDP—7计算机上成功地开发了16位微机操作系统。该系统继承了 Multics系统的树形结构、Shel1命令语言和面向过程的结构化设计方法,以及采用高级语言编写操作系统等特点,同时,又摈弃了它的许多不足之处。为了表示它与 Multics 既继承又 背叛的关系,该系统命名为UNIX,UNIX中的 UNI正好与 Multi相对照,表示UNIX系统不像 Multics系统那样庞大和复杂,而 X则是 cs的谐音。 由于当时美国政府禁止AT&T经营计算机业务,所以在整个七十年代,UNIX 没能作为商品进入市场,而主要是提供给学校和科研机构等非赢利单位使用。 1972年, UNIX系统开始移植到 PDP-l l系列机上运行,在1979年,贝尔实验 室又将其移植到类似于 IBM370的32位机上运行,并公布了得到西部电气公司正式承认的 UNIX第七版。在1980年又公布了为 VAX-l l/780计算机编写的操作系统 UNIX32V。在此基础上,加里福尼亚大学伯克利分校同年发表了 VAX-l l型机用的 BSD4.0和 BSD4.1版本。1982年,贝尔实验室又相继公布了 UNIX systems III的3.0、4.0和5.0等版本。它们是对 UNIX32V的改进,但却不同于BSD4.0和 BSD4.1版本。从此, UNIX系统走上了以 AT&T和伯克利分校二者为主的开发道路。例如,1983年 AT&T推出了 UNIX systems V和几种微处理机上的 UNIX操作系统。而伯克利分校公布了 BSD4.2版本。在1986年,UNIX systems V又发展为它的改进版 Res2.1和Res3.0,而 BSD4.2又升级为BSD4.3。 在这种背景下,美国 IEEE组织成立了 POSIX委员会专门进行UNIX的标准化方面的工作。此外,在1988年以 AT&T和 Sun Micro system等公司为代表的UI(UNIX International)和以 DEC、 IBM等公司为代表的 OSF(Open Software Foundation)组织也开始了这种标准化工作。它们对 UNIX的开发工作虽不一样,但它们定义出了 UNIX的统一标准,即可以运行UNIX应用软件的操作系统就是 UNIX。从而统一UNIX系统的关键就变成是否能提供一个标准的用户界面,而不在于其系统内部是如何实现的了。 UNIX的特点 UNIX系统之所以得到如此广泛地应用,是与其特点分不开的。其主要特点表现在:

UNIX系统管理-第九章:修复文件系统

UNIX系统管理-第九章:修复文件系统 目标 完成这一章,你将能做以下事情: 理解文件系统是如何进行更新操作的 理解sync是如何预防文件系统错误 列出文件系统错误的三个原因 使用fsck检查和修补文件系统 文件系统的维护 日常的维护 -检查文件系统的一致性 -执行文件系统备份 -监控磁盘的使用情况 系统管理员的一个主要的职责就是保护用户的数据的安全。由于UNIX中数据通过文件系统的方式存储,系统会强制性检查文件系统的存储环境是否出现问题。文件系统的完整性十分重要,系统管理员可以做许多工作来保护文件系统的完整性。 这一章,我们会学习如何使用fsck工具来检查和维护文件系统的完整性。在开始之前,我们需要了解文件系统的更新是如何发生的。 文件系统的更新 当一个文件系统装载后,它的超级块被拷贝到内存中。当拷贝完成之后,文件系统的标记被置为“dirty”。所有的对超级块的更改首先要去更改这个拷贝。当一个SYNC的系统调用使用的时候,磁盘上的拷贝才会被更新。当一个文件系统被卸载的时候,所有的在内存中的数据会被写回到磁盘上,文件系统的标记被置为“clean"。 所有的对metadata进行的修改首先是修改其在内存中的拷贝,然后才会被写到磁盘上去。一些metadata的修改是立即写到磁盘上,其它的则是在调用sync的时候才会被写到磁盘上。 举一个例子:rm myfile命令会引起以下的一些改变: 1.myfile的目录的条目被清除。 2.用来描述myfile的inode被释放 3.用来索引剩余数据块和剩余inode的映射图被更新 4.超级块中的剩余数据块的数量和inode的数量被更新 不幸的是,不是所有的metadata数据都是连续地存储在磁盘上的,所以它会进行一系列的写操作来完成这些处理过程,如果在进行这些过程中系统突然崩溃,就会使metadata数据产生不一致。例如:如果myfile的目录条目已经被清除,但是inode还没有被释放,结果就是一个inode有一个链接,但是并没有目录结构指向这个inode。这就是不一致的metadata。 内存缓冲区 用户写数据的时候,实际上并不立即发生写磁盘的动作,数据会被拷贝到一个内存的缓冲区里。这个操作非常快,数据同inode信息一起,会在以后的一些时间被写到磁盘上,通常是在缓冲区满的时候和新需要清除一下缓冲空间的时候。如果系统在还没有将缓冲区中的信息写到磁盘上去之前,系统关闭。文件系统的一致性就会被破坏。如果你察觉文件系统已经被破坏,你应该停止当前的工作。 使用缓冲区的优点和缺点: 使用缓冲区可以对磁盘进行均匀的存取,因为内核不需要知道磁盘I/O的产生的原因,内核只会将缓冲区中的数据写到磁盘,而不用去关心缓冲区数据的组成。从磁盘I/O的观点来看,使用缓冲区,系统的设计会更简单。 通过使用缓冲区,应用程序会很容易地移植到其它的UNIX系统上去,因为不同的UNIX机器的磁盘I/O也许会不同,但是程序不需要了解这些。它们只是写到缓冲区,而不用去考虑磁盘的设置方式。 使用缓冲区可以减少对磁盘的读写,这会提高整个系统的响应时间,换句话说,系统运行更快了。 重复利用缓冲区中的数据文件也能够加速系统的响应。 刷新缓冲区 sync 将缓冲区的内容写到磁盘 保持文件系统为最新 通常是通过syncer守护进程来激活

+模拟UNIX文件系统的设计及实现

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2008年秋季学期 操作系统原理课程设计 题目:模拟UNIX文件系统 专业班级:计算机一班 姓名:张树伟 学号:06240121 指导教师:刘嘉 成绩:

目录 1.摘要 (2) 2.问题描述 (2) 3.设计目的 (2) 4. 设计要求 (2) 5. 详细设计 (3) 5.1界面设计 (3) 5.1算法设计 (3) 6. 设计总结 (4) 7. 参考文献 (4) 8. 致谢 (5) 9.附录 (34)

模拟UNIX文件系统的设计及实现 1.课程设计内容 多用户的多级目录的文件系统设计。 2.概述 UNIX采用树型目录结构,每个目录表称为一个目录文件。 一个目录文件是由目录项组成的。每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;后14B为文件名,是该文件的外部标识。所以,文件目录项记录了文件内、外部标识的对照关系。根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。UNIX的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。UNIX中的文件系统磁盘存储区分配图如下: i节点区文件存储区 本次课程设计是要实现一个简单的模拟UNIX文件系统。我们在内存中开辟一个虚拟磁盘空间(1MB)作为文件存储器,并将该虚拟文件系统保存到磁盘上(以一个文件的形式),以便下次可以再将它恢复到内存的虚拟磁盘空间中。文件存储空间的管理可采用位示图方法。 3.课程设计任务及要求 3.1.设计任务 多用户、多级目录结构文件系统的设计与实现。可以实现下列几条命令 login 用户登录 logout 退出当前用户 dir 列文件目录 creat 创建文件 delete 删除文件 open 打开文件 close 关闭文件 read 读文件 write 写文件 mkdir 创建目录 ch 改变文件目录 rd 删除目录树

服务器操作系统简介

弹指一挥40年服务器操作系统进化简史 pconline 2009年03月06日 近年来服务器技术的硬件不动推动下飞速的发展,云计算、虚拟化、高性能计算等等多种服务器领域耀眼亮点使得服务器其上的操作系统相对而言的低调。不过作为服务器的基本操作平台,服务器OS其实也是值得我们去关注的。 目前服务器操作系统主要有三大类:一类是Windows,其代表产品就是Windows Server;一类是UNIX,代表产品包括HP-UX、IBM AIX等;还有一类是Linux,它虽说是后起之秀,但由于其开放性和高性价比等特点,近年来获得了长足发展。 这些操作系统究竟从何而来又将去往何处呢?画家高更也曾问过这个问题,5年、10年以后的技术发展谁也说不清楚,但从何而来这个问题我们还是可以回答的。 UNIX的故事 在计算机领域,Unix一直是作为高端平台而出现的。几年以前,只有在大型机构的专用机房中才能接触到它们,甚至稍小一些的机构也负担不起购买Unix工作站的费用。只有很少的使用者才有机会接触和使用Unix,能管理和维护 Unix系统的计算机专业人员就更少了,这就使得Unix总是披着一层神秘的面纱。 Unix操作系统的历史漫长而曲折,它的第一个版本是1969年由Ken Thompson在AT&T贝尔实验室实现的,运行在一台DEC PDP-7计算机上。这个系统非常粗糙,与现代Unix相差很远,它只具有操作系统最基本的一些特性。后来Ken Thompson和Dennis Ritchie使用C语言对整个系统进行了再加工和编写,使得Unix能够很容易的移植到其他硬件的计算机上。从那以后,Unix系统开始了令人瞩目的发展。

模拟UNIX文件系统的设计及其实现操作系统大作业(含源文件)

华南理工大学 “计算机操作系统”课程设计大作业 (含答案) 一、题目: 模拟UNIX文件系统的设计及实现 多用户、多目录的文件系统的设计------用VC或Delphi编程模拟文件系统的管理 二、目的 通过OS文件子系统的设计、增强OS设计的技巧,达到提高解决实际OS的设计能力的提高。 三、内容 多用户的多级目录的文件系统设计。 四、功能要求 1. 多用户:usr1,usr2,usr3,……,usr8 (1-8个用户) 2. 多级目录:可有多级子目录; 3. 具有login (用户登录) 4. 系统初始化(分配内存空间,创建文件卷,初始化根目录) 5. 文件的创建:create 6. 文件的打开:open 7. 文件的读:read 8.文件的写:write 9. 文件关闭:close 10. 删除文件:delete 11. 创建目录(建立子目录):mkdir 12. 改变当前目录:cd 13. 列出文件目录:dir(包括文件属性) 14. 删除目录:rmdir 15. 退出:logout 五、实现方法 该大作业是实现一个类似unix的文件系统,只需要实现上述功能要求中所列出的功能,代码中不能调用OS系统提供的与文件操作和磁盘操作有关的系统调用。设计提示:用内存模拟磁盘操作,对文件和目录的创建、删除、读写都用对内存的操作来模拟。文件的属性信息用内存数据结构保存;所有文件内容和目录信息保存在内存中。文件属性包括:文件名,所有者,创建时间,最后访问时间,文件大小,数据区指针或I-node指针等。当程序运行结束时回收内存,信息不需要保存到磁盘,下次重新运行程序时重头开始。 六、实验要求 每人完成一份大作业实验报告。报告分设计思想、数据定义、处理流程、源程序、运行结果截图、

Unix操作系统

Unix操作系统 一.Unix发展历程介绍以及未来发展趋势 Unix服务器操作系统,主要支持大型的文件系统服务、数据服务等应用。但是只在服务器厂商生产的高端服务器产品中支持Unix操作系统应用,因此SUNSolaris、IBM-AIX都是定位于高端服务器操作系统市场的。 到2009年,Unix系统已经走过了整整40年的历程。在这漫长的40年里,Unix由弱小走向强大,发展推动了整个企业级IT技术和产品的历史性演进,成为所有企业核心业务首选的系统平台。然而,根据2008年IDC的统计报告中显示,WindowsServer在服务器操作系统市场上的份额已经达到34.2%,逼近了Unix 的35%,如今的Unix无时无刻不面临着来自竞争对手的挑战。 Unix一直是企业级行业应用领域最为广泛的操作系统,并且为现代操作系统的成型起到了奠定基础的作用,可以说UNIX的发展历史就像应用程序本身一样耐人寻味。 1.Unix操作系统由来 Unix系统的出现可以说对于行业的发展起到了最基础的推动作用,Unix早期是从1969年KeThompson在AT&T贝尔实验室创造的Unix操作系统,是用汇编语言写成的,以至于在随后的应用过程中,将Unix移植到PDP-11/20上的耗费了大量工作进而演化。而正是这个问题的出现,成就了C语言,可以说C语言本身是为了Unix系统的进一步完善而诞生的,通过对Unix的源代码重新改写,使Unix非常具有可移植性,同时开源化的特点推动了普及更为广泛。 2.Unix操作系统进化史 从Unix操作系统进化史的图上见证了Unix系统的出现,到进入了丰富的发展阶段,伴随着Unix系统的商业化,贝尔实验室作为Unix研究不能够在一个很系统化的环境进一步研究,对Unix的继续修改,专业的制作研究性发行版本的组织由此诞生。而SystemIII和SystemV都是当时相当重要的Unix版本。 此外,对于厂商来说,都纷纷改进Unix系统在行业的应用,以加州大学伯克利分校的BSD版4.2中派生出了多种商业Unix版本,比如Solaris、HP-UX、IRIX、AIX、SCO等等系统。 3.Unix系统的未来 未来的Unix市场还会有很大的发展空间,对于Unix系统服务器产品主要是集中在特定的行业,像国内小型机市场的主要发展动力来自电信行业。同时,随着2009年电信运营商的重组和3G无线通信业务的开展,对于小型机市场的发展是一个商机。最关键的是,高度的可靠性和安全性始终拥有市场需求,特别是在金融电信行业来说,数据服务器等高密度数据处理的系统环境,这些高端的应用领域,仍然是Unix占据主要地位。 另外,Unix的发展和系统设计、架构都是以高性能和高可靠性为中心的。Unix经历了整体架构和性能的考验,主要用于“计算”和实际业务的数据处理,所以Unix系统正是利用极少的资源去做关键的处理而闻名。 同时,对于现有的Unix系统服务器而言,对市场所关注的所谓的封闭性并不是非常介意,Unix当年是作为一个开放的系统平台出现的,应用在IBM的AIX

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