操作系统具有哪些基本功能

问题描述:

操作系统具有哪些基本功能

系统知识:从八个方面来探讨计算机操作系统
内容简介:本文主要从硬盘引导、操作系统引导、载入基本操作系统、定义临时目录、定义虚拟内存盘、载入系统服务、载入自定义服务、定义GUI这八个方面来说明针对操作系统的优化.
不管您使用的是Windows也好,Linux也好,或者是Freebsd(为避免语言烦琐,以下如同时指代Linux和FreeBSD的地方,一律以UNIX进行替代)也好,肯定都想寻求尽可能快的速度,那么,在有些特定环境下就只有对系统进行优化.在前面的几期网管笔记中,我们已经介绍了好几篇网管系列的文章,这次我们推出了操作系统的保护系列中的系统优化篇.
任何技术,只要掌握了方法则都能举一反三,“师傅领进门,修行在个人”.天极网上关于系统优化的文章相当多,但这次讲的内容和其它优化文章比起来,还是有较大的不同.各位如果在阅读下面的内容时,遇到技术疑难,都可以在天极网的操作系统栏目的相关文章中寻找到答案——学会查询资料,也是提高的必要技巧之一呢.
一个操作系统,必定是建立在硬件基础上的.而硬件,则可大致分为CPU、主板、内存、外存几个部分.关于CPU超频、内存在BIOS中的设置,开启硬盘的DMA66支持等等的介绍已经相当多,在此我就不赘述了.
一个操作系统的使用,依次会涉及到硬盘引导、操作系统引导、载入基本操作系统、定义临时目录、定义虚拟内存盘、载入系统服务、载入自定义服务、定义GUI这几个步骤,这是不管Windows、Linux还是Freebsd等操作系统都是如此.也就是说,我们如果能尽量优化上面每个步骤,则就能把系统的性能提升起来.接下来,就让我们一起把每个步骤做到最优.
主要
内容 硬盘引导
操作系统引导
载入基本操作系统
定义临时目录
定义虚拟内存盘
载入系统服务
载入自定义服务
定义GUI
1、硬盘引导
从硬盘的0磁道开始的第一个扇区处读取信息,以载入操作系统引导程序,在这一步上,由于系统能读取的只是一个扇区的数据资料,只有512Kb,因此不能直接将操作系统的引导程序放入其中,而只能读入一个很小巧的程序,再由那个程序来引导操作系统,以Windows为例,在这一步被读入的是IO.SYS和MSDOS.SYS(安装了Win98后有这个).由于一般来说这个程序都是由各个基础操作系统所默认的,因此一般没有办法进行自定义优化.不过值得一提的是如果使用的是Windows98系统,那么通过定制MSDOS.SYS文件,可以在速度上达到一定的提高,让我们打开瞧瞧:
WinDir=C:\Windows ;Windows所在的目录
WinBootDir=C:\Windows ; 引导目录
HostWinBootDrv=C ;引导盘(建议这三个别改动)
BootMulti=1 ;是否按f8出菜单,以及是否f4/f2快捷功能菜单有效,值得注意,美萍等管理软件之所以能屏蔽启机时候按f8/f4/f2无效果就是在这里动的手脚
BootGUI=1 ;是否图形引导
DoubleBuffer=1 ;双倍缓冲,建议设置为1
AutoScan=1 ;是否每次启机检查硬盘,这对非法关机后修复磁盘很有帮助,不过如果对自己的Win98很有信心,不妨设置成0
WinVer=4.10.2222 ;Windows的版本号
BootWin=1 ;以Windows方式引导
DrvSpace=1 ;(这个选项功能不明)
DblSpace=1;这个选项功能不明)
LOGO=1 ; 是否显示开机画面,事实上Windows的启机画面载入大概会花费1秒左右的时间,既然我们想优化,那么就设置成0吧
BootDelay=0;引导延迟,设置成0最快
DisableLog=0;不记录引导时候的log,如果追求速度,可以设置成1
2、操作系统引导
Windows2000/XP的Boot、Linux和Freebsd的LILO、Grub都是非常出色的操作系统引导程序.如果想优化,就把自己最常使用的操作系统设置为默认项目,并将默认的启动时间修改为1秒.以Windows2k/xp 为例,可以用记事本等文字编辑工具打开系统盘根目录下的boot.ini文件(注意,这个文件本身是系统+隐藏属性),其中有一行为timeout=xx,其中这里的xx,就是系统在引导系统时候的等待时间.为了达到减少时间的目的,我们可以写成timeout=1,注意别写timeout=0,这表示无限等待,直到用户手工选定了为止.同样的,在grub中有一个menu.lst文件,其中的timeout参数的值与上面提到的Windows系统中boot.ini的timeout参数作用、设置方法上完全一样(这也是天缘提倡地学好一个操作系统贵在了解其原理和工作流程,自然就会一通百通的道理.)
3、载入基本操作系统
这一部分中,操作系统将自身的程序、连接文件载入,由于载入的是基本文件,在Windows中就是Windows的内核,而在UNIX中,则可以把这步理解为内核的载入.由于Windows的内核是保密的,因此没有办法擅自修改,而在UNIX中,则可以利用重新生成内核的命令,尝试去掉自己不需要的驱动、设备支持和功能来缩减内核的功能并减少启动时间.这也就是为什么人们很看好Linux在嵌入式行业发展的原因——由于内核完全可以定制,所以可以只保留需要的功能,整个内核可以做得非常小巧.Ok,回过来,因为内核程序速度非常快,所需要的时间本身就很少,而关于定制Linux的内核,可以参考天极网的相关文章.各位朋友切记一点:“由于操作系统所在的分区本身就时常进行读写操作,因此最好为操作系统单独划分一个分区,而把临时目录、暂存盘、文件、游戏、备份等放到其他分区去.”这一点是我们进行下面的优化步骤的大前提,以下我们的几步操作,都是以此为大前提来进行的.
4、定义临时目录
由于操作系统在执行一些烦琐的运算、解压缩文件的时候,都是先将文件临时放在某个目录下,在任务执行完后再删除.Windows下默认是放在操作系统下的temp目录中,UNIX下默认是放在/tmp中.如果我们能想办法提高其读写速度,则就能在这步中达到优化的效果.由于硬盘的物理形态因素,导致硬盘在内区读写速度会比外区更快一些,因此考虑将临时目录放在靠近磁盘内区物理位置的地方.在Windows、UNIX等大多数操作系统情况下,都是越分在前面的分区越靠近内区,越分在后面的分区越靠近外区.UNIX下可在划分了/boot后,马上划分/tmp分区;在Windows下由于根据第3条中提到的尽量减少操作系统所在分区的读写操作,因此我们将临时目录建在D盘, 针对Win9x和2000的方法略有出入:
Win9x:
1.在D盘下新建立一个目录temp;
2.用记事本打开c:\autoexec.bat(如没有,可自行建立一个),输入以下两行;
@set temp=d:\temp
@ set tmp=d:\temp
Win2000/XP:
1.在D盘下新建立一个目录temp;
2.打开“控制面板”——“属性”——“高级”;
3.在“系统变量”这里,将temp和tmp的值,都改为d:\temp;
好了,重新启机之后,就生效了.不过由于Windows仍然有某些程序的默认临时目录不是我们所指定的temp目录,所以还需要手工指定一下.以IE为例:“工具”——“Internet选项”——“Internet临时文件”这里的“设置”——“移动文件夹”,将临时目录指定成我们的d:\temp就行了.
值得一提的是,不管是Windows也好,UNIX也好,相当一部分用了临时文件后没有清除它,因此可以定期每周把d:\temp清空.在UNIX下对于这样的定期命令可以通过cron来完成.
5、定义虚拟内存盘
我们的操作系统在调用程序,相关的资源文件的时候,都需要将程序由速度较慢的外存,调用到速度较快的内存中之后再进行操作.由于外存的价格相对内存为低,因此大多数用户在内存不够充裕的条件下,一般会选择用外存硬盘来虚拟内存使用.需要说明的是,这只是在技术上的虚拟内存,并不能真正使这部分硬盘的读写速度有任何提升.因此在资金允许的情况下,建议用户能够升级到512M内存为比较适合.天缘常常见到很多用户盲目追求高速cpu,而忽略了对内存的需求.事实上只有类似Photoshop、3D MAX、WinAMP等需要即时演算、解码操作(图形类的渲染大多可以通过显卡来完成来减轻cpu负担),大多数常用的办公软件、第三方工具其实对CPU并没有很大的消耗,而是需要大量高速内存的支持.按照我们上一步中的知识,自然虚拟内存盘的读写速度也应该是越快越好了?所以很多书上在介绍unux安装的时候,会建议swap分区靠前;而Windows下,我们则可以指定把虚拟目录放到d盘下去.同样,针对Win9x和Win2k/xp有两种方式来完成.
Win 9x:
1. 打开“控制面板”——“属性”——“性能”——“虚拟内存”;
2.将虚拟内存指定为自定义,选择d盘;
3. 重新启动计算机;
Win 2k:
1. 打开“控制面板”——“属性”——“高级”——“性能选项”;
2. 在这里,如果您的机器是自己用,就选“应用程序”,如果是提供Ftp或者Web服务,就选择“后台服务”.(由此可见,微软是为了节约开发成本,将Win2k的pro/server/advance server三种版本用同样的构架搭建出来的)
3. 选中“虚拟内存”这里的“更改”
4. 将c盘的虚拟内存去掉,将d盘的虚拟内存根据需要进行适当设置;
5. 重新启动计算机;
恩,经过这么一来.当计算机发现内存不够的时候,就会在d盘下建立虚拟磁盘来模拟内存使用了.虚拟出来的内存是一个在Win9x下名为Win386.swp,Win2k下名为pagefile.sys的文件.别忘记将原来的c盘下的同名文件删除,以增加c盘的可用空间哟.当然,硬盘的读写速度是远远不及内存的,因此这只是权宜之计,添置更多的物理内存才是正解.
6、载入系统服务
在这一步中,系统将会载入基本的服务.例如Win2k下的“控制面版”——“控制工具”——“服务”中的项目;UNIX下也类似.在这里,一般来说我们不能对服务的内部进行改造以增加效率,但是我们只选择需要的服务,而关闭不必要的服务.在这里,个人用户和服务器管理员都要记住的一条定律会起作用“可开可不开的一定不开,可用可不用的一定不用”,这样不但会减少系统的启动时间、增加系统的可用内存、并且也尽量地避免了安全漏洞.记得前辈曾经指点过我:“服务器提供的服务越多,则可能存在的漏洞也越多,越容易被攻击”.但是不管在w2k还是在UNIX中,默认打开的一些服务是我们所不需要的,甚至是危险的.以Win2k为例,“远程控制注册表”、“dhcp服务器”等等这些功能居然都是默认开着的,而UNIX下的不少操作系统默认时候“sendmail”、“smaba”也是开着的.
所以,根据自己的选择,恰当的选择必要的服务.这一步会相当消耗时间,而且也会遇到对某些服务的疑问,但性能的提升也具有最大潜力.值得一提的是,一些后台运行的程序也将自己添加到其中,常见的例如杀毒软件,以及令人讨厌的冲击波病毒.关于详细的介绍,天极网上介绍操作系统的一些文章中都有详细描述,我在这里一一写出,就有骗稿费的嫌疑了.
7、载入自定义服务
之所以要把这一步与上面的一步分开,一来是因为他们存放的启动文件位置有差异,二来有的系统服务是必须启动的,如果不启动则连操作系统也无法按照常规方式运行起来.例如Win2k服务中的“Logical Disk Manager(逻辑磁盘管理器监视狗服务)”就是专门对硬盘进行管理的.自定义的服务项目,在Windows中,存在注册表的run系列键中(Software\Microsoft\Windows\CurrentVersion\Run、Software\Microsoft\Windows\CurrentVersion\Runonce、SOFTWARE\Microsoft\Windows\CurrentVersion\Run、SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce、SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx、SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices);而在UNIX则是用特定位置的文本文件来保存,例如redhat下是/etc/rc.local文件,一行一条shell命令,非常简单明了.一般来说,这一部分的服务即使全部去掉,也不会影响系统的启动,但有的操作系统“原装”服务可以令我们使用的时候更得心应手.同时在这里,也是很多Windows木马藏身的地方.
在自定义服务中,可以将自己不需要,或者很少用到的一些服务去掉(例如天缘就把音量调节的服务去掉了,因为我从来都喜欢直接摆弄音响);也可以把自己每次启动系统都要运行的一些程序加入进去(例如天缘在Linux下的fvwm启动就加在/etc/rc.local中).合理的使用它,选择恰当的程序去掉无用的程序,也可以达到相当好的性能优化目的.顺便为Windows的朋友们推荐一个我很喜欢的注册表编辑工具,名字是RegHance,非常简单方便.
8、定义GUI
在这里,为什么特别提到GUI呢?Windows的用户可能比较有疑惑,因为Windows的图形界面是嵌入内核的,不过在UNIX下则是独立的.在这一部分上,由于操作系统的独立性,因此要详细地讲解不大可能.我只给出一个思路:“尽量缩减无用的资源消耗”.例如:控制GUI的加载字体数量.事实的确如此,任何载入的资源都会消耗掉系统的内存,由于中文的特殊性(文字众多,非字母组合),导致一个中文字库比一个英文字库大上很多,自然消耗的内存也大了很多(现在明白了为什么传呼机、手机、嵌入系统等等rom/ram受限的场合一般采用英语了吧?因为它总共就26个字母,在这点上,的确比汉字具有优越性.同样的道理从我们所用的键盘也能体现出来).
天缘认识几个从事艺术行业的朋友,经常习惯将用到的字体都放在Font目录中,其实这样在每次启动的时候都会载入到内存中(顺便一提,我们曾经试过,Win98下Font目录Copy字体到400m左右就无法再增加了)会严重地影响到启动速度.值得采纳的做法是将一些不常用的字体Copy到其他目录中备用,在需要的时候再调入到Font目录中,然后重新计算机就可以了.虽然的确是烦琐了一点,不过在有钱购买1G的内存前,节约几百M的内存也是很有必要的.类似的道理,UNIX管理员都知道在服务器上不需要跑xWindows就不要跑的道理.以上的小例子希望可以帮助大家开动自己的脑筋,好好想想其他值得优化的地方.
当文章写到这里,已是接近尾声.油然想起当我告诉原野编辑我要写操作系统优化的时候他对我说的:“介绍系统优化的文章已经很多了呀.”这句略带警醒的话.是的,Windows平台下、UNIX平台下介绍系统优化的文章数不胜数;“超级兔子”、“优化大师”、“webmin”这些优秀的系统设置/优化工具不断更新.但正如“鞋子只有自己买的才最合脚”这个道理一样,天缘尝试将自己优化系统的心得总结与大家分享.IT行业日新月异,新的操作系统层出不穷,掌握了一个优化软件,或许在新的操作系统面前依然束手无策.学习学习,不在于学其形,贵在学其神.明白了操作系统优化的原理,依照着以上的8个环节,针对自己的机器情况进行思考分析,那么即使面对的是一个全新的操作系统,也能很快地将其优化,提高自己工作、学习、娱乐的效率.中国人的习俗,春节吃鱼代表“年年有余”.而授人予鱼不如授人以渔,希望这篇小文能帮助大家把自己爱机的潜力充分发挥到极致.