Archive for 09月, 2005

深入理解 Linux 守护进程 [转]

09月 17th, 2005 by max

转自 UnixChina

深入理解Linux守护进程



转载:http://www.ccw.com.cn/server/yyjq/htm2005/20050914_14ND5_1.htm



Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由
运行在后台的守护进程(daemons)来执行的。守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事
件。他们常常在系统引导装入时启动,在系统关闭时终止。linux系统有很多守护进程,大多数服务器都是用守护进程实现的。同时,守护进程完成许多系统任
务,比如,作业规划进程crond、打印进程lqd等。有些书籍和资料也把守护进程称作:“服务”。选择运行哪些守护进程,要根据具体需求决定。查看系统
可以提供的守护进程对应的服务,使用下面方法,以root权限运行:



#ntsysv





界面如图1所示的窗口,下面详细介绍一下各项系统服务的功能。以英文字母为序:


一、Linux守护进程简介


1. alsasound :Alsa声卡驱动守护程序。Alsa声卡驱动程序本来是为了 一种声卡Gravis
UltraSound(GUS)而写的,该程序被证 明很优秀,于是作者就开始为一般的声卡写 驱动程序。 Alsa和OSS/Free
及OSS/Linux兼容,但是有自己的接 口,甚至比OSS优秀。

2. acpid:acpid(Advanced Configuration and Power Interface)是为替代传统的APM电源管理标准而推出的新型电源管理标准。通常笔记本电脑需要启动电源进行管理。


3. atalk:AppleTalk网络守护进程。注意不要在后台运行该程序,该程序的数据结构必须在运行其他进程前先花一定时间初始化。


4. amd: 自动安装NFS守护进程。


5. anacron:一个自动化运行任务守护进程。Red Hat Linux 随带四个自动化任务的工具:cron、 anacron、at、和
batc。当你的Linux服务器并不是全天运行,这个anacron就可以帮你执行在"crontab"设定的时间内没有执行的工作。


6. apmd:apmd(Advanced Power Management)是高级电源管理。传统的电源管理标准,对于笔记本电脑比较有用,可以了解系统的电池电量信息。并将相关信息通过syslogd 写入日志。也可以用来在电源不足时关机。


7. arptables_jf :为arptables网络的用户控制过滤的守护进程。


8. arpwatch: 记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库 。


atd:at和batch命令守护进程,用户用at命令调度的任务。Batch用于在系统负荷比较低时 运行批处理任务。


9. autofs:自动安装管理进程automount,与NFS相关,依赖于NIS服务器。


10. bootparamd:引导参数服务器,为LAN上的无盘工作站提供引导所需的相关信息。


11. bluetooch:蓝牙服务器守护进程。


12. crond :cron是Unix下的一个传统程序,该程序周期地运行用户 调度的任务。比起传统的Unix版本,Linux版本添加了不少属性,而且更安全,配置更简单。类似计划任务。


13. chargen:使用tcp协议的chargen server,chargen(Character Generator Protocol)是一种网络服务,主要功能是提供类似远程打字的功能。


14. chargen-udp:使用UDP协议的chargen server。


15. cpuspeed:监测系统空闲百分比,降低或加快CPU时钟速度和电压从而在系统空闲时将能源消耗降为最小,而在系统繁忙时最大化加快系统执行速度。


16. dhcpd:动态主机控制协议(Dynamic Host Control Protocol)的服务守护进程。


17. cups: cups(Common UNIX Printing System)是通用UNIX打印守护进程,为Linux提供第三代打印功能。


18. cups-config-daemons:cups打印系统切换守护进程。


19. cups-lpd:cups行打印守护进程。


20. daytime:使用TCP 协议的Daytime守护进程,该协议为客户机实现从远程服务器获取日期 和时间的功能。预设端口:13。


21. daytime-udp:使用UDP 协议的Daytime守护进程。


22. dc_server:使用SSL安全套接字的代理服务器守护进程。


23. dc_client:使用SSL安全套接字的客户端守护进程。


24. diskdump:服务器磁盘备份守护进程。


25. echo:服务器回显客户数据服务守护进程。


26. echo-udp:使用UDP协议的服务器回显客户数据服务守护进程。


27. eklogin:接受rlogin会话鉴证和用kerberos5加密的一种服务的守护进程。


28. gated :网关路由守护进程。它支持各种路由协议,包括RIP版本1和2、DCN HELLO协议、 OSPF版本2以及EGP版本2到4。


29. gpm:gpm(General Purpose Mouse Daemon )守护进程为文本模式下的Linux程序如mc(Midnight Commander)提供了鼠标的支持。它也支持控制台下鼠标 的拷贝,粘贴操作以及弹出式菜单。


30. gssftp: 使用kerberos 5认证的ftp守护进程


31. httpd:Web服务器Apache守护进程,可用来提供HTML文件以 及CGI动态内容服务。


32. inetd :因特网操作守护程序。监控网络对各种它管理的服务的需求,并在必要的时候启动相应的服务程序。在Redhat 和Mandrake linux中被xinetd代替。Debian, Slackware, SuSE仍然使用。


33. innd:Usenet新闻服务器守护进程。


34. iiim:中文输入法服务器守护进程。


35. iptables:iptables防火墙守护进程。


36. irda:红外端口守护进程。


37. isdn:isdn启动和中止服务守护进程。


38. krb5-telnet:使用kerberos 5认证的telnet守护进程。


39. klogin:远程登陆守护进程。


40. keytable: 该进程的功能是转载在/etc/sysconfig/keyboards里定义的键盘映射表,该表可以通过kbdconfig工具进行选择。您应该使该程序处于激活状态。


41. irqbalance:对多个系统处理器环境下的系统中断请求进行负载平衡的守护程序。如果你只安装了一个CPU,就不需要加载这个守护程序。


42. kshell :kshell守护进程。

43.
kudzu:硬件自动检测程序,会自动检测硬件是否发生变动,并相应进行硬件的添加、删除工作。当系统启动时,kudzu会对当前的硬件进行检测,并且和
存储在    
 /etc/sysconfig/hwconf中的硬件信息进行对照,如果某个硬件从系统中被添加或者删除时,那么kudzu就会察觉到,并且通知用户是
否进行相关配置,然后修改etc/sysconfig/hwconf,使硬件资料与系统保持同步。如果/etc/sysconfig/hwconf这个文
件不存在,那么kudzu将会从/etc/modprobe.conf,/etc/sysconfig/network-scripts/和
etc/X11/XF86Config中探测已经存在的硬件。如果你不打算增加新硬件,那么就可以关闭这个启动服务,以加快系统启动时间。


44. ldap:ldap(Lightweight Directory Access Protocol)目录访问协议服务器守护进程。


45. lm_seroems:检测主板工作情况守护进程。


46. lpd :lpd是老式打印守护程序,负责将lpr等程序提交给打印 作业。


47. mdmonitor:RAID相关设备的守护程序。

48. messagebus:D-BUS是一个库,为两个或两个以上的应用程序提供一对一的通讯。
dbus-daemon-1是一个应用程序,它使用这个库来实现messagebus守护程序。多个应用程序通过连接messagebus守护程序可以实
现与其他程序交换信息。


49. microcode_ctl:可编码以及发送新的微代码到内核以更新Intel IA32系列处理器守护进程。


50. mysqld: 一个快速高效可靠的轻型SQL数据库引擎守护进程。


51. named:DNS(BIND)服务器守护进程。


52. netplugd:netplugd(network cable hotplug management daemon)守护程序,用于监控一个或多个网络接口的状态,当某些事件触发时运行一个外部脚本程序。


53. netdump:远程网络备份服务器守护进程。


54. netfs:Network Filesystem Mounter,该进程安装和卸载NFS、SAMBA和NCP网络文件系统。


55. nfs:网络文件系统守护进程。


56. nfslock:NFS是一个流行的通过TCP/IP网络共享文件的协议,此守护进程提供了NFS文件锁定功能。


57. ntpd:Network time Protocol daemon(网络时间校正协议)。ntpd是用来使系统和一个精确的时间源保持时间同步的协议守护进程。


58. network:激活/关闭启动时的各个网络接口守护进程。


59. psacct:该守护进程包括几个工具用来监控进程活动的工具,包括ac,lastcomm, accton 和sa。


60. pcmcia:主要用于支持笔记本电脑接口守护进程。


61. portmap:该守护进程用来支持RPC连接,RPC被用于NFS以及NIS 等服务。


62. postgresql: PostgreSQL 关系数据库引擎。


63. proftpd: proftpd 是Unix下的一个配置灵活的ftp服务器的守护程序。


64. pppoe:ADSL连接守护进程。


65. random :保存和恢复系统的高质量随机数生成器,这些随机数是系 统一些随机行为提供的。


66. rawdevices:在使用集群文件系统时用于加载raw设备的守护进程。

67. readahead、readahead_early:readahead和readahead_early是在Fedora
core
2中最新推出的两个后台运行的守护程序。其作用是在启动系统期间,将启动系统所要用到的文件首先读取到内存中,然后在内存中进行执行,以加快系统的启动速
度。


68. rhnsd:Red Hat 网络服务守护进程。通知官方的安全信息以及为系统打补丁。


69. routed :该守护程序支持RIP协议的自动IP路由表维护。RIP主要 使用在小型网络上,大一点的网络就需要复杂一点的协议。


70. rsync:remote sync远程数据备份守护进程。  


71. rsh :远程主机上启动一个shell,并执行用户命令。


72. rwhod: 允许远程用户获得运行rwho守护程序的机器上所有已登录用户的列表。


73. rstatd:一个为LAN上的其它机器收集和提供系统信息的守候进程。


74. ruserd:远程用户定位服务,这是一个基于RPC的服务,它提供关于当前记录到LAN上一个机器日志中的用户信息


75. rwalld:激活rpc.rwall服务进程,这是一项基于RPC的服务,允许用户给每个注册到LAN机器上的其他终端写消息 。


76. rwhod:激活rwhod服务进程,它支持LAN的rwho和ruptime服务。


77. saslauthd: 使用SASL的认证守护进程。


78. sendmail:邮件服务器sendmail守护进程。


79. smb:Samba文件共享/打印服务守护进程。


80. snmpd:本地简单网络管理守护进程。


81. squid:代理服务器squid守护进程。


82. sshd:OpenSSH服务器守护进程。Secure Shell Protocol可以实现安全地远程管理主机。


83. smartd:Self Monitor Analysis and Reporting Technology System,监控你的硬盘是否出现故障。


84. syslog:一个让系统引导时起动syslog和klogd系统日志守候进程的脚本。


85. time :该守护进程从远程主机获取时间和日期,采用TCP协议。


86. time-udp: 该守护进程从远程主机获取时间和日期,采用UDP协议。


87. tux:在Linux内核中运行apache服务器的守护进程。


88. vsftpd:vsftpd服务器的守护进程。


89. vncserver: VNC (Virtual Network Computing,虚拟网络计算),它提供了一种在本地系统上显示远程计算机整个"桌面"的轻量型协议。


90. xfs:X Window字型服务器守护进程,为本地和远程X服务器提供字型集。


91. xinetd:支持多种网络服务的核心守护进程。


92. ypbind:为NIS(网络信息系统)客户机激活ypbind服务进程 。


93. yppasswdd:NIS口令服务器守护进程。


94. ypserv:NIS主服务器守护进程。


95. yum:RPM操作系统自动升级和软件包管理守护进程。



    二、守护进程工作原理和方式


在Client/Server模式下。服务器监听(Listen)在一个特定的端口上等待客户连接。连接成功后服务器和客户端通过端口进行数据通信。守护
进程的工作就是打开一个端口,并且等待(Listen)进入连接。如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器响应这个连接,而
主服务器继续监听其他的服务请求。



2.守护进程工作方式:


(1)运行独立的守护进程


独立运行的守护进程由init脚本负责管理,所有独立运行的守护进程的脚本在/etc/rc.d/init.d/目录下。系统服务都是独立运行的守护进程
包括:syslogd和cron等。运行独立的守护进程工作方式称作:stand-alone。它Unix传统的C/S模式的访问模式。服务器监听
(Listen)在一个特点的端口上等待客户端的联机。如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器响应这个连接,而主服务器继
续监听。以保持多个子服务器池等待下一个客户端请求。stand-alone模式工作原理见图1。



       图1 stand-alone工作模式

工作在stand-alone模式下的网络服务有route、gated。另外是大家最熟悉是Web服务器:Apache和邮件服务器
Sendmail、域名服务器Bind。因为这些负载很大服务器上,预先创子服务器,可以通过客户的服务速度。在Linux系统中通过stand-
alone工作模式启动的服务由/etc/rc.d/下面对应的运行级别当中的符号链接启动。



(2)xinetd模式

从守护进程的概念可以看出,对于系统所要通过的每一种服务,都必须运行一个监听某个端口连接所发生的守护进程,这通常意味着资源浪费。为了解决这
个问题,Linux引进了“网络守护进程服务程序”的概念。Redhat Linux 9.0使用的网络守护进程是xinted(eXtended
InterNET daemon)。和stand-alone模式相比xinted模式也称 Internet
Super-Server(超级服务器)。xinetd能够同时监听多个指定的端口,在接受用户请求时,他能够根据用户请求的端口不同,启动不同的网络服
务进程来处理这些用户请求。可以把xinetd看做一个管理启动服务的管理服务器,它决定把一个客户请求交给那个程序处理,然后启动相应的守护进程。
xinetd模式工作原理见图3。



          图3  xinetd工作模式

和stand-alone工作模式相比,系统不想要每一个网络服务进程都监听其服务端口。运行单个xinetd就可以同时监听所有服务端口,这样
就降低了系统开销,保护系统资源。但是对于访问量大、经常出现并发访问时,xinetd想要频繁启动对应的网络服务进程,反而会导致系统性能下降。察看系
统为Linux服务提供那种模式方法在Linux命令行可以使用pstree命令可以看到两种不同方式启动的网络服务。一般来说系统一些负载高的服务:
sendmail、Apache服务是单独启动的。而其他服务类型都可以使用xinetd超级服务器管理。查看目前运行的守护进程可以使用命令:
“pstree”



三、守护进程管理工具


Linux提供了三种不同的守护进程管理工具:redhat-config-services、ntsysv、chkconfig,可以根据具体需要灵活运用。


(1) RedHat-config-services


redhat-config-services是一个一个图形化应用程序,它显示了每项服务的描述,以及每项服务是否在引导时启动(运行级别3、4、
5),并允许你启动、停止、或重新启动/etc/rc.d/init.d 中的哪些 SysV 服务,哪些 xinetd
服务。要从桌面启动服务配置工具,点击面板上的「主菜单」 => 「系统设置」 => 「服务器设置」 => 「服务」,或在
shell 提示下,键入命令:“redhat-config-services” (见图4)。



图4 redhat-config-services配置工具

redhat-config-services列出了 /etc/rc.d/init.d 中的服务和由 xinetd
控制的服务。点击左侧列表中的服务名来显示该服务的简短描述以及它的服务状态。如果这个服务不是 xinetd
服务,状态窗口会显示该服务目前是否在运行。如果该服务被 xinetd 所控制,状态窗口会显示「xinetd
服务」这个短语。要立即启动、停止、或重新启动某项服务,从列表中选择该项服务,然后点击工具栏上的相应按钮(或从「行动」拉下菜单中选择行动)。如果该
服务是一个 xinetd 服务,行动按钮会被禁用,因为它们不能被单个地启动或停止。 如果你通过选择或取消选择服务名旁的复选箱来启用或禁用了
xinetd 服务,你必须从拉下菜单中选择「文件」 => 「保存改变」来重新启动 xinetd,并立即启用或禁用你所改变的 xinetd
服务。xinetd 还被配置成自动记忆设置。你可以同时启用或禁用多个 xinetd 服务,在结束后再保存改变。


(2)ntsysv

ntsysv 工具为激活或停运服务提供了简单的界面。你可以使用 ntsysv 来启动或关闭由 xinetd 管理的服务。你还可以使用
ntsysv 来配置运行级别。按照默认设置,只有当前运行级别会被配置。要配置不同的运行级别,使用 –level
选项来指定一个或多个运行级别。譬如,命令 ntsysv –level 345 配置运行级别3、4、和5。 ntsysv
的工作界面见图1。使用上下箭头来上下查看列表。使用空格键来选择或取消选择服务,或用来“按”「确定」和「取消」按钮。要在服务列表和「确定」、「取
消」按钮中切换,使用 [Tab]键。* 标明某服务被设为启动。[F1] 键会弹出每项服务的简短描述。

(3)chkconfig

chkconfig 命令也可以用来激活和解除服务。chkconfig –list
命令显示系统服务列表,以及这些服务在运行级别0到6中已被启动(on)还是停止(off)。chkconfig
还能用来设置某一服务在某一指定的运行级别内被启动还是被停运。譬如,要在运行级别3、4、5中停运 nfs 服务,使用下面的命令:

chkconfig –level 345 nfs off


四、合理选择守护进程规避安全隐患


运行不必要或有漏洞的守护进程会给操作系统带来安全和性能上的影响。对于系统安全来说,如果操作系统中的任何一个漏洞,都可能使整个系统受到攻击。所以,
增加系统安全的最佳办法就是尽量监视系统的功能。文章开始介绍了重要的守护进程,其中“crond、syslog、keytable、xinetd、
kudzu、iptables”等是需要运行的,echo、echo-udp、daytime、daytime-udp、chargen、chargen
-udp主要是做调试用,普通用户基本用不到,可以关闭。


r字开头的守护进程:rsh、rstatd、rsync、rusersd、rwalld这些命令都是Berkley远程命令,因为都以字母r开头,故称
r*命令。主要使用来使一台计算机上的某个用户以相同的帐户远程执行另一台计算机的一个程序。但是,r命令已经被证实存在安全风险。对于确实需要的守护进
程,应该尽量选用最新的版本程序,并增加其安全防范。  


另外我们还要合理选择守护进程例如innd是运行新闻组服务的进程,如果用户不做Usenet服务器,应该关掉。



总结:


基于开放源代码的Linux给用户提供了这样一个平台:可以根据自己的软、硬件环境,定制自己的Linux守护进程。因此,根据每个用户不同的应用范围定制应用环境,可以将Linux系统的安全和性能提升到新的高度。


Yahoo! Mail 的新界面

09月 15th, 2005 by max


Yahoo! 正在开发其新的邮件系统,重新设计了 Mail 系统界面,新界面类似 Outlook:





界面还支持现在流行的 Tab,双击邮件主题可以打开单独的窗口显示邮件内容,编辑窗口也独立了出来,这样在你阅读邮件或编辑邮件的同时仍可以浏览邮件列表。另一个新特性是右键上下文菜单,包含了打开、打印、状态、删除、添加联系人、转发、回复等功能,同时还支持鼠标拖放。
这些新特性无疑是目前 Webmail 系统中最突出的创新,使得 Webmail 可以在操作上与本地邮件收发软件媲美。
另外在功能上Yahoo! Mail 也有新的提升:

  • 支持邮件预览,类似在 Gmail 中通过 Greasmonkey 扩展实现的 Bubbles Preview,不过 Gmail 好像不那么喜欢它的用户使用这项功能。
  • 支持 RSS
  • 支持 Tag

仅仅是以上这几项新特性和功能就足以让我们期待新 Yahoo! Mail 了,现在新的 Yahoo! Mail beta 正在招募用户体验参与者,到这里提交你的 email ,但是否能够参与目前还是随机的。

[ Link ]

七年前的 Google

09月 14th, 2005 by max


Google 刚满七周岁,但俨然已经是一个巨人了,当 Sergey Brin 和 Larry Page 七年前在后院车库里创建 Google 的时候肯定没想到他们正在创造 IT 界的又一个神话。

来看看 Google 当年起家时的家当:

这是当年 Google 的后台服务器,300MHz Pentium II,512M内存,99G硬盘,呵呵,还不如偶的烂机子呢 ;-)

IBM 捐赠的 F50 IBM RS6000,4个处理器,512M内存,89G的硬盘。

左侧39G,右侧是64G硬盘,连接在 sun Ultra II 上

也是 IBM 捐赠的89G存储器

双 200MHz处理器,256M内存的 sun Ultra II,Backrub(Google当时的名字) 就是从这里向世界伸出它的触角的


自制的 SCSI 磁盘阵列,100G

看这乱劲,想象不出一根线里传输着多少信息…

这就是 Google 巨人诞生的产房。

再来看看七年前 Google 搜索主页的样子,有意思的是页面上写道:“
When no documents match your query, the system will return 20000 random web pages”,现在的 Google 可以说没有搜不到的东西了。

Google 开放 Blog 搜索服务

09月 14th, 2005 by max



Google 刚刚开放了它的 Blog Search 服务,从而正式进入 Blog 搜索市场,鉴于 Google 强大的页面索引,这无疑对 Technorati,IceRocket, Blogpulse 等 Blog 搜索服务商构成了巨大的压力。
 Google Blog Search FAQ

[ Link ]

Urban Dictionary – 来学习地道的俚语

09月 14th, 2005 by max

知道 "B and B"是什么意思吗?
"K-day" 又表示什么?
这些都是流行于口语中的俚语。
Urban Dictionary ,收集了现在流行的英语俚语,如果你要学好一口地道的英语,你会在这里有所收获。同时 Urban Dictionary 还允许你添加你的定义,所以它的宣传口号是 "Define your world"。

[ Link ]

Google 索引达到210亿

09月 10th, 2005 by max


来自 InsideGoogle 的消息,Jean Veronis研究发现 Google 的索引已经达到了 210亿。其发现主要依据对关键字 "the" 的搜索结果来判断的。我对比了一下,用 Google 搜索 "the" 返回结果是 16,220,000,000 项,而用 Yahoo! 搜索  "the"返回结果是 10,800,000,000 项。这一对比显然可以看作是 GoogleYahoo! 自称有192亿索引的挑战。

[ Link ]

Top 10 Video Games

09月 8th, 2005 by max

CNET.com 评出了过去10年的10大 Video Games。上榜的都是过去10年 PC Games 界中的重量级产品,同时也是货真价实的“经典”。这些经典游戏不仅在推动硬件技术的进步上起到了重要作用,也从一定程度上改变了人们娱乐的方式。
排名如下:

  1. Half-Life (1998)
  2. StarCraft (1998)
  3. The Sims (2000)
  4. Quake (1996)
  5. Madden NFL Football (immemorial)
  6. EverQuest (1999)
  7. Halo (2001)
  8. Metal Gear Solid (1998)
  9. Grand Theft Auto III (2001)
  10. The Legend of Zelda,Ocarina of Time (1998)

虽然里面有几个偶根本没听过,不过看到偶最喜欢的 SC 名列第二还是非常高兴的。国内要是也评出个10大游戏,估计仙剑必然名列前茅。

[ Link ]

Google 七岁了 …

09月 8th, 2005 by max



 1998年9月7日,一个伟大的搜索引擎 Google 诞生了。如果将 Google 比作是个人的话,那么今年 Google 刚刚上小学一年级,虽然这个小学生现在看起来更象是个蕴涵巨大能量的巨人,但不可否认,这世界自从 Google 诞生以来变得更加美好了。

Google 生日快乐!

[ Links ]

Firefox 1.5 Preview

09月 7th, 2005 by max

F刚刚下载了 Firefox 1.5 beta (内部代号 Deer Park Alpha2)。试用了一下感觉还是很不错的。
程序界面没有太多的变化,扩展中除了 365key,del.icio.us post 和 URI id 三个新版本不支持以外,其余大部分的扩展都能正常工作。

  • 新版本最突出的变化是 Options 对话框,新的 Options 对话框改变了原来的左右布局,采用了新颖的双层 Tab 布局,使得操作更加直观。
  • 功能上最大的亮点是标签上的强化,现在可以不安装第三方扩展就可以拖动标签来进行组织。
  • 此外在程序的更新上也有大的突破,现在更新 Firefox 可以不必象原来那样要下载整个安装包了。
  • 在安全上也有突出的变化,现在可以一次性清空记忆的 Password ,而且可以设置一个 Master password 来对浏览器记忆的所有密码进行保护。





整体来看,新版本的 Firefox 能够让大多数人满意。

[ Download ]

又一个 Flickr 图片搜索

09月 6th, 2005 by max

Flickr_postcard_browser 同样是 Flash 制作,通过 Tag 搜索.
偶试着搜了一下 keso,结果真是惊人,keso 竟然有这么BT 的照片,汗 …….