2009年5月14日星期四

linux访问网上邻居

apt-get install smbfs


前提:需要samba客户端软件支持。
访问方法:总体来说有两种,一种是使用挂载的方法,然后向使用本地文件一样进行操作;第二种是使用smbclient的方法。
1、使用挂载的方法
首先保证本机有空闲目录,可以挂载网上邻居上的文件,因为挂载后,本机目录下的文件暂时被屏蔽。
#mount -t smbfs //servername/sharename /localdir

2、使用smbclient
首先列出你需访问的计算机有哪些共享资源
#smbclient -L //servername -U username%password
然后访问共享资源
#smbclient //servername/sharename -U username%password

2009年5月13日星期三

PC笔记本设计细节

富士康董事长特助刘杨伟的演讲“魔鬼藏在细节里,披露山寨上网本真相”让我茅塞顿开。他分析了上网本与手机的八大区别,告诉大家表面上看起来非常美丽的上网本,实际上内藏诸多隐患,从而进一步证实,上网本欲山寨化的难度也大大超过手机。


“PC产业有八大技术问题。”他一来就总结道:高速传输、散热、电磁波、噪音、电力分配、结构、外观、环保,这八大问题在手机与上网本上的表现非常不同。接下来,他一个个分析。


首先是高速传输方面,上网本有很多高速的传输线,手机上面的高速传输线相对比较少。散热方面,部分上网本有比较多的高热源的零件,手机方面比较少。在电磁波和高频测试方面,上网本的很多接口因为散热的关系也有很多的影响,所以他要做一些专业方面的处理;手机方面电磁波的辐射比较小一点,所以处理这个问题比较少。在噪音方面,上网本因为有风扇还有马达的问题,所以也会有噪音,而手机相对来说噪音问题不大,因为没有可以旋转的零件。在电力分配和结构,因为上网本比较大,所以结构方面上网本相对比较困难一些,还因为比较大也比较重,电极的部分所承受的重量就不太一样。外观方面,因为要处理外观面积比较大,所以相对的制程上要求跟手机不太一样。从这八个方面看出来上网本跟手机有一些根本的不同。


“因为产品的不同,验证的方式也不太一样,使用环境的不一样,测试的标准也不太相同,因为体积大小的不一样,生产的难度不一样,此外,因为应用功能的不同,客户的要求也不太一样。”刘杨伟一下子说出这么多不一样。“我们有些手机产业出来的朋友在从事上网本这个行业,常常会因为不是很清楚这个不同,所以会有一些迷失。我们在市面上也采购了一些市面上的上网本,也做了一些简单的分析。接下来我就把这些分析结果跟大家分享一下。”他继续讲解道。


“比如说在系统的部分,我们可以看到,虽然有散热模组,可是没有散热的石膏,或者说有散热的模组但它们并没有跟风扇作紧密的联系,这是我们经常看到的一些上网本的问题。另外我们发现一些上网本在EMI、EMC的处理上有两个问题,第一个现象是根本没有做电镀层的处理,或是有处理,但是没有形成一个有效的回路,所以它实际上也没有EMI防护的功能。在电子的部分,我们发现有些用料不是很到位造成系统的不稳定,有些精密的电阻数值是一样的,可是因为精密度不对,所以造成了系统的不稳定,这种现象在手机上面比较少。还有线路设计不够严谨,没有适当的测试点和保护线路,这些在手机上不是那么重要的。此外,一些上网本在功能和稳定性上没有经过严格的测试,还有安规和EMC的认证,这是我们所看到的一些常见的问题。”


结构方面很常见的问题是转轴结构设计及寿命测试。比如支撑的材料应该是钢材,但他们选择了铁材,结果在通过一些安全性测试的时候往往会造成一些问题,更有甚者,个别上网本连支撑的铁件也没有,这个往往会造成非常严重的安全性能问题。“在我们的调查中,测试了5个不同的上网本,大概有2-3个是这样的。”他强调。


在结构部分他们还发现一些上网本常用热熔胶来黏结,比如有的是用热熔胶把喇叭粘上去的;还有的在鼠标下面要维持弹性所以用了简易的橡胶垫,这都是很常见的问题。这些都无法通过相关的震动或者是冲击实验,这些都会造成将来在客户使用上的一些安全性上的问题。


最后,他列举了一个更常见的严重问题:一些山寨本的HDD固定无适当的结构零件辅助,HDD只是放在塑胶壳里面,连固定都没有固定,从某个角度来看好像很容易拆卸,但是如果从结构的角度来看这个是非常不安全的。


刘杨伟还给一些正规品牌的同业者提供了宝贵的经验。“有些同业所生产的上网本运到国外常常发生一些塑胶壳龟裂的现象,这是因为在生产之前没有做好测试,这是测试方面的问题。”他解释,我们在技术上也因为不太了解一些塑胶的一些特性,常常在PC和ABS之间的混合的比例上自己调配,这样的做法都会造成不同的问题,所以借这个机会我提醒大家,在材料上面也要非常注意。有些塑胶的外壳看起来是一样的,实际上所产生的结构上的一些效应不经测试是不知道的。


“以上是我们在上网本市场看到的一些常见性的问题,希望提出来给各位业界的朋友们做一些参考,其实改善这些缺陷所需要的成本非常低。希望这些交流对业界在提升品质上有所帮助。”他总结道。

2009年5月11日星期一

在线网络存储

ilesfly--在线传送、共享、备份文件网站,单个文件最大300M,没有格式限制,不需要注册,速度还不错。支持email通知。

localhostr的特色在于:可以很方面的分享文件,只需要三步(选取,上传,取得网址)。
上传速度方面还可以,文件大小20MB,任何文件都可上传。

MediaFire:上传文件不限格式、不限大小、不限下载流量,不提供直接文件链接,和 Live Share 以及 rapidshare.de 一样提供下载页面。测试上传速度尚可,比 Box.net 略慢,比 localhostr 稍快。

在线文件存储服务提供商Live-Share:未注册用户,单个上传文件不能大于300M,连续4周文件无人下载则删除文件;注册用户,单个上传文件不能大于500M,连续8周文件无人下载则删除文件。上传速度:40KB/s.

4Shared: 免费版的4Shared提供了1G的存储空间,允许上传的最大单个文件为50MB,无限制的访问和带宽,并且提供本地上传工具。支持中文文件名。另外还提供多文件上传方式、文件详情页面和预览功能等等。它的共享功能也相当强大,不仅提供静态文件夹共享地址,还可为文件夹设置更多的权限,比如添加访问密码、允许上传、改名或删除、显示缩略图等等功能,更像是一个FTP文件夹。上传速度基本保持在10-20K之间,而下载速度可达60K左右。

OmniDrive:OmniDrive 的界面风络与XP的风格相似,提供三种文件查看方式,分别是图标方式、详情方式及缩略图方式,支持右键弹出菜单。OmniDrive还提供了一个特色功能 Live Folder,一种可以通过RSS 种子来同步更新目录,比如从Flickr中同步图片到新创建的Live Folder中。OmniDrive也提供了一个本地客户端程序,有Win和MAC两种版本,通过这个客户端就可以很方便的上传和管理文件。当安装完后,它会在”我的电脑”中生成一个名为OmniDrive的新磁盘,通过它你就可以非常方便的进行相应操作。

Xdrive:Xdrive 为AOL传闻已久的一款网络磁盘服务,已开始提供免费注册。开放之前用户每月需支付10美元,可以购买XDrive服务的50GB空间。而这次推出的免费帐户提供5G的空间。Xdrive还配有一个名为Xdrive Desktop文件管理工具,下载后安装到本地系统上,就通过这个软件来备份你的本地文件到Xdrive,而且它还会生成一个带盘符的本地磁盘,可直接把文件拖进该磁盘上传到Xdrive,非常方便。

gigasize:巨大文件移动、传输、备份的网站,不注册可以发300M大小的文件,保留45天;注册免费账号最大支持1.5G每个文件,存储90天,没有下载限制;付费用户(3$每月)最大2.5G,没有保存时间限制。全部支持自动生成支持blogg等的外引代码和Email分享引用。

Box:界面漂亮,清新简洁。运用了Ajax ,操作起来感觉很流畅。上传文件可以使用drag and drop方式,只要把要上传的文件选中,直接拖动到窗口上就可以成上传的操作。免费用户1G的免费存储空间,单个文件10M,不支持分享。通过邀请5名好友可以免费升级到PREMIUM,没有单个文件大小限制,5GB空间,并且有分享功能,月流量20GB。最近又推出了Box/lite,可以无需注册,分享变得更为简单,上传支持大多数的文件类型,包括音频、视频、图片和文档,单个文件大小不超过 10MB。我在教育网内下载速度平均100k/s,最快200k/s。这是我目前主要用的网络存储网站。

MediaMax:25GB超大容量的网站,为上传内容提供分类,比如图片类、音乐类等,因为该网站会根据你上传的文件自动归类。而且音乐文件可以在线视听。不过试了一下感觉速度有点慢。

450Mhttp://rapidshare.de/: 界面简单,速度快,适合小文件存储。注册后会生成一个自己的文件夹。提供一个比较有意思的功能:可以在线创建html页面。

zupload.com,最大可以上传500M,在线传,没有工具。
界面挺简单,速度也可以。

paid4load.de,最大可以上传100M,有一个上传工具,文件传完以后,通过Create Linklist (html)就可以得到文件的链接,可以根据文件被下载的次数获得一定的收入。

filexoom.com,最大100M的文件,不限文件格式,容量2G,使用很方便。

rapidshare.de,号称一键式存储biggest 1-Click Webhoster,选择文件,点击上传就可以了,好了以后会得到一个下载地址。可以到Collector’s-Zone 注册一下,就可以管理自己所传的文件。

MyBloop, 上传速度在70k/s左右(教育网),下载速度在40k/s,感觉比box慢一些。你可以上传包括imgage、audio、video等各种文件。

Xdrive-5G网盘 ,速度快的吓人,不支持中文文件名,会变成?等乱码。

http://silo.ru/,最大150M。

http://file.sc/,最大1G。

http://www.sendspace.com/,最大300M。

Filecrunch又是一个在线存储服务,可免费注册。单个文件最大上传限制为250MB,无限下载,支持各种类型的文件格式。可自动生成BBcodes和HTML链接,可对下载文件发表评论。

Magix ---URLhttp://www.magix-photos.com/ 是一个全功能的多媒体存储和分享服务,它允许你上传照片、视频和音频文件。

Openomy ---URLhttp://www.openomy.com 通告tag标签的方式管理上传的文件,可共享。

Putfile ---URLhttp://www.putfile.com/ Putfile 是一个免费的存储服务网站,你可以上传视频,照片,flash等文件。不需要安装任何客户端. Putfile 空间经常是无限的.而且速度也很快。

UploadingIt ---URLhttp://uploadingit.com/ 5GB 超大容量,200MB 最大单文档上传,75GB 月流量(每30天计算清零)!存储的文档以文件夹形式管理,并根据文档格式提供多种方式分享与直接外链下载。

我的网络文件夹---URLhttp://www.51files.com/ 国内的文件共享传送网站。完全免费,不限制文件大小,不限制流量,甚至不需要注册登录。


http://www.ihud.com/ 单个文件限制50M。

http://www.turboupload.com/ 允许上传70m的文件。

http://www.wirefiles.com/ 上传50M文件。

http://www.zshare.net/ 允许上传100m的文件,15天之内有人下载就不过期。

http://www.yousendit.com/ 上传1G文件,保留7天,限制下载次数,可多线程,推荐!

http://updownloadserver.com/ 可以上传250M的文件,速度不错!

http://upload2.net/ 以上传25M的文件,保存时间有一年哟!

http://storeandserve.com/ 可以上传100M的文件,30天之内有人下载就会一直保留!

http://www.ultrashare.net/ 可以上传30M的文件,速度还可以!

http://www.filefront.com/ 无限空间,速度比较理想,推荐!

http://easy-sharing.com/ 上传75M的文件,下载次数不限,30天内无人下载砍档。

http://www.filefactory.com/upload/ 可以上传1.5G的文件,保存30天。

http://fileupyours.com/ 上传200M文件,无限期保存,无限期下载。

http://datapickup.com/ 上传1.5G文件,保存7天。

http://www.transferbigfiles.com/ 上传1G文件,保存5天。

http://www.megashares.com/ 上传1.5G文件,无限制下载。

http://ww3.sharebigfile.com/ 上传300M文件,可以开多个线程无限制下载,非常好!

http://www.spread-it.com/ 上传500M文件,30天没人下砍档。

http://www.filecache.de/ 上传125M文件,30天没人下砍档。

http://www.filepost.us/3 MB大小文件限制,500MB空间,支持外联,无流量限制。

Myebook Tu1013

本镜像在830镜像基础上完善,实现了一茶V1.2教程http://www.qzxx.com/iso/jcv1.2.rar的全部功能。(镜像只是在我本机简单测试,数据恢复有风险,请大家自行做好重要数据备份,安装中发现什么问题,请跟贴说明,以便我修订镜像。)

本镜像在830镜像基础上完善,实现了一茶V1.2教程http://www.qzxx.com/iso/jcv1.2.rar的全部功能。(镜像只是在我本机简单测试,数据恢复有风险,请大家自行做好重要数据备份,安装中发现什么问题,请跟贴说明,以便我修订镜像。)
1013新增加的功能有:mysql,博客,rtorrent,wrtorrent,screnn以及sw和clutch远程管理密码验证,sw、clutch、wtorrent密码统一管理,以及在sw界面增加了rtorrent、mysql开关,硬盘温度显示等功能。
修订了wtorrent乱码,将sw数据验证由mysql数据库更改为了sqlit数据。可自由开关mysql(但博客需要mysql支持).

本系统采取的是动态ip,建议网友在路由器中将盒子的mac地址绑定,通过路由器固定ip,这事关到盒子的下载速度和博客的访问速度。个别使用dlink路由的网友,有可能网段是192.168.0.X请先在路由中将网段改成192.168.1.x后,才能确保有效连接上盒子。
(目前有个别网友反映博客界面有问题,只要将ip改为192.168.1.3就可以了,一茶重新作了镜像,在备份时将博客关了)
全新安装:
光盘引导启动后,执行./setup.sh
升级安装:
光盘引导启动后,执行./update.sh
其他说明:
管理页面 http:\\xxx.xxx.xxx
sw页 http:\\xxx.xxx.xxx.xxx\sw
博客 http:\\xxx.xxx.xxx.xxx\web (需关闭博客,请直接在sw中关闭mysql服务,默认为关闭)
MLDonkey http:\\xxx.xxx.xxx:4080(默认是关闭了的,请到sw界面打开。)
cltuch http:\xxx.xxx.xxx\clutch下(用火狐打开)
wtorrent http:\xxx.xxx.xxx\wtorrent (用火狐打开)
以上用户名都为admin,密码为123456

xxx.xxx.xxx为网友自己的ip或域名。
通过putty登陆底层操作平台,用户名为mybook,密码为123456。请通过passwd命令更改ftupusr,mybook,root等用户的秘码。

有关操作在一茶的v1.2教程中有详细的讲解,请大家在使用前详细阅读。
v1.2教程中涉及到的linux下软件,本系统都已安装调试正常,网友不必另行安装,可直接使用。

答疑:
鉴于网友使用硬盘型号多种多样,在读取温度数据时,有可能有些格式不对,如有问题请跟贴说明,目前我用西数和希捷进行了测试正常;
本系统只针对单盘盒子进行的测试,双盘盒子因一茶没有,暂没法测试,本系统不支持双盘的风扇控制。
在双盘盒子上可装本系统挂单硬盘来使用,因一茶没有双盘盒子,无法测试radio.

一茶于10-14凌晨

2009年5月10日星期日

ubuntu 摄像头驱动安装

a) 请根据内核版本和摄像头类型从
http://mxhaard.free.fr/download.html
选择下载最新驱动,该驱动支持市面上大多数摄像头。
b) 编译、安装及装载摄像头驱动
c) # tar xvzf gspcav1-20061216.tar.gz
# cd gspcav1-20061216
# make
# make install
# modprobe gspca
注意:Ubuntu更新库中也包含了该驱动,能简单的通过“m-a a-i spca5xx”命令来自动下载并编译安装,不过由于库中的代码并不是最新的,对于某些摄像头的驱动可能存在问题,所以推荐手动下载、编译并安装的方式。
d) 用Camorama程式测试摄像头及其驱动程式
# apt-get install camorama
从开始菜单启动Camorama程式,如果驱动工作正常,将会在程式中显示动态预览窗口。

2009年5月3日星期日

NAS issue

技术帮助:
全套说明和教程下载 http://www.hzwifi.com/wd.rar
论坛BBS http://bbs.qzxx.com/forum-23-1.html
赠送一键系统恢复光盘是090113版,配置截图如下
注: 我们只卖原装机,不做改装,加内存等服务


下面的介绍是官方介绍,并不是我网站所售商品,我售商品为单盒一个,技术支持点击下面的图片进入

官方介绍:http://www.wdc.com/cn/products/products.asp?driveid=340

官方拆解介绍:http://www.wdc.com/cn/flash/index.asp?family=wdfMyBook_World_2N



1.如何使用 SANCHO在PC端管理下载.BT,电驴样样都行.不再受缓慢的WEB介面所影响.并能通过电驴服务器搜索到你想要的东东.

2.如何使用 putty,让菜鸟也变身为 LINUX高手.自由修改和设置相关参数,密码等等.玩转硬盘盒.

3.远程登陆.教程中详细介绍了如何设置远程登陆方面的端口映射问题.在公司就能控制家中的NAS,还有你想得到它做不到的吗?

4.安装mysql数据库存.

5.个人博客安装及chutch和SW介面的加密设置.

更多功能.........敬请期待!!

通过一段时间的销售,又有高手开发出了更多的功能:

最新的固件支持PSP nethostfs媒体服务器了,这样就可以用PSP的WIFI直接观看网络硬盘里的PSP电影了,非常方便.

WD WORLEDTION II和I的区别是可以安装两块硬盘进去,组成RAID 0和RAID 1模式,并且WORLEDTION II增加了风扇,可以随系统温度自动开启调整温度.

不过WORLEDTION II的体积也相应要大了一些,没有WORLEDTION I携带方便.

另请注意:双硬盘的NAS必需是安装完全相同型号和容量的两块硬盘时,才可以组成RAID模式,如果两块硬盘不相同,则不能使用RAID模式而只能使用普通模式.

2009年4月29日星期三

Linux目录结构

与Windows将硬盘看做“C盘”、“D盘”几个独立的分区不同,Linux将整个文件系统看做一棵树,这棵树的树根叫做根文件系统,用/表示。各个分区通过“挂载”(mount)以文件夹的形式访问。

在/中的文件夹很多,本文介绍常见文件夹的意义。Linux的目录结构确实比较复杂,但设置合理、层次鲜明。本文以FHS 2.3[1]为例进行介绍。

目录

1 根文件系统
2 /usr目录结构
3 /var目录结构
4 参考资料


根文件系统
/bin
这一目录中存放了供所有用户使用的完成基本维护任务的命令。其中bin是binary的缩写,表示二进制文件,通常为可执行文件。一些常用的系统命令,如cp、ls等保存在该目录中。

/boot
这里存放的是启动Linux时使用的一些核心文件。如操作系统内核、引导程序grub等。

/dev
在此目录中包含所有的系统设备文件。从此目录可以访问各种系统设备。如CD-ROM,磁盘驱动器,调制解调器和内存等。在该目录中还包含有各种实用功能,如用于创建设备文件的MAKEDEV。有关/dev中文件的具体含义,请参考/dev

/etc
该目录中包含系统和应用软件的配置文件。

/home
目录/home存储普通用户的个人文件。每个用户的主目录均在/home下以自己的用户名命名。

/lib
这个目录里存放着系统最基本的共享链接库和内核模块。共享链接库在功能上类似于Windows里的.dll文件。

/lib64
64位系统有这个文件夹,64位程序的库。

/lost+found
这并不是Linux目录结构的组成部分,而是ext3文件系统用于保存丢失文件的地方。不恰当的关机操作和磁盘错误均会导致文件丢失,这意味着这些被标注为“在使用”,但却并未列于磁盘上的数据结构上。正常情况下,引导进程会运行fsck程序,该程序能发现这些文件。除了“/”分区上的这个目录外,在每个分区上均有一个lost+found目录。

/media
可移动设备的挂载点,当前的操作系统通常会把U盘等设备自动挂载到该文件夹下。

/mnt
临时用于挂载文件系统的地方。一般情况下这个目录是空的,而在我们将要挂载分区时在这个目录下建立目录,再将我们将要访问的设备挂载在这个目录上,这样我们就可访问文件了。

/opt
多数第三方软件默认安装到此位置,如Adobe Reader、google-earth等。并不是每个系统都会创建这个目录。

/proc
它是存在于内存中的虚拟文件系统。里面保存了内核和进程的状态信息。多为文本文件,可以直接查看。如/proc/cpuinfo保存了有关CPU的信息。

/root
这是根用户的主目录。与保留给个人用户的/home下的目录很相似,该目录中还包含仅与根用户有关的条目。

/sbin
供超级用户使用的可执行文件,里面多是系统管理命令,如fsck, reboot, shutdown, ifconfig等。

/tmp
该目录用以保存临时文件。该目录具有Sticky特殊权限,所有用户都可以在这个目录中创建、编辑文件。但只有文件拥有者才能删除文件。为了加快临时文件的访问速度,有的实现把/tmp放在内存中。

/usr
该目录是到目前为止综合性最高的目录之一。在这个目录中将保存大多数的默认二进制文件。具体情况与LINUX的发行版本有关,除了必须的系统应用程序以外,该目录还可保存多种其他程序。

/usr目录结构
/usr通常是一个庞大的文件夹,而且里面有一些和根目录下相似的子文件夹。/usr的作用到底是什么呢?

/usr中存放的文件是与具体的系统无关的,而且应是只读的。所谓与具体的系统无关,就是说同一个软件,装在不同的系统上后,存放在/usr中的内容是相同的,而程序的个性化配置文件不应在/usr中。所谓只读,就是说除了安装、卸载软件外,不应修改/usr中的内容,也就是说在系统正常运行时,/usr甚至可以被只读挂载。

由于/usr所占的空间通常很大,有人把它放在单独的分区中。

/usr/bin
多数日常应用程序存放的位置。如果/usr被放在单独的分区中,Linux的单用户模式不能访问/usr/bin,所以对系统至关重要的程序不应放在此文件夹中。

/usr/include
存放C/C++头文件的目录

/usr/lib
系统的库文件

/usr/local
新装的系统中这个文件夹是空的,可以用于存放个人安装的软件。安装了本地软件的/usr/local里的目录结构与/usr相似

/usr/sbin
在单用户模式中不用的系统管理程序,如apache2等。

/usr/share
与架构无关的数据。多数软件安装在此。

/usr/X11R6
该目录用于保存运行X-Window所需的所有文件。该目录中还包含用于运行GUI要的配置文件和二进制文件。

/usr/src
源代码

/var目录结构
/var中包括了一些数据文件,如系统日志等。/var的存放使得/usr被只读挂载成为可能。

/var中的主要目录 /var/cache 应用程序的缓存文件
/var/lib 应用程序的信息、数据
/var/local /usr/local中程序的信息、数据
/var/lock 锁文件
/var/log 日志文件
/var/opt /opt中程序的信息、数据
/var/run 正在执行着的程序的信息,如PID文件应存放于此
/var/spool 存放程序的假脱机数据(即spool data)
/var/tmp 临时文件

linux进程管理

1、程序和进程;

程序是为了完成某种任务而设计的软件,比如OpenOffice是程序。什么是进程呢?进程就是运行中的程序。

一个运行着的程序,可能有多个进程。 比如 LinuxSir.Org 所用的WWW服务器是apache服务器,当管理员启动服务后,可能会有好多人来访问,也就是说许多用户来同时请求httpd服务,apache服务器将会创建有多个httpd进程来对其进行服务。


1.1 进程分类;

进程一般分为交互进程、批处理进程和守护进程三类。

值得一提的是守护进程总是活跃的,一般是后台运行,守护进程一般是由系统在开机时通过脚本自动激活启动或超级管理用户root来启动。比如在 Fedora或Redhat中,我们可以定义httpd 服务器的启动脚本的运行级别,此文件位于/etc/init.d目录下,文件名是httpd,/etc/init.d/httpd 就是httpd服务器的守护程序,当把它的运行级别设置为3和5时,当系统启动时,它会跟着启动。

[root@localhost ~]# chkconfig --level 35 httpd on

由于守护进程是一直运行着的,所以它所处的状态是等待请求处理任务。比如,我们是不是访问 LinuxSir.Org ,LinuxSir.Org 的httpd服务器都在运行,等待着用户来访问,也就是等待着任务处理。


1.2 进程的属性;

进程ID(PID):是唯一的数值,用来区分进程;
父进程和父进程的ID(PPID);
启动进程的用户ID(UID)和所归属的组(GID);
进程状态:状态分为运行R、休眠S、僵尸Z;
进程执行的优先级;
进程所连接的终端名;
进程资源占用:比如占用资源大小(内存、CPU占用量);


1.3 父进程和子进程;

他们的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止。但子进程终止,父进程并不一定终止。比如httpd服务器运行时,我们可以杀掉其子进程,父进程并不会因为子进程的终止而终止。

在进程管理中,当我们发现占用资源过多,或无法控制的进程时,应该杀死它,以保护系统的稳定安全运行;


2、进程管理;

对于Linux进程的管理,是通过进程管理工具实现的,比如ps、kill、pgrep等工具;


2.1 ps 监视进程工具;

ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用top工具;


2.1.1 ps 的参数说明;

ps 提供了很多的选项参数,常用的有以下几个;

l 长格式输出;
u 按用户名和启动时间的顺序来显示进程;
j 用任务格式来显示进程;
f 用树形格式来显示进程;
a 显示所有用户的所有进程(包括其它用户);
x 显示无控制终端的进程;
r 显示运行中的进程;
ww 避免详细参数被截断;

我们常用的选项是组合是aux 或lax,还有参数f的应用;

ps aux 或lax输出的解释;

USER 进程的属主;
PID 进程的ID;
PPID 父进程;
%CPU 进程占用的CPU百分比;
%MEM 占用内存的百分比;
NI 进程的NICE值,数值大,表示较少占用CPU时间;
VSZ 进程虚拟大小;
RSS 驻留中页的数量;
WCHAN
TTY 终端ID
STAT 进程状态
D Uninterruptible sleep (usually IO) R 正在运行可中在队列中可过行的; S 处于休眠状态; T 停止或被追踪; W 进入内存交换(从内核2.6开始无效); X 死掉的进程(从来没见过); Z 僵尸进程; < 优先级高的进程 N 优先级较低的进程 L 有些页被锁进内存; s 进程的领导者(在它之下有子进程); l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) + 位于后台的进程组;
WCHAN 正在等待的进程资源;
START 启动进程的时间;
TIME 进程消耗CPU的时间;
COMMAND 命令的名称和参数;
2.1.2 ps 应用举例;
实例一:ps aux 最常用
[root@localhost ~]# ps -aux |more
可以用 | 管道和 more 连接起来分页查看;
[root@localhost ~]# ps -aux > ps001.txt
[root@localhost ~]# more ps001.txt
这里是把所有进程显示出来,并输出到ps001.txt文件,然后再通过more 来分页查看;
实例二:和grep 结合,提取指定程序的进程;
[root@localhost ~]# ps aux |grep httpd
root 4187 0.0 1.3 24236 10272 ? Ss 11:55 0:00 /usr/sbin/httpd
apache 4189 0.0 0.6 24368 4940 ? S 11:55 0:00 /usr/sbin/httpd
apache 4190 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4191 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4192 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4193 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4194 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4195 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4196 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
root 4480 0.0 0.0 5160 708 pts/3 R+ 12:20 0:00 grep httpd

实例二:父进和子进程的关系友好判断的例子
[root@localhost ~]# ps auxf |grep httpd
root 4484 0.0 0.0 5160 704 pts/3 S+ 12:21 0:00 \_ grep httpd
root 4187 0.0 1.3 24236 10272 ? Ss 11:55 0:00 /usr/sbin/httpd
apache 4189 0.0 0.6 24368 4940 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4190 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4191 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4192 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4193 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4194 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4195 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4196 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd

这里用到了f参数;父与子关系一目了然;
2.2 pgrep
pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。在服务器的配置和管理中,这个工具常被应用,简单明了;
用法:
#ps 参数选项 程序名
常用参数
-l 列出程序名和进程ID;
-o 进程起始的ID;
-n 进程终止的ID;
举例:
[root@localhost ~]# pgrep -lo httpd
4557 httpd
[root@localhost ~]# pgrep -ln httpd
4566 httpd
[root@localhost ~]# pgrep -l httpd
4557 httpd
4560 httpd
4561 httpd
4562 httpd
4563 httpd
4564 httpd
4565 httpd
4566 httpd
[root@localhost ~]# pgrep httpd
4557
4560
4561
4562
4563
4564
4565
4566
3、终止进程的工具 kill 、killall、pkill、xkill;
终止一个进程或终止一个正在运行的程序,一般是通过 kill 、killall、pkill、xkill 等进行。比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。
另外应用的场合就是在服务器管理中,在不涉及数据库服务器程序的父进程的停止运行,也可以用这些工具来终止。为什么数据库服务器的父进程不能用这些工具杀死呢?原因很简单,这些工具在强行终止数据库服务器时,会让数据库产生更多的文件碎片,当碎片达到一定程度的时候,数据库就有崩溃的危险。比如 mysql服务器最好是按其正常的程序关闭,而不是用pkill mysqld 或killall mysqld 这样危险的动作;当然对于占用资源过多的数据库子进程,我们应该用kill 来杀掉。
3.1 kill
kill的应用是和ps 或pgrep 命令结合在一起使用的;
kill 的用法:
kill [信号代码] 进程ID
注:信号代码可以省略;我们常用的信号代码是 -9 ,表示强制终止;
举例:
[root@localhost ~]# ps auxf |grep httpd
root 4939 0.0 0.0 5160 708 pts/3 S+ 13:10 0:00 \_ grep httpd
root 4830 0.1 1.3 24232 10272 ? Ss 13:02 0:00 /usr/sbin/httpd
apache 4833 0.0 0.6 24364 4932 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4834 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4835 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4836 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4837 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4838 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4839 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4840 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
我们查看httpd 服务器的进程;您也可以用pgrep -l httpd 来查看;
我们看上面例子中的第二列,就是进程PID的列,其中4830是httpd服务器的父进程,从4833-4840的进程都是它4830的子进程;如果我们杀掉父进程4830的话,其下的子进程也会跟着死掉;
[root@localhost ~]# kill 4840 注:杀掉4840这个进程;
[root@localhost ~]# ps -auxf |grep httpd 注:查看一下会有什么结果?是不是httpd服务器仍在运行?
[root@localhost ~]# kill 4830 注:杀掉httpd的父进程;
[root@localhost ~]# ps -aux |grep httpd 注:查看httpd的其它子进程是否存在,httpd服务器是否仍在运行?
对于僵尸进程,可以用kill -9 来强制终止退出;
比如一个程序已经彻底死掉,如果kill 不加信号强度是没有办法退出,最好的办法就是加信号强度 -9 ,后面要接杀父进程;比如;
[root@localhost ~]# ps aux |grep gaim
beinan 5031 9.0 2.3 104996 17484 ? S 13:23 0:01 gaim
root 5036 0.0 0.0 5160 724 pts/3 S+ 13:24 0:00 grep gaim

[root@localhost ~]# pgrep -l gaim
5031 gaim
[root@localhost ~]# kill -9 5031
3.2 killall
killall 通过程序的名字,直接杀死所有进程,咱们简单说一下就行了。
用法:killall 正在运行的程序名
killall 也和ps或pgrep 结合使用,比较方便;通过ps或pgrep 来查看哪些程序在运行;
举例:
[root@localhost beinan]# pgrep -l gaim
2979 gaim
[root@localhost beinan]# killall gaim
3.3 pkill
pkill 和killall 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill 来杀掉。
应用方法:
#pkill 正在运行的程序名
举例:
[root@localhost beinan]# pgrep -l gaim
2979 gaim
[root@localhost beinan]# pkill gaim
3.4 xkill
xkill 是在桌面用的杀死图形界面的程序。比如当firefox 出现崩溃不能退出时,点鼠标就能杀死firefox 。当xkill运行时出来和个人脑骨的图标,哪个图形程序崩溃一点就OK了。如果您想终止xkill ,就按右键取消;
xkill 调用方法:
[root@localhost ~]# xkill
4、top 监视系统任务的工具;
和ps 相比,top是动态监视系统任务的工具,top 输出的结果是连续的;
4.1 top 命令用法及参数;
top 调用方法:
top 选择参数
参数:
-b 以批量模式运行,但不能接受命令行输入;
-c 显示命令行,而不仅仅是命令名;
-d N 显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒;
-i 禁止显示空闲进程或僵尸进程;
-n NUM 显示更新次数,然后退出。比如 -n 5,表示top更新5次数据就退出;
-p PID 仅监视指定进程的ID;PID是一个数值;
-q 不经任何延时就刷新;
-s 安全模式运行,禁用一些效互指令;
-S 累积模式,输出每个进程的总的CPU时间,包括已死的子进程;
交互式命令键位:
space 立即更新;
c 切换到命令名显示,或显示整个命令(包括参数);
f,F 增加显示字段,或删除显示字段;
h,? 显示有关安全模式及累积模式的帮助信息;
k 提示输入要杀死的进程ID,目的是用来杀死该进程(默人信号为15)
i 禁止空闲进程和僵尸进程;
l 切换到显法负载平均值和正常运行的时间等信息;
m 切换到内存信息,并以内存占用大小排序;
n 提示显示的进程数,比如输入3,就在整屏上显示3个进程;
o,O 改变显示字段的顺序;
r 把renice 应用到一个进程,提示输入PID和renice的值;
s 改变两次刷新时间间隔,以秒为单位;
t 切换到显示进程和CPU状态的信息;
A 按进程生命大小进行排序,最新进程显示在最前;
M 按内存占用大小排序,由大到小;
N 以进程ID大小排序,由大到小;
P 按CPU占用情况排序,由大到小
S 切换到累积时间模式;
T 按时间/累积时间对任务排序;
W 把当前的配置写到~/.toprc中;
4.2 top 应用举例;
[root@localhost ~]# top
然后根据前面所说交互命令按个尝试一下就明白了,比如按M,就按内存占用大小排序;这个例子举不举都没有必要了。呵。。。。。。

当然您可以把top的输出传到一个文件中;
[root@localhost ~]# top > mytop.txt
然后我们就可以查看mytop文件,以慢慢的分析系统进程状态;
5、进程的优先级:nice和renice;
在Linux 操作系统中,进程之间是竟争资源(比如CPU和内存的占用)关系。这个竟争优劣是通过一个数值来实现的,也就是谦让度。高谦让度表示进程优化级别最低。负值或0表示对高优点级,对其它进程不谦让,也就是拥有优先占用系统资源的权利。谦让度的值从 -20到19。

目前硬件技术发展极速,在大多情况下,不必设置进程的优先级,除非在进程失控而疯狂占用资源的情况下,我们有可能来设置一下优先级,但我个人感觉没有太大的必要,在迫不得已的情况下,我们可以杀掉失控进程。

nice 可以在创建进程时,为进程指定谦让度的值,进程的优先级的值是父进程SHELL的优先级的值与我们所指定谦让度的相加和。所以我们在用nice设置程序的优先级时,所指定数值是一个增量,并不是优先级的绝对值;

nice 的应用举例:

[root@localhost ~]# nice -n 5 gaim & 注:运行gaim程序,并为它指定谦让度增量为5;

所以nice的最常用的应用就是:

nice -n 谦让度的增量值 程序

renice 是通过进程ID(PID)来改变谦让度,进而达到更改进程的优先级。

renice 谦让度 PID

renice 所设置的谦让度就是进程的绝对值;看下面的例子;

[root@localhost ~]# ps lax |grep gaim
4 0 4437 3419 10 -5 120924 20492 - S< pts/0 0:01 gaim
0 0 4530 3419 10 -5 5160 708 - R<+ pts/0 0:00 grep gaim

[root@localhost ~]# renice -6 4437
4437: old priority -5, new priority -6

[root@localhost ~]# ps lax |grep gaim
4 0 4437 3419 14 -6 120924 20492 - S< pts/0 0:01 gaim
0 0 4534 3419 11 -5 5160 708 - R<+ pts/0 0:00 grep gaim



摘要:

Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。操作系统管理多个用户的请求和多个任务。大多数系统都只有一个CPU和一个主存,但一个系统可能有多个二级存储磁盘和多个输入/输出设备。

Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。操作系统管理多个用户的请求和多个任务。大多数系统都只有一个CPU和一个主存,但一个系统可能有多个二级存储磁盘和多个输入/输出设备。操作系统管理这些资源并在多个用户间共享资源,当您提出一个请求时,给您造成一种假象,好象系统只被您独自占用。而实际上操作系统监控着一个等待执行的任务队列,这些任务包括用户作业、操作系统任务、邮件和打印作业等。操作系统根据每个任务的优先级为每个任务分配合适的时间片,每个时间片大约都有零点几秒,虽然看起来很短,但实际上已经足够计算机完成成千上万的指令集。每个任务都会被系统运行一段时间,然后挂起,系统转而处理其他任务;过一段时间以后再回来处理这个任务,直到某个任务完成,从任务队列中去除。

一、进程及作业

Linux系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程,都可以称之为进程。Linux用分时管理方法使所有的任务共同分享系统资源。我们所关心的是如何去控制这些进程,让它们能够很好地为用户服务。进程的一个比较正式的定义是∶在自身的虚拟地址空间运行的一个单独的程序。

进程与程序是有区别的,进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源;而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序 可以启动多个进程。

进程和作业的概念也有区别。一个正在执行的进程称为一个作业,而且作业可以包含一个或多个进程,尤其是当使用了管道和重定向命令。

作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程,等一会儿再继续执行该进程。shell将记录所有启动的进程情况,在每个进程过程中,用户可以任意地挂起进程或重新启动进程。作业控制是许多 shell(包括bash和tcsh)的一个特性,使用户能在多个独立 作业间进行切换。

例如,当用户编辑一个文本文件,并需要中止编辑做其他事情时,利用作业控制,用户可以让编辑器暂时挂起,返回shell提示符开始做其他的事情。其他事情做完以后,用户可以重新启动挂起的编辑器,返回到刚才中止的地方,就象用户从来没有离开编辑器一样。

这只是一个例子,作业控制还有许多其他实际的用途。

二、启动进程

键入需要运行的程序的程序名,执行一个程序,其实也就是启动了一个进程。在Linux系统中每个进程都具有一个进程号,用于系统识别和调度进程。启动一个进程有两个主要途径∶手工启动和调度启动,后者是事先进行设置,根据用户要求自行启动。

1、手工启动

由用户输入命令,直接启动一个进程便是手工启动进程。但手工启动进程又可以分为前台启动和后台启动。

前台启动是手工启动一个进程的最常用的方式。一般地,用户键入一个命令“ls-l”,这就已经启动了一个进程,而且是一个前台的进程。这时候系统其实已经处于一个多进程状态。



或许有些用户会疑惑∶我只启动了一个进程而已。但实际上有许多运行在后台的、系统启动时就已经自动启动的进程正在悄悄运行着。还有的用户在键入“ls -l”命令以后赶紧使用 “ps -x”查看,却没有看到ls进程,也觉得很奇怪。其实这是因为ls这个进程结束太快,使用ps查看时该进程已经执行结束了。

直接从后台手工启动一个进程用得比较少一些,除非是该进程甚为耗时,且用户也不急着需要结果的时候。假设用户要启动一个需要长时间运行的格式化文本文件的进程。为了不使整个shell在格式化过程中都处于“瘫痪”状态,从后台启动这个进程是明智的选择。

2、调度启动

有时候需要对系统进行一些比较费时而且占用资源的维护工作,这些工作适合在深夜进行,这时候用户就可以事先进行调度安排,指定任务运行的时间或者场合,到时候系统会自动完成这一切工作。要使用自动启动进程的功能,就需要掌握以下几个启动命令。

第一个重要的命令是at命令用户使用at命令在指定时刻执行指定的命令序列。也就是说,该命令至少需要指定一个命令、一个执行时间才可以正常运行。at命令可以只指定时间,也可以时间和日期一起指定。需要注意的是,指定时间有个系统判别问题。比如说∶用户现在指定了一个执行时间∶凌晨3:20,而发出at命令的时间是头天晚上的20:00,那么究竟是在哪一天执行该命令呢?如果用户在3:20以前仍然在工作,那么该命令将在这个时候完成;如果用户3:20以前就退出了工作状态,那么该命令将在第二天凌晨才得到执行。下面是at命令的语法格式∶

at [-V] [-q 队列] [-f 文件名] [-mldbv] 时间

at -c 作业 [作业...]

at允许使用一套相当复杂的指定时间的方法,它可以接受在当天的 hh:mm(小时:分钟)式的时间指定。如果该时间已经过去,那么就放在第二天执行。当然也可以使用 midnight(深夜), noon (中午), teatime(饮茶 时间,一般是下午 4点)等比较模糊的词语来指定时间。用户还可以采用12小时计时制,即在时间后面加上AM(上午)或者 PM (下午)来说明是上午还是下午。也可以指定命令执行的具体日期,指定格式为 month day (月日)或者 mm/dd/yy(月/日/年)或者 dd.mm.yy (日.月.年)。

指定的日期必须跟在指定时间的后面。

上面介绍的都是绝对计时法,其实还可以使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为∶now + count time-units ,now就是当前时间,time-units是时间单位,这里可以是 minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,究竟是几天,还是几小时,等 等。

还有一种计时方法就是直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。下面通过一些例子来说明具体用法。

[例] 指定在今天下午 5:30 执行某命令。假设现在时间是中午12:30,2001年2月24日,其命令格式如下∶

at 5:30pm

at 17:30

at 17:30 today

at now + 5 hours

at now + 300 minutes

at 17:30 24.2.99



at 17:30 2/24/99

at 17:30 Feb 24

以上这些命令表达的意义是完全一样的,所以在安排时间的时候完全可以根据个人喜好和具体情况自由选择。一般采用绝对时间的24小时计时法可以避免由于用户自己的疏忽造成计时错误的情况发生,例如上例可以写成∶

at 17:30 2/24/99

这样非常清楚,而且别人也看得懂。

对于at命令来说,需要定时执行的命令是从标准输入或者使用- f选项指定的文件中读取并执行的。如果at命令是从一个使用su命令切换到用户shell中执行的,那么当前用户被认为是执行用户,所有的错误和输出结果都会送给这个用户。但是如果有邮件送出的话,收到件的将是原来的用户,也就是登录时shell的所有者。在7月31日上午10点执行文件work中的作业。

在任何情况下,超级用户都可以使用这个命令。对于其他用户来说,是否可以使用就取决于两个文件∶ /etc/at.allow 和 /etc/at.deny 。

cron命令

前面介绍的两条命令都会在一定时间内完成一定任务,但是要注意它们都只能执行一次。也就是说,当指定了运行命令后,系统在指定时间完成任务,一切就结束了。但是在很多时候需要不断重复一些命令,比如∶某公司每周一自动向员工报告头一周公司的活动情况,这时候就需要使用cron命令来完成任务了。实际上,cron命令是不应该手工启动的。cron命令在系统启动时就由一个 shell脚本自动启动,进入后台(所以不需要使用&符号)。一般的用户没有运行该命令的权限,虽然超级用户可以手工启动cron,不过还是建议将其放到shell脚本中由系统自行启动。

首先cron命令会搜索/var/spool/cron目录,寻找以/etc/passwd文件中的用户名命名的crontab文件,被找到的这种文件将载入内存。例如一个用户名为foxy的用户,它所对应的crontab文件就应该是 /var/spool/cron/foxy。也就是说,以该用户命名的crontab文件存放在/var/spool/cron目录下面。cron命令还将搜索/etc/crontab文件,这个文件是用不同的格式写成的。cron启动以后,它将首先检查是否有用户设置了crontab文件,如果没有就转入“休眠”状态,释放系统资源。所以该后台进程占用资源极少。它每分钟“醒”过来一次,查看当前是否有需要运行的命令。命令执行结束后任何输出都将作为邮件发送给crontab的所有者,或者是/etc/crontab文件中MAILTO环境变量中指定的用户。上面简单介绍了一些cron的工作原理,但是 cron命令的执行不需要用户干涉;需要用户修改的是crontab中要执行的命令序列,所以下面介绍crontab命令。

crontab命令

crontab命令用于安装、删除或者列出用于驱动cron后台进程的表格。也就是说,用户把需要执行的命令序列放到crontab文件中以获得执行。每个用户都可以有自己的crontab文件。下面就来看看如何创建一个crontab 文件。在/var/spool/cron下的crontab文件不可以直接创建或者直接修改。crontab文件是通过crontab命令得到的。现在假设有个用户名为foxy,需要创建自己的一个crontab文件。首先可以使用任何文本编辑器建立一个新文件,然后向其中写入需要运行的命令和要定期执行的时间。然后存盘退出。假设该文件为/tmp/test.cron。再后就是使用crontab命令来安装这个文件,使之成为该用户的crontab文件。键入∶



crontab test.cron

这样一个crontab 文件就建立好了。可以转到/var/spool/cron目录下面查看,发现多了一个foxy文件。这个文件就是所需的crontab文件。

在crontab文件中如何输入需要执行的命令和时间。该文件中每行都包括六个 域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。每个域之间使用空格或者制表符分隔。

格式如下∶

minute hour day-of-month month-of-year day-of-week commands

第一项是分钟,第二项是小时,第三项是一个月的第几天,第四项是一年的第几个月,第五项是一周的星期几,第六项是要执行的命令。这些项都不能为空,必须填入。如果用户不需要指定其中的几项,那么可以使用*代替。因为 *是统配符,可以代替任何字符,所以就可以认为是任何时间,也就是该项被忽略了。

进程的挂起及恢复命令bg、fg

作业控制允许将进程挂起并可以在需要时恢复进程的运行,被挂起的作业恢复 后将从中止处开始继续运行。只要在键盘上按ctrl+z,即可挂起当前的前台作业。在键盘上按ctrl+z后,将挂起当前执行的命令cat。使用jobs命令可以显示 shell的作业清单,包括具体的作业、作业号以及作业当前所处的状态。恢复进程执行时,有两种选择∶用fg命令将挂起的作业放回到前台执行;用bg命令将挂起的作业放到后台执行。 灵活使用上述命令,将给自己带来很大的方便。

进程查看

由于Linux是个多用户系统,有时候也要了解其他用户现在在干什么,同时 Linux是一个多进程系统,经常需要对这些进程进行一些调配和管理;而要进行管理,首先就要知道现在的进程情况∶究竟有哪些进程?进程情况如何?等等。所以需要进程查看方面的工作。

who命令

该命令主要用于查看当前在线上的用户情况。这个命令非常有用。如果用户想和其他用户建立即时通讯,比如使用talk命令,那么首先要确定的就是该用户确实在线上,不然talk进程就无法建立起来。又如,系统管理员希望监视每个登录的用户此时此刻的所作所为,也要使用who命令。

who命令应用起来非常简单,可以比较准确地掌握用户的情况,所以使用非常广泛。

w命令

该命令也用于显示登录到系统的用户情况,但是与who不同的是,w命令功能更加强大,它不但可以显示有谁登录到系统,还可以显示出这些用户当前正在进行的工作,并且统计数据相对who命令来说更加详细和科学,可以认为w命令就是 who命令的一个增强版。w命令的显示项目按以下顺序排列∶当前时间,系统启动到现在的时间,登录用户的数目,系统在最近1秒、5秒和15秒的平均负载。然后是每个用户的各项数据,项目显示顺序如下∶登录帐号、终端名称、远程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运行进程的命令行。其中JCPU时间指的是和该终端(tty)连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间。而PCPU时间则是指当前进程(即在WHAT项中显示的进程)所占用的时间。

ps命令

ps命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。



ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用ps命令了。

ps [选项]

下面对命令选项进行说明∶

-e 显示所有进程。

-f 全格式。

-h 不显示标题。

-l 长格式。

-w 宽输出。

a 显示终端上的所有进程,包括其他用户的进程。

r 只显示正在运行的进程。

x 显示没有控制终端的进程。

O[+|-] k1 [,[+|-] k2 [,…]] 根据SHORT KEYS、k1、k2中快捷键指定的多 级排序顺序显示进程列表。对于ps的不同格式都存在着默认的顺序指定。这些默认顺序可以被用户的指定所覆盖。其中“+”字符是可选的,“-”字符是倒转指 定键的方向。

最常用的三个参数是u、a、x.

top命令

top命令和ps命令的基本作用是相同的,显示系统当前的进程和其他状况;但是top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。比较准确的说,top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用。内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定。

三、进程调度

当需要中断一个前台进程的时候,通常是使用Ctrl+c组合键;但是对于一个后台进程恐怕就不是一个组合键所能解决的了,这时就必须求助于kill命令。该命令可以终止后台进程。至于终止后台进程的原因很多,或许是该进程占用的 CPU时间过多;或许是该进程已经挂死。总之这种情况是经常发生的。

kill命令是通过向进程发送指定的信号来结束进程的。如果没有指定发送信号,那么默认值为TERM信号。TERM信号将终止所有不能捕获该信号的进程。至于那些可以捕获该信号的进程可能就需要使用kill(9)信号了,该信号是不能被捕捉的。

kill命令的语法格式很简单,大致有以下两种方式∶

kill [-s 信号 | -p ] [ -a ] 进程号 ...

kill -l [信号]

2009年4月28日星期二

DDNS:Webserver/Mail Server/FTP Server

DDNS (Dynamic Domain Name Server) 是将你现时的电脑透过连线(online)而成为一部伺服器, 操作简便和灵活. 主要用途可分为:
1. Web Server (网页伺服器)
2. Mail Server (邮件伺服器)
3. DataBase Server (资料库伺服器)
4. FTP Server (上/下载专区)
5. Game Server (网络游戏伺服器)
6. Intranet Server (公司内部专用)

一般用途介绍
阁下只需要拥有一个网址(domain name), 并将网址告诉您的客户, 当您的客户在浏览器(browser)上输入您的网址时, 他便可以看见您的网页了(或是使用您所提供的服务).而整个

伺服器的运作则完全掌握在您的手里了.


FTP server
Webserver
mail server

DDNS:Webserver/Mail Server/FTP Server

DDNS (Dynamic Domain Name Server) 是将你现时的电脑透过连线(online)而成为一部伺服器, 操作简便和灵活. 主要用途可分为:
1. Web Server (网页伺服器)
2. Mail Server (邮件伺服器)
3. DataBase Server (资料库伺服器)
4. FTP Server (上/下载专区)
5. Game Server (网络游戏伺服器)
6. Intranet Server (公司内部专用)

一般用途介绍
阁下只需要拥有一个网址(domain name), 并将网址告诉您的客户, 当您的客户在浏览器(browser)上输入您的网址时, 他便可以看见您的网页了(或是使用您所提供的服务).而整个

伺服器的运作则完全掌握在您的手里了.


FTP server
Webserver
mail server

2009年4月26日星期日

2009年4月25日星期六

Webos 是什么?

Web OS 到底是什么?
1.Web OS 到底是什么?
我也没有找到关于Web OS的权威解释,通过我查到的一些中英文资料(如:Duke大学),Web OS提供面向网络的操作系统服务,包括:网络资源寻址、全球名称空间、远程执行程序(在客户端执行服务器程序)、资源管理、认证与安全。
一些共识应该是,Web OS支持丰富的网络操作,比如:网页浏览、RSS阅读甚至直接支持一些Web API,提供集中的、全面的(涉及到方方面面的基础网络应用)、友好的(便于使用)Web资源访问能力,是一组网络功能的集合。
表现上可以是一个软件包,安装这个软件,可以方便地使用互联网。
Web API也需要解释一下,全称是Web Application Program Interface,网络应用程序编程接口,有点类似于微软提供的Windows API,微软的Windows API提供了本机的操作接口,Web API提供了网络的操作接口。从这个角度讲,把Web的基本操作程序封装在一起,称为Web OS有其合理性。
Web OS(Web-based Operating System),即基于网络的操作系统,区别于网络操作系统(NOS)。普通的操作系统大家都十分的熟悉,但是对于Web OS这新东西,相信大家应该十分好奇。近年来,随着网络带宽的增加,网络传输速度不断提升,使Web OS的诞生成为可能。大家可以想像一下未来:我们只需要在硬件上安装浏览器软件,便可在任何接通网络的电脑上使用自己熟悉的操作系统。

虽然Web OS不会替代现行的操作系统,但是它给予人们工作很大的可移动性与跨平台性,相信Web OS会得到长足发展。
2.Web OS是Application(应用程序)还是OS(操作系统)?
有人认为,通过Ajax等技术,浏览器实际上已经能够实现很多所谓Web OS的功能,Web OS如果只是个增强的浏览器,应该叫做Application而不是OS.
这确实是个问题,实际上说明,操作系统和应用软件并没有划一的界限,当初的中文之星你说是操作系统还是应用软件呢?更早期的UCDOS(一种对DOS进行汉化的外壳程序)呢?总体上说,操作系统提供了系统的资源访问能力,应用软件提供某一方面的具体功能应用,理解到这一层就可以了,而无需死抠操作系统和应用程序的含义。
3.WebOS是装在裸机上的吗?与本机操作系统(如Windows)什么关系?
Web OS是不是装在裸机上,对于Web OS来说,并不是一个关键点,就像早期的Windows 3.2是运行在DOS上的操作系统一样,Web OS可以是运行在本机操作系统(如:Windows)上的一个外壳式操作系统,当然,也可以像Windows 95以后的版本,直接运行在裸机上。
操作系统是不是需要在裸机上运行并不关键。关键是是否提供了完备的网络资源操作接口(包括人机接口)。
4.操作系统为什么不重要?
有人质疑将来操作系统个人制造的问题,这显然是有些误解,我并不是说一下抛弃微软的windows系统,而单独做出一套全新的类似Windows的操作系统。
做过嵌入式操作系统的人应该有些感受,程序员可以利用微软提供的Windows CE、Windows XP embedded或者Linux,自己创建某一个设备的操作系统,并且新的操作系统并非是微软一家的东西,可以融合多厂商的不同功能模块。
当初业界要求微软公开Windows API的标准,其目的就是为了业界共同打造操作系统软件,但那个时候开放API标准的实际操作比较困难,现在Web时代,基于Web的标准化程度很高,不同的程序和服务能够方便的进行对接,在这样一个大环境下,操作系统可以分解成许多的功能模块,不同的模块出自不同公司之手,并不是什么奇怪的事情。
当所有人都能够自由定制自己的操作系统(和编程序一样,并不意味着所有的工作都是程序员一个人的功劳,他需要利用开发库等一些列中间产品),就象今天小学生就可以自由编制程序一样,这确实不是什么了不得的事情。
5.GooOS,Google 操作系统会是什么样子?
51.la Free Site Stats
GooOS会是什么样子,一些人已经通过不同的渠道有所透露,但也没有找到权威的说法,我想,GooOS在未来一段时间,主要形式会是像google桌面一样的外挂产品,外挂到Linux、Windows、Apple等操作系统上,当然,一些领域Google推出基于裸机的GooOS也完全可能。
更新:
6.定制操作系统和开发操作系统有多大区别
Chen在评论中说道定制操作系统和开发操作系统,现阶段来看确实有些区别,实际上也并没有太本质的区别,因为所有的程序设计(包括开发操作系统或者定制操作系统)变成越来越接近“搭积木”的游戏,而真正的不基于第三方的汇编级编程已经很少了。
由于人类已经在编程方面积累了足够的知识和产品,操作系统结构和源代码也将会是人类共享的知识财富,这也使得开发/定制操作系统的区别变得越来越小。
第一篇文章中没有区分定制和开发操作系统,不是一个疏忽,而是我认为不远的未来将是一回事情。
7.google的核心是什么
google中国的李开复曾经说过,google的核心技术并不是所谓的搜索,而是网络存贮技术,google利用最常见的硬件设备,普通的服务器、普通的内存,通过Google的软件,把google打造成世界上最廉价的存储基地。这是google真正动力,Gmail、google搜索等等,都是基于这种强大的分布式存储而成功的。
保守估计,google在全球各地具有数以十万计的服务器,而且数字每天都在增加。
8.什么是“Google OS不重要”
我说google OS不重要,是说,相比于google推出的那些服务,google os显得无足轻重,Chen说“在一种‘新的技术创新和新的营利增长点’距今仍离之甚远的时候,Google若要从传统理念着手,开发操作系统(非‘定制 ’),以期能从根本上占据用户的桌面,那我想这种政策,不失为一个虽保守却极为明智的选择。”
goole若同微软拼传统的操作系统,显然没有太大的意义,实际上google os只不过是网络服务战略的一部分,说到底是要整合自己的网络服务,这种整合当然有意义,但不是操作系统和应用软件之间的那种意义。
通过聚合(Mashup),google OS所要做的事情,很多人都可以做,google价值在于用户和数据而不是软件,这也是人们常常提到的Intel Inside被Data Inside取代的话题。

DirectFB概述:

DirectFB是图形API存在于Frame Buffer层之上与高级图形管理层如GTK+等之下的。它可以以很小的系统资源占用来提供图形硬件加速功能,提供类如多路a通道渲染模型等高级图像操作。它不修改Linux内核,除了标准C库没有其他库的依赖。应用在了基于Linux系统的DTV显示系统的研发和其他有关Linux显示界面的项目上。支持市面上绝大多数显示卡,支持键盘、鼠标、遥控器、游戏手柄、触摸屏等输入设备。支持JPEG、PNG、GIF、mpeg1/2、AVI、MOV、Flash、Video4Linux、DirectFB bitmap font和TrueType等音视频文件和字体。

上层API支持DirectFB的有:

XDirectFB、DirectFBGL、GTK+、DFBTerm、DFBSee、DFBPoint、MythTV、Qt on DirectFB、SDL(Simple Directmedia Layer)。

关于DirectFB的layer问题

和石可箴讨论了一下DPF系统显示的layer数量的问题,总结出layer支持数量的多少要靠芯片和驱动的共同支持才能实现。以前DTV系统中就有若干个OSD层、Video层、Cursor层等。网上查了一下DirectFB能支持的layer层数,发现对于DirectFB的layer来说有两个层面上的理解:

1.作为硬件层面:硬件层面中layer的多寡取决于芯片的硬件资源。在DirectFB中使用的是IDirectFBDisplayLayer接口。其内容将直接显示在屏幕上。

2.作为软件层面:DirectFB没有专门的接口,但是可以利用IDirectFBWindow接口自己建立起多layer结构。如使用IDirectFBWindow->SetOpacity(IDirectFBWindow *thiz, __u8 opacity)来实现这样的结构。

> IDirectFBWindow OSD <--highest window

> IDirectFBWindow video with video Provider

> IDirectFBWindow mpegstill

> IDirectFBWindow background with image Provider<--lowest window

通过设置其opacity来实现一个硬件layer上的4个不同的layer。

根据这个实现方法,以及DirectFB直接将FrameBuffer的memory mapping到application的memory中的工作原理,突然联想到了RAMDAC,猜想我们DPF中可能也有这种器件。随即先查询了RAMDAC的相关资料,RAMDAC的作用是把数字图像数据转换成计算机显示需要的模拟数据。显示器收到的是RAMDAC处理过后的模拟型号。RAMDAC经历了与GPU分开放置——合并在一颗芯片——又分开放置的变迁过程,主要是成本与性能上的考量所致。然后查了一下DPF中是否也有类似的器件,没有发现,作罢。

DirectFB的安装流程

1. 解压DirectFB-1.0.0.tar.gz包

2. 入此目录执行

# ./configure

# make

# make install

一切正常。

DirectFB Sample的编译

先拿官方例子玩玩,第一次直接用#gcc draw_linc.c –o draw,报错,No such file or directory ‘directfb.h’

解决方法是include上DirectFB的安装目录,# gcc –I/usr/local/directfb draw_linc.c –o draw

这次是在link的时候报错,很多undefined reference to ’xxxx’

补上lib目录,# gcc -L/usr/local/lib -I/usr/local/include/directfb draw_line.c -o draw

但发现还是报错,根据提示,查看了/usr/local/lib/pkgconfig的directfb.pc文件,发现里面有编译参数信息

prefix=/usr/local

exec_prefix=${prefix}

libdir=${exec_prefix}/lib

includedir=${prefix}/include

Name: DirectFB

Description: Graphics and windowing library for the Linux frame buffer device

Version: 1.0.0

Requires: fusion direct

Libs: -L${libdir} -ldirectfb -lpthread -ldl -lz

Cflags: -D_REENTRANT -I${prefix}/include/directfb

显然还要加上参数。

解决方法如下,# gcc -L/usr/local/lib -I/usr/local/include/directfb -ldirectfb -lpthread -ldl -lz draw_line.c -o draw

编译通过。

当然,最方便的方法是pkg-config,因为DirectFB安装时已经自动配置好。

# gcc `pkg-config --cflags --libs directfb` draw_line.c -o draw

编译通过。

DirectFB Sample的运行

直接运行./draw,在打开framebuffer的时候报错。

查询结果是framebuffer也需要配置一下。

在/boot/grub/menu.lst中增加vga=0x317这个参数。

重启后,再次运行./draw,framebuffer错误已经解决,但又出现找不到shared libraries的问题。

添加# export LD_LIBRARY_PATH=/usr/DirectFB25/lib后,执行文件时又回到了framebuffer出错时的状态“/dev/fb0: No such file or directory”。晕倒了。周一继续查底层的framebuffer哪里有问题。

感谢上帝终于调通了,果然是底层FrameBuffer的问题。方法是在/boot/grub/menu.lst中的kernel这行后面加上vga=0x317,reboot后,启动画面中出现了两只可爱的小企鹅,这下我确信FrameBuffer打开了。运行程序后一切正常。

但是有一点要注意,在新打开一个终端后,为了运行DirectFB程序,必须要先设置一个环境变量,export LD_LIBRARY_PATH=/usr/local/lib。将这句话放在/root/.bashrc中,有效。明天的任务就是load一个图片出来。

一切ok,完成了剩余三个sample后,总结了一下,官方的五个sample提供了画线、画图片、画文字、图片按照键盘响应上下移动,图片按照键盘响应随机移动。

Sample中图片对象的创建都是用CreateImageProvider来实现的,经过实测,可以支持的图像格式为:jpg、png、gif,不支持的图像格式为:bmp、tif。

DirectFB的重新总结

经过多方面资料验证,DirectFB是将FrameBuffer重新封装,提供新的、功能较强大的图形API接口供上层GTK+、QT等调用。但自身并不提供控件,如果要实现下拉菜单等效果,必须使用GTK+等高级图形库调用DirectFB来实现。

DirectFB的学习

Today I learn the global settings of DirecFB: /etc/directfbrc, Every DirectFB application will read that setting file at first. And the parameter shows below can also be transmitted by the prefix --dfb behind the ./filename.

I’ve tried the parameters as below.

system=, it could be fbdev, sdl. The fbdev is the default value, means it use the Linux frame buffer. The sdl is the fastest one in refreshing jpeg, but it flashing a lot and can’t run the sprite sample normally. But I found the main difference that if you use fbdev, it creates a full screen field to display picture, and if you use sdl mode, it just creates a window to show it and you can move your mouse out from the display field and to control other application.

mode= x, I tried, and it works. And it seems no limit range to the display field.

fbdev=, the default device is “/dev/fb0”, and if you want to use fb1, fb2, etc, you should create the link in the /dev.

force-windowed, no use with another parameter scaled=800x600.

解密QQ (转贴)

QQ目录下各文件用途不完全揭密
ACodec.dll (音频聊天)
  +BQQApplication.dll (企业好友面板)
  *CameraDll.dll (截图文件)
  ChatLib.dll (聊天室相关文件)
  ContentTab.dll (自定义面板)
  Content_Config.ini (跟自定义面板有关)
  *CQQApplication.dll (好友面板)
  help_01.gif~help_13.gif (跟自定义面板有关)
  InPlus.dll (视频语音聊天的设置对话框有关)
  *ipsearcher.dll (ip搜索插件)
  ------ipwry.dat 新格式的ip库,
  MailDll.dll (以下mail开头的信箱有关)
  +MyIP.dat (自定义ip文件)
  NewSkin.dll (皮肤,使用默认皮肤的可以删除)
  OEMApplication.dll (内容资讯面板)
  *QQ.exe (qq主文件)
  QQAvatar.dll (和qq秀有关)
  QQBUserApplication.dll (腾讯服务面板)
  QQexternal.exe (跟广告有关)
  QQFileTransfer.dll (文件传送)
  *QQHook.dll (监视键盘的文件)
  *QQLdr.exe (以下qqldr开头的和外挂有关)
  QQMail.exe (以下mail开头的和信箱有关)
  QQMailCore.dll
  QQMailHelper.dll
  +QQMMSender.dll (短信发送面板)
  *QQPlugin.dll (查找好友)
  *QQRes.dll (资源文件)
  QQUdpGetFileLib.dll (升级,QQ自动下载更新文件的模块)
  QQupdate.exe (同上)
  QRingMng.dll (炫玲管理)
  ShareFiles.dll (共享文件夹)
  +vbscript.dll (qq皮肤有关)
  VCodec.dll (以下几个和视频有关)
  *vqqset.dll (视频设定文件,vqqset.dll 千万别删,否则第一次使用视频语音聊而出现设置对话框时,就会令QQ因错误退出!)
  [IMScene] (场景)
  [sound] (声音文件)
  [smsdata] (短信)
  [QRingFiles] (叫什么炫铃吧)
  *[newface] (QQ头像)我做了更新版的,具体改变大家自己体会吧.
  [help] (帮助,别告诉我你不回用qq)
  [mailImage] (QQ邮箱)
  *[Face] (表情文件)
  +[Dat] (一些引用的图片文件,视情况保留)
  [chatTheme] (聊天室相关文件)
  [Chat] (聊天室相关文件)
  [bface] (服务面板头像)

以下这些文件千万不能删:
  CameraDll.dll
  CQQApplication.dll
  ImageOle.dll
  IPSearcher.dll
  Mfc42.dll
  msvcp60.dll 其实也可以(各个系统兼容性决定)
  QQAllInOne.dll
  QQBaseClassInDll.dll
  QQHelperInDll.dll
  QQHook.dll 其实也可以(各个系统兼容性决定)
  QQMainFrame.dll
  QQPlugin.dll
  QQRes.dll
QQZip.dll
  riched20.dll 其实也可以(各个系统兼容性决定)
  Riched32.dll 其实也可以(各个系统兼容性决定)
  vbscript.dll
  vqqset.dll
如果不想视频聊天,只用语音聊天,删VCodec1.dll、VCodec2.dll、VCodec.dll、VideoDevice.dll、VqqDVCapture.dll、InPlus.dll。
如果再删ACodec.dll、AudioDevice.dll、vphone.dll、VqqAllInOne.dll,则在两人世界里仍可语音聊,但在收发消息里就无法语音聊天了。

QQ号码文件夹下的文件
  Config.db QQ系统设置
  Content_Config.ini 自定义面板设置
  ewh.db QQ密码
  MsgEx.db QQ聊天记录
  notes.db QQ备忘录
  QQMailSettingEx.dat QQMail 设置
  QQMailAddr.dat QQMail 地址本
  QQMailIndex.dat QQMail
  QRT.dat QQ炫铃信息
  MailData QQMail 本地邮件
  ShareInfo.db 共享文件夹设置
  User.db QQ本地好友列表
  VQQ.db QQ视频设置

下面是QQ程序的目录
  QQAVFile 好友QQ秀缓存目录
  CustomFace QQ自定义表情目录
  CustomFaceRecv 接收的 QQ自定义表情保存目录

1,关于QQ登陆介面,大家可以找到QQ文件夹里的loginctrl.dll 位图--963--找到相应的图片导入即可。(再也不用看别人的广告了!)
除了这个还可以在对话框450哪里隐藏些功能,比如说记住密码....

2接下了是优化QQ,对于来网吧上网的人来说,很多功能都是用不到的,一来是占资源,二来则是引起死机。
QQ邮箱: 删除QQMail.exe
QQ共享文件:删除ShareFiles.dll
QQ网络硬盘:删除QQNetDisk.dll
QQ传送文件:删除QQFileTransfer.dll
QQ在线升级:删除QQLiveUpdate.exe
禁传送文件
用exescope打开qqres.dll
资源下字符串下25里面的389,删掉接收2个字
2099里面的33575,删掉另存为
[dat]里面的ad.gif、default_av_chatroom.gif、infoad.gif、vqqad.gif
BugReport:BugReport.exe BugReport.smp QQHangReport.exe
QQ邮箱(对普通用户来说太小了)
[mailImage]MailDll.dll MailRes.dll QQMail.exe QQMailCore.dll QQMailHelper.dll rm sm
QQ聊天室(我从来不去的)
[chat] [chatTheme] ChatLib.dll ChatRes.dll
一键切换(就是QQ与TM的互换,如果你只用QQ,那应该没用了吧)
QQOneClickApp.exe
QQOneClick.dll
接下来是定制QQ侧边面板了!!
QQ好友: cqqapplication.dll(这个都删了…………)
互动空间:
[SCFace] (互动空间里面按钮的图标) SBuddyApplication.dll SBuddyCall.exe SBuddyFriend.dll
企业好友:
[dat]里面的rtx_enter.jpg、rtx_friend.jpg、RTXIndex.jpg bqqapplication.dll
手机娱乐面板、内容资讯面板、音乐中心:oemapplication.dll(删除了它,直接搞定3个面板)
自定义面板:ConternTab.dll Content_Config.ini
网络硬盘: qqnetdisk.dll
无用文件:
custom_help.html help_01.gif、help_02.gif、help_03.gif、help_04.gif、help_05.gif、help_10.gif、help_11.gif、help_13.gif

whatsnew.txt QQFileInfo.dat uninst.exe
近来大家都受QQ病毒的困饶,很多人都在找QQ的修改方法,特将方法集中公布如下:

QQ邮箱: 删除QQMail.exe
QQ共享文件:删除ShareFiles.dll
QQ网络硬盘:删除QQNetDisk.dll
QQ在线升级:删除QQLiveUpdate.exe

禁传送文件

用exescope打开qqres.dll
资源下字符串下25里面的389,删掉接收2个字
2099里面的33575,删掉另存为

禁记住密码
用exescope打开LoginCtrl.dll
资源下对话框里面的450,点记住密码,右边把可见的钩去掉

注:[****]这样的是文件夹,*.*的是文件。开工了!!
首先是安装好QQ后的IE右键菜单:
AddPanel.html——添加到QQ自定义面板
AddEmotion.htm——添加到QQ表情
SendMMS.htm——用QQ彩信发送该图片
AddToNetDisk——添加到QQ网络硬盘
QQ广告:QQexternal.exe
[dat]里面的ad.gif、default_av_chatroom.gif、infoad.gif、vqqad.gif
BugReport:BugReport.exe BugReport.smp QQHangReport.exe
QQ邮箱(对普通用户来说太小了)
[mailImage]MailDll.dll MailRes.dll QQMail.exe QQMailCore.dll QQMailHelper.dll rm.swf sm.swf
QQ聊天室(我从来不去的)
[chat] [chatTheme] ChatLib.dll ChatRes.dll
一键切换(就是QQ与TM的互换,如果你只用QQ,那应该没用了吧)
QQOneClickApp.exe
QQOneClick.dll
接下来是定制QQ侧边面板了!!
QQ好友: cqqapplication.dll(这个都删了…………)
互动空间:
[SCFace] (互动空间里面按钮的图标) SBuddyApplication.dll SBuddyCall.exe SBuddyFriend.dll
企业好友:
[dat]里面的rtx_enter.jpg、rtx_friend.jpg、RTXIndex.jpg bqqapplication.dll
手机娱乐面板、内容资讯面板、音乐中心:oemapplication.dll(删除了它,直接搞定3个面板)
自定义面板:ConternTab.dll Content_Config.ini
网络硬盘: qqnetdisk.dll
(注:如果你有删除侧面板按钮,那么建议不要使用奥运版皮肤,否则按钮与按钮之间会有间隔,QQ2004面板没有问题,还可使用这个面板

pixos)
无用文件:
custom_help.html help_01.gif、help_02.gif、help_03.gif、help_04.gif、help_05.gif、help_10.gif、help_11.gif、help_13.gif

whatsnew.txt QQFileInfo.dat uninst.exe(我卸载QQ从来都是直接删除的,因为这个QQ是复制过来的)
还有这两个文件:TIMPlatform.exe(此文件会随QQ自动启动)、TIMProxy.dll,我不知道有什么用,但我删了,未影响QQ的使用,你自己选吧

!!
------------------------------禁QQ功能的方法---------------------------------------------
禁QQ一些功能的方法
QQ邮箱: 删除QQMail.exe
QQ共享文件:删除ShareFiles.dll
QQ网络硬盘:删除QQNetDisk.dll
QQ传送文件:删除QQFileTransfer.dll
QQ在线升级:删除QQLiveUpdate.exe

禁传送文件

用exescope打开qqres.dll
资源下字符串下25里面的389,删掉接收2个字
2099里面的33575,删掉另存为

禁记住密码
用exescope打开LoginCtrl.dll
资源下对话框里面的450,点记住密码,右边把可见的钩去掉

注:[****]这样的是文件夹,*.*的是文件。开工了!!
首先是安装好QQ后的IE右键菜单:
AddPanel.html——添加到QQ自定义面板
AddEmotion.htm——添加到QQ表情
SendMMS.htm——用QQ彩信发送该图片
AddToNetDisk——添加到QQ网络硬盘
QQ广告:QQexternal.exe
[dat]里面的ad.gif、default_av_chatroom.gif、infoad.gif、vqqad.gif
BugReport:BugReport.exe BugReport.smp QQHangReport.exe
QQ邮箱(对普通用户来说太小了)
[mailImage]MailDll.dll MailRes.dll QQMail.exe QQMailCore.dll QQMailHelper.dll rm sm
QQ聊天室(我从来不去的)
[chat] [chatTheme] ChatLib.dll ChatRes.dll
一键切换(就是QQ与TM的互换,如果你只用QQ,那应该没用了吧)
QQOneClickApp.exe
QQOneClick.dll
接下来是定制QQ侧边面板了!!
QQ好友: cqqapplication.dll(这个都删了…………)
互动空间:
[SCFace] (互动空间里面按钮的图标) SBuddyApplication.dll SBuddyCall.exe SBuddyFriend.dll
企业好友:
[dat]里面的rtx_enter.jpg、rtx_friend.jpg、RTXIndex.jpg bqqapplication.dll
手机娱乐面板、内容资讯面板、音乐中心:oemapplication.dll(删除了它,直接搞定3个面板)
自定义面板:ConternTab.dll Content_Config.ini
网络硬盘: qqnetdisk.dll
(注:如果你有删除侧面板按钮,那么建议不要使用奥运版皮肤,否则按钮与按钮之间会有间隔,QQ2004面板没有问题,还可使用这个面板

pixos)
无用文件:
custom_help.html help_01.gif、help_02.gif、help_03.gif、help_04.gif、help_05.gif、help_10.gif、help_11.gif、help_13.gif

whatsnew.txt QQFileInfo.dat uninst.exe(我卸载QQ从来都是直接删除的,因为这个QQ是复制过来的)
还有这两个文件:TIMPlatform.exe(此文件会随QQ自动启动)、TIMProxy.dll,我不知道有什么用,但我删了,未影响QQ的使用,你自己选吧

!!

禁网址连接的修改方法:

用UE打开qq的qqhelperdll.dll文件,点搜索-查找

将“查找ASCII(A)”前选“v”,如下图:

然后查找“www”,搜索结果如下图:
大家注意在找到的“www”上方有个“open”,修改“open”中的任意一个字母

保存退出,修改完毕

WebOS

那么移植QT+Webkit的优势是什么呢?
好吗,你想象一下,你用C/C++程序写程序的各种事件的处理代码,然后界面设计人员只要写个XML文件用CSS“画”一个界面,好吧,一对接编译下,你的程序完成了!
OK,还不够刺激?那你还能在程序里直接打开一个网络上的网页,并且网页里的Javascript数据能直接和本机的C、C++代码交互,够强大了吧?不懂?好吧,你的软件可以直接用Javascript去调网络上现在丰富的Web2.0资源,比如Google的地图API,天气预报或新闻的RSS等,而不需要你用C程序去原生地下载——解析——再画个界面来显示,你只需要后台的C程序去调硬件资源,例如拨号连接,发出提示,播放声音提示等工作,而具体的显示,完全由Javascript和HTML来描述,由WebKit加 QT来显示给你,如此一来,也就是说你如果是程序开发人员,你只要专注与后台代码的效率和优化,自己简单地用XML画个软件的界面或者如果必要再叫个专业的UI设计公司给搞个优化,好了,强大的软件出现了,而且一上来就是一个Web2.0化的,Web和手机终端同步发布——好了,记得我说过,QT是跨平台的吗?好了,你可以直接再编译一份给S60,给WM,给PC都行,oyeah~~

还天真的认为WebOS就是用Javascrit在一个网页里搞一个类似Windows桌面的玩具吗,就这么简单吗?错了,真正的WebOS是让你的软件(批日常应用,非专业软件)都Web化,这样随便哪里用浏览器访问Web就得到了想要的应用,这样一样,Web就相当于一个宽松的OS了,而数据呢,则是在Web服务器端或本地的离线数据库的缓存,在必要时进行同步更新,这就是另一个名词,叫云端,好吧,现在Google,MS和Apple基本上都在搞,只不过有的比较低调有的比较高调,它们用到的技术都是类似的——一个底层OS加Web核心再加在线服务的支撑!

基于X的GNOME、GTK、GDK、XLib、GLib等之间的关系

什么是Xlib?
The X Library是X Window程式最低階的API,如果拿來和Windows 比較起來,Xlib 就和Windows APIs(或稱 Windows SDK)一樣,算是最接近 X Server的程序設计介面,它只提供最基本的绘图和訊息事件的處理。

什么是Xt?(X Toolkit Intrinsics)
Xt是第一個把Xlib包裝成更抽象化的函式庫,它提供了「物件導向」的程式設計架構,並且引進了一種稱為「widget」的概念,這種「widget」資料結構也就是所謂的「User Interface Componets」像是menus、buttons或是TextBox等widgets。從此以後程式設計師就可以用widget的觀念,來架構我們的應用程式,讓程式變得簡單且容易了解。
不過Xt只定義了應用程式要如何和這些 widgets 溝通,並沒有規定這些 widgets 的外觀要長甚麼模樣。這些widgets真正的樣子最後還是得靠更高層的函式庫來處理。(通常提供 widgets 的函式庫,我們就稱之為GUI Toolkit(X ToolKits)。
Motif、OpenLook 和 Lesstif 等便都是從 Xt Library 衍生而來的圖形介面函式庫

Motif
Motif 為目前最主要的 GUI Toolkit,它便是以Xt的widget 概念為基礎,提供外觀和Microsoft Windows 95極為類似的圖形介面。Motif 是由 Open Group (以前叫 Open Software Foundation) 所出產。
不過現在的 Motif 已經不只是單純的GUI Toolkit了,它也包含了一個Motif window manager(窗口管理器)用來管理X Clients (X Applications)。


什么是GDK?
GDK是标准Xlib函数调用的一个基本封装(wrapper),如果你对Xlib很熟悉,就不需要来重新熟悉绝大多数的GDK函数.所有的函数都是为了提供一个方便直观的风格来访问Xlib函数库.另外,自从GDK使用GLib,在多平台上使用时,GDK变得更加的方便和安全.

什么是GLib?
GLib库提供了一系列函数(functions)和定义(definitions),在设计GDK和GTK程序时很有用.它提供了一些标准c函数库(standard libc)的替代函数,比如malloc,但在其他的系统上使用时有很多问题.

什么是GTK+?
GTK+ 是一个小型而高效的控件库,具有Motif的外观和风格.实际上,它比Motif看起来好多了,它包含有基本的控件和一些很复杂的的控件:例如文件选择、控件和颜色选择控件. GTK+提供了一些独特的特性,(至少,我知道其他的控件库不提供他们),例如,按钮不提供标签,它包含了一个子控件,在很多的时候是一个标签,但是,这个子控件也可以是一个映射,图像或者任何其他的程序员想要的集合.在整个的库中,你随处可见这种伸缩性.
Gnome的开发基础结构是围绕一组函数库的,所有的内容都是用可移植的ANSI C语言写成的,可以用于所有类UNIX系统,与图形相关的函数库依赖于X Window系统。 Gnome函数库是最高层的。GTK+由两部分组成,GTK和GDK。 GTK层为C语言提供了一个对象模型,并为UI工具包提供了最基本的widget,它是上层GUI派生的基础。 GTK是依赖于GDK的,GDK是Xlib的一个底层包装,Xlib库直接与X服务器对话。除了Xlib以外的任何部分都是基于GLib的,它是一个有用的C函数库,提供了很多实用程序和可移植的功能以及一组容易被C语言使用的容器。

一个Gnome程序是使用多个库组成的层次结构:
GNOME (GNU Network Object Model Environment)是以GTK為基礎的圖形介面函式庫。和KDE一樣,GNOME 也是以建立一個完整、友善的圖形使用環境為目標,並提供GNOME相關的軟體。
Gnome库在最高层,包括帮助例程,类和特殊的widget,并为应用程序提供一个基础架构。
第二层是GTK,它是GTK+库的一部分。这个库提供了基本的工具包和widget来创建GUI应用程序。大多数GUI是直接用GTK编写的。GTK同时为Gnome库提供了一个功能强大的对象系统。
再下一层是GDK,它简单的对X函数库进行了包装,只有在我们进行特殊绘画或设置窗口的特殊属性的时候才会用到它.
最下面一层是Glib,它是C的一个实用程序库,包括可移植性和一些实用程序功能,以及一些容器类,例如:链表,可变数组,变长字符串,HASH(貌似是哈西表),缓存,一个事件循环和其他有用的结构

Webkit架构

http://inedx.blog.hexun.com/



简要的说,WebKit由三个模块组成:JavaScriptCore、WebCore 和 WebKit。WebKit作为了整个项目的名称。

JavaScriptCore:是JavaScript解释器;

WebCore:是整个项目的核心,用来实现render引擎:解析Web页面,生成一个DOM树和一个render树,并最终render it with a backend,当前已经有很多移植的Backend,如WebKit/GTK,WebKit/QT等。backend实际上它是WebCore的一部分。

WebKit:它隐藏并选择WebCore到当前平台。在WebKit/Gtk中,WebCore以Gtk objects的形式出现,并且它们的signals和API类似其他的Gtk objects.


平台与工具

当前WebKit支持四种平台:GTK、QT、Mac OS X、和Cygwin。

GTK和QT使用qmake

Mac OS X使用xcodebuild

Cygwin则使用Visual Studio

下面主要针对Qt版的WebKit作分析介绍:

首先,执行WebKitTools/Scripts下的build-webkit Perl 脚本,可以使用一些参数配置需要的功能模块,主要有SVG的一些功能配置,以及XPATH、XSLT、VIDEO等。脚本执行过程中会对相应的参数进行解析,确定编译选项、功能模块、平台信息以及相应的工具、输出路径等等参数,最后根据不同的参数,使用qmake工具由webkit.pro生成整个工程的makefile。在make的过程中会进一步调用qmake由各个子模块的.pro项目文件生成各模块的makefile。最后make各个子模块的makefile就可以得到需要的目标文件。


工程结构

这个project可以分成JavaScriptCore、WebCore、WebKit三个子模块,对应到三个子目录,具体的如上面WebKit结构介绍的。

更进一步,整个project又分成了六个可构建出来的子project,对应到相应的.pro文件。

WebKit\WebCore\WebCore.pro:生成libQtWebKit.so或libQtWebKit.a,是整个WebKit引擎库,WebKit应用都是基于这个库。

W

linux系统中增加Windows中文字体

linux中的中文字体太少,对平时使用惯了Windows的人来说非常不便。



用下面的方法可以很方便的在linux中添加自己喜欢的字体。



1、从Vista的字体文件夹fonts中寻找自己喜欢的中文字体:



雅黑:msyh

黑体:SimHei

宋体:SimSun

华文细黑:STXihei

华文楷体:STKaiti

华文宋体:STSong

华文仿宋:STFangsong

华文彩云:STCaiyun

华文琥珀:STHupo

华文隶书:STLiti

华文行楷:STXingkai

华文新魏:STXinwei

很多



2、创建一个文件夹,命名为:vista,将自己喜欢的字体文件全部装入 vista文件夹内;



3、将vista字体文件夹拷贝在/usr/share/fonts下



需要说明的是:Ubuntu8.04并不像Windows可以对任何文件(文件夹)进行读、写、创建、拷贝和删除。字体文件夹的创建也是必须拥有系统管理权限。用下面的命令打开fonts:



sudo gnome-open /usr/share/fonts/



然后拷贝刚才创建的vista字体文件夹到fonts下;



4、修改字体权限,使root以外的用户可以使用这些字体。如果不熟悉命令的话,可以直接点击字体文件——属性——权限,进行修改;



5、建立字体缓存,命令:



cd /usr/share/fonts/vista/

sudo mkfontscale

sudo mkfontdir

sudo fc-cache -fv



6、重启电脑。



7、进行你所需要的设置:桌面——右键——更改桌面背景——字体,你可以在这里进行更改和设置。



现在,你使用openoffice就不会感到可选择的中文字体太少了。

WebKit 学习笔记(1)

http://blog.csdn.net/sgnaw

Links 的代码写得有点乱,打算转入另一个开源浏览器 -- WebKit 。

WebKit 浏览器源程序下载:
http://webkit.org
http://trolltech.com/downloads
第一个是现在主要由Apple 公司维护的,用于Safari浏览器;第二个是由QT公司提供图形引擎,使用了 WebKit 提供的浏览器核心部件 -- WebCore 和 JavaScriptCore 。

在 这里,我使用 QT 公司的方案。下载解压后,直接在Linux 命令行工具里面执行 ./configure 然后再执行 gmake 命令。程序代码较多,整个编译过程总共有可能需要花费 2 - 3 个小时,看 PC 速度而定。在编译的时候,可以不编译 examples,而是在发现命令行里编译到 examples 的时候,就按 Ctrl + C 让编译停下来,再后再进入目录 demos\browser ,执行 make 命令就好了。会生成名为 browser 和 browser.debug 的可执行文件,需要指定运行时需要的库的路径:

[root@localhost browser]# export LD_LIBRARY_PATH=/home/bruce/qt/lib
[root@localhost browser]# ./browser http://www.google.com

下面是运行后的效果图:

发表于 @ 2008年05月25日 11:34:38|评论(0AddFeedbackCountStack("2479573"))|编辑




[http://blog.csdn.net/sgnaw/archive/2008/05/25/2479891.aspx]


WebKit 学习笔记(2) -- Win32 版收藏
function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}因为 Windows 上有 Visual Studio,弄个 Win32 版本的 WebKit 调试程序更方便。

在 webkit.org 的网站上有 Windows 版的,但是,那个站的源程序因为主要是 Apple 公司编在维护,因此想在 Windows 上编译成一个可执行的文件很困难,因此,推荐使用 QT Windows 版,在下面的位置获取:

打开网页:
http://trolltech.com/developer/downloads/qt/windows
其中有:
http://www.trolltech.com/download?target=http://wftp.tu-chemnitz.de/pub/Qt/qt/source/qt-win-opensource-src-4.4.0.zip
这个就是了。


解压配置。解压之后,目录里有个 configure.exe 文件。打开 Microsoft Visual Studio 2005,点击菜单“工具 --> Visual Studio 2005 Command Prompt”,出现 Windows 命令行界面,进入解压后的 qt 目录,执行一下 configure 即可配置好并生成一些 Microsoft Visual Studio 的工程文件。

比如,执行命令:
configure -debug
它会提示是否接受GPL2/GPL3协议,输入 y,然后经过一段长时间的生成过程,就可以得到一堆 *.sln 解决方案文件以及 *.vcproj 工程文件,在当前目录会有一个 projects.sln 文件。


编译运行。在Visual Studio中设置browser工程为主工程,然后编译。可以顺利编译完成,下面是运行后的效果图。


发表于 @ 2008年05月25日 14:25:00|评论(9AddFeedbackCountStack("2479891"))|收藏




[http://blog.csdn.net/sgnaw/archive/2008/05/27/2488548.aspx]

WebKit 学习笔记(3) -- 图片和中文支持收藏
function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}图片支持注意到上一个 blog 中的 browser 图中没有显示google的图片,qt 是以 plugin 的方式提供图片的支持的。继续分别编译工程 qgif, qjpeg, qmng 这样就可以支持 gif, jpeg,png 等更多的图片格式了。编译完后,再次访问 google.com 就能正常显示了,如下所示:


中文支持当访问百度或者其它中文网站的时候,发现中文显示为乱码。这个 qt 也提供了支持,选择编译工程 qcncodecs 即可得到中文编码的支持。访问 baidu.com 就可以正常显示中文了,如下所示: