苹果相关

浏览模式: 标准 | 列表 | 图文
Linux 省电10招

Linux 省电10招

昨天在QQ微勃上贴了请人介绍可以使用5小时linux系统的笔记本,大多数人还是表示没办法。不过,有朋友贴出了这篇内容,我是先学习一下。至于有用没用还不知道,因为我还没有装linux的笔记本(听说苹果可以用7小时+,不知道是真是假)

1. Linux Kernel 2.6.21 开始支持 Tickless(此前的内核默认设置为 1000Hz timer tick),于是系统空闲时不再无故骚扰 CPU,可以节省大量能耗。Fedora 7+ 以及目前的 Ubuntu Linux 发行版都含有 Tickless 特性,而 RHEL 则要到版本 6 才会随新版本内核正式支持该特性(预计 2010年上市)。检查你的 Linux 系统是否支持 Tickless: watch --interval=1 cat /proc/interrupts ,若 timer 中断值并非以 1000 为步进单位增加,则说明该内核支持 Tickless。

2. 编译内核(make menuconfig):

  • 启用 Tickless: Processor type and features -> [*] Tickless System (Dynamic Ticks)
  • 启用 CONFIG_USB_SUSPEND: Device Drivers -> USB support -> [*] USB selective suspend/resume and wakeup (自动禁用 UHCI USB,可以节省约 1 watt)

3. PowerTOP 可以找出计算机闲置时哪些进程耗电最多。(Kernel Hacking -> [*] Collect kernel timers statistics) 详见: http://www.lesswatts.org/projects/powertop/

4. 启用 power aware CPU scheduler(Scheduler Power Saving Mode): echo 1 > /sys/devices/system/cpu/sched_mc_power_savings

5. RHEL 5.3 支持 Intel Core i7 (Nehalem) 的电源管理功能。

6. 启用 irqbalance 服务,既可以提升性能,又可以降低能耗。irqbalance 用于优化中断分配,它会自动收集系统数据以分析使用模式,并依据系统负载状况将工作状态置于 Performance mode 或 Power-save mode。处于 Performance mode 时,irqbalance 会将中断尽可能均匀地分发给各个 CPU core,以充分利用 CPU 多核,提升性能。处于 Power-save mode 时,irqbalance 会将中断集中分配给第一个 CPU,以保证其它空闲 CPU 的睡眠时间,降低能耗。(详见:http://www.irqbalance.org/documentation.php )

7. 禁用 pcscd,该进程会阻碍 USB 子系统进入 Power-save mode。

8. 将 VM dirty writeback time 延长至 15 秒: echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

9. 启用 noatime 文件系统选项: mount -o remount,noatime / (noatime 禁止更新 atime,可以节省大量 I/O,但为了避免 atime 相关应用程序出现问题,建议启用 relatime 代之: mount -o remount,relatime / ,relatime 自 Kernel 2.6.29 起为默认设置。)

10. 禁止 hal 轮询你的 cdrom: hal-disable-polling --device /dev/cdrom

* 关于 Linux 节能的更多信息,请看: http://www.lesswatts.org

原文来自:http://www.kuqin.com/linux/20090429/48866.html

RabbitVCS 用后感

RabbitVCS 用后感

自从我的开发环境换成ubuntu后,对于SVN总感觉不象以前那样痛快。毕竟习惯了windows下的小乌龟了,于是找了很多资料,然后在某篇博客里发现了这个rabbitvcs,兴冲冲的装上去。

然后,就开始我的rabbitvcs之旅了,只是这段旅行并不快乐,在我写这篇文章的时候,它已经被我remove掉了。

先简单介绍一下rabbitvcs吧,它是一个GUI的SVN client,界面和操作方法都有点类似于小乌龟,所以,上手度极高。配置起来也挺方便,如果你装的是中文版的ubuntu,菜单中还有部分会被汉化。如果你用过小乌龟,那么我就不多说了。如果你没有用过,那我说了也白说。

剩下的就是我说缺点了,它有一个最大的缺点,那就是,SVN目录如果稍微过大,它就会在打开目录的时候,几乎停止响应。OK,你停止响应也就算了,你不能影响到所有打开的目录吧,只要是涉及到目录打开的,都会停止响应,时间比较长。

还有一个缺点就是,无论你怎么设置保存密码,它都记不住,我靠,你都记不住,你把那个复选框放出来干啥。真受不了。

所以,我卸载了,当然,最主要的原因,还是因为它卡死了目录。

现在我还是到SVN目录下,直接执行:svn update --username=xxx --password=xxx,速度超快,看来以后还是这样比较好。

UBUNTU 下用使用VPN

UBUNTU 下用使用VPN

用UBUNTU桌面版挺长时间了,配置VPN也很久了,但从来没有连接成功过。
昨天因为要查资料需要翻越长城,所以找了一下ubuntu VPN客户端的资料,想找个客户端来上网,结果找到的资料都是使用内置的PPTP客户端就成了。

再找资料,发现,我不能启动的原因可能是:

要点上高级选项(Advance),选择Use-Point-To-Point-Encryption(MPPE)。
反正,我这么一设置后,就可以正确连接上VPN了。

vmware 7上5分钟装最新的macos x snow leopard 10.6.3

我一直想要苹果,但是,家里的财政大权不是我能管的。又想买一个黑苹果吧,但财政大臣那边还是不同意,认为买一个假玩意没意思。

虽然我一直想搞台笔记本,但目前好象还没有准备好,上级领导不批啊,所以看到素包子这篇文章就鸡动了一下。。。

素包子找了一些资料,大多不是介绍的最新的vmware7装最新的macos x,搜到了一个不错的安装介绍,参考着做完全没问题,而且很简单,感谢作者刘洪志和电脑报。5分钟搞定配置过程,接下来就是等待自动安装和重启了。

貌似可以升级到10.6.4,做了个snapshot,更新去了,一共700M左右。

(其中使用darwin.iso启动进行安装的步骤可以省略,可以直接使用OSXPCBETA_ArcticFox.10.6.3.iso启动安装。)

想偷懒并且对版本要求不高的同学可以下premade的vmware镜像,直接使用,大小10G,见BT种子,用迅雷离线下载瞬间完成,满水管下载。

Mac OS X 10.6.2

原文在:http://baoz.net/install-macos-x-snow-leopard-10-6-3-in-vmware-7/

好象主要是那两张图:

9f0bf824c78443efd5d0b207be8de7fc

phpserializer.js

linux filename xss攻击

linux filename xss攻击

看到这篇文章的时候是在晚上,然后就觉得好郁闷,不过也挺佩服淘宝QA那些人的奇思怪想,看看他们是怎么说的吧。

一、关于文件名
大家都知道在 windows 下面文件名是有规则,定义了一些保留的字符,他们分别是:

< (less than)
> (greater than)
: (colon)
" (double quote)
/ (forward slash)
\ (backslash)
| (vertical bar or pipe)
? (question mark)
* (asterisk)

而linux下面是没有对这些大部分字符进行限制的,可以随意定义的,那么,我们就可以将 XSS Pyload 存储在文件名中,如图所示:
4b8ced78664c77720f8612082fdf9068
我们可以看到可以成功将 xss pyload 存储在文件名当中了。
二、利用攻击
很多时候,由于代码的各种环境,让我们的攻击成为可能,查看以下PHP上传文件代码:

<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>
<html>
<body>
<form action="" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
当文件上传成功,程序将文件信息进行输出。而此时没有对文件名进行任何处理,那么,如果将我们定义好的特殊字符的文件名进行上传,然后经过程序输出,就可以攻击了,如图所示:

3ca3c42982ee32774da3937b31894834

可以看到,我们确实可以攻击成功了!那么,并不是所有的上传地方都存在,要满足以下条件才可以:
1、文件上传后保存前进行了一次原样输出。
2、直接按原文件名进行存储。
3、其他特定环境,看程序逻辑。
4、web server 为 linux。
5、上传攻击机器为 linux。
示例代码:http://code.google.com/p/madal-example-project/source/browse/trunk/controllers/image_uploader.php?r=2
更多的:http://code.google.com/query/#q=$_FILES[%22file%22][%22name%22]
线上攻击测试:http://www.woyigui.cn/fileupload.php

三、防范
1、存储时以随机文件名保存。
2、任意时候对文件名进行处理后输出,可以进行 html 编码后输出。

参考:

http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

--EOF——

原文来自:http://qa.taobao.com/?p=10139,虽然这个条件很苛刻,但毕竟还是存在被注入的可能啊,而且这种注入真的很妖。

mod_pagespeed:傻瓜式前端优化

mod_pagespeed:傻瓜式前端优化

这个功能能,看上去不错,所以我转了一下,但,我目前还没有在自己的服务器上尝试,不过我也在想,如果这样操作了,图片怎么样被外站引用呢?这也是我考虑的原因。。。

原文:

曾经有位朋友自己做了个小网站,刚开始没什么人气,后来不小心把流量搞大了,用户抱怨访问缓慢,就让我帮忙看看哪里可以优化。那时 Steve Souders 老师的 YSlow 14条军规刚刚新鲜出炉,开宗明义第一句便是:网页性能 80% 消耗在前端。于是运用 Firefox+Firebug+YSlow 工具,轻松找到那些大图小用、过期时间太短、JS/CSS位置不正确、没有精简压缩的罪恶之源。前后只花一两周时间就把网站弄快了,好不得意。

今天 Google 发布的 mod_pagespeed for Apache 2,着实令人赞叹。原本需要一两周时间才能完成的前端优化工作,不到半个小时就能搞定,而且不用修改任何程序。现成的二进制安装包,下载来 直接装入系统,自动添加配置,重启 Apache 之后,一切前端问题自动优化。CDN服务商 Cotendo 已在其CDN服务器上部署mod_pagespeed以加速客户网站访问,图片文件大小经自动压缩可减少20%-30%,页面加载时间最多可缩短50%。 Go Daddy 也宣布将在其客户网站服务器上广泛部署mod_pagespeed。

mod_pagespeed 中有很多巧妙的设计,规避了以往必须要动复杂手术才能解决的问题。比如,它可以将图片文件的过期时间自动延长到一年,无论图片是否存在同名更新(即文件名 不变,图片内容随时可能改变,从而无法设置较长的过期时间)。假设网站原来的logo图片引用和HTTP header如下:

HTML tag : <img src="images/logo.gif" />
HTTP header: Cache-Control:public, max-age=300

经自动处理后,会变成:

HTML tag : <img src="images/ce.c17941127d34679357baa1b36fb4ecc5.logo,g" />
HTTP header: Cache-Control:public, max-age=31536000
mod_pagespeed 把原来的 logo.gif 转化为名称唯一的 ce.c17941127d34679357baa1b36fb4ecc5.logo,g ,并且将原先的过期时间300秒延长到31536000秒(一年)。mod_pagespeed 则仍然以此前定义的 TTL 300 秒为周期,定期检查图片是否更新,一旦图片内容发生改变,文件名也会相应变化,如此就不用管同名更新的问题了。

又如最常见且最难以控制的“大图小用”(80x80的图片框里塞一张1024x768的高清墙纸),mod_pagespeed是这样处理的:
<img src="images/Puzzle.jpg" width="256" height="192" />
识别 IMG 标记中设置的宽度和高度值,自动缩放为相应大小和质量的图片:
<img src="images/ic.HASH.256x192xPuzzle,j.jpg" />
还有很多有趣的功能,在 http://www.modpagespeed.com 可以看到实例展示。

mod_pagespeed 显然很适合中小规模网站使用,不用太多费力于前端改造,就能迅速成倍提升客户体验。但对于大规模商业网站来说,我认为还是要慎重,因为它实时过滤处理每一 次请求,存在不小的开销,而且作为beta版软件,即使要采用也得先进行充分测试。当然各种优化手段也可能有副作用,值得一提的 是,mod_pagespeed 的文档写得不错,条件、限制、风险都很明确,建议详细研究后再作抉择。
--EOF--

好象作者活在墙外,真让人痛苦,转载了他的文章吧,却不能给人家一个地址,所以贴上他的博客地址:http://hutuworm.blogspot.com/

Ubuntu10.10用Wine运行QQ2009

Ubuntu10.10用Wine运行QQ2009

乘着最近在大战,我也贴个UBUNTU下装QQ的方法。只是这个QQ也是被改过的版本。爱用不用喽。。。。经测试,比linux占资源少一点,只是一些QQ附加的功能都可能没有了。。但是,能够聊天已经很不错了。
如果不用虚拟机,你连WEBQQ也用不了,有这样的工具,你还能怎么样?

先装wine,然后用winetricks装上这些常用的(其实前两天我的博客里介绍的wine就已经有介绍这样的了)。

winetricks msxml3 gdiplus riched20 riched30 vcrun6 vcrun2005sp1

最后我COPY这段文字,请大家可以随便看:

第四步:最后建议下载这个由深度出品的qq2009单文件版,主要是兼容性好(下载地址在文章最后给出)。
下载解压后把“wineqq2009.exe”放到你的主目录,打开 Shell 来一句:
sudo chmod +x wineqq2009.exe
PS:加权限了才准许运行。
最后将wineqq2009.exe复制到“.wine/dosdevice/c:/windows/system32/”文件夹里改为qq.exe。
当然你也可以下载qq2008,但是由于和Ubuntu的输入法冲突,你只要在密码框打密码qq就会崩溃,当然也有解决办法。
1.在一个空白文档里打下密码,然后再粘贴到密码框。
2.用软键盘输入密码。
PS:记得把自动登录选上,下次就没有这么麻烦了^_^。
所以,综合考虑,还是选这个qq2009单文件版好多了!
第五步:加入WineQQ菜单。
1.在”.wine/dosdevice/c:/windows/Program Files/Common Files”文件夹内右键选择新建文件夹Icon.下载QQ图标放到此处。
2.右击菜单条,选择编辑菜单(E),新建项目位置如下图:

3.编辑项目图标就从第1点的位置找到图标,其它内容如下图:
541f7b186619a34fe428c2be74c7fb20
80ebd7b3b9170e6fee564836998387b6

由于文件太大,我不提供下载,请到这里下载单文件版的QQ:http://killmind.com/blog/?post=188,我的文章也是从这里看的。(其实前两天我装wine的时候就尝试过所有版本的QQ了,但都是只能装不能启动。真的很郁闷。所以试了一下这个单文件的QQ),运行后,所有的聊天记录和信息文件存在mydocument目录下。和2009选择存在我的文档下结果是一样的。GOOD LUCK

后记:最后我看了这里:http://blog.chinaunix.net/u/27383/showart_689260.html,虽然它写的是2007版的QQ,但我测试了一下,2010的确实能用。虽然在安装的时候注册组件出了两次错,但确实是启动成功了(输密码的时候,请使用软键盘,否则,光标一移动到密码框就出错了。)

备份:

我的安装环境是:RedHat.Enterprise.Linux.AS.V4.0.Update4 + wine-0.9.44.tar.bz2 + 珊瑚虫 2007v5.0b正式版

第一步,用root用户登陆Linux,挂载WindowsXP系统的C盘分区。

新建一个文件夹,作为WindowsXP系统C盘的挂载点,我选的是/mnt/WindowsXPc

mkdir /mnt/WindowsXPc
创建挂载点
mount -t ntfs /dev/sda1 /mnt/WindowsXPc

第二步,切换到普通用户登陆Linux,安装wine,因为用root用户安装wine时会提示错误。

打开终端,进入wine安装包所在的目录比如我放在了/opt
cd /opt

解压wine安装包(我在这无法用命令解压,只好右键“用归档管理器打开”,不知道怎么回事?)

tar xjvf wine-0.9.44.tar.bz2
进入解压得到的文件夹中
cd wine-0.9.44
运行wine自带的安装程序
./tools/wineinstall

接下来是极其漫长的等待,盯着编译状态中的终端长达10分钟以后,忍无可忍的我夺门而出 —— 吃晚饭去......安装过程会提示你选择"yes"或"no",全都选"yes",一路回车下去即可。安装的末尾阶段,终端中会提示你输入root用户的登陆密码,这就是安装即将结束的标志。如果一切顺利,安装结束以后会有"Goodlucky..." 的信息提示,这就说明wine已经成功安装到你的Linux上了。

为了接下来步骤的顺利进行,建议大家注销一下系统,以root用户名登录Linux。

第三步,因为之前我们已经挂载了WindowXP系统的C盘,这时便将WindowsXP系统 C:\Windows\system32 里的以下文件:mfc42.dll,msvcp60.dll,riched20.dll,riched32.dll 拷贝到Linux系统root用户目录下的 ./wine/drive_c/windows/system32 里,覆盖原有文件。

第四步,安装QQ。
在终端中切换到QQ安装文件所在目录,比如我放在了/opt
cd /opt
以wine的方式运行QQ的安装文件
wine IPQQ0750b.exe

接下来,我们便可以看到在Windows下常见的QQ安装窗口了,安装过程跟Windows下完全一样,一步一步“下一步”就行了。在这里我要提醒一点,QQ主程序的安装路径最好选默认值,系统会自动将其存放到Linux虚拟的WindowsXP C盘的相应位置中,这样可防止过后执行过程中出现一些未知的错误。

第五步,安装结束以后,把QQ安装目录 ./wine/drive_c/Program Files/Tencent/QQ 里的 TIMPlatform.exe 删除掉。

第六步,为QQ设置一下wine。
在终端中输入下面的命令打开wine的配置文件
winecfg

在"Applications"标签里添加QQ的主执行程序QQ.exe;在"Windows Version"下拉框中选择"WindowsXP";完成上述两步以后,点击“应用”,然后切换到"Libraries"标签,在"New override for library"下拉框中添加riched20和riched32,最后确定退出。

第七步,运行QQ。
安装QQ时在桌面上创建了快捷方式,但那是.lnk格式文件,Linux下好像无法运行。我自己又重新创建了一个QQ启动器,但是双击没反应;若将启动器修改为“在终端中运行”,双击以后只弹出一个小窗口,而且瞬间就消失了,不知道怎么回事?最后我只能选择在终端中用命令行来打开QQ。

在终端中切换到QQ主程序安装目录
cd ./wine/drive_c/Program Files/Tencent/QQ
wine QQ.exe
.
.(一大堆信息,看不懂...)
.

这个时候,熟悉的QQ登陆窗口就出现了!接下来的操作就不用我多说了吧,号码,密码,登陆,OK!
winetricks Permisson denied解决方法

winetricks Permisson denied解决方法

在UBUNTU下面想要使用WINDOWS下面的程序,除了用虚拟机,剩下的应该就是wine这种解决方案了。

wine目前支持的东西越来越多,但是,需要给wine安装很多win下面的库才行。于是,php研讨群中的lukin给了我一个常用的库的列表,让我安装:

$winetricks corefonts gdiplus gecko ie6 mdac28 mfc40 mfc42 msxml6 riched20 riched30 richtx32 vcrun6 vcrun2008

于是,兴冲冲的运行了一下,弹出这样的框:

gouki@gouki-desktop:~$ winetricks gdiplus gecko ie6 mdac28 mfc40 mfc42 msxml6 riched20 riched30 richtx32 vcrun6 vcrun2008
Executing wget -O WindowsXP-KB975337-x86-ENU.exe -nd -c --read-timeout=300 --retry-connrefused --header Accept-Encoding: gzip,deflate http://download.microsoft.com/download/a/b/c/abc45517-97a0-4cee-a362-1957be2f24e1/WindowsXP-KB975337-x86-ENU.exe
WindowsXP-KB975337-x86-ENU.exe: Permission denied
------------------------------------------------------
Note: command 'wget -O WindowsXP-KB975337-x86-ENU.exe -nd -c --read-timeout=300 --retry-connrefused --header Accept-Encoding: gzip,deflate http://download.microsoft.com/download/a/b/c/abc45517-97a0-4cee-a362-1957be2f24e1/WindowsXP-KB975337-x86-ENU.exe' returned status 1. Aborting.

网上找了一点资料,说法较多,比如winetricks没有权限啦,.wine目录不是当前用户权限啦,所以,我到home目录下执行了

chown -R gouki:gouki /home/gouki/.wine
sudo chmod +x /usr/bin/winetricks

更改完后,再次执行,还是上述错误。这回真的是找了很多资料,有一个回复比较靠谱,说是需要更改.winetrickscache权限为当前用户,或者下载最新的winetricks脚本(里面有含对目录权限的判断和更改)

然后,我找了一下我的home目录,却发现我根本没有.winetrickscache目录。因此,立刻

mkdir /home/gouki/.winetrickscache

然后再次执行下面的程序,终于可以开始安装了。问题自然是就此解决。作个笔记

参考:http://forum.winehq.org/viewtopic.php?t=5174&view=previous&sid=cc8cacaa4cb95e574ef0d6ae9d1706e3

怎样让文件目录与VirtualBox中的虚拟机共享

怎样让文件目录与VirtualBox中的虚拟机共享

最近在用UBUNTU,那么遇到的问题就是如何让我的ubuntu的文件与windows共享?虽然一般来说我们有常见的几种:
1、samba文件共享(windows可以直接搜索网上邻居来访问,但配置较烦和繁)
2、remote desktop,这个,如果虚拟机是XP,那么在连接的时候,默认界面就被锁定了,不方便
3、VirtualBox自带的sharefolder。推荐的也是这个。
4、FTP(SFTP)这两种都可以,只是FTP需要HOST装FTP软件,sftp的话,则是需要HOST装ssh,XP装SSH客户端

现在说说sharefolder吧,如果你开启了这个功能,默认系统会让你选择一个UBUNTU的目录,然后就可以共享了。只是你不知道这个共享后目录在哪里,怎么办?
这时候,打开网上邻居,你会发现,除了windows network外,多了一个virtualbox network,在这里,你就找到:
d658c47c4ba11c861f05fc7855ec49d7
打开后,将这个目录映射为虚拟盘就OK了。
然后就你可以象在本地一样操作了,灰常爽啊。

关于resolv.conf文件

关于resolv.conf文件

/etc/resolv.conf,这个文件是DNS域名解析的配置文件,它的格式很简单,每行以一个关键字开头,后接配置参数。

resolv.conf的关键字主要有四个,分别是:

nameserver #定义DNS服务器的IP地址
domain #定义本地域名
search #定义域名的搜索列表
sortlist #对返回的域名进行排序

较为简单的/etc/resolv.conf示例:

domain neatstudio.com
search www.neatstudio.com neatstudio.com
nameserver 8.8.8.8
nameserver 4.3.2.1

最主要是nameserver关键字,如果没指定nameserver就找不到DNS服务器,其它关键字是可选的。(一般dhcp的时候都会带有nameserver过来,也可以自己指定一下nameserver)