2020-01-01 12:39:21 weixin_43840862 阅读数 17

1 UNIX操作系统

UNIX系统是一个交互式的分时操作系统
1974年《ACM通信》上发表了K. Thompson 和 D. Ritchie的论文“The UNIX Time-Sharing System”,UNIX系统公布于世。
作者:美国BELL实验室
Ken Thompson(K.汤普逊)Dennis Ritchie (D.里奇)(C语言的创始人)

1.1 UNIX操作系统的发展

1965年:麻省理工大学、BELL实验室、通用电器公司组成MAC课题组联合研制Multics操作系统。
Multics操作系统设计目标是要向大的用户团体提供对计算机的同时访问,支持强大的计算能力与数据存储,以及允许用户带需要的时候容易共享他们的数据。
1969年Multics在GE645计算机上运行了,但它既没有能提供预定的综合计算服务,而且连它自己究竟什么时候算达到开发的目标。
BELL实验室退出了该课题组。

Multics操作系统开发失败的原因是当时操作系统设计的指导思想所导致的。
当时操作系统设计的指导思想是“满足所有用户的所有要求”。
UNIX系统的作者认为:操作系统的设计不应也不可能做到“满足所有用户的所有要求”,而应为广大的计算机用户提供一种良好的程序设计环境。

1969年K. Thompson和 D. Ritchie 为了改善他们的程序设计环境,设计了一个纸面的文件系统设计,这个设计后来演化成UNIX系统早期的版本。并在PDP-11计算机上实现,后来Dennis Ritchie创造了C语言, 并用C语言改写了早期的UNIX系统。
1974年在《ACM通信》上发表了“The UNIX Time-Sharing System”的论文,UNIX正式公布于世。

由于UNIX系统生逢其时,品质优秀很快风靡全球,成为当令各种计算机系统的主流操作系统。
目前,国内流行的UNIX操作系统:
SCO UNIX
AT&T UNIX SVR 4X
惠普计算机上的HP-UX
IBM小型机上的AIX
苹果Mac上的AUX
免费的UNIX版本,如Linux、Minix和FreeBSD

1.2 UNIX操作系统的主要特点

1.设计思想的正确合理
UNIX系统的设计者认为操作系统的设计和实现不可能做到满足所有用户的所有要求,而应是“为广大的计算机用户提供一个良好的程序设计环境”。UNIX系统的实践证明了这种设计思想的正确性,后来的Windows 95系统的实践也证明了这一点。

2.生逢其时、选择恰当
在60年代初,产生了多用户计算机,这时人们都在盼望有一个大小适中、功能齐全、使用方便的分时操作系统见世,就在人们翘首以待的时候,UNIX系统产生了。
其次是选择恰当,UNIX系统设计者选择了在PDP-11系列的计算机上实现,当时占据小型计算机的主要市场,为UNIX系统的广泛配置创造了物质条件。

3.特色明显、品质优良
UNIX系统的成功,外部的原因起到了一定的作用,但起决定作用的是UNIX系统内部的原因,这就是UNIX系统有着别的系统无法比拟的特征和优良的品质。使它成为操作系统的一代霸主。

其主要特点是:
⑴ 该系统用高级语言编写,使之易读、易懂、易修改、易移植到别的计算机上。
⑵ 它有一个简单的用户界面—shell
⑶ 它使用了在维护上容易的、实现上是高效的树形结构的文件系统。
⑷ 文件、设备统一处理
⑸ 内核和核外程序的有机结合
⑹ 丰富的核外系统程序

1.3 linux系统简介

linux的起源和发展确实令人惊奇。
它是一个芬兰人Linus Torvalds(二十三岁计算机系学生)的业余发明。但如今已经成长为一个羽翼丰满的32位计算机的操作系统,其性能可与商业的x86UNIX操作系统相媲美。
linux是自由软件,并且在专用的网站上公布了该系统的源代码。因此,引起了全世界操作系统爱好者的兴趣,不断地对linux进行修改和补充,不断地增加功能,用户可以不断地下载更新的版本,并在各种系统配合下进行测试,这使得linux日趋完善和成熟。

2 UNIX文件系统

2.1文件的静态结构

在这里插入图片描述
特别块(管理块)结构:

特别块是在磁盘格式化时建立的,当一个文件子系统安装到系统中时,系统将申请一个内存缓冲区来存放特别块。

在这里插入图片描述
在这里插入图片描述
文件的静态结构
UNIX系统中,一个文件存在要占用如下资源:至少占用一个文件目录项;仅占用一磁盘I节点;占用一个或多个磁盘块(物理块)。
在这里插入图片描述
在这里插入图片描述

2.2文件的索引结构

在这里插入图片描述
在这里插入图片描述
在i结构中的索引表有13个表目,
前10个表目存放文件数据块的地址,采用直接索引;如果文件的长度超过10个数据块;
第11个表目登记的是一次间接索引块的物理块号,该块存放索引表,而不是文件的内容,采用一次间接索引;
第12个表目登记二次间接索引块的物理块号,该块存放二次间接索引表,每个表目中登记的是一次间索引表的物理块号;
第13个表目登记的是三次间接索引块的物理块号,该块存放三次间接索引表,每个表目中登记的是存放二次间接索引表的物理块号。
这种结构对于小于等于10个物理块的文件采用直接索引,可从i结构的索引表中直接取到文件数据块的物理块号,不需要进行任何转换和计算,加快文件存取的速度,提高文件系统的使用效率;对于一些大型文件或巨型文件,系统采用间接索引的方法也可以方便的管理和使用,只不过要付出些代价。因此,不论是几KB仍至几个字节的文件,还是几十MB、甚至更大的文件都能存在于UNIX系统中。

UNIX系统中采用这种方法主要是照顾小型文件,保证对小型文件的存取高效快速,同时又兼顾大型文件和巨型文件。这与UNIX系统的环境有关,UNIX系统的设计者提供以下的统计资料说明他采用这种结构的理由。其统计资料说:在UNIX系统的环境下,小于10个物理块的文件约占所有使用文件的80%,其它文件约占20%,其中巨型文件不到1%。在实际应用中的文件大小的分布情况与这个统计结果是相符的。
在这里插入图片描述
一、三种文件类型
UNIX系统中有普通文件、目录文件和特别文件。
目录文件是由文件目录项组成的文件。
文件目录项由文件名和文件I节点号组成
I节点号(2) 文件名(14)
UNIX系统中文件目录项只包括文件名和I节点号,把通常目录项中的信息放在一个叫索引节点(I节点)的结构中,有两个优点:其一是便于文件的共享,即不同的用户可以通过不同的文件路径名来共享一个文件;其二是加快文件检索的速度。

整个系统有个根目录文件(DOS、WINDOWS系统中有一个根目录区),相当于一棵树的树根,
并有多级目录文件(与DOS概念相同,WINDOWS中叫做文件夹),相当于树枝。
还有许多文件(普通文件和特别文件),相当于树叶。
在这里插入图片描述
二、文件的安装和拆卸
UNIX系统采用树型目录结构,整个文件系统由根文件系统和若干个子文件系统所组成 。
根文件系统是基本文件系统,在系统生成时产生。
子文件系统是驻留其它文件存储介质上的文件系统,例如,一片软盘、一盘的逻辑分区、一卷磁带、一个磁鼓等,在UNIX环境下格式化后成为一个子文件系统,经过UNIX系统提供的安装命令装到系统中,与根文件系统和已经安装在系统中的其它子文件系统一起形成一个完整的文件系统,当某个子系统不再使用时,用拆卸命令将该子文件系统拆卸下来。
踪上所述,在UNIX环境下总只有一个完整的树型目录结构。所以,在UNIX系统环境下使用文件只要给出文件的路径名即可。

三、文件的联接
UNIX系统是一个多用户的操作系统,为了使多个用户能方便地共享系统中的某些文件,UNIX系统提供文件的联接操作(取别名),方法见用户手册。
用户在使用文件之前必须要使打开文件操作,为什么?
文件是存放在磁盘上的。磁盘属于外存储器,它是CPU不能直接访问的存储器,当然,用户就不能直接存取存放在磁盘上的文件。但用户又要使用文件,这样,在使用文件之前,就要在内存中建立存取文件的结构,然后,通过对这个结构的访问来达到对文件的访问。

内存中建立的存取文件的结构,称为文件控制块(FCB),包含文件目录的信息和对文件存取的有关信息。
该结构是在打开文件操作中建立的,并向用户返回FCB的首地址,用户以后使用文件(如读、写)就使用FCB首址。显然,用户要使用具体的内存地址,这对用户来说是非常困难的。
UNIX系统中打开文件的结构包括活动I节点表,系统打开文件表和用户文件描述符表

一、活动I节点
i_flag打开文件的标志
ILOCK:锁位
IUPD:修改标志
IMOUNT:安装点
IWANT:有进程等待
ITEXT:纯正文段
i_count:访问计数
i_dev:文件所在设备号
i_number:I节点号
在这里插入图片描述
二、打开文件表
f_flag:标志
FREAD:读
FWRITE:写
FPIPE:管道
f_count:访问计数
f_inode:指向活动I节点指针
f_offset:读写指针

在这里插入图片描述
三、用户文件描述符表(进程打开文件表)
每个进程有一个用户文件描述符表,存放在进程的user结构中,u.u_ofile[NOFILE]。
NOFILE=15是一常数,表示一个进程最多能同时打开15个文件。

这一个结构类似于一般操作系统中的FCB。

四、打开文件结构之间的关系
在这里插入图片描述
文件共享的三个层次:
1.父子进程共享同一文件,子进程在创建时继承了父进程的所有打开的文件,体现在对某个打开文件表目的共享;

2.不同的用户打开了同一个文件(以不同的文件名)
进程2 open(“/unix/li.c”,READ)
进程3 open(“/user/ll.i”,WRITE)
文件/unix/li.c和/user/ll.i是同一个文件;

3.不同的进程以不同的用途打开同一个文件
进程1
open(“/user1/ll”,READ)
进程3
open(“/user1/ll”,WRITE)

3文件操作系统调用

一、文件系统调用及其它算法的关系
在这里插入图片描述
二.系统调用 open
使用文件之前必须使打开文件操作,UNIX系统中打开文件的系统调用是open,其调用格式是:
fd=open(pathname,flags);
功能:打开一个指定的文件;
输入参数:pathname 要打开文件的路径名
flags 指示打开文件的类型(读或写)
返回参数:fd 文件描述符(一个小的正整数)
若fd=-1则表示系统调用失败,对所有系统
调用都是。

执行过程:
①调用namei()将文件的路径名转换成I节点;
②文件不存在或非法访问,返回-1;
③申请打开文件表项,f_count++;f_offset置0; f_inode指向I节点;
④分配用户文件描述表项,将打开文件表首地址填入;
⑤若打开文件的类型是清文件,则释放该文件占用的所有磁盘块;
⑥返回用户描述表项的编号。

在这里插入图片描述
三.系统调用 creat
调用格式:
fd=creat(pathname,modes);
功能:创建一个新文件;
输入参数:pathname 要创建文件的路径名
modes 指示创建文件的类型(读或写)
返回参数:fd 文件描述符(一个小的正整数)

执行过程:
①调用namei()取得文件路径名的I节点;
②文件存在且不允许访问,则释放I节点,返回-1;
③文件不存在,则申请分配一I节点;
④在其父目录中建立目录项,包括文件名和I节点号;
⑤分配用户文件描述表项,打开文件表首地址填入;
⑥若文件在创建时已存在,则释放该文件占用的所有磁盘块;
⑦返回用户描述表项的编号。

四. 系统调用 close
调用格式:
fd=creat(pathname,modes);
功能:关闭文件;
输入参数:fd 文件描述符
返回参数:无
执行过程:
⑴if(f_count-- > 0) return;
⑵ 释放该表目;
⑶if(i_count-- > 0) return;
⑷ 如果活动I节点修改,则将有关盘上I节点的内存写回到相应盘上I节点;释放此I节点,return;
⑸如果活动I节点未修改,释放此I节点,return。

在这里插入图片描述

五.系统调用read,write
Read 读文件;
write写文件。
调用格式:
n=read(fd,buffer,size);
n=write(fd,buffer,size);
输入参数
fd 文件描述符;
buffer 缓冲区,对于读是将读文件的信息存放在缓冲区中;对于写是将缓冲区中的信息写到文件中;

size 读(或写)信息的长度,单位字节。

返回值:
对于读操作
n=0 读到文件尾
n > 0 实际读的字节数。

对于写操作
n > 0 实际写的字节数,n与size应相等。
执行过程:
读(或写)操作先按文件表中的位移量设置U区中的位移量,然后调用低层读(或写)磁盘块的操作,读完指定的字节数后,返回实际读的字节数。
低层读磁盘块的操作
计算出文件的逻辑块号;
查活动I节点中的文件索引表,找到相应的物理块号;
读磁盘块。

linux系统简介
linux是自由软件,并且在专用的网站上公布了该系统的源代码。因此,引起了全世界操作系统爱好者的兴趣,不断地对linux进行修改和补充,不断地增加功能,用户可以不断地下载更新的版本,并在各种系统配合下进行测试,这使得linux日趋完善和成熟。

2019-06-19 20:29:52 dyausasd 阅读数 216

上节《UNIX和Linux的区别》中讲到了 UNIX 系统的历史,UNIX 是操作系统的开山鼻祖,是操作系统的发源地,后来的 Windows 和 Linux 都参考了 UNIX。

 

有人说,这个世界上只有两种操作系统:

  • UNIX 和类 UNIX 操作系统;
  • 其它操作系统。

类 UNIX 系统(英文 Unix-like)既包括各种传统的 UNIX 系统,比如 FreeBSD、OpenBSD、Sun Solaris 等,还包括与 UNIX 相似的系统,比如 Linux、QNX、Minix 等,它们都相当程度地继承了原始 UNIX 的特性,有很多相似之处,并且都在一定程度上遵守 POSIX 规范(UNIX 可移植接口规范)。

类 UNIX 系统不都是免费的,有相当一部分是收费的,而且还比较昂贵。

Linux 几乎是最著名的一个类 UNIX 系统,现在风头正盛,甚至有点“喧宾夺主”,剥夺了原来属于 UNIX 的市场份额,但是 UNIX 也经历了时间的考验,其在操作系统发展历程中的地位是不可否认的。

几乎每一门科学学到深入都是要接触 Linux 的,很多专业的软件甚至针对 Linux 做了大量的优化。

除去 Windows,几乎你所知道的每一个系统都是 UNIX 和类 UNIX,而且它们在 PC 普及前就大放异彩。Windows 仅仅占领了 PC,而别的方方面面都被 UNIX 和类 UNIX 占领了,至于其他的操作系统更是不值一提。比如:

  • 服务器、超级计算机、嵌入式、机顶盒领域都有 Linux 的身影;
  • 在手机领域,Android 和 iOS 都是类 UNIX 系统。

总之,除了 Windows,几乎你能叫的出名的都是 UNIX 和类 UNIX 系统。

类UNIX系统详解
图1:维基百科对 UNIX 和类 UNIX 系统的简单

 

类UNIX系统详解
图2:类 UNIX 系统发展史(简明版)

推荐阅读

年薪40+W的大数据开发【教程】,都在这儿!

大数据技术盘点

下一篇linux教程:Linux的优缺点

2017-06-01 09:54:11 Android_Linux_Unix 阅读数 388

Unix系统是1969年由美国贝尔实验室研发的成果。如今已经形成了Linux、Mac、FreeBSD。。。。很多不同版本的Unix系统。但Linux系统(常见的安卓系统)是按照Unix规范进行重新编写,实质上已经不是Unix系统。而Mac系统也就是苹果系统属于Unix系统。由上图的Unix家谱图可以看到,Minix以及Linux已经和Unix系统没有实质性的系谱连接。

2015-12-12 20:04:04 u014625701 阅读数 2522
1.UNIX操作系统简介

UNIX操作系统是一个多用户、多任务的操作系统,它于1974年问世。与一般操作系统一样,UNIX系统也是运行在计算机系统的硬件和应用程序之间,负责管理硬件并向应用程序提供简单一致的调用界面,控制应用程序的正确执行。UNIX与其他操作系统的不同之处主要有两点:UNIX与其他操作系统的内部实现不同; UNIX与其他操作系统的用户界面不同。

除了提供内核来完成传统操作系统的功能外,UNIX还为用户提供了一组系统库和标准应用。这一标准的界面不仅可以使应用程序方便地移植,还可以让用户方便地使用。标准界面的优点是应用的可移植性,即一个应用程序可以不加修改地运行在不同硬件结构的各种机器上。

2.文件系统基础

UNIX内核有两个基本的子系统:文件子系统和进程控制子系统。文件子系统负责文件的相关操作和管理进程控制子系统则负责与进程相关的操作与管理

文件子系统管理
UNIX内核有两个基本的子系统:文件子系统和进程控制子系统。文件子系统负责文件的操作与管理;进程控制子系统则负责与进程相关的操作与管理。本部分我们介绍文件子系统的管理。
   几个术语
  逻辑盘:物理实盘在内核中的简化。用户使用逻辑盘不必了解物理实盘的具体情况。因此系统管理员必须了解逻辑盘。
  分区:内核在使用逻辑盘时。常常为了各种需要将逻辑盘分成几个部分,每个部分就成为一个分区。
  文件系统:文件系统存在于分区之中,它只是经过处理的分区,是UNIX系统在磁盘上可以存放数据的一种机制。
  设备项:就是与设备对应的文件。存放在/dev目录下。
针对多数使用的IDE硬盘,UNIX以如下形式定义一个IDE硬盘/dev/hd[drive][partition],每个IDE驱动器从0开始标记,分区从0开始标记。如/dev/hd00 为第一条线上的主硬盘。对SCSI硬盘,表示机制相同,只是把/dev/hd换成/dev/sd。

2.1文件系统的构成
文件系统的结构如下图所示。
   引导块(boot block):位于文件系统的头部,一般占一个扇区,它含有引导和启动操作系统的代码,虽然引导系统只需要一个引导块,但是每个文件系统都有一个(可能为空)的引导块。
   超级块(super block):用于描述文件系统的状态,包括文件系统的大小,可以存储的文件的数量,空闲空间的位置及其他一些有用的信息。
   索引节点表(inode table):存放文件系统中文件的索引节点,内核通过索引节点表中的索引来访问索引,从而访问文件。有一个节点是根索引节点,通过它就可以访问文件系统的目录结构。

  数据块(data block):存储文件系统中文件的数据及进行文件系统管理必须的管理数据。


3.文件系统高级管理
主要包括对文件系统的创建、安装、拆卸、监控和重组等。
3.1 与文件系统管理相关的文件
l /etc/mnttab文件:当前系统中已经被安装的文件系统的列表。存储格式如下
special: mount-point: fstype:mount-option: mount-time
其中
special:文件系统的设备项名
mount-point:文件系统被安装的目录名
fstype:文件系统的类型
mount-option:文件系统被安装时的一些参数
mount-time:文件系统的安装时间
3. 2 创建文件系统
文件系统的创建必须在硬盘的一个分区上进行。因此创建文件系统分为两步:一是对硬盘进行分区;二是创建文件系统。
硬盘分区采用fdisk命令,其使用方法基本和dos下的fdisk类似,其中有专门创建UNIX分区的选项。
创建文件系统使用mkfs命令。
3.3 安装与拆卸文件系统
l mount命令:实现对文件系统的安装
mount [-f Fstype] [-v][-r][-m] [-o specific-options] {special | mount-point}
没有任何参数时,mount命令列出所有来自安装表(/etc/mnttab文件)的备安装的文件系统。Mount命令结束后,将在文件/etc/mnttab文件中加入相应一项。
l umount命令:实现对指定文件系统的拆卸。
umount [-m] {special | mount-point}
该命令实现对已经安装在mount-point上的文件系统或设备项为special的拆卸,命令结束后,文件/etc/mnttab中对应的项被删除。
3.4 监控文件系统
系统管理员对文件系统进行管理的一件日常工作就是对文件系统的监控。常用命令如下:
l du命令:对磁盘分区上的文件系统的使用情况进行统计,并显示出来。
du [-sar] [name…]
给出指定文件name或指定目录name下所有(递归的)文件所占用的磁盘块数。如果不指定name,则显示当前目录的磁盘块数。
-s:对每一个指定的name,只给出总的站用磁盘块数
-a:对每一个文件都产生行输出
-r:du命令不能打开或读某个目录和文件时给出相应的提示信息
l df命令:报告磁盘空间的使用情况
df [Fstype] [-beIklnt] [-o specific-options] [dir|special]
显示指定目录或文件dir所在文件系统或指定设备项special对应文件系统使用磁盘分区的情况。如果不指定,则报告所有已经安装的文件系统
Fstype:指定文件系统的类型
-I:显示文件系统的inode信息
-l:仅报告本地文件系统的信息
-t:显示完整的清单和总计
l ff命令:列出指定文件系统中的文件名和统计信息
ff [Fstype]

4 进程管理
UNIX系统中所有的操作都是通过进程来实现的,因此对进程的管理是UNIX系统管理中一个十分重要的部分。
1.进程管理
UNIX系统提供了一套与进程管理密切相关的命令。
1.1 报告进程状态
ps命令:显示有关的活动进程的信息,它所给出的信息是命令执行一瞬间的进程状态。
ps [options]
没有任选项时,只显示与执行命令的控制终端有关的进程的信息。常用任选项如下:
-e:显示当前运行的所有进程的信息
-f:以full格式产生指定进程的完整的信息清单
-l:以长格式产生指定进程的详细信息清单
-t termlist:显示与termlist中所列终端相关的所有进程的信息
-u uidlist:显示在uidlist中所列用户的所有进程的信息
-p proclist:显示在proclist中所列的所有进程的信息,proclist为进程id的列表
1.2 进程调度命令
nice命令:将较低执行命令的优先级。
nice [-increment ] command [arguments]
该命令将降低命令command的CPU调度优先级,若使用increment参数(取值范围为1~19),则优先级降低值为increment,默认值为10。当increment为负数时,则将提高命令command的优先级。
nohup命令:该命令使得命令的执行将不受挂起和退出的影响。
nohup command [arguments]
nohup命令执行命令command,并使得命令在执行期间忽视以外停止和退出的影响。命令的输出被重定向到文件的当前目录的nohup.out文件。
1.3 等待进程命令
wait命令将实现对一个进程的等待。命令格式为  # wait [n]
等待进程号为n的一个进程的完成并将报告进程的终止状态。没没有参数,则将等待所有后台进程的完成并返回代码0。
1.4 挂起进程命令
sleep命令,将使得进程的执行被挂起一段时间
# sleep time 使得shell挂起time秒后,再继续执行
1.5 终止进程命令
UNIX系统的系统管理员为了保持系统良好的运转,常需要终止系统中一些活动的进程。
kill命令将发送一个信号给指定进程,并在缺省情况下终止进程。
kill [-signal] pid 向进程ID为pid的进程发送信号signal,signal可以是一个数字,也可以是一个符号,在文件/usr/include/sys/signal.h中定义。
kill -l 将显示系统中定义的所有信号的符号名。
killall [signal] 命令将实现终止所有活动的进程
2.作业控制
UNIX系统中提供了对作业(jobs)的控制。作业和进程不同,一个典型的作业就是一条命令行,其中可以包含简单的命令,shell脚本文件或者用管道相连的多条命令。下面介绍一些与作业控制相关的命令。
l jobs命令:列出在作业控制下的所有活动作业的信息。使用-l任选项则可以列出较为详细的信息。
l bg和fg命令:bg命令将在后台运行指定的作业,而fg命令则使指定的作业成为前台运行的作业。命令格式为:bg [%job…] fg [%job….]
l at和patch命令:这两个命令一起将使得某一作业在以后的某个时刻运行。命令格式为:
# at [-f script][-m]time[date][+increment]
# at -l [jobs]
# at -r jobs.....
# batch
at命令用于指定作业执行的时间,batch命令在将排队的作业在系统的负荷水平允许的情况下被执行。主要参数如下:
-f script:从名为script的文件中读取要执行的作业的命令
-l [jobs]:向发出本命令的用户报告已经安排的将要执行的作业,或报告指定的作业。
-m:当作业完成时,向用户发一个邮件以指出作业已经结束
-r:删除以前用at命令安排的作业。
Time和date用于指出作业被执行的开始时间和日期。
l Cron进程与crontab命令、crontab文件
Cron进程是一个在系统初启时被启动的系统进程,它将在指定的日期和时间启动一个指定的作业,作业通常是在用户的crontab文件中指定的,用户的crontab文件是利用crontab命令建立的。命令格式如下:
# crontab [file]
# crontab –e [username]
# crontab –r [username]
# crontab –l [username]
crontab 命令在系统中创建一个cron目录(默认是在/usr/sbin/cron.d)来存储用户的crontab文件,指定了文件file,则把该文件存放在该目录里。主要参数为:
-e:启动系统默认的编辑器来编辑指定用户username的crontab文件
-r:删除指定用户username的crontab文件
-l:显示指定username的crontab文件
crontab文件的每一行包含6个字段,中间用空格或制表符各开。前5个字段表示作业执行的时间。第6个字段是要执行的作业命令,这个字段中%被解释为换行符。一个crontab文件的例子如下:
# cat crontab
30 12 * * * echo
“ it is time for lunch”% (在每日12:30显示信息提示午饭时间到了)
23 30 * * 5 backup_job (在每周5的23:30启动备份作业backup_job)
性能优化和内核参数调整
UNIX OS在使用过程中,随着环境和主要使用目的的变化,不能完全发挥其潜力,就需要对系统进行调整以适应新的需求。
作为系统管理员,其主要任务之一就是不停地监控和调整系统的整体性能,这是一项比较复杂的工作,往往涉及到系统的硬件,操作系统及主要业务应用程序等方面。


微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑
1 UNIX性能优
l 为什么会存在性能问题
计算机运行的应用程序的规模的不断扩大

应用程序类型的变化,例如一台适合超级计算的计算机,在其上进行大规模事务处理,这台计算机的I/O处理就成为系统性能的瓶颈。


l UNIX中常见的性能瓶颈
我们大致可以把计算机资源分成三种类型:计算能力(CPU)、可使用的内存和外部存储器的大小,以及系统的I/O。
ü 计算能力(CPU):CPU通过调度不同优先级的程序执行,使CPU的处理能力被多个用户程序所共享。计算密集型的应用程序往往占用较多的CPU时间。所以如果多个计算密集的程序同时运行,CPU就可能成为系统瓶颈。
ü 可使用的内存和外存的大小:UNIX一般把外部存储介质以交换区的形式作为内存的后备存储区使用。当程序所需要的内存大于系统提供的数量时,系统就把一个进程的一部分移到磁盘上为另一进程腾出空间,如果内存仍不够,则把整个进程全部移到磁盘上。

ü I/O能力:I/O设备作为机械系统,其运行速度要慢几个数量级。当一个应用程序包含大量的I/O操作时,系统会等待I/O操作结束而处于等待状态。


2. 监视整个系统的性能
l 使用uptime命令监视系统状态
使用uptime命令是监视UNIX系统性能的简单方法。它显示在一定时间间隔内系统运行队列中进程的信息。通过这些信息可以大致地分析系统的工作负载。所以当系统性能下降时,首先应使用uptime命令来观察系统运行队列中进程的情况。
% uptime
2:07 pm up 11 day(s), 4:54, 15 users, load average: 1.90, 1.98, 2.01
其中有用的信息是三个负载的平均值:1.90、1.98和2.01分别是前1分钟、5分钟和15分钟内的负载平均值。

系统管理员需要定期运行uptime命令以观察系统的平均负载值及其变化趋势。系统的问题往往通过上述数据反映出来。当系统负载增大时,说明多条命令被阻塞在内存和I/O系统中。这时需要检查系统的有关信息。一般UNIX系统,负载为2和3 表示轻载,5和6表示中等程度负载,10 以上为过载。不同系统的划分标准是不同的。系统管理员应根据实际情况确定自己系统中划分轻载和过载的界限。


l 使用ps命令监视进程
在性能监视过程中,ps命令是一个最有用的工具,它监视系统内活动进程的状态。可以用来检查是否因为某个进程对资源的大量使用导致系统性能的下降。使用ps命令可以获得在某一瞬间系统内部活动进程的情况。
首先,根据ID寻找由同一用户发出的许多相似的任务。这些任务主要是由于用户运行的脚本在后台并发运多个命令造成的,可以用kill命令终止这些任务。
然后检查TIME域中积累的各进程的CPU时间。如果某进程积累了大量的CPU时间,说明该进程陷入了无限循环或出现了逻辑错误。要老率是否终止该进程。
使用 ps –l 检查SZ域中进程消耗的内存数量。如果某进程占用了大量内存,要查明原因,原因不明时考虑终止该进程。同时可以使用vmstat或sar –wpgr命令斤秒年厘时秒系统有关换页和交换的情况。

如果一个进程使用了大量的CPU资源,使用 ps –l 检查该进程CLS域中的优先级是否过高,是则使用nice命令调整该进程的优先级。


3. 监视内存的使用
当程序运行需要的内存大于物理内存时,UNIX系统采用了调页机制,即系统copy一些内存中的页面到磁盘上,腾出来空间供进程使用。大多数系统可以忍受偶尔的调页,但是频繁的调页会使系统性能急剧下降。
UNIX内存管理:UNIX系统通过2种方法进行内存管理,一种是“调页算法”,另一种是“交换技术”。调页算法是将内存中最近不常使用的页面换到磁盘上,把常使用的页面(活动页面)保留在内存中供进程使用。交换技术是系统将整个进程,而不是部分页面,全部换到磁盘上。正常情况下,系统会发生一些交换过程。当内存严重不足时,系统会频繁使用调页和交换,这增加了磁盘I/O的负载。进一步降低了系统对作业的执行速度,即系统I/O资源问题又会影响到内存资源的分配。

使用vmstat监视内存性能:该命令用来检查虚拟内存的统计信息,并可显示有关进程状态、空闲和交换空间、调页、磁盘空间、CPU负载和交换,cache刷新以及中断等方面的信息。


4.监视磁盘系统的性能
磁盘操作是程序执行中最慢的操作。在关系数据库使用的系统中,磁盘操作的性能在计算机系统的整体性能中的地位是很高的。因此UNIX系统调整的主要目标之一就是怎样减少不必要的或效率低的磁盘I/O操作。

大多数与磁盘性能相关的变量主要是关于磁盘的特性(如转速和磁头移动速度等),I/O控制卡、I/O固件和软件以及系统的I/O背板等。


使用df命令监视文件系统:系统运行中遇到的最大也是最常见的问题就是用完了磁盘空间,尤其是/tmp和/usr空间。究竟应分配多大,也没有一个具体的答案。使用df命令可以显示每个已安装磁盘上的可用空间。


5.监视网络性能
与其他系统资源(如CPU、磁盘容量等)一样,网络也是一种有限的资源。通过执行一些命令,用户可以直接检查网络的带宽。

使用netstat监视网络性能:使用该命令,不加任何选项时,可以检查网络的负载情况。其中的域Send-Q比较重要,它反映了发送包队列的长度。如果该值十分大且在某些连接上不断增加,说明网络出现了故障。使用带-s的选项可以显示网络支持的每一种协议(如UDP,IP,TCP)的统计信息,这些信息可以用来分析协议中出现的问题。使用带-i的选项可以监视网络的性能并可以报告一些网络内部的信息,可以报告计算机发送和接收数据包的个数以及网络上碰撞和错误的情况。频繁地发生“碰撞”和错误,则会降低网络的性能。


6.内核调整
内核调整是一项复杂的技术。UNIX操作系统中最关键的部分就是内核,它管理各个主要的子系统,包括内存、磁盘I/O、CPU的使用以及进程调度等。系统为用户工作的控制核心。
内核调整对系统性能会有积极影响,也可能有消极影响。每个内核模块中都有多个参数可调。调整参数的目的有两个,一个是减少内核对内存的需求,提高内存的利用率,从而提高系统的吞吐率;二是提高系统的能力,满足用户或处理器更高的要求。

内核表格:许多情况下,系统管理员需要检查或修改内核表格,如在增加新用户之前,在提高X WINDOWS 或NFS的利用率之前,以及在运行那些能产生很多进程的作业之前。


下面介绍几种内核表格:
l 进程表:决定了系统同时可运行的进程数。这些进程包括守护进程、本地用户运行的进程、远程用户运行的进程以及用户进程创建的子进程。若进程表已满而系统又要启动一些守护进程时,系统就会出现一些问题。
l 用户进程表:控制每个用户有多少个进程可在系统中同时运行。
l Inode表:该表包含以下各项:(1)每个打开的管道;(2)每个用户的当前目录;(3)每个文件系统的安装点;(4)每个活动的I/O设备。当inode表满了以后,系统性能就会下降,控制台就会显示错误信息。

l 打开文件表:它决定了系统一次最多能打开的文件的个数。如果该表已满,而又出现了一个打开文件的系统调用,这时会出错,出错信息在控制台被记录下来。


l 定时器表:该表决定了系统能同时工作的定时器个数,它对于一些与内核相关的操作或I/O操作十分重要。当定时器表溢出时,系统可能会崩溃。
显示可调内核参数的当前值:使用sysdef -i 命令。
修改配置信息文件:使用文件/etc/system来修改可调的内核参数,基本格式为
set parameter=value
这种修改会带来内核参数的永久性变化。修改后重新启动系统才有效。
Maxusers参数:许多内核表项随着maxusers参数的变化而变化,其中maxusers是系统支持的最大的用户数。修改maxusers的值,系统会根据该值的变化自动调整各表项的数目。使用/etc/system文件中的命令修改maxusers的值, set maxusers = 。


SCO OPENSERVER RELEASE 5安装步骤
1、安装准备工作:
[1]准备好安装盘,包括引导盘和光盘。
[2]一些网卡需要在DOS环境下设置地址和中断才能使用,安装前需要预先设好。
[3]安装前应保证网络连通好。
二、将SCO SOPENSERVERBOOT DISK软盘插入软驱,打开主机和显示器电源,启动机器。
三、当出现BOOT:提示符时,按回车键启动系统。
四、启动完毕,屏幕底部出现如下提示:
时,按〈ENETER〉键进入下一屏。
五、此屏是一些介绍性信息,按键键进入下一屏。
六、选择安装介质:
移动光标,高亮度Accept above choices一项,按键接受缺省设置,进入下屏。
七、将SCO OPENSERVER光盘插入光驱,移动光标高亮度OK,按键,此时将检查安装介质,请稍候。
八、选择键盘,应选缺省设置,高亮度Accept above choices一项,按键键,进入下一屏。
九、一些介绍性信息,按键进入下一屏。
十、输入系统的授权码信息,高亮度Accept above choices一项,按键,进入下一屏。
十一、选择高亮度Fresh,按键进行完全安装,进入下一屏。
十二、选择高亮度OK,按键,进入下一屏。
十三、输入以下信息:
[1]System name:主机名.
[2]Domain name:输入域名。
[3]Security profile,选择Traditional.
[4]Time Zone:按空格键,而后屏幕提示标题为"Time Zone"的对话柜。将高亮光务移至"Geographical area:",输入空格,屏幕提示一个地区列表框。用上下键选中"Asia"并按键。些时屏幕回到标题为"Time Zone"的对话框,移动高亮光条到"Asia time Zone",输入空格。屏幕提示一个时区列表框,用上下键选择"China standard Time(CST)"并回车。
[5]Language:按空格键,选择 St
andard C(English)
[6]将高亮度光条移至Accept above choices,按键进入下一屏。
十四、输入以下选择:
[1] Standard Enterprise system configuration: Yes
[2] Lightweight character terminal configuration: No
[3] If you run large database products ,choose the following: Database services: Yes.
[4]将高亮度光条移至Accept above choices,按键进入下一屏。
十五、输入以下信息:
[1] 此处先选高亮度第一项Hard disk setup,按空格键,进入下一屏。
[2] 此屏显示的是设置硬盘,在第一块硬盘处高亮度,按空格键选Interactive fdisk/divvy,其他硬盘保持不变。
[3] 选择高亮度,按键屏幕将显示一些说明信息,按键进入下一屏。选择高亮度,按键进入下一屏。
十六、输入以下信息:
[1] 在Netowrk card 一项中选 Auto detect ,屏幕提示检测到的网卡类型,按回车键继续,也可暂时不配。
[2] 在Network address一项中按空格键,根据屏幕提示输入网络地址、子网掩码、广播地址,然后选择高亮度Accept above choices返回。
[3] 在Video and graphics一项中选IBM VGA为缺省。
[4] 在Mouse一项中选High resolution Keyboard-Mouse(也可按缺省,不配)
[5] 在Email system一项中选MMDF。
[6] 选择高亮度Accept above choices,按键进入下一屏。
十七、输入root口令、再输入一次以确认:选择高亮度Accept above choices,按键进入一屏。
十八、选OK,按键进入下一屏。
十九、选择1(1.Continue with hard disk initalization.),回车。
二十,选择2(2.Use entire Disk for UNIX),回车。
二十一、选5(5.Activate Partition),设置创建的UNIX分区为活动分区,之后输入'q'回车。
二十二、选择1并回车。
二十三、选择1(1.thorough scan( 6M/min approx))并按回车,依次根据屏幕提示输入'y','y'后将开始对硬盘坏点的扫描,等待时间大概为20分钟。
二十四,按回车选缺省值。
二十五、输入交换区的大小,以KB为单位。此数值应为物理内存的2-3倍。
二十六.输入BOOT区的大小,按回车选缺省值。
二十七、do you want a separate /u filesystem?(y/n). 输入'n'回车。
二十八、Do you wish to make any manual adjustment to the sizes or names of the filesystems or swap area before the are created on the hard disk?(y/n) 输入 'n' 回车
二十九、操作系统安装开始,请等候。。。。安装的时间预计为1-2小时,屏幕将会提示系统安装的百分比进度。
三十、安装完成后,根据屏幕提示重新启动系统。


第一课:什么是Linux              

  简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。

  Linux的出现,最早开始于一位名叫Linus Torvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。他的目的是想设计一个代替Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有Unix操作系统的全部功能,因而开始了Linux雏形的设计。

  Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。

  Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。



第二课:为什么使用Linux              
  由于Linux是一套具有Unix全部功能的免费操作系统,它在众多的软件中占有很大的优势,为广大的计算机爱好者提供了学习、探索以及修改计算机操作系统内核的机会。

  操作系统是一台计算机必不可少的系统软件,是整个计算机系统的灵魂。一个操作系统是一个复杂的计算机程序集,它提供操作过程的协议或行为准则。没有操作系统,计算机就无法工作,就不能解释和执行用户输入的命令或运行简单的程序。大多数操作系统都是由一些主要的软件公司支持的商品化程序,用户只能有偿使用。如果用户购买了一个操作系统,他就必须满足供应商所要求的一切条件。因为操作系统是系统程序,用户不能擅自修改或试验操作系统的内核。这对于广大计算机爱好者来说无疑是一种束缚。

  要想发挥计算机的作用,仅有操作系统还不够,用户还必须要有各种应用程序的支持。应用程序是用于处理某些工作(如字处理)的软件包,通常它也只能有偿使用。每个应用程序的软件包都为特定的操作系统和机器编写。使用者无权修改这些应用程序。使用Linux,可以将操作系统变成一种操作环境。

  由于Linux是一套自由软件,用户可以无偿地得到它及其源代码,可以无偿地获得大量的应用程序,而且可以任意地修改和补充它们。这对用户学习、了解Unix操作系统的内核非常有益。学习和使用Linux,能为用户节省一笔可观的资金。Linux是目前唯一可免费获得的、为PC机平台上的多个用户提供多任务、多进程功能的操作系统,这是人们要使用它的主要原因。就PC机平台而言,Linux提供了比其他任何操作系统都要强大的功能,Linux还可以使用户远离各种商品化软件提供者促销广告的诱惑,再也不用承受每过一段时间就升级之苦,因此,可以节省大量用于购买或升级应用程序的资金。

  Linux不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。用户不但可以从Internet上下载Linux及其源代码,而且还可以从Internet上下载许多Linux的应用程序。可以说,Linux本身包含的应用程序以及移植到Linux上的应用程序包罗万象,任何一位用户都能从有关Linux的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。这对Windows NT、Windows98、MS-DOS或OS/2等商品化操作系统来说是无法做到的。

  Linux为广大用户提供了一个在家里学习和使用Unix操作系统的机会。尽管Linux是由计算机爱好者们开发的,但是它在很多方面上是相当稳定的,从而为用户学习和使用目前世界上最流行的Unix操作系统提供了廉价的机会。现在有许多CD-ROM供应商和软件公司(如RedHat和TurboLinux)支持Linux操作系统。Linux成为Unix系统在个人计算机上的一个代用品,并能用于替代那些较为昂贵的系统。因此,如果一个用户在公司上班的时候在Unix系统上编程,或者在工作中是一位Unix的系统管理员,他就可以在家里安装一套Unix的兼容系统,即Linux系统,在家中使用Linux就能够完成一些工作任务

2011-07-01 15:33:00 Loadrunn 阅读数 2137

使用ftp上传文件到Unix系统注意事项

 

 

在使用FTP客户端上传文件到Unix系统时,应该注意将传输模式设置为二进制(Binary)传输模式,否则有可能造成传输到Unix系统的文件与实际文件大小不一致,文件无法使用。

UNIX系统

阅读数 483

没有更多推荐了,返回首页