UNIX文件系统的路径组织结构Windows系统
“xia666222”通过精心收集,向本站投稿了7篇UNIX文件系统的路径组织结构Windows系统,以下是小编整理后的UNIX文件系统的路径组织结构Windows系统,欢迎阅读分享,希望对大家有帮助。
篇1:UNIX文件系统的路径组织结构Windows系统
作者:NetDemon netdemon@20cn.com www.20cn.net -------------------- UNIX 并不使用驱动器名如C:D: 等来标记一硬盘或分区,在整个系统上,不管有多少个硬盘,分区是怎样的,只有一个根目录,叫做root标记为/,其下任何一个子目录,却可以是一个硬盘或一个
作者:NetDemon
netdemon@20cn.com
www.20cn.net
--------------------
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 第二个文件系统。基本上是和系统核心无关但又属于操作系统的一部分的一个目录,大多数的应用程序,还有各用户的私有资料存放在这个子系统
/usr/bin 与系统启动无关的标准应用程序。
/usr/sbin 系统启动时不需要使用的一些系统管理程序。
/usr/games游戏。
/usr/home 用户目录。存放各个用户自己的文件,如果你的用户名为 abcd 那么 /usr/home/abcd 就是属于你的目录,一般情况下其下面的任何文件可以任你主宰,你能够创建、删除文件和目录
/usr/include 程序需要的头文件,
/usr/lib 程序需要的库文件。
/usr/libexec 一些不由用户直接运行的执行程序。如ftpd telnetd 等服务程序
/usr/man 帮助文件
/usr/X11R6 X-Windows系统
/usr/X11R6/bin 可执行的X-Windows程序
/usr/X11R6/include X-Windows程序的头文件。
/usr/X11R6/lib X-Windows程序的库文件。
/usr/X11R6/man X-Windows程序的帮助文件。
/usr/share 各种共享的只读文件,大多数是一些系统信息,文档,包括有FreeBSD手册等。
/usr/local 第三个子文件系统,不属于FreeBSD一部分的其他程序。如果你再安装其他的程序如apachemysql等这些不是系统自带的程序的时候,将会放到这里,其下同样有bin sbin etc man lib include 这些目录
/var 存储经常发生变化的文件,如邮件,日志等。
/var/log 系统日志。
/var/mail 发给用户的信件。
/var/spool 缓冲数据,如打印数据等。
/var/tmp 临时文件。
以上就是FreeBSD的基本路径组织结构。了解这个路径结构将给用户使用FreeBSD系统提供很大方便。同时我们也看到,UNIX系统的文件组织结构是如此的清晰,什么东西就放在什么地方,查找非常容易。
下面我再重点说说几个重要的目录,无论在 / 还是 /usr 或者 /usr/local ,甚至 /usr/home/username 下面,都会有 bin sbin etc man 这几个目录,通常一个应用程序会把普通的可执行文件放到 bin,而跟系统维护相关的可执行文件放到 sbin,配置文件放到 etc,帮助文件放到 man ,需要用到的库文件到/usr/lib中找,编译时要用到头文件到/usr/include中找
看到这里,相信你对一个UNIX系统上都有一些什么东西比较了解了,但是,这些东西虽然存在,可也不是你想看就看,想运行就运行的哦,UNIX有一套规则来规定谁能干什么,不能干什么,这个文件谁能看谁不能看,谁能用谁不能用,或是谁只能看不能用,在下一编我将告诉你为什么会这样,又是通过什么来实现的
yourkeychen 回复于:-02-05 11:04:36谢谢,收藏
lovqing 回复于:2003-02-05 11:37:43好就收
cxzty 回复于:2003-02-05 23:18:52好东东!收了
原文转自:www.ltesting.net
篇2:ReiserFS文件系统Windows系统
1. 什么是ReiserFS ReiserFS是一种新型的文件系统,在蓝点 Linux 中你可以选择它来装载你的Linux操作系统和其他应用程序和数据文件,它通过一种与众不同的方式--完全平衡树结构来容纳数据,包括文件数据,文件名以及日志支持。ReiserFS还以支持海量磁盘和磁
1. 什么是ReiserFS
ReiserFS是一种新型的文件系统,在蓝点Linux中你可以选择它来装载你的Linux操作系统和其他应用程序和数据文件。它通过一种与众不同的方式--完全平衡树结构来容纳数据,包括文件数据,文件名以及日志支持。ReiserFS还以支持海量磁盘和磁盘阵列,并能在上面继续保很快的搜索速度和很高的效率。ReiserFS文件系统一直以来被用在高端Unix系统上如SGI等。
2. ReiserFS的特点(与ext2的对比):
ReiserFS相对于Linux上传统的文件系统--ext2有很多优点,在下面一一介绍。
搜寻方式
ReiserFS是基于平衡树的文件系统结构,尤其对于大量文件的巨型文件系统,如服务器上的文件系统,搜索速度要比ext2快;ext2使用局部的二分查找法,综合性能比不上ReiserFS。
空间分配和利用情况
ReiserFS里的目录是完全动态分配的,因此不存在ext2中常见的无法回收巨型目录占用的磁盘空间的情况。ReiserFS里小文件(<4K)可以直接存储进树,小文件读取和写入的速度更快,树内节点是按字节对齐的,小的文件可共享同一个硬盘块,节约大量空间。Ext2使用固定大小的块分配策略,也就是说,不到4K的小文件也要占据4K的空间,导致的空间浪费比较严重。
先进的日志机制
ReiserFS有先进的日志(Journaling/logging)机制,在系统意外崩溃的时候,未完成的文件操作不会影响到整个文件系统结构的完整性。 ext2虽然健壮性很强,但一旦文件系统被不正常地断开,在下一次启动时它将不得不进行漫长的检查系统数据结构的完整性的过程,这是为了防止数据丢失而必需的操作。对于较大型的服务器文件系统,这种“文件系统检查”可能要持续好几个小时,在很多场合下这样长的时间是无法接受的。 解决这个问题的一种技术“日志文件系统”。在日志的帮助下,每个对数据结构的改变都被记录下来,日志在机制保证了在每个实际数据修改之前,相应的日志已经写入硬盘。正因为如此,在系统突然崩溃时,在下次启动几秒钟后就能恢复成一个完整的系统,系统也就能很快的使用了。
支持海量磁盘和优秀的综合性能
ReiserFS是一个相当现代化的文件系统,相比之下,ext2虽然性能已经很好了,但其设计还只是19世纪80年代的水准。ReiserFS的出现,使Linux拥有了像Irix/AIX那样的高档商用Unix才有的高级文件系统。ReiserFS可轻松管理上百G的文件系统,在企业级应用中有其用武之地,由于它的高效存储和快速小文件I/O特点,它在桌面系统上也表现出色:启动X窗口系统的时间ReiserFS比ext2少1/3,
而ext2则无法管理2G以上的单个文件,这也使得ReiserFS在某些大型企业级应用中比ext2要出色。
3.缺点
ReiserFS一个最受人批评的缺点是每升级一个版本,都将要将磁盘重新格式化一次,这个缺点也正在改进中。
4.ReiserFS的起源与未来
在7月23日,Hans Reiser把他的基于平衡树结构的ReiserFS文件系统在网上公布 。 这是ReiserFS的第一次公开亮相。此后,ReiserFS一直在Hans Reiser和领导下的开发小组下开发和发展,SuSE Linux也对它的发展起了重大的帮助。由于ReiserFS有一些很有用的特性,更主要的是它比ext2fs要快得多,所以它很快被很多人使用。据说在Linux内核2.4.0以上的版本可能将采用ReiserFS作为它的文件系统。当前的ReiserFS只能在Intel结构体系上使用,但支持其他体系结构的ReiserFS版本也正在积极开发中。我们等待着更强大,兼容性更好的ReiseFS的到来。
附:怎样添加ReiserFS文件系统
简介
ReiserFS文件系统是一种新的linux文件系统。它通过一种与众不同的方式--完全平衡树结构来容纳数据, 包括文件数据,文件名以及日志支持,并能在上面继续保持很快的搜索速度和很高的效率。ReiserFS文件系统一直以来被用在高端Unix系统上如,SGI。
ReiserFS是在Hans Reiser和其领导下的开发小组下开发和发展,SuSE Linux也对它的发展起了重大的帮助。由于ReiserFS有一些很有用的特性,更主要的是它比ext2fs要快得多,所以它很快被很多人使用。据说在Linux内核2.4.0以上的版本可能将采用ReiserFS作为它的文件系统。当前的ReiserFS只能在Intel结构体系上使用,但支持其他体系结构的ReiserFS版本也正在积极开发中。我们等待着更强大,兼容性更好的 ReiseFS的到来。
安装
从www.devlinux.com/namesys下载reiserfs的补丁程序,要确保下载的补丁版本和你的kernel版本是一致的。
下载后用root身份登录进入系统,切换至/usr/src/linux目录,执行命令:
#gunzip /path/to/linux-2.2.16-reiserfs-3.5.22-patch.gz
#patch -p1 -i /path/to/linux-2.2.16-reiserfs-3.5.22-patch
在做完上面的两步后,重新编译kernel,将reiserfs编译进kernel或做成一个模块。
Reiserfs的相关应用程序在 /usr/src/linux/fs/reiserfs/utils 目录下。你可以用下面方法安装它们:
#mkdir bin
#make
#make install
最后,你可以用“fdisk”命令重新分区或用“mkreiserfs”命令重新格式化一个已经存在的分区。 指定reiserfs类型加载这个分区,如“mount -t reiserfs /dev/hda2 /download”,这样你就可以使用这个新的分区了。
原文转自:www.ltesting.net
篇3:理解/proc文件系统Windows系统
(这个是,希望给大家提供帮助,更好地理解/proc文件系统) 不只一次的有人问我关于/proc文件系统,那是什么,那些巨大的文件在那里做什么?我可以删除它们吗?本文将详细介绍/proc文件系统,描述一些工具,你可以通过这些工具领略/proc的威力,最后有一
(这个是转贴,希望给大家提供帮助,更好地理解/proc文件系统)
不只一次的有人问我关于/proc文件系统,那是什么,那些巨大的文件在那里做什么?我可以删除它们吗?本文将详细介绍/proc文件系统,描述一些工具,你可以通过这些工具领略/proc的威力。最后有一个例子程序,演示了系统管理员如何与/proc交互。
◆ 介绍/proc
在过去那些糟糕的日子里,只能通过直接访问内核内存(/dev/kmem)获取进程数据,比如运行ps(1)命令时。为了实现这种访问,需要超级用户权限,而且步骤相当复杂。Sun公司从UNIXSVR4开始解决了进程数据访问问题,现在,可以简单地通过/proc访问进程数据。
/proc文件系统不是普通意义上的文件系统,它是一个到运行中进程地址空间的访问接口。通过/proc,可以用标准Unix系统调用(比如open、read()、write()、ioctl()等等)访问进程地址空间。事实上,Solaris ps(1)命令正是利用/proc获取进程状态。
S (l) 进程状态:
O 正在运行
S 休眠: 进程正在等待某个事件发生/完成
R 可运行: 进程位于运行队列中
Z 僵尸状态: 进程结束了,但是其父进程未处理SIGCHLD信号
T 进程暂停: 可能是任务控制信号所致,或者正在被
跟踪调试
/proc下的大文件对应运行中进程的地址空间,不是标准Unix文件。事实上每个文件名对应运行中进程的PID,文件属主、属组对应进程拥有者的real-uid和primary-gid。权限控制与普通Unix文件一样。文件大小是最令人迷惑的地方,事实上相当好理解,对应进程内存映像大小,并不真正占用硬盘空间,所以你不必担心空间浪费的问题。不要企图删除这些文件!观察图A中列举的/proc例子:
--------------------------------------------------------------------------
$ ls -l /proc
total 43384
-rw------- 1 root root 0 Apr 2 20:07 00000
-rw------- 1 root root 393216 Apr 2 20:07 00001
-rw------- 1 root root 0 Apr 2 20:07 00002
-rw------- 1 root root 0 Apr 2 20:07 00003
-rw------- 1 root root 1695744 Apr 2 20:07 00081
-rw------- 1 root root 1597440 Apr 2 20:07 00083
-rw------- 1 root root 1777664 Apr 2 20:08 00096
-rw------- 1 root root 1683456 Apr 2 20:08 00099
-rw------- 1 root root 1589248 Apr 2 20:08 00101
-rw------- 1 root root 1445888 Apr 2 20:08 00116
-rw------- 1 root root 1404928 Apr 2 20:08 00126
-rw------- 1 root root 798720 Apr 2 20:08 00135
-rw------- 1 root root 1368064 Apr 2 20:08 00195
-rw------- 1 root root 1585152 Apr 2 20:08 00197
-rw------- 1 root root 1368064 Apr 2 20:08 00200
-rw------- 1 root other 225280 Apr 2 20:08 00201
-rw------- 1 root root 1454080 Apr 2 20:08 00203
-rw------- 1 root root 1519616 Apr 2 20:14 00243
-rw------- 1 rthomas wheel 1499136 Apr 2 20:14 00245
-rw------- 1 rthomas wheel 806912 Apr 2 20:16 00261
$
图A: /proc例子
--------------------------------------------------------------------------
操作/proc下文件的方式和操作普通Unix文件一样,可以使用所有你熟悉的系统调用,包括ioctl()。在内核中,针对/proc下文件的vnode操作被转向procfs。这意味着操作vnode的系统调用(比如lookuppn())实际上最终转向procfs-savvy系统调用(比如prlookup())。
◆ /proc能告诉我什么
Solaris下使用/proc的工具相当完善,位于/usr/proc/bin目录中。这些工具提供了一种访问任意指定进程临界数据的简捷办法。比如,想知道一个进程已经打开了多少文件,你可以使用crash(1M)(见鬼,我不会),但是你是root吗?不必担心,可以用/usr/proc/bin/pfiles获取这种信息,图B演示了pfiles(1)命令的使用:
--------------------------------------------------------------------------
[scz@ /export/home/scz]> ps
PID TTY TIME CMD
637 pts/3 0:00 bash
[scz@ /export/home/scz]> pfiles 637
637: -bash
Current rlimit: 64 file descriptors
0: S_IFCHR mode:0620 dev:151,0 ino:196787 uid:500 gid:7 rdev:24,3
O_RDWR
1: S_IFCHR mode:0620 dev:151,0 ino:196787 uid:500 gid:7 rdev:24,3
O_RDWR
2: S_IFCHR mode:0620 dev:151,0 ino:196787 uid:500 gid:7 rdev:24,3
O_RDWR
3: S_IFDOOR mode:0444 dev:191,0 ino:1618164880 uid:0 gid:0 size:0
O_RDONLY|O_LARGEFILE FD_CLOEXEC door to nscd[213]
63: S_IFCHR mode:0620 dev:151,0 ino:196787 uid:500 gid:7 rdev:24,3
O_RDWR FD_CLOEXEC
[scz@ /export/home/scz]>
图B: 使用pfiles(1)命令
--------------------------------------------------------------------------
正如上面演示的,/usr/proc/bin下的命令使用很简单,只需要在命令行上指定PID。然而,留心权限许可设置,与所有普通Unix文件一样,你无权访问那些权限设置上禁止访问的指定PID的进程数据。
花点事件看看proc(1)手册页,熟悉其中介绍的命令,你将学会列举指定进程相关的库、进程信号设置、进程信任设置,你甚至可以暂停、重启进程,
◆ 编写/proc工具
/proc的魅力在于它包含了你可能想知道的关于一个进程的任何信息,你只需要简单地从中获取。/usr/include/sys/procfs.h文件中定义了两个结构,prstatus和prpsinfo,从中可以获取指定进程的很多信息。下面是个例子,开发者想知道他的应用程序究竟占用了多少内存。简单!ls /proc就可以知道了。但是,他还想知道更多细节,他需要知道总的映像大小、常驻部分的大小、堆区(heap)大小、栈区(stack)大小。此外,他希望能够定期跟踪这些数据信息,类似vmstat(1M)那种方式。如上所述,听起来象是一个令人生畏的任务。
译者: Solaris 2.6开始这两个结构定义在/usr/include/sys/old_procfs.h文件中
然而,通过使用/proc文件系统,我们可以使这项编程挑战变得容易些。我们写的这个工具称做memlook,将显示指定PID对应的内存统计信息。此外,可以在命令行上指定一个时间间隔,以便定期重新检测内存利用信息。图C演示了一次简单的输出:
--------------------------------------------------------------------------
$ memlook 245
PID IMAGE RSS HEAP STACK
245 1499136 1044480 24581 8192
$
图C: memlook的输出举例
--------------------------------------------------------------------------
下面是memlook.c的源代码
--------------------------------------------------------------------------
/*
* @(#)memlook.c 1.0 10 Nov
* Robert Owen Thomas robt@cymru.com
* memlook.c -- A process memory utilization reporting tool.
*
* gclearcase/“ target=”_blank“ >cc-Wall -O3 -o memlook memlook.c
*/
#pragma ident ”@(#)memlook.c 1.0 10 Nov 1997 Robert Owen Thomas robt@cymru.com“
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int counter = 10;
int showUsage ( const char * );
void getInfo ( int, int );
int main ( int argc, char * argv[] )
{
int fd, pid, timeloop = 0;
char pidpath[BUFSIZ]; /* /usr/include/stdio.h: #define BUFSIZ 1024 */
switch ( argc )
{
case 2:
break;
case 3:
timeloop = atoi( argv[2] );
break;
default:
showUsage( argv[0] );
break;
} /* end of switch */
pid = atoi( argv[1] );
sprintf( pidpath, ”/proc/%-d“, pid ); /* -表示向左靠 */
if ( ( fd = open( pidpath, O_RDONLY ) ) < 0 )
{
perror( pidpath );
exit( 1 );
}
if ( 0 < timeloop )
{
for ( ; ; )
{
getInfo( fd, pid );
sleep( timeloop );
}
}
getInfo( fd, pid );
close( fd );
exit( 0 );
} /* end of main */
int showUsage ( const char * progname )
{
fprintf( stderr, ”%s: usage: %s < PID > [time delay]\n“, progname, progname );
exit( 3 );
} /* end of showUsage */
void getInfo ( int fd, int pid )
{
prpsinfo_t prp;
prstatus_t prs;
if ( ioctl( fd, PIOCPSINFO, &prp ) < 0 )
{
perror( ”ioctl“ );
exit( 5 );
}
if ( ioctl( fd, PIOCSTATUS, &prs ) < 0 )
{
perror( ”ioctl“ );
exit( 7 );
}
if ( counter > 9 )
{
fprintf( stdout, ”PID\tIMAGE\t\tRSS\t\tHEAP\t\tSTACK\n“ );
counter = 0;
}
fprintf( stdout, ”%u\t%-9u\t%-9u\t%-15u\t%-15u\n“, pid,
( unsigned int )prp.pr_bysize, ( unsigned int )prp.pr_byrssize,
( unsigned int )prs.pr_brksize, ( unsigned int )prs.pr_stksize );
counter++;
} /* end of getInfo */
--------------------------------------------------------------------------
译者: 作者这里利用了ioctl(),而不是直接读取/proc下文件,这样做的好处在于即使系统升级后/proc布局改变,内核中相应ioctl cmd支持也随之改变,对于应用层的开发者,接口一样,源代码可平稳移植。事实上从作者前面举例来看, memlook.c是在Solaris 2.6以前的版本上开发的,但我并未修改就可以直接用在Solaris 2.6上,虽然此时/proc布局已经发生重大变化。
仔细阅读prstatus和prpsinfo结构,寻找那些你敢兴趣的成员。在未能真正掌握这种技术之前不要针对/proc文件系统使用write()或者ioctl()。针对特定进程胡乱做write()调用,结果未知。
◆ 结论
当痛苦调试程序或者试图获取指定进程状态的时候,/proc文件系统将是你强有力的支持者。通过它可以创建更强大的工具,获取更多信息。
:em02: :em02: :em02: :em02: :em02: :em02:
climbmount 回复于:-12-18 13:26:45好文章,来得真及时。
.netfrihor 回复于:2004-12-18 16:00:04不错
顶一下
急不通 回复于:2004-12-21 09:41:24好文。bye the way,在linux下面的/proc也是类似的吗?
飞天二狭 回复于:2004-12-21 22:40:56linux下面当然有了。
原文转自:www.ltesting.net
篇4:强行卸载文件系统Windows系统
我在卸载(umount)一个文件系统的时候系统报错,提示文件系统busy
强行解决的方法:fuser -ku /yourfs
然后umount
ps:系统为aix5.1
lu上的精华贴
larryh
昨天, 13:12
原文转自:www.ltesting.net
篇5::Solaris文件系统分区建议Windows系统
许多问题都是由于分区不合理所致: 1、/或/usr等分区满 2、/var分区太小,造成需要经常维护 3、安装补丁时,没有空间,造成安装补丁失败 4、升级软件或软件安装后,磁盘空间不合理,为系统运行留下隐患 5、/home区问题 为了解决此问题,下面推荐几种分区大小
许多问题都是由于分区不合理所致:
1、/或/usr等分区满
2、/var分区太小,造成需要经常维护
3、安装补丁时,没有空间,造成安装补丁失败
4、升级软件或软件安装后,磁盘空间不合理,为系统运行留下隐患
5、/home区问题
为了解决此问题,下面推荐几种分区大小,经过多年实践,能满足大部分系统的要求,
9GB 硬盘 HD
安装Solaris 7
/ 512m
swap 512m ----- 4096m
/var 512m
/usr 2048
/opt 剩余
(用户主目录和第三方软件均防在/opt下)
或者
/ 剩余
swap 1024m
18GB硬盘 HD
/ 1024m
swap 2048m ----- 4096m
/var 1024m
/usr 4096
/opt 剩余
(用户主目录和第三方软件均防在/opt下)
36GB硬盘 HD
/ 2048m
swap 4096----- 8192m
/var 2048m
/usr 6G---8G
/opt 剩余
(用户主目录和第三方软件均防在/opt下)
72GB硬盘 HD
/ 4096m
swap 4096 ----- 16384m
/var 4096m
/usr 6G---10G
/opt 剩余
(用户主目录和第三方软件均防在/opt下)
注意:如果是mail系统,大部分空间应该分给/var
采用这种分法,可以满足大部分系统的要求
例子
安装oracle
可以将Oracle介质安装在/opt下
几点说明:
1、本分区方法可以针对目前大多数应用。近五年的经验表明,用户没有发生报/var区或/根区满的问题!
2、需要进行特殊分区的情况:
a.Sun Disksuite需要300m的metadata DB空间,如果需要使用,可以从Swap区中挖取
b.如果安装Sun Cluster,而且要使用VxVM,请将/区和/usr区合并,保证系统盘有两个空闲未用的分区,这样Veritas VxVM在封装根盘的时候才不会出错!!!
3、关于交换区的大小:认为交换区是内存两倍的说法是错误的!!!在工程中你可以这样做,而且在大多数情况下,系统不会因为这种配置出错。实际上,交换区的大小是系统各异的:如果你的内存足够大或者你只运行小程序,你甚至不需要交换区;但是如果系统要运行需要大虚拟地址空间的进程,交换区是需要特殊配置的。下面举例说明:
Sun E450上有1G内存,18G硬盘两块
假设你为它设置交换区为2G,在下面的情况,系统会出错:
有一C程序,需要malloc(申请内存空间的函数)3G的动态内存,那么如果没有新的交换文件作交换区的话,程序会出错的!!!!
实际上,常规分为两倍的原因主要的假设是:将内存中所有的内容换到交换区上,又把先前的交换区中的内容换回来的空间。
由于32位地址总线的计算机的地址空间是4GB(2的32次方),所以例子例子中的配置情况甚至不能满足一个大进程的空间分配需求!!!
综合上述:交换区的分配原则是,随着硬盘容量的增长,尽量为其分配更大的空间!!!!
win_hate 回复于:-03-11 22:34:58正需要这个,谢谢!
pengtao_hlp 回复于:2004-03-11 22:44:14好。顶
都是精髓!!无可挑剔啦。。
C.Arthur 回复于:2004-03-11 22:47:47我感觉根还是需要大一点
guchengman 回复于:2004-03-11 23:03:36此人不简单,
不断的原创,
我将一顶再顶.
C.Arthur 回复于:2004-03-11 23:07:12是的,而且回答问题很仔细,写的东西也很实用,所有偶给他精华大家没意见吧
suclearcase/” target=“_blank” >ccess_king 回复于:2004-03-12 08:56:05严重同意
我爱臭豆腐 回复于:2004-03-12 09:03:41好同志啊:)
fyx 回复于:2004-03-12 09:34:23同志真是有心啊,非常实用。。。。。
iloveyouyouloveme 回复于:2004-03-12 09:51:42好啊
slahf999 回复于:2004-03-12 10:01:37说的对,我在SOLARIs 7下安装一个3D图像处理软件,刚刚开始一直提示SWP小无法安装,直到我把SWP分区加大到1550M材安装成功,早点看到你的贴就好了。
Leenux 回复于:2004-03-12 11:18:28土土的问一下,如果不细分/home,/var,/opt....等分区,只分出/swap和/,有什么不方便吗?至少这样不用担心哪个分区空间紧张了,
oldunix回复于:2004-03-12 11:29:13[quote=“Leenux”]土土的问一下,如果不细分/home,/var,/opt....等分区,只分出/swap和/,有什么不方便吗?至少这样不用担心哪个分区空间紧张了。[/quote]
如果/空间快满了,你从何下手解决问题???
如果将/ /usr /var /opt分开,这会更有针对性
xinpingf 回复于:2004-03-12 11:45:34严重支持
melonm 回复于:2004-03-12 12:30:22好文章,建议收为精华。但我想对分区上谈几点个人的看法,希望大家指正。
1. 一般情况下我认为应该把/ 和/usr以及/opt都放在根目录下,这对系统恢复尤其为用。/usr下有许多工具在系统崩溃时需要,尤其是/usr/sbin/static,有一些cp.ln,tar等等的工具是static linked,也就是说,不需要任何library就可以使用。把/usr和/放在根目录有助于系统的一致性。而且更重要的是,对于现在的大硬盘来说,有但可以更有效的利用空间,而且也可以减少不必要的管理。
这一分区方法在系统中存在Veritas时尤其有用,旧版的Veritas都装在/usr下,新版的都在/opt下,一旦包括根盘在内的所有磁盘都交给Veritas管理了,没有Veritas工具在内的/是没有任何意义的。
2. 按照Solaris本身的设计,用户的本地宿主目录应该在/export/home下,autohome目录应该在/home下。把它们放在/opt下与系统设计的原则不太一致。Oracle推荐一般都在/u01,/u02下,但程序本身在哪可能也没有太大关系。
3. /var和/export/home应该作为单独的分区,因为它们在潜在的意外扩大的可能性,而且数据比较动态,有可能造成空间的fragmentation。分出作为单独的分区可以维持系统的稳定性。
4. Solaris总共只有7个分区可以使用,按照以上原则:/(s0),swap(s1),var(s5),/export/home(s7),也只有三个分区剩下了,无论是SDS或者Veritas都需要两个单独的分区,Veritas缺省使用S3和S4,我一般把SDS也用在S3和S4上,也就是说,一个安全安装的系统,最多也只能有一个分区给应用程序或者应急时使用,也就是S6。这可以用来作Oracle的/u01或者/usr/local(如果系统比较BSD的话),但留一个作备用是很需要的,可以在数据大量发生变化时避免对系统重新分区。
按照以上的几点看法,我一般这样分区:
s0 /
s1 swap
s2 disk
s3/s4 SDS/Veritas
s5 /var
s6 free
s7 /export
tangxh 回复于:2004-03-12 12:50:27请问楼主/分区已满该怎么解决?
科学蛋 回复于:2004-03-12 12:51:54用SDS解决啊
metor78 回复于:2004-03-12 13:03:09ln也可以
oldunix 回复于:2004-03-12 13:09:39解决问题的方法是不让问题发生!
问题发生了,那就用ln -s 命令,将空间满的某个目录备份到另外一个文件系统
然后做符号连接
tangxh 回复于:2004-03-12 13:17:33我的/根分区快满了该怎么解决呀!
tangxh 回复于:2004-03-12 13:20:58能具体点吗?
oldunix 回复于:2004-03-13 23:19:391、找出根区(或某一分区)下哪个目录占的磁盘空间大 ,如/DirWantToMoveAway
2、找一有空闲磁盘空间的分区/PartitionMountPointHaveDiskSpace
3、 mv /DirWantToMoveAway /DirWantToMoveAway.bak
cp -r /DirWantToMoveAway.bak \
/PartitionMountPointHaveDiskSpace/DirWantToMoveAway
ln -s /PartitionMountPointHaveDiskSpace/DirWantToMoveAway \
/DirWantToMoveAway
Note: 3中的 \表示一行没有结束
tangxh 回复于:2004-03-15 09:18:45非常感谢楼主
goldeneye 回复于:2004-03-15 11:07:0336G硬盘,内存1G,分区
/ 32G
swap 2G
/export/home 2G
楼主有什么看法。
oldunix 回复于:2004-03-15 11:20:59运行一段时间后会有问题!!!
例如:如果你有磁带机,某一天你在备份大文件(3GB)的时候不幸将带机的
设备名写成/dev/rmt/o(这不是数字0,是字母O的小写),那么,你很难发现你的/少了3GB的磁盘空间,尤其是你在网上远程备份的时候!
有很多例子可以说明你的这种分法会在未来产生问题!
www.pctint.com 回复于:2004-05-09 00:35:59不错不错。。支持。。。。。。。。
原文转自:www.ltesting.net
篇6:日志式文件系统简介Windows系统
尽管 Linux 可以支持种类繁多的文件系统,但是几乎所有的Linux发行版都用ext2作为默认的文件系统, ext2的设计者主要考虑的是文件系统性能方面的问题。ext2在写入文件内容的同时并没有同时写入文件的meta-data(和文件有关的信息,例如:权限、所有者以及创
尽管Linux可以支持种类繁多的文件系统,但是几乎所有的Linux发行版都用ext2作为默认的文件系统。
ext2的设计者主要考虑的是文件系统性能方面的问题。ext2在写入文件内容的同时并没有同时写入文件的meta-data(和文件有关的信息,例如:权限、所有者以及创建和访问时间)。换句话说,Linux先写入文件的内容,然后等到有空的时候才写入文件的meta-data。这样若出现写入文件内容之后但在写入文件的meta-data之前系统突然断电,就可能造成在文件系统就会处于不一致的状态。在一个有大量文件操作的系统中出现这种情况会导致很严重的后果。
日志文件系统比传统的文件系统安全,因为它用独立的日志文件跟踪磁盘内容的变化。就像关系型数据库(RDBMS),日志文件系统可以用事务处理的方式,提交或撤消文件系统的变化。Linux系统缺少日志式文件系统是限制推广其在企业级应用的一个重要制约因素。
日志式文件系统在强调数据完整性的企业级服务器中有着重要的需求,是文件系统发展的方向。日志式文件系统的思想来自于如Oracle等大型数据库。数据库操作往往是由多个相关的、相互依赖的子操作组成,任何一个子操作的失败都意味着整个操作的无效性,对数据库数据的任何修改都要回复到操作以前的状态。日志式文件系统采用了类似的技术。
在分区中保存有一个日志记录文件,文件系统写操作首先是对记录文件进行操作,若整个写操作由于某种原因(如系统掉电)而中断,则在下次系统启动时就会读日志记录文件的内容来恢复没有完成的写操作。而这个过程一般只需要几秒钟到几分钟,而不是ext2文件系统的fsck那样在大型服务器情况下可能需要几个小时来完成扫描。
当前linux环境下有下面几种日志文件可供选择:
一、SGI的xfs文件系统
SGI最新发布xfs为 1.0.1版.(oss.sgi.com/projects/xfs/)
SGI的XFS 1.0是可被linux的2.4.x核心支持.在redhat上运行的很好,SGI还在redhat上开发了一个安装程序.
其它linux发行版的安装程序也正在开发中.
SGI的xfs被称为业界最先进的、最具可升级性的文件系统技术。它是一个全64位,快速、稳固的日志文件系统,多年用于sgi的irix操作系统。sgi决定支持linux社区,将关键的基本架构技术授权于linux。它以开放资源形式发布了他们自己拥有的xfs的源代码,并开始进行移植。此工作进展得很快,目前已进入beta版阶段。作为一个64位文件系统,xfs可以支持超大数量的文件(9g×1gb,甚至更大的18g×1gb),可在大型 2d 和 3d 数据方面提供显著的性能。xfs有能力预测其它文件系统薄弱环节,同时xfs提供了在不妨碍性能的情况下增强可靠性和快速的事故恢复。
sgi的xfs可为linux和开放资源社区带来的新特性有:
可升级性
xfs被设计成可升级,以面对大多数的存储容量和i/o存储需求,可处理大型文件和包含巨大数量文件的大型目录,满足二十一世纪快速增长的磁盘需求。xfs有能力动态地为文件分配索引空间,使系统形成高效支持大数量文件的能力。在它的支持下,用户可使用1exabyte (1g×1gb) 大的文件,远远大于现在最大的文件系统。
优秀的i/o 性能
典型的现代服务器使用大型的条带式磁盘阵列,以提供达数gb/秒的总带宽。xfs可以很好地满足i/o请求的大小和并发i/o请求的数量。
系统排错
xfs可以在一秒内从大多数意外中断中恢复。传统文件系统必须在中断后做一些特定的文件系统检查,可能会花费数小时才完成。xfs避免了冗长的文件系统检查,可明显地减少读写磁盘的时间。
xfs可作为root文件系统,并被lilo支持.在NFS服务器上使用也没问题.支持软件raid和LVM.
二、Reiserfs文件系统
Reiserfs文件系统的主页是www.reiserfs.org/
在7月23日,Hans Reiser把他的基于平衡树结构的ReiserFS文件系统在网上公布 。 这是ReiserFS的第一次公开亮相。此后,ReiserFS一直在Hans Reiser和领导下的开发小组下开发和发展,SuSE Linux也对它的发展起了重大的帮助。
由于ReiserFS有一些很有用的特性,更主要的是它比ext2fs要快得多,所以它很快被很多人使用。Linux内核2.4.1-pre4版本开始包含ReiserFS文件系统。当前的ReiserFS只能在Intel结构体系上使用,但支持其他体系结构的ReiserFS版本也正在积极开发中,
新一代的reiser4将于/9/30日发布.
ReiserFS是一种新型的文件系统,在蓝点Linux中你可以选择它来装载你的Linux操作系统和其他应用程序和数据文件。它通过一种与众不同的方式--完全平衡树结构来容纳数据,包括文件数据,文件名以及日志支持。ReiserFS还以支持
海量磁盘和磁盘阵列,并能在上面继续保很快的搜索速度和很高的效率。
ReiserFS是基于平衡树的文件系统结构,尤其对于大量文件的巨型文件系统,如服务器上的文件系统,搜索速度要比ext2快;ext2使用局部的二分查找法,综合性能比不上ReiserFS。
空间分配和利用情况
ReiserFS里的目录是完全动态分配的,因此不存在ext2中常见的无法回收巨型目录占用的磁盘空间的情况。ReiserFS里小文件(<4K)可以直接存储进树,小文件读取和写入的速度更快,树内节点是按字节对齐的,小的文件可共享同一个硬盘块,
节约大量空间。Ext2使用固定大小的块分配策略,也就是说,不到4K的小文件也要占据4K的空间,导致的空间浪费比较严重。
先进的日志机制
ReiserFS有先进的日志(Journaling/logging)机制,在系统意外崩溃的时候,未完成的文件操作不会影响到整个文件系统结构的完整性。 ext2虽然健壮性很强,但一旦文件系统被不正常地断开,在下一次启动时它将不得不进行漫长的检查系统数
据结构的完整性的过程,这是为了防止数据丢失而必需的操作。对于较大型的服务器文件系统,这种“文件系统检查”可能要持续好几个小时,在很多场合下这样长的时间是无法接受的。 解决这个问题的一种技术“日志文件系统”。在日志的帮助下,每个对数据结构的改变都被记录下来,日志在机制保证了在每个实际数据修改之前,相应的日志已经写入硬盘。正因为如此,在系统突然崩溃时,在下次启动几秒钟后就能恢复成一个完整的系统,系统也就能很快的使用了。
支持海量磁盘和优秀的综合性能
ReiserFS是一个相当现代化的文件系统,相比之下,ext2虽然性能已经很好了,但其设计还只是19世纪80年代的水准。
ReiserFS的出现,使Linux拥有了像Irix/AIX那样的高档商用Unix才有的高级文件系统。ReiserFS可轻松管理上百G的文件系统,在企业级应用中有其用武之地,由于它的高效存储和快速小文件I/O特点,它在桌面系统上也表现出色:启动X窗口系统的时间ReiserFS比ext2少1/3。而ext2则无法管理2G以上的单个文件,这也使得ReiserFS在某些大型企业级应用中比ext2要出色。
ReiserFS一个最受人批评的缺点是每升级一个版本,都将要将磁盘重新格式化一次,这个缺点也正在改进中。
三、IBM的jfs文件系统
IBM最新发布xfs 1.0.2版.(oss.software.ibm.com/developerworks/opensource/jfs/)
jfs(Journaled File System Technology for Linux)的开发者包括AIX(IBM的Unix)的jfs的主要开发者。在AIX上,jfs已经经受住了考验。它是可靠、快速和容易使用的。
2月,ibm宣布在一个开放资源许可证下,移植linux版的jfs文件系统。jfs也是一个有大量用户安装使用的企业级文件系统。
使用日志文件系统,性能上会稍有损失,是因为当它保持一个日志时,系统需要写许多数据。但面对系统崩溃及运行fsck,这是值得的。jfs通过把同步日志转为异步日志从而减少了性能的损耗。使用同步日志,系统直接进行与文件系统的动作成比例的日志记录操作;而异步日志,日志记录较少,且其可以在不影响其它文件系统操作时进行记录,因而可减少日志的开销。
四、ext2的后继者ext3fs
ext3是由开放资源社区开发的日志文件系统,主要开发人员是redhat的 高手stephen tweedie。ext3被设计成是ext2的升级版本,尽可能地方便用户从ext2fs向ext3fs迁移。ext3在ext2的基础上加入了记录元数据的日志功能,努力保持向前和向后的兼容性。这个文件系统也许称为ext2的下一个版本更为合适些。
ext3fs工作得很好。ext3fs最大的优点是向下兼容ext2。而且ext3fs还支持异步的日志,这意味着它的性能可能比ext2还好。但是使用ext3文件系统时要注意硬盘限额问题,在这个问题解决之前,不推荐在重要的应用上采用ext3+disk quota
ext3最新版本是针对kernel 2.4.8的ext3-2.4-0.9.6-248.gz
新推出的redhat 7.2B上正式启用了ext3,Turbolinux Server 6.5则同时支持 ReiserFS 及 ext3.
通过在已有的ext2文件系统上添加日志文件可把ext2文件系统转换成ext3文件系统.
你可以把一个文件系统在ext3和ext2自由切换.因为在ext2文件系统上的ext3日志文件仍然存在,只是ext2不能认出而已.
原文转自:www.ltesting.net
篇7:影响性能的文件系统属性Windows系统
文件系统使用时间越长,所含碎片越多,由于资源的动态分配,文件块变得越来越零散,逻辑相连的文件被隔成碎片,逻辑相连的逻辑卷(LV)也被隔成了碎片。 当从分段的逻辑卷访问文件时,会发生下列事情: 1. 顺序访问不再是按顺序的 2. 随机访问较慢 3. 访问时
文件系统使用时间越长,所含碎片越多。由于资源的动态分配,文件块变得越来越零散,逻辑相连的文件被隔成碎片,逻辑相连的逻辑卷(LV)也被隔成了碎片。
当从分段的逻辑卷访问文件时,会发生下列事情:
1. 顺序访问不再是按顺序的
2. 随机访问较慢
3. 访问时间取决于较长的寻道时间
但是,文件一旦位于内存中,这些影响就减弱了。文件系统的性能也受物理因素影响,例如:
1. 磁盘的类型和适配器的数量
2. 用于文件缓冲的内存数量
3. 与远程文件访问相对的本地文件访问量
4. 应用程序的文件访问模式和文件访问量
通过细分为 4 KB 的块,JFS 使您可以更改文件系统的分段大小以得到更高的空间使用率。每个 i-node 的字节数(NBPI)用来控制为文件系统创建多少 i-node。可以对分段大小小于 4 KB 的文件系统使用压缩。分段大小和压缩会影响性能.
JFS 文件系统分段大小
JFS 中的分段特征允许文件系统中的空间以小于 4 KB 的块进行分配。在创建文件系统时,可以指定文件系统中的分段大小。允许的大小是 512、1024、2048 和 4096 字节。缺省值为 4096 字节。小于一个分段的文件一起存储在各个分段中,其主要目的是为了节约尽量多的磁盘空间。
小于 4096 字节的文件被存储在最少必需数量的连续分段中。大小在 4096 字节到 32 KB (包括 32 KB)的文件被存放在一个或多个完整的块(4 KB)中,剩余的则被存放在所需大小的多个分段中。例如,系统会为 5632 字节的文件分配一个 4 KB 的块,i-node 的第一个指针将指向这个块。如果分段的大小是 512,那么这第一个 4 KB 的块将占用 8 个分段。最后的 1.5 KB 将占用由 i-node 的第二个指针指向的 3 个分段。对于大于 32 KB 的文件,系统分配一系列 4 KB 的块, i-node 的指针指向这些 4 KB 的块。
无论分段的大小如何,一个完整块的大小都会是 4096 字节。然而,在分段大小小于 4096 字节的文件系统中,任何总数为 4096 字节的一连串分段都可以满足分配一个完整块的需要。不必以 4096 字节的倍数为界限开始分配。
文件系统在试图为文件分配空间时会通过把文件本身分散到逻辑卷中来为文件分配相连的分段,以便使文件相互之间的干扰和分段降到最低程度。
小分段的文件系统的性能的首要威胁来自于空间碎片,
小文件分散于各个逻辑卷的情况可能使得为大文件分配相连或相近的块变得不可能。这时访问大文件性能就可能大大降低。在极端情况下,空间碎片会导致无法为文件分配空间,即使仍有许多单独的空闲分段。
另一个影响磁盘 I/O 活动的不利因素是 I/O 操作的数量。对于存储在单个 4 KB 分段上大小为 4 KB 的文件来说,读写文件都只需要一个磁盘 I/O 操作。如果所选分段的大小为 512 字节,系统会为文件分配 8 个分段,这样,完成一个读写操作就需要一些额外的磁盘 I/O 操作(磁盘寻道、数据传送、分配活动)。因此,分段大小为 4 KB 的文件系统的磁盘 I/O 操作数量将远小于分段大小小于此的文件系统。
创建小分段文件系统时应该考虑使用 defragfs 命令整理空间这一策略。该策略还必须同时考虑运行 defragfs 命令的性能代价。
JFS 压缩
如果压缩了文件系统,所有的数据在被写入磁盘前都会以 Lempel-Zev(LZ)压缩技术自动压缩,在从磁盘读取时则自动解压缩。LZ 算法把特定字符串的后继出现位置替换为指向该字符串第一次出现位置的指针。平均可以期望节约 50% 的磁盘空间。
文件系统数据以独立逻辑块的级别压缩。在大单元(例如:一个文件的所有逻辑块)上压缩数据会导致更多可用磁盘空间的损失。而单独压缩一个文件的逻辑块会使文件的随机读取和更新执行更快。
当向一个压缩了的文件系统写入文件时,压缩算法一次压缩 4096 字节(一页)的数据并将其写入最少必需数量的连续分段中。显然,如果文件系统的分段大小为 4 KB,将没有多余的磁盘空间用于数据压缩。因此,压缩需要利用空间碎片,致使分段的大小小于 4096。
尽管压缩总体上会节省空间,我们仍有充分的理由在文件系统内保留一部分未使用空间。
由于无法预知一个 4096 字节的数据块会被压缩至什么程度,文件系统初始时为之保留了一个完整的块的空间。不需要的分段在压缩后释放,但这一分配初始保留空间的策略也可能预示着“空间不足”的前兆。
一些空闲空间对于执行 defragfs 命令来说是必需的。
除了磁盘 I/O 活动的增加和空闲空间碎片问题,使用数据压缩的文件系统在性能方面还需考虑以下几项:
作为数据压/解压缩活动的直接结果,文件系统的可用性会降低。如果压缩/解压缩数据耗时过长,压缩后的文件系统有时会无法使用,特别是在需要实事数据的繁忙商务环境下。
压缩后的文件系统中的所有逻辑块在第一次被修改时会分配到一块 4096 字节的磁盘空间,这块空间以后还会在该逻辑块被写入磁盘时被再分配。由于未压缩的文件系统不需这一次再分配,性能代价便与这联系在了一起。
要执行数据压缩,每字节需要将近50 个 CPU 时钟周期,解压缩每字节 10 个 CPU 时钟周期。因此,数据压缩会通过增加处理器的时钟周期来加重处理器的负载。
JFS 压缩 kproc (jfsc)运行在一个固定的优先级( 30 )上,所以当进行压缩/解压缩时,除非有一个运行在更高优先级上的进程,该 kproc 所在的 CPU 将对其他进程不可用。
原文转自:www.ltesting.net
【UNIX文件系统的路径组织结构Windows系统】相关文章:
10.新疆林业系统组织生活会






文档为doc格式