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 就可以正常显示中文了,如下所示:

ubuntu下编译webkit

1. 下载svn版本的webkit,以便随时跟新。
svn co http://svn.webkit.org/repository/webkit/trunk WebKit

2. sh autogen.sh
这个过程,需要安装不少库,缺什么安装什么,例如$sudo apt-get install libxslt-dev。
......

发现sqlite3检测出错:
checking for SQLITE3... configure: error: Package requirements (sqlite3 >= 3.0) were not met:
Requested 'sqlite3 >= 3.0' but version of SQLite is @RELEASE@

Consider adjusting the PKG_CONFIG_PATH environment variable if youinstalled software in a non-standard prefix.

Alternatively, you may set the environment variables SQLITE3_CFLAGSand SQLITE3_LIBS to avoid the need to call pkg-config.See the pkg-config man page for more details.

根据提示,在configure.ac里面加了SQLITE3_CFLAGS和SQLITE3_LIBS,如果不知道sqlite3这两个变量的位置,用pkg-config --cflags sqlite3和pkg-config --libs sqlite3来查看。

3. make
发现程序竟然有编译错误,真是郁闷:

WebCore/platform/network/soup/ResourceHandleSoup.cpp: In function ‘void WebCore::ensureSessionIsInitialized(SoupSession*)’:WebCore/platform/network/soup/ResourceHandleSoup.cpp:406: error: ‘soup_session_get_feature’ was not declared in this scope
原来是已经安装的libsoup没有那个函数,到官网去下载编译,安装到/usr/local/,然后编辑configure.ac里面的LIBSOUP_CFLAGS和LIBSOUP_LIBS变量。
下载地址:svn co http://svn.gnome.org/svn/libsoup

之后重新运行sh autogen.sh,再make,发现新问题出现了,呵呵,libtool link阶段有问题了,错误信息都是sqlite3和libsoup里面的函数没现实之类。对autoconf/automake/libtool这些东西不很懂,找了半天定位不了问题,只好再重新打开configure.ac来看看,把SQLITE3_CFLAGS、SQLITE3_LIBS说明全都去掉,然后把检测sqlite3版本的语句换成如下所示(这是因为错误提示说的就是当前的版本是@RELEASE@)


# PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= $SQLITE_REQUIRED_VERSION])
PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= @RELEASE@])


这样终于make成功了,这个过程中,我的ubuntu遇到‘黄屏’问题,google了很多方法还是没搞定,之后重新安装。还没有看到跑起来是什么样子。


.... 同时要处理一些别的工作。n天之后,在重新安装的ubuntu上再来一遍,这次顺利多了。编译成功之后,运行Programs目录下的GtkLauncher,弹出一个非常简介的窗口,晕...www.google.com设为主页了,呵呵。输入几个中文的,多图的网站看了看,一切正常。什么js,什么css都没有问题。除了flash是个框框之外,还真挑不出什么毛病。

2009年4月24日星期五

Thunder

智能限速的原理和效果

通过智能控制下载速度,保障其他网络应用所需带宽。
可有效解决迅雷高速下载时,网络浏览速度慢、网络游戏卡、语音视频聊天不顺畅等问题。

·智能限速对下载速度的影响:

开启智能限速后,下载速度可能有10%左右的下降


如何开启智能限速功能

1,当下载网速过快时,迅雷将自动提醒开启

2,可通过左下角限速状态图标,在高速下载和智能限速模式之间进行选择

3,可通过工具--速度模式功能,在两种速度模式中进行选择

如何导入未完成的下载任务


如何备份任务列表
“Profiles”文件夹,在打开的菜单中选择“复制”,然后将这个文件夹复制到您想要备份的位置,当您重新安装好系统后,再把这个文件夹复制回

迅雷的目录中即可。

如何使用边下边播功能
建议在下载到10%后进行预览,这样播入会更加的流畅


下载任务到99%停住

因为迅雷是使用多线程下载,就是说把这个资源分为几个部分同时开始下载,这几部分的下载速度是不相同的,所以连接性好,速度快的部分就可以先

下载完成;而文件越大,存在连接不上,或者是速度非常慢的部分的机率就越高,到最后就会停留在最后那一部分一直在搜索和连接而出现这种情况,其实

这种情况并不是表示就一定是这个文件的最后那一小部分下载不了,是整个文件中下载得最慢的那部分.,可以暂停再开始下载,如果一直都无法下载

完成,就可能是这个文件本身文件不完整。

迅雷作为主流的下载工具被最多的下载者使用,是支持目前所有的主流下载协议的,包括“http、ftp、mms、rtsp”,迅雷5对于这些协议不需要单独

安装支持程序,安装“迅雷5”即可下载。并且我们也同时在对不同的下载协议进行研究已及进行优化,提升用户的下载体验



迅雷5的边下边播是十分灵活的,它使用您机器上的默认播放器来播放您想要预览的文件,所以您的机器上需要安装相应格式的文件播放程序,一般情

况下2款播放器能够满足您的要求
1.windows media player
2.real player

第一款播放器是您操作系统自带的播放器,无须单独安装
第二款播放器用于播放RMVB或RM类型的文件,这个播放器您可以在各大网站下载得到。


什么是UPnP端口映射

迅雷支持UPnp端口自动映射技术,这就意味着,对于一台内网电脑(即只具有内部IP地址的电脑,多数企业局域网用户和使用宽带路由器用户均在

此类范围),迅雷的UPnP功能可以使网关或路由器的NAT模块做自动端口映射,将迅雷监听的端口从网关或路由器映射到内网电脑上。这样一来,我们

也就可以更好地突破内网限制,穿透能力更强,也能够连接到更多的资源,其下载速度自然也会更快。
UPnP(Universal Plug and Play),通用即插即用,是一组协议的统称。它同时也是一种分布式的,开放的网络架构,可以充分发挥 TCP/IP 和

网络技术的功能,不但能对类似网络进行无缝连接,而且还能够控制网络设备及在它们之间传输信息。
用户可以简单的将UPnP端口映射理解为:允许迅雷打通局域网限制,在安全的前提下,连接上更多的客户端来加速下载。

Ubuntu skill

使用PKILL快速杀掉进程
笔者经常使用top、kill或killall进程加上ps | aux查找进程号/进程名来杀掉进程。
但是pkill命令则可去掉大量的工作,
pkill firefox就可以杀掉进程列表中所有与firefox符合的incheng。
Pstree也是一个很酷的命令,它会根据所有关系以家庭树的方式显示所有进程。


不要忘了这些手册页面
看一下这些有趣的但是不是广为人知的手册页面:
intro 初学者的命令行指导;
hier 文件系统的介绍;
built-ins [...]

amule debian readme

This debian rules file controls the buildprocess of the packages of aMule you can either run
dpkg-buildpackage -us -uc -b -rfakeroot
to build them all, or you can invoke debian/rules directly with the target you want to be build. If you run
debian/rules without a target, or with the target help, this help will be printed. Other possible targets
are listed below, you can combine them as you need. amule-common, the packages with the themes for the
webserver and i18n-en-gb are build everytime.

amule Builds the normal GUI-Version of aMule
ed2k Builds the ed2k-client of aMule
cas Builds the cas binary for commandline statistics
wxcas Builds the graphical version of cas
webserver Builds the webserver for controlling aMule
remotegui Builds the remote GUI for controlling aMule
daemon Builds the daemonized version of aMule
alcc Builds the ed2k-link-creation utility of aMule
alc Builds the graphical version of alcc
amulecmd Builds the commandline-client for controlling aMule
amule-dbg Creates the debugging symbols for the amule binary
ed2k-dbg Creates the debugging symbols for the ed2k binary
cas-dbg Creates the debugging symbols for the cas binary
wxcas-dbg Creates the debugging symbols for the wxcas binary
webserver-dbg Creates the debugging symbols for the amuleweb binary
remotegui-dbg Creates the debugging symbols for the amulegui binary
daemon-dbg Creates the debugging symbols for the amuled binary
alcc-dbg Creates the debugging symbols for the alcc binary
alc-dbg Creates the debugging symbols for the alc binary
amulecmd-dbg Creates the debugging symbols for the amulecmd binary
amule-utils Creates the Metapackage for the commandline utilities and all these utils
* alcc
* amulecmd
* cas
amule-utils-gui Creates the Metapackage for the graphical utilities and all these utils
* alc
* remotegui
* wxcas
i18n- Builds the coresponding i18n-packge. Lang has to be one of ar, bg, ca, da,
de, es, et-ee, eu, fi, fr, gl, hr, hu, it, it-ch, ko-kr, lt, nl,
nn, pl, pt-br, pt-pt, ru, sl, sv, tr, zh-cn or zh-tw
If no i18n-package is given, all will be build.
If you just want en_GB, use i18n-en-only

If one of the -dbg targets is choosen, the corresponding binary will be built, too. In this case,
debugging is enabled, profiling and optimising are disabled. Is no -dbg target choosen, debugging
is disabled, profiling and optimising are enabled.

The targets can be given in any order and combination

Unicode,GBK,UTF-8

UNICODE,GBK,UTF-8区别
UNICODE,GBK,UTF-8区别 简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.
而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode值与gbk就是不一样的,假设uncode为a040,gbk为b030,而uft-8码,就是把那个值表现的形式.utf-8码完全只针对unicode来组织的,如果GBK要转UTF-8必须先转unicode码,再转utf-8就OK了.
谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级。整理这篇文章的动机是两个问题:
问题一:使用Windows记事本的“另存为”,可以在GBK、Unicode、Unicode big endian和UTF-8这几种编码方式间相互转换。同样是txt文件,Windows是怎样识别编码方式的呢?我很早前就发现Unicode、Unicode big endian和UTF-8编码的txt文件的开头会多出几个字节,分别是FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)。但这些标记是基于什么标准呢?
问题二:最近在网上看到一个ConvertUTF.c,实现了UTF-32、UTF-16和UTF-8这三种编码方式的相互转换。对于Unicode(UCS2)、GBK、UTF-8这些编码方式,我原来就了解。但这个程序让我有些糊涂,想不起来UTF-16和UCS2有什么关系。查了查相关资料,总算将这些问题弄清楚了,顺带也了解了一些Unicode的细节。写成一篇文章,送给有过类似疑问的朋友。本文在写作时尽量做到通俗易懂,但要求读者知道什么是字节,什么是十六进制。0、big endian和little endianbig endian和little endian是CPU处理多字节数的不同方式。例如“汉”字的Unicode编码是6C49。那么写到文件里时,究竟是将6C写在前面,还是将49写在前面?如果将6C写在前面,就是big endian。如果将49写在前面,就是little endian。“endian”这个词出自《格列佛游记》。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开,由此曾发生过六次叛乱,一个皇帝送了命,另一个丢了王位。我们一般将endian翻译成“字节序”,将big endian和little endian称作“大尾”和“小尾”。1、字符编码、内码,顺带介绍汉字编码字符必须编码后才能被计算机处理。计算机使用的缺省编码方式就是计算机的内码。早期的计算机使用7位的ASCII编码,为了处理汉字,程序员设计了用于简体中文的GB2312和用于繁体中文的big5。GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。GB2312支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。从ASCII、GB2312到GBK,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK都属于双字节字符集 (DBCS)。2000年的GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。从汉字字汇上说,GB18030在GB13000.1的20902个汉字的基础上增加了CJK扩展A的6582个汉字(Unicode码0x3400-0x4db5),一共收录了27484个汉字。CJK就是中日韩的意思。Unicode为了节省码位,将中日韩三国语言中的文字统一编码。GB13000.1就是ISO/IEC 10646-1的中文版,相当于Unicode 1.1。GB18030的编码采用单字节、双字节和4字节方案。其中单字节、双字节和GBK是完全兼容的。4字节编码的码位就是收录了CJK扩展A的6582个汉字。例如:UCS的0x3400在GB18030中的编码应该是8139EF30,UCS的0x3401在GB18030中的编码应该是8139EF31。微软提供了GB18030的升级包,但这个升级包只是提供了一套支持CJK扩展A的6582个汉字的新字体:新宋体-18030,并不改变内码。Windows 的内码仍然是GBK。这里还有一些细节:GB2312的原文还是区位码,从区位码到内码,需要在高字节和低字节上分别加上A0。对于任何字符编码,编码单元的顺序是由编码方案指定的,与endian无关。例如GBK的编码单元是字节,用两个字节表示一个汉字。这两个字节的顺序是固定的,不受CPU字节序的影响。UTF-16的编码单元是word(双字节),word之间的顺序是编码方案指定的,word内部的字节排列才会受到endian的影响。后面还会介绍UTF-16。GB2312的两个字节的最高位都是1。但符合这个条件的码位只有128*128=16384个。所以GBK和GB18030的低字节最高位都可能不是1。不过这不影响DBCS字符流的解析:在读取DBCS字符流时,只要遇到高位为1的字节,就可以将下两个字节作为一个双字节编码,而不用管低字节的高位是什么。2、Unicode、UCS和UTF前面提到从ASCII、GB2312、GBK到GB18030的编码方法是向下兼容的。而Unicode只与ASCII兼容(更准确地说,是与ISO-8859-1兼容),与GB码不兼容。例如“汉”字的Unicode编码是6C49,而GB码是BABA。Unicode也是一种字符编码方法,不过它是由国际组织设计,可以容纳全世界所有语言文字的编码方案。Unicode的学名是"Universal Multiple-Octet Coded Character Set",简称为UCS。
UCS可以看作是"Unicode Character Set"的缩写。根据维基百科全书(http://zh.wikipedia.org/wiki/)的记载:历史上存在两个试图独立设计Unicode的组织,即国际标准化组织(ISO)和一个软件制造商的协会(unicode.org)。ISO开发了ISO 10646项目,Unicode协会开发了Unicode项目。在1991年前后,双方都认识到世界不需要两个不兼容的字符集。于是它们开始合并双方的工作成果,并为创立一个单一编码表而协同工作。从Unicode2.0开始,Unicode项目采用了与ISO 10646-1相同的字库和字码。目前两个项目仍都存在,并独立地公布各自的标准。Unicode协会现在的最新版本是2005年的Unicode 4.1.0。ISO的最新标准是ISO 10646-3:2003。UCS只是规定如何编码,并没有规定如何传输、保存这个编码。例如“汉”字的UCS编码是6C49,我可以用4个ascii数字来传输、保存这个编码;也可以用utf-8编码:3个连续的字节E6 B1 89来表示它。关键在于通信双方都要认可。UTF-8、UTF-7、UTF-16都是被广泛接受的方案。UTF-8的一个特别的好处是它与ISO-8859-1完全兼容。UTF是“UCS Transformation Format”的缩写。IETF的RFC2781和RFC3629以RFC的一贯风格,清晰、明快又不失严谨地描述了UTF-16和UTF-8的编码方法。我总是记不得IETF是Internet Engineering Task Force的缩写。但IETF负责维护的RFC是Internet上一切规范的基础。2.1、内码和code page目前Windows的内核已经支持Unicode字符集,这样在内核上可以支持全世界所有的语言文字。但是由于现有的大量程序和文档都采用了某种特定语言的编码,例如GBK,Windows不可能不支持现有的编码,而全部改用Unicode。Windows使用代码页(code page)来适应各个国家和地区。code page可以被理解为前面提到的内码。GBK对应的code page是CP936。微软也为GB18030定义了code page:CP54936。但是由于GB18030有一部分4字节编码,而Windows的代码页只支持单字节和双字节编码,所以这个code page是无法真正使用的。
3、UCS-2、UCS-4、BMPUCS有两种格式:UCS-2和UCS-4。顾名思义,UCS-2就是用两个字节编码,UCS-4就是用4个字节(实际上只用了31位,最高位必须为0)编码。
下面让我们做一些简单的数学游戏:UCS-2有2^16=65536个码位,UCS-4有2^31=2147483648个码位。UCS-4根据最高位为0的最高字节分成2^7=128个group。每个group再根据次高字节分为256个plane。每个plane根据第3个字节分为256行 (rows),每行包含256个cells。当然同一行的cells只是最后一个字节不同,其余都相同。group 0的plane 0被称作Basic Multilingual Plane, 即BMP。或者说UCS-4中,高两个字节为0的码位被称作BMP。将UCS-4的BMP去掉前面的两个零字节就得到了UCS-2。在UCS-2的两个字节前加上两个零字节,就得到了UCS-4的BMP。而目前的UCS-4规范中还没有任何字符被分配在BMP之外。
4、UTF编码UTF-8就是以8位为单元对UCS进行编码。从UCS-2到UTF-8的编码方式如下:UCS-2编码(16进制) UTF-8 字节流(二进制)0000 - 007F 0xxxxxxx0080 - 07FF 110xxxxx 10xxxxxx0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx例如“汉”字的Unicode编码是6C49。6C49在0800-FFFF之间,所以肯定要用3字节模板了:1110xxxx 10xxxxxx 10xxxxxx。将6C49写成二进制是:0110 110001 001001,用这个比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。读者可以用记事本测试一下我们的编码是否正确。需要注意,UltraEdit在打开utf-8编码的文本文件时会自动转换为UTF-16,可能产生混淆。你可以在设置中关掉这个选项。更好的工具是Hex Workshop。UTF-16以16位为单元对UCS进行编码。对于小于0x10000的UCS码,UTF-16编码就等于UCS码对应的16位无符号整数。对于不小于0x10000的UCS码,定义了一个算法。不过由于实际使用的UCS2,或者UCS4的BMP必然小于0x10000,所以就目前而言,可以认为UTF-16和UCS-2基本相同。但UCS-2只是一个编码方案,UTF-16却要用于实际的传输,所以就不得不考虑字节序的问题。
5、UTF的字节序和BOMUTF-8以字节为编码单元,没有字节序的问题。UTF-16以两个字节为编码单元,在解释一个UTF-16文本前,首先要弄清楚每个编码单元的字节序。例如“奎”的Unicode编码是594E,“乙”的Unicode编码是4E59。如果我们收到UTF-16字节流“594E”,那么这是“奎”还是“乙”?Unicode规范中推荐的标记字节顺序的方法是BOM。BOM不是“Bill Of Material”的BOM表,而是Byte order Mark。BOM是一个有点小聪明的想法:在UCS编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符"ZERO WIDTH NO-BREAK SPACE"。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。因此字符"ZERO WIDTH NO-BREAK SPACE"又被称作BOM。UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF(读者可以用我们前面介绍的编码方法验证一下)。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。Windows就是使用BOM来标记文本文件的编码方式的。
6、进一步的参考资料本文主要参考的资料是 "Short overview of ISO-IEC 10646 and Unicode" (http://www.nada.kth.se/i18n/ucs/unicode-iso10646-oview.html)。我还找了两篇看上去不错的资料,不过因为我开始的疑问都找到了答案,所以就没有看:"Understanding Unicode A general introduction to the Unicode Standard" (http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=IWS-Chapter04a)"Character set encoding basics Understanding character set encodings and legacy encodings" (http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&item_id=IWS-Chapter03)我写过UTF-8、UCS-2、GBK相互转换的软件包,包括使用Windows API和不使用Windows API的版本。以后有时间的话,我会整理一下放到我的个人主页上(http://fmddlmyy.home4u.china.com)。我是想清楚所有问题后才开始写这篇文章的,原以为一会儿就能写好。没想到考虑措辞和查证细节花费了很长时间,竟然从下午1:30写到9:00。希望有读者能从中受益。附录1 再说说区位码、GB2312、内码和代码页有的朋友对文章中这句话还有疑问:“GB2312的原文还是区位码,从区位码到内码,需要在高字节和低字节上分别加上A0。”我再详细解释一下:“GB2312的原文”是指国家1980年的一个标准《中华人民共和国国家标准信息交换用汉字编码字符集 基本集 GB 2312-80》。这个标准用两个数来编码汉字和中文符号。第一个数称为“区”,第二个数称为“位”。所以也称为区位码。1-9区是中文符号,16-55区是一级汉字,56-87区是二级汉字。现在Windows也还有区位输入法,例如输入1601得到“啊”。(这个区位输入法可以自动识别16进制的GB2312和10进制的区位码,也就是说输入B0A1同样会得到“啊”。)内码是指操作系统内部的字符编码。早期操作系统的内码是与语言相关的。现在的Windows在系统内部支持Unicode,然后用代码页适应各种语言,“内码”的概念就比较模糊了。微软一般将缺省代码页指定的编码说成是内码。内码这个词汇,并没有什么官方的定义,代码页也只是微软这个公司的叫法。作为程序员,我们只要知道它们是什么东西,没有必要过多地考证这些名词。所谓代码页(code page)就是针对一种语言文字的字符编码。例如GBK的code page是CP936,BIG5的code page是CP950,GB2312的code page是CP20936。Windows中有缺省代码页的概念,即缺省用什么编码来解释字符。例如Windows的记事本打开了一个文本文件,里面的内容是字节流:BA、BA、D7、D6。Windows应该去怎么解释它呢?是按照Unicode编码解释、还是按照GBK解释、还是按照BIG5解释,还是按照ISO8859-1去解释?如果按GBK去解释,就会得到“汉字”两个字。按照其它编码解释,可能找不到对应的字符,也可能找到错误的字符。所谓“错误”是指与文本作者的本意不符,这时就产生了乱码。答案是Windows按照当前的缺省代码页去解释文本文件里的字节流。缺省代码页可以通过控制面板的区域选项设置。记事本的另存为中有一项ANSI,其实就是按照缺省代码页的编码方法保存。Windows的内码是Unicode,它在技术上可以同时支持多个代码页。只要文件能说明自己使用什么编码,用户又安装了对应的代码页,Windows就能正确显示,例如在HTML文件中就可以指定charset。有的HTML文件作者,特别是英文作者,认为世界上所有人都使用英文,在文件中不指定charset。如果他使用了0x80-0xff之间的字符,中文Windows又按照缺省的GBK去解释,就会出现乱码。这时只要在这个html文件中加上指定charset的语句,例如:< meta equiv="Content-Type" content="text/html; charset=ISO8859-1" >如果原作者使用的代码页和ISO8859-1兼容,就不会出现乱码了。再说区位码,啊的区位码是1601,写成16进制是0x10,0x01。这和计算机广泛使用的ASCII编码冲突。为了兼容00-7f的ASCII编码,我们在区位码的高、低字节上分别加上A0。这样“啊”的编码就成为B0A1。我们将加过两个A0的编码也称为GB2312编码,虽然GB2312的原文根本没提到这一点。

PS & Kill

ps aux
ps -efww
kill pid
ps -efww|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9

  管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。下面说说用管道符联接起来的几个命令:

  “ps -efww”是Red Hat 7.0里查看所有进程的命令。这时检索出的进程将作为下一条命令“grep LOCAL=NO”的输入。

  “grep LOCAL=NO”的输出结果是,所有含有关键字“LOCAL=NO”的进程,这是Oracle数据库中远程连接进程的共同特点。

  “grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。

  “cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。

  “xargs kill -9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -9”命令的参数,并执行该命令。“kill -9”会强行杀掉指定进程,这样就成功清除了oracle的所有远程连接进程。其它类似的任务,只需要修改“grep LOCAL=NO”中的关键字部分就可以了。

  作者:苑庆国 来源:开放系统世界

2009年4月23日星期四

issue TBD

  1. 字体乱码
  2. 系统精简
  3. 字体更换
  4. 开机画面更改
  5. Menu.lst更改

GOS 字体更改

把字体复制到/usr/share/fonts/truetype里面。
1、使用sudo fontconfig-voodoo -f -s zh_CN命令建立连接后,来调整Firefox和一些系统中文字体过度柔化,在修改language-selector.conf文件。

2、sudo gedit /etc/fonts/language-selector.conf

3、找到:
Bitstream Vera Serif下面一行添加:Microsoft YaHei
Bitstream Vera Sans下面一行添加:Microsoft YaHei

4、调整字体渲染效果
打开“系统-首选项-字体”面板,在“字体渲染”选项中选择“最佳形状”(这个选项由你自己决定,例如LCD可以选择“次象素平滑”)。

5、打开sudo gedit /etc/fonts/fonts.conf文件,找到以的部份(格式最好和它们的一样排列)加入下面一段:


Microsoft YaHei


false



6、也可以使用sudo fc-cache -f -v命令刷新一下字体缓存,完成。重启x看效果。

GOS源更新

gos是基于ubuntu的,因此安装软件也完全使用apt。
官方的源太慢。首先需要修改/etc/apt/sources.list中的源,以前用cn99,现在有了更好的选择。mirrors.163.com,所以,我直接将官方的源修改成了163的

deb http://mirrors.163.com/ubuntu/ hardy main restricted
deb-src http://mirrors.163.com/ubuntu/ hardy main restricted

deb http://mirrors.163.com/ubuntu/ hardy-updates main restricted
deb-src http://mirrors.163.com/ubuntu/ hardy-updates main restricted

deb http://mirrors.163.com/ubuntu/ hardy universe
deb-src http://mirrors.163.com/ubuntu/ hardy universe
deb http://mirrors.163.com/ubuntu/ hardy-updates universe
deb-src http://mirrors.163.com/ubuntu/ hardy-updates universe

deb http://mirrors.163.com/ubuntu/ hardy multiverse
deb-src http://mirrors.163.com/ubuntu/ hardy multiverse
deb http://mirrors.163.com/ubuntu/ hardy-updates multiverse
deb-src http://mirrors.163.com/ubuntu/ hardy-updates multiverse

deb http://security.ubuntu.com/ubuntu hardy-security main restricted
deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted
deb http://security.ubuntu.com/ubuntu hardy-security universe
deb-src http://security.ubuntu.com/ubuntu hardy-security universe
deb http://security.ubuntu.com/ubuntu hardy-security multiverse
deb-src http://security.ubuntu.com/ubuntu hardy-security multiverse

# wxWidgets/wxPython repository at apt.wxwidgets.org
deb http://apt.wxwidgets.org/ hardy-wx main
deb-src http://apt.wxwidgets.org/ hardy-wx main

添加wxWidgets是为了Python编程。使用Ulipad需要安装

blog

http://shalangpo.blogspot.com/2008_11_01_archive.html
http://hen.huang.hen.bao.li/2009_02_01_archive.html

GOS 3.1 install

gOS 3.1 Gadgets硬盘安装方法:
1、把gOS 3.1 Gadgets镜像(官方下载地址http://www.thinkgos.com/dgadgets.php)放到win系统根目录下,我这里是C盘。
2、用Winrar或者酒精打开gOS 3.1 Gadgets,提取casper目录内的initrd.gz和vmlinuz两个文件到C根目录下。
3、gOS 3.1 Gadgets的casper目录也解压到C根目录下。
4、下载并打开grub4dos,提取grldr和menu.lst两文件,将它们同样也放入C根目录下。
5、编辑menu.lst文件,在最后加上如下内容: title Install gOS 3.1 Gadgets root (hd0,0) kernel /vmlinuz boot=casper iso-scan/filename=/gOS 3.1 Gadgets.iso initrd /initrd.gz 6、编辑 c:\boot.ini
去掉 boot.ini文件的隐含系统只读属性(右键单击该文件,在弹出框中去除只读选项的选择), 再用记事本打开 boot.ini,把 timeout=0 改成 timeout=10 , 在最后一行添加 C:\grldr=”Install gOS” 保存退出即可!
7、重启计算机,在启动菜单位置,选择Install gOS,然后选择最下面一个选项:Install gOS就可以进入引导安装过程了。











准备工作:1.把ISO放置到XP系统某一分区的根目录下面,比如说放在XP的D盘下面,不过千万不要放在要安装要安装gOS的那个分区下面,比如说想用XP的E盘安装gOS的话,就不要把gOS的ISO文件放到E盘去了,呵呵2.把gOS的ISO镜像文件里面的casper文件夹里面的vmlinuz和initrd.gz这两个文件用解压出来放到放置到和gOS的ISO镜像文件同一个根目录下,比如说gOS的ISO镜像文件放在D盘根目录的话,vmlinuz和initrd.gz这两个文件也放到D盘根目录下3.把前面准备好的grldr文件,放到C盘根目录下4.显示电脑上面的隐藏文件5.转到C盘根目录下,找到boot.ini并把文件的只读属性去掉,然后打开文件,找到timeout,把timeout后面的数值改成尽量大于5的数值,把在boot.ini的最后另起一行加上:c:\grldr="install gOS 3.0",并保存6.重启电脑,重启后选择“install gOS 3.0“进入grub的引导过程
引导过程:当屏幕出现“grub>”字样后进行以下步骤:
1.执行:find /vmlinuz #执行命令后会反馈“(hd0,x)”的信息,其中“x“为某个数字,比如说如果vmlinuz放置在C盘根目录,则x值为0,如果vmlinuz放在D,E,F盘的话,则对应的x值为4,5,6,以此类推……
2.执行:root (hd0,x) #这一步后面的“(hd0,x)”为上一步反馈的信息
3.执行:kernel /vmlinuz boot=casper iso-scan/filename=/gos-3.0-gadgets-20080925.iso #后面是iso的文件名
4.执行:initrd /initrd.gz
5.执行:boot
6.执行完上面5步后,就可以进入gOS桌面了,双击桌面上面的“install“就可以安装了,不过安装之前务虚拔掉网线,除非你的网速相当相当的牛
附注:同样,对于引导过程的步骤3,开始引导安装时,假若使用“kernel /vmlinuz boot=casper find_iso=/gos-3.0-gadgets-20080925.iso“时,会出现以下情况
------------------华丽的分割线---------------------------------
Busybox v1.1.3 (Debian 1:1.1.3-5ubuntu12) Built-in shell (ash)Enter 'help'for a list of bulit-in commandsinitramfs_-----------------华丽的分割线-----------------------------------
所以尽量采用”kernel /vmlinuz boot=casper iso-scan/filename=/gos-3.0-gadgets-0080925.iso“来引导安装吧

2009年4月22日星期三

新问题

  1. 编译精简内核
  2. 如何向GOS 上添加Gadgets
  3. 定制UI框架/Menu,字体,主题!

Wine

Wine是一个在X86X86-6上容许类Unix操作系统X Window System下运行微软窗口程序的软件。另一方面,计算机程序设计师能经由Wine的程序库将窗口的程序转移至类Unix操作系统中运行。也有不少软件经过WINE测试后发布,比如PicasauTorrentMediaCoder

Wine解为 "Wine Is Not an Emulator",即Wine不是模拟器。虽然Wine有另一个非官方名称,"Windows Emulator",即窗口模拟器。Wine的正确名称是"Wine",不是全大写、全小写或大小写混合。

Wine 是一个令人神往而且目标远大的开放源代码项目,它尝试去解决在 上运行 Windows 可执行文件的复杂问题。尽管 Wine 不是一个新项目,但是,人们对 桌面的期望以及对 应用程序的需求日益增加,使得它现在仍具有重要意义。本文对 Wine 进行了介绍,并提出了几种获得 Wine 内部操作经验的途径。

Wine 项目起始于 1993 年,它的根源可以追溯到 90 年代早期出现的用于 UNIX 的 DOS 和 Windows 模拟器。Wine 项目最初是将 16 位的应用程序移植到 ,而几年之后,已可以在 上运行 Microsoft Word 和 Excel。现在它有一百多万行代码。

人们一直认为,在桌面上采用 的主要障碍是应用程序不足。商用桌面应用程序供应商还不能确定他们是否应该投入时间和精力将他们的 Windows 应用程序移植到 ,他们基本上是在等待 大规模应用于桌面。另一方面, 需要应用程序才能大规模应用于桌面。这是一个经典的先有鸡还是先有蛋的问题,而 Wine 通过在 上运行现有的 Windows 应用程序而解决了这一问题。

Wine 能做什么

Wine 项目实际是一个二合一的项目。它们提供了一个名字叫做 Winelib 的开发工具包,用于将应用程序从 Windows 移植到 (和 Unix);它们还提供了一个程序加载器,让 Windows 二进制文件可以在 Unix 和类 Unix 系统中运行。本文讨论的主要是后者;在 参考资料中有关于 Winelib 的更多资料的链接。

Wine 程序加载器让运行于 x86 上的 和其他类 Unix 操作系统可以加载并运行 Windows x86 可执行文件 -- 不过那只是它要解决的问题的一部分。因为 Windows 可执行文件总是会链接到其他的库,而这些库是 Windows 操作系统的一部分(如本文稍后图 1 中的 Dependency Walker 截图中可以看到),Wine 还最大可能限度地实现了那些 Windows 内部构件,即 上通常所指的 Win32 API5。

虽然 Windows 和 有很大的不同,但是就基本的层次而言,与任何现代操作系统一样,还是有很多类似之处的 -- 比较明显的包括,对文件和目录的支持,对同时运行多个程序的支持,类似的用户界面以及对多媒体的支持。

不是仿真器
据 WineHQ的说法,“WINE 代表 Wine Is Not an Emulator(即,Wine 不是一个仿真器)。更确切地说,Wine 是 X 和 UNIX 之上对 Windows API 的一个开放源代码实现。您可以认为它是一个 Window 兼容层。Wine 不需要 Microsoft Windows,因为它是由 100% 非 Microsoft 代码构成的另一个实现。但是它可以使用本机系统 DLL,只要这些 DLL 可用。而且它可以让您在 或者其他类 UNIX 操作系统之上运行大部分 Windows 软件。”

GOS问题汇总

  1. UI很漂亮,Gadget也很实用
  2. 乱码,
  3. 字体偏小,UI icon偏小
  4. 播放器需要频繁升级安装插件;
  5. 启动速度一般,体积偏大

GOS 安装1

在网上查找了一下基于iso文件安装步骤,实现步骤整理如下:
因为需要gurb的引导,所以需要先准备grldr文件。

1、先将文件更名为gos.iso放于D盘根目录下的。
2、将ISO镜像文件里面的casper文件夹里面的vmlinuz和initrd.gz文件也解压到D盘根目录下 (实际操作的时候,我放到了C盘下,但是最好放到ISO文件同一目录下,这样好处理)
3、把前面准备好的grldr文件,放到C盘根目录下
4、修改boot.ini(注意隐藏、只读属性)在最后加一行:c:\grldr=”install gOS 3.1″
(如果你安装过“一键goust恢复”或你XP自带“一键goust恢复”你就幸运了,完全可以忽略3、4这两步)
5.重启电脑,选择“install gOS 3.1“进入grub的引导过程,或选择“一键goust恢复”然后按c键进入grub的自定义界面
在“grub>”字样后输入find /vmlinuz find /gos.iso 等命令确认文件所在的分区。
6执行root (hd0,4) #我的iso文件在D盘,所以最终是这个命令
7.执行:kernel /vmlinuz boot=casper iso-scan/filename=/gos.iso
8.执行:initrd /initrd.gz
9.执行:boot

你跟我一样,将vmlinuz 和 initrd.gz放到了C盘,命令需要稍做修改。
kernel (hd0,0)/vmlinuz boot=casper iso-scan/filename=/gos.iso
initrd (hd0,0)/initrd.gz

最后正常gos的live cd,然后开始安装

gOS完整安装中文支持配置

http://home.lunia.gtgame.com.cn/space-2583787-do-blog-id-3285.html

多媒体环境应用配置;
安装mplayer:
sudo apt-get install mplayer 我们的gos就是好把这个也在库里给我们准备了。

安装听在线音乐的插件:
http://addons.mozine.cn/firefox/116/ 安装就可以了。

系统自带的以Gstreamer为后台引擎的totem电影播放器,目前已支持很多多媒体格式,效果很好。美中不足的是Real公司的rmvb,rm等格式暂时无法支持,DVD格式的光盘支持效果并不理想。可是这些文件格式都是我们常用的。所以我们先卸掉原来的电影播放器,换装以xine为后台引擎的totem电影播放器,或者直接安装mplayer或kaffine作为电影播放器。

sudo apt-get remove totem-gstreamer

安装totem-xine电影播放器的命令如下:

sudo apt-get install totem-xine totem-mozilla totem

执行这条命令将会自动安装 libmodplug0c2 libmpcdec3 libpulse0 libxcb-shape0 libxcb-shm0 libxcb-xv0 libxcb1 libxine1 libxvmc1 等软件包。

系统自带的Rthymbox音乐播放器默认不支持mp3和wma格式音乐的播放需要额外配置一下。由于Rthymbox是以Gstreamer为 後台支持的音乐播放器,所以只要安装全Gstreamer-pluns插件就可以了。具体的需要这安装的软件包如:gstreamer0.10- ffmpeg、gstreamer0.10-plugins-ugly。若要支持其它的格式和功能这些插件可以选择安装:gstreamer0.10- fluendo-mpegdemux、gstreamer0.10-gl、gstreamer0.10-gnonlin。
安装命令如下:

sudo apt-get install gstreamer0.10-plugins-ugly gstreamer0.10-ffmpe

水仙花

2006.2
昨天查水仙花的雕刻方法
通过google搜出一大堆相关知识
原来水仙除了凌波仙子的美誉,还有很多别的雅名
Narcissus,这个词很熟悉的,
但是好像从来都没有用过
5年前考GRE的时候,背过这个单词的
可惜现在好像都还给了“玉米糊”,还有红宝书;
现在让我去考六级,可能都勉强

Narcissus是传说中希腊的美少年,
美丽女神Echo爱上了他。
他都拒绝了,结果害得女神郁郁而终,
有一天Narcissus在河水边洗脸
从倒影中看到了自己的容貌
骄傲的不得了
结果一不小心掉了进去
死掉了
据说后来变成了水仙花
后来就从这个词中引伸出了自恋

有朋友形容过我的自恋倾向
给朋友看过她写的东西后
评价也是自恋
臭味相投?
有的人喜欢这种自恋
美曰:自恋的人有自恋的资本



水仙属于百合科,
Lily,好熟悉的名字
水仙的故乡是漳州
这点我去看土楼的时候还不知道

漳州的水果很好,水果之乡
塔下是一个不错大小桥流水之乡
我和北京的一位驴友
异口同声到,很像凤凰

我的一个愿望
赶上一个长假
开上车,带上父母和家人
后车厢里塞上满满的水果
走一路吃一路
岂不悠哉


上周用手来拨水仙花根
依照树上的水栽法
结果手指不小心挤出血来
第二天肿大感染
第四天的时候去医院
告知可能需要拔指甲
十指连心啊
今天稍微好点
找学医的朋友过来看看
好像问题不大


已经快一周了
深圳这边一直在下雨
如果有太阳
放在阳光下
2周左右就会开花
我和它一起成长
准备迎接明天的太阳
准备迎接第六届百公里
上次是大梅沙
这次不清楚会走多远
但是肯定会超过大梅沙

出国


去年美签通过的时候,给研究生时代的几个朋友发信息
记得我们一起去新东方学艺
一起奔赴大连考场
随着世贸大厦大楼的轰然落地
破碎了我们这一批人的大洋彼岸梦
于是我们各奔前程

欧混应该是第一个出国的,
在意大利拍的照片很让人羡慕,即使是烂傻瓜机,
背景是货真价实的古罗马帝国的遗迹
之后又去过印度,不知道有没有去泰姬陵?

我第一次去韩国,赶上了世界杯预选赛
中韩之战,在汉城世界杯体育场
早就听说,日韩世界杯时
LG专门派了架直升机迎接大老板
我这次是和一个小老板来的
不过我不是球迷
而且当时感冒没好
露天飘着雪花的滋味
没什么可留恋的
感到震撼的是韩国人的民族精神
即使是一场小小的球赛

赵子哥的短信先问我是读书还是商务
当然是商务了
这小子当年还跟我争执读博当老师的n多好处
结果干了一年不到,就铁了心从交大退学去律师事务所
告诉我,他的mm去法国了
他也很想去,但是没有钱
只好老老实实呆在上海了

去美国的最大收获是
开了眼界,增长了见识
5年前在新东方,见识了什么是优秀
学业和知识上的
北大和清华的高材生比比皆是
一不小心就遇到一个头名状元

在CES见识了一种事业上的优秀
一不小心发现坐在旁边和我chatting的朋友是伯克利的MBA
"神州数码到老总约我,我都不见......"

CEO非常高兴的告诉我
又融了20个Million
我觉得用骗字更贴切
因为不太看好它的东西?
其实对于Boss来说
VC和Carsino一样都是一种投资兼娱乐
你的report要像21点的规则一样有诱惑力
风险和不确定性同样是种乐趣


有幸和Intel的CEO Paul聊了聊,并在我们的产品前合影
我们是第二次见面,上一次在北京
他的脸色不太好,而且时候发现那天他没有打领带
脸蛋红红的,像是一个有点shy的大姑娘




怀念我的眼镜

回家的路上突然想起了我的眼镜

人有时候不经意间失去了,才会懂得珍惜和拥有时的快乐,幸福


工作后配过4次眼镜

第一副眼镜,自单位组织去清远的时候
我一个人在太和古洞的山涧间溯溪
快到顶峰时
遇到了一个几十米高的岩壁
不知天高地厚的我
居然徒手向上攀爬
两次从几米高处摔下来
直落在布满石头的,不足没过膝盖的水中
第二次下来的时候眼镜摔飞了
想起来后怕,
如果不是眼镜摔飞了
一心只想往前飞的我会出什么事?

第二幅眼镜正常服役不够一年
因为想戴墨镜,所以换成了支持墨镜贴片的樱花之恋
刚开始的时候不注意保护镜片
用纸巾衣服擦镜片
结果镜片表面划成了“老花镜”
贴片和DC,钥匙,电池放在一起
也很快惨不忍睹
后来回家的时候,被拉在了家里
后来问我妈
居然找不到了?

第二幅墨镜片
出去玩的时候,丢在了桌上
被服务员当垃圾丢掉了
甚是可惜

第三快墨镜片