初步认识:Windows系统服务与Linux系统服务的区别
Jan 13.2013
【注:本文为IT学习笔记,部分信息和资料为整理,摘自互联网,仅为学习使用。】
现在的操作系统平台,不仅仅有微软的Windows,苹果的Mac,还有Linux、Unix。使用不同的操作系统平台,让我们的体验也各不相同,初步认识Windows系统服务和Linux系统服务,让我初步了解到:时下这两种流行的操作系统的系统服务,区别在哪?
不论是开机速度还是软件的运行速度,在硬件不成为瓶颈之后,系统服务与操作系统的启动速度、运行速度有什么关系?
借这个对比Windows与Linux系统服务的区别的学习机会,加深对系统的理解。
Windows 系统服务
大多数使用Windows系统的用户都有这样的体验,刚装完系统,软件安装不多的情况下,启动速度、运行速度相当乐观,而随着时间的推移,由于种种需要,安装的软件越来越多了,系统运行缓慢、偶尔卡住,速度方面大打折扣。大多数使用Windows XP、Windows 7的用户通过清除系统垃圾、临时文件等等常规手段来缓解,更高级一点的用户,有选择性地禁用启动项、调整系统服务项来加快速度。而有些特殊情况,Windows开启太多的应用程序卡死了,重启一下电脑就好了(部分原因是太多进程占用系统资源,重启之后,重新释放一下资源)。而好像Linux操作系统的,却较少出现死机的状况,更少重启电脑。
而原因在于哪?Windows 系统服务与运行速度的关系是怎么样的?感兴趣的朋友,可以点击浏览原文(《Windows 7系统服务与运行速度的关系》http://os.51cto.com/art/201004/193920.htm )
以下是我的一点初步认识,仅为整理,探讨学习——
系统服务是一种特殊的程序,它的运行必然会占用一定的CPU、内存等资源。启动类型为手动的服务,它的运行与否完全由用户决定,就算占用系统资源也不得不接受。对于自动或延迟启动的服务,有选择地禁用它们确实能加快系统的启动速度。
例如几个服务,
1)Server --局域网文件/打印共享需要 (局域网用户建议保持“自动”,因为要用到打印机、共享目录、文件。家庭用户可以忽略。)
2)Web Client一些通过IE浏览器的网络应用,比如通过IE访问FTP需要。
3)Windows Audio 管理声卡的服务(需要播放声音的计算机都必须开启)
4)Remote Access Connection Manager、Remote Access Auto Connection Manager(管理网络连接的服务,如:远程桌面、远程桌面协助)
微软在设计Windows 7时,自启动的服务是针对大多数用户的,但实际应用中,并非所有用户都需要这些服务,为此,我们将有选择地关闭一些服务——仅限于启动方式为自动或延迟启动的服务。
服务: 这是系统用以执行指定系统功能的程序或进程,它的作用是支持其他应用程序(一般在后台运行)。与用户运行的程序相比,服务不会出现程序窗口或对话框,只有在任务管理器中才能观察到它们的身影。
另外,为了让系统速度更快一些无可厚非,但还是得根据实际应用环境、谨慎使用通过禁用、调整系统服务的方法来加快速度。我觉得应用软件安装多了,服务项也相应地增加了,本身Windows自动的服务项就很多了,所以我个人觉得尽可能安装少一些软件,同种类型的软件没必要安装过多,或许还是不错的建议。
许多的系统故障和系统服务有很大的关系,认识更多的服务项以及其功能,对于处理问题和处理思路也有很大的帮助!
有兴趣的朋友,深入学习,可以点击浏览了解更多——
《Windows系统服务》(http://zxgchinese.blog.51cto.com/2508492/1117287 )
《Windows系统进程》(http://zxgchinese.blog.51cto.com/2508492/1117288 )
Linux系统服务
认识Linux,最震撼的莫过于,听闻某某技术牛人说,有些公司的Linux服务器,3年没有重启过一次、甚至还有9年没有重启过的,仍然安稳地运行中,持续地提供着优质的服务。而这在Windows中,或许是不可能的事情,无论相对于Windows服务器端的操作系统,还是Windows客户端的操作系统。有些特殊情况,Windows开启太多的应用程序卡死了,运行缓慢,重启一下电脑就好了(部分原因是太多进程占用系统资源,重启之后,重新释放一下资源)。而在Linux操作系统的,却较少出现死机的状况,更少重启电脑。或许原因就在于:Windows系统服务和Linux系统服务的区别所在了——
vim /etc/services
top 命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。
top
近来我在学习Linux,拜读《鸟哥的Linux私房菜》,其中有一章节(《认识系统服务dasmons》)详细地讲解了许多Linux系统服务的知识——
【服务】常驻在记体体中的程序,且可以提供一些系统或网络功能,那就是服务。一般的英文说法【service】。
常见的Linux系统服务——
1)NetworkManager 是一个自动切换网络连接的后台进程。
2)ACPI(全称 Advanced Configuration and Power Interface)服务是电源管理接口。
3)netfs 此服务是用于在系统启动时自动挂载网络中的共享文件空间,比如:NFS,Samba 等等。
4)smb SAMBA 服务是在 Linux 和 Windows 之间共享文件必须的服务。
有兴趣的朋友,深入学习,可以点击浏览了解更多——
《认识linux服务》(http://zxgchinese.blog.51cto.com/2508492/1117290 )
系统为了某些功能必须要提供一些服务(不论是系统本身还是网络方面),这个服务就称为service。达成service程序的,我们称之为daemon
daemon分为可独立启动的stand alone和统一管理服务的super daemon两大类。
stand alone:由daemon可以自行单独启动服务
stand alone 可自行启动而不必透过其他机制的管理,daemon启动并加载到内存后就一直占用内存和系统资源。最大的优点:因为是一直存在内存内持续的提供服务,因此对于发生客户端的要求时,stand alone的daemon响应速度较快。常见的stand alone daemon有www的daemon(httpd)、ftp的daemon(vsftpd)等等。
super daemon:一支特殊的daemon来统一管理
这一种服务的启动方式藉由一个统一的daemon来负责唤起服务!这个特殊的daemon就被称为super daemon。早期的super daemon是inetd这一个,后来则被xinetd所取代了。这种机制比较有趣的地方在于,当没有客户端的要求时,各项服务都是未启动的情况,等到有来自客户端的要求时,super daemon才唤醒相对应的服务。当客户端的要求结束后,被唤醒的这个服务也会关闭并释放系统资源。
这种机制的好处是:(1)由于super daemon负责唤醒各项服务,因此super daemon可以具有安全控管的机制,就是类似网络防火墙的功能!(2)由于服务在客户端的联机结束后就关闭,因此不会一直占用系统资源!但是缺点是什么呢?因为有客户端的联机才会唤醒该服务,而该服务加载到内存的时间需要考虑进去,因此服务的反应时间会比较慢一些。常见的super daemon所管理的服务例如telnet。
窗口类型的解说
这两种启动的方式哪一个比较好呢?见仁见智!还要看该主机的工作负荷与实际的用途!事实上,我们常常开玩笑地说明stand alone与super daemon的情况,可以银行的窗口来作为说明的范例。
1)个别窗口负责单一服务的 stand alone: 在银行里面,假设有一种单一服务的窗口,例如存钱窗口,所以当你需要存钱的时候,直接前往该窗口,就有【专人】为你服务。这就是stand alone的情况。
2)统一窗口负责各种业务的super daemon:在银行里面假设还有另外一种复合型态的统一窗口,同时提供转账、资金调度、提款等等的业务,那当你需要其中一项业务的时候,就需要前往该窗口。但是坐在窗口的这个营业员,拿到你的需求单之后,往后面一丢【喂!那个转账的仁兄!该你的工作了】那么这个仁兄就开始工作去!然而里头还有资金高度与提款等负责业务的仁兄呢?他们在干嘛?嘿嘿!看看报、喝喝茶!
这里引出另外一个问题!假设银行今天的人潮特别的汹涌,所以这个窗口后面除了你之外还有很多人!那么想一想,这个窗口是要【一个完成再来下一个】还是【全部都把你们的单据拿来,我全部处理掉】呢?基本上,针对这种super daemon的处理模式有两种,分别为:
1)multi-threaded(多重线程):就是我们提到的,全部的客户要求都给他拿来,一次给他交办下去,所以一个服务同时会负责好几个程序。
2)single-threader(单重线程):这个就是目前我们【人类银行】最常见的方式,不论如何,反正一个一个来,第一个没有处理完之前,后面的请排队!所以如果client的要求突然大增的话,那么这些晚到的client可得等上一等!
daemon工作形态的类型
如果以daemon提供服务的工作状态来区分,又可以将daemon分为两大类,分别是:
1)signal-control 这种daemon是透过讯号来管理的。只要有任何客户端的需求进来,他就会立即启动去处理!例如打印机的服务(cupsd)。
2)interval-control 这种daemon则主要是【每隔一段时间就主动的去执行某项工作】,所以,你要作的是在配置文件指定服务要进行的时间与工作,该服务在指定的时间才会完成工作。atd和crond就属于这种类型的daemon。
转载于:https://blog.51cto.com/zxgchinese/1117294