Sunday, January 18, 2009
Saturday, January 10, 2009
黄油文件系统(Btrfs)与南瓜文件系统(Squashfs)
http://lkml.org/lkml/2008/12/31/85
使用Btrfs的方法详见wiki站点:
http://btrfs.wiki.kernel.org/index.php/Main_Page
可以这么评价吧:
1. Solaris曾经有最后两根救命稻草是DTrace探测工具和ZFS文件系统,现在在Linux上有了带utrace内核的Systemtap和Btrfs文件系统,Solaris操作系统再也没有任何优势了,
另外,在这个页面还包含了很多Btrfs的许多创意想法,有已实现和正在实现的,包括在文件系统层次的RAID5,6:
http://btrfs.wiki.kernel.org/index.php/Project_ideas
南瓜文件系统(Squashfs)可能就更熟悉了,它采用gzip或lamz(更高压缩率)来制作只读的映像文件,常见于各发行版的LiveCD光盘中,也在今天早上(UTC时间1月9日凌晨)刚刚合并入主流内核(linus的mainstream内核)
http://marc.info/?l=linux-kernel&m=123153961726343&w=2
关于Squashfs的合并之路,倒不是一帆风顺的:
1. 其作者 Phillip Lougher
2. 接下来的回复中,有两种观点;一种常规的观点是文件系统不是一般的驱动程序,是不能贸然合并的,这是传统的观点; Andrew 也是基于此观点认为 Squashfs 还需要在 linux-next 中观察个半年。反对的观点来自 Alan Cox ,说很多发行版的 LiveCD 已经在用 Squashfs 很多年了,还有什么样的大规模测试比这更能说明问题?
3. 终于, Andrew 同意现在就合并吧!我们终于有了一个以蔬菜命名的文件系统了~
4. 调侃继续:
蔬菜总比 FAT (肥胖) 好吧~
我喜欢南瓜(Squash)胜过于黄油(Butter)~
http://thread.gmane.org/gmane.linux.file-systems/28733/focus=28881
http://marc.info/?l=linux-kernel&m=123153961726343&w=2
Thursday, January 01, 2009
Vim, Bram Moolenaar, 乌干达
Kibaale Children's Centre *kcc* *Kibaale* *charity*
Kibaale(乌干达地名)儿童中心位于非洲东部、靠近Tanzania(坦桑尼亚),在乌干达南部的一个小镇Kibaale。这个地区以Rakai区而闻名。居民大多是农民。尽管人们很穷,食物仍然是足够的。但是这个地区正承受着比世界上任何地方都更严重的AIDS灾难。也有人说它就是起源于这里。据统计有10~30%的乌干达人受到了HIV的感染。因为父母死亡,那里有很多孤儿。在这个地区有大约6万名儿童失去了一位或两位双亲,尽管总人口只有35万。并且这个数字还在持续增长。
这些儿童需要很多帮助。KCC正在努力工作以提供对食物、医疗和教育的需求。食物和医疗是为了让他们保持健康,教育是让他们将来能够自己照顾自己。KCC以基督的名义工作,但援助是提供给任何宗教的儿童。
解决这个地区问题的关键在于教育。这在过去的 Idi Amin 总统在位的数年以及接下来的内战中一直被忽略着。现在政府又重新稳定了,儿童和父母们都必须学习怎样照顾他们自己和怎样避免被感染。那里也为病人和饥饿的人们提供帮助,但它的主要目的是教会人们如何避免生病和怎样种植健康的食物。
大部分孤儿都住在大家庭里。由叔叔或大一点的姐姐来照顾。因为这样的家庭很大,而收入很低,对一个孤儿来说能得到健康的食物就已经很幸运了。而衣服、医疗和教育是已经超出他们能力所能及的。为了帮助这些有需要的孩子们,我们设置了一个专项赞助计划。可以经济上收养一个小孩。仅仅数美元每月就可以让KCC维持对这个小孩所采取的必要措施,就是保持健康和上学,其它对这个孤儿和支持他的家庭所必需的将由KCC来完成。
在直接帮助这名孤儿的同时,他们成长的环境也需要改善。KCC帮助当地学校提高他们的教学方法。在这个中心有一个示范学校来做教师培训。在那里培训保健员,宣传卫生教育,并且鼓励家庭建立好的厕所。我(Bram)帮助建立了一个水泥板生产基地。这些水泥板用于建造好的厕所,并且都以低于成本价出售。
这个项目还包括一个小的疹所,给孩子和他们的家庭提供医疗帮助。当有需要时,还提供到医院的交通。免疫计划也在实施,以应对传染病的发生(这里麻疹和霍乱一直是个问题)。
1994至1995年夏天我花了一整年时间在这个中心,以志愿者的身份工作。我帮助扩展这个中心,和在城市供水方面工作。我了解到KCC所提供的帮助确实有作用。当我回到荷兰时,我想要继续支持KCC。为了这个,我正在募捐基金和组织赞助计划。请考虑以下可能:
1. 赞助一名小孩上小学,17欧元每月(或更多)
2. 赞助一名小孩上中学,25欧元每月(或更多)
3. 赞助一个疹所,任何数额每月或每季度
4. 单笔捐款
相比于其它儿童赞助组织来说,这此数额都是很低的。这是因为这些钱都是直接到这个中心去了。机构本身的运作费用保持在低于5%。这是个小机构并且依赖于志愿者来运作,因此是可以做到的。如果你想赞助一名小孩,你应该想好需要至少保持一年。
怎样知道你的钱花在了正确的地方呢?首先,你可以得到我作为VIM的作者的个人保证。我信任在这个中心工作的人们,我在私下里了解这里的每一个人。更进一步说,这个中心也被 World Vision, Save the Child Fund 和 International Child Fund 这些组织所共同赞助和监管。我们大约每年对这个中心进行造访和检查一次进度(使用我们自己的钱)。我个人在 1996, 1998, 2000, 2001, 和 2003 年都分别访问过这个中心。访问报告都在ICCF的网站上有。
如果你有更多的疑问,请发电邮给我:
这个中心的地址是:
Kibaale Children's Centre
p.o. box 1658
Masaka, Uganda, East Africa
汇款方法:
USA: ...
Canada: ...
Holland: ...
Germany: ...
World: ...
Europe: ...
Credit Card: 请使用PayPal汇款至 ...
Others: 请汇款至这个银行帐号, ... 请以欧元或美元的形式电汇或邮寄支票,最小额度是70美元,(我的银行帐号不能接受小于70美元的外国支票,致歉)
邮寄支票地址: ...
请尽量使用欧元汇款以减少汇率损失。
这个地址长期有效。
原文在线地址:
http://vim.cybermirror.org/runtime/doc/uganda.txt
http://www.vim.org/htmldoc/uganda.html
Google地图搜索KCC所在位置(东非):
http://maps.google.com/?q=Masaka,+Uganda,+East+Africa
荷兰ICCF组织网站,
http://iccf-holland.org/
上有每年财务报告都可以下载,最近一期是2007年的:
The financial report for 2007 is available (PDF).
http://iccf-holland.org/jaar2007.pdf
2007年中所有捐款总额是47,688欧元,其中持续赞助是20,802欧元,单笔捐款26,633欧元,利息253。
2007年的花费中只有0.4%是用于管理和运作费用。在2006年的费用比较高是因为花在了一个合法的程序以把 iccf.nl 域名要回来。2007的主要费用花在银行取出外国支票上。
这份文件中还提到了,从2001至2007年,捐款收入在稳步增长,从2001年的2万多至2007年的接近5万欧元。
基金是以每次大笔的形式直接转往乌干达,这样以减少银行手续费。
在2008年1月份有91名儿童被赞助收养。比前一年多了6名。捐款的月收入是大约1300欧元。还有很多赞助者是每年支付的。希望在2008年至少能收到同样多的捐款。
而单笔捐款是完全偶然的,也无法预知2008年的情况。
此财务报告由 Adiswil 制作于 2008-02-16 。
KCF has made a newsletter with various information: fall2007.pdf (PDF)
http://iccf-holland.org/newsletter/fall2007.pdf
Friday, December 12, 2008
和平、友爱与火箭! (HP首席技术专家的基于ARM板的开源飞行高度记录软件开发实记) (From: OLS2008论文集)
http://ols.fedoraproject.org/OLS/Reprints-2008/
Bdale Garbee Peace, Love, and Rockets!
http://ols.fedoraproject.org/OLS/Reprints-2008/garbee-reprint.pdf
作者 Bdale Garbee 是 HP 的开源和Linux首席技术专家,同时是一位模型火箭飞行爱好者,
他和他的儿子很喜欢制作和飞行各种各样的模型火箭,但是当他们想要一款电子高度计用于探测火箭实飞高度时,却发现市面上现有的产品都是功能很有限,且依赖于专有
这篇论文描述了他们如何制作开放的硬件和软件来满足自己对于高度的好奇心,现场演示文件中包含有更详细的更强动力的火箭设计计划,并包含了照片和视频材料。
这些材料应该是任何对开放的小型嵌入式设备好奇的人们都感兴趣的。
硬件是基于ARM的,以 "TAPR Open Hardware" 协议开放,
并且完全是基于开源的设计工具实现的。
软件是以GNU工具链和很多开源库在 FreeRTOS 上实现的。
Thursday, November 13, 2008
你知道 Intrepid Ibex (勇敢的巨角羊) 操作系统 (Ubuntu 8.10) 吗?
"勇敢的巨角羊"这个名字很有意思,看一下最近一系列Ubuntu发行用过的名字:
- Intrepid Ibex (勇敢的巨角羊) (Ubuntu 8.10)
- Hardy Heron (坚忍的苍鹭) (Ubuntu 8.04)
- Gusty Gibbon (强风中的长臂猿) (Ubuntu 7.10)
- Feisty Fawn (精神饱满的幼鹿) (Ubuntu 7.04)
- Edgy Eft (急躁不安的小蜥蜴) (Ubuntu 6.10)
- Dapper Drake (衣冠楚楚的公鸭) (Ubuntu 6.06)
- Breezy Badger (微风下的獾) (Ubuntu 5.10)
- Hoary HedgeHog (灰白的刺猬) (Ubuntu 5.04)
- Warty Warthog (长疣的非洲野猪) (Ubuntu 4.10)
- Jaunty Jackalope (轻松愉悦的狐狼?) (Ubuntu 9.04?)
所有发行代号(CodeName)都可以在这个wiki页面查到:
https://wiki.ubuntu.com/DevelopmentCodeNames
另外,有个神秘的版本 Grumpy Groundhog (性情暴躁的土拨鼠) 一直存在于Ubuntu开发人员的心中,其实它本来很有可能作为第一个发行的命名,但它在第一次投票中落选了;并由此带来了更为长久的生命力,因为 Grumpy Groundhog 被作为了永远的 unstable (类似于debian的sid)
另外, Ubuntu 9.10 发行的 CodeName 也正在征集中,从这个帖子来看,很有可能的结果是 Killer Komodo (杀手级巨蜥) 因为这个名字符合命名模式中的下一个起始字母K,现在很受欢迎
http://ubuntuforums.org/showthread.php?t=915595
当然,你永远都可以从 Ubuntu 创意集 (http://brainstorm.ubuntu.com) 提出自己的想法或者为你支持的想法投票, Ubuntu 开发者会从这里寻找最受欢迎的创意并去努力实现它。
Saturday, October 25, 2008
Talk some more about working efficiency on Terminal
$ time make -C /usr/src/linux-2.6.27/ -j5
1. that would take 25 minutes on my personal PC with 1 2.9GHz P4 and 512M RAM, 5400rpm IDE disk, a moderate configuration for desktop peripherals;
2. that would take 10 minutes on a Dell 2950 Server, which has dual core 3.0Gx2, 2GB RAM, 7200rpm SATA disk, a minimal config for this type of hardware;
3. that would take 5 minutes if distcc configured on 2 Dell 2950 machines, and compiled with "-j13";
Do you know how long compiling a software package will take on different hardware?
$ time { ./configure --prefix=/usr && make; }
and then:
$ make install DESTDIR=$PWD/dest
from LFS book, you could know the time in unit of SBU,
Use "time" to time it, anywhere the command will last longer than 1 second.
Saturday, October 18, 2008
记录EndUserSummit上的三次全场爆笑
1、在开篇JimZemlin的 Welcome to the Summit 演讲中
Jim说到现在全球有很多企业在使用和关注Linux的发展,其中碰到很多问题,其实是EndUser与Developers之间缺乏足够的互相了解:对EndUser方面是不了解已经有了什么功能;对Developers方面的介绍是说:"$700 billion lines of code every year" (每年产生7千亿行代码),但不是每行都有效的,或者不知道哪一种是最好的,EndUser常常对此感到无所适从;七千亿啊,全场爆笑;
2、在RicWheeler主持的FileSystem的Track中
他们在讲述Ext4和Btrfs(发音BetterFS),但在这两个具体的文件系统之前,Ted谈到KernelPeople为Filesystem遇到的挑战的应对是设计了NGFS(NextGernerationFileSystem)的概念,针对块设备的变化,(SSD的出现,多设备应用等),在NGFS中都有相应针对的设计,而ext4是当前NGFS的一个snapshot,BtrFS是最接近NGFS设计的一个;
此时,我向ChirsMason(BtrFS的主要开发者也是维护者)提了一个问题,“Ted说ext4可以用在他的Laptop上,不知BtrFS是否可以用在Laptop上?”全场爆笑。Chirs回复说:“当然可以。在我的Laptop已经用了很久了;其实你提得对,我应该也这么宣布一下,这是一个很好的Marketing机会。”回头想想,我提的这个问题好弱的呀。
3、在Cocktail上
其实就是上面第一天的内容,看James和Jonathan还有两位银行界人士共四人的照片,后来我也加入进去谈话了,我问了James一些块设备方面的问题,后来James发现我不像是EndUser更像是Developer,问我知不知道LinuxPlumbersConference,我说我知道,我本来想参加那个会议的,但美国大使馆(USEmbassy)给签证的速度太慢了,导致我错过了那个会议,我的一个朋友(当时一个Google的人为我感到惋惜时说的)说它是"Such an enept bureaucracy",James说“它从来都是 Such an enept bureaucracy”;"Such an enept bureaucracy"(一个无能的官僚机构),全场爆笑啊。
实际上西方人士大都很幽默,全场爆笑的次数当然也不只这三次,这里只将印象最深刻的三次记录下来。
Wednesday, October 15, 2008
十月,纽约的EndUserSummit(第二天)
这是会议现场,
接下来都是同时进行的很多个Track,这部分我没有拍很多照片,因为我也在里面发言,忙着交流去了,大家直接看主办方的安排就知道有什么内容了,
https://www.linuxfoundation.org/events/enduser/program
这次问过主办方LinuxFoundation,会后会把相关的Presentation文件,和主办方的专业级相机拍的一些照片发布出来,请大家关注主办方的网站吧,
http://www.linuxfoundation.org/
在机场时间不多了,马上要去登机,其它有趣的照片回去再整理吧.
Monday, October 13, 2008
十月,纽约的EndUserSummit
九点,会议在DesmondTutuCenter如期举行,地点是在一个Refectory(餐厅),说是餐厅,我觉得更像一间教堂,
第一个主题演讲的是LinuxFoundation的执行主席Zemlin讲述在Linux平台上,Developers与EndUsers缺少沟通,以至于开发者对用户需求不够了解,或者用户不了解最新开发的功能等,有必要举办一个开发者与EndUser沟通的会议,
第二个主题演讲是Wikinomics的作者,讲述大规模协作如何改变了世界,
接下来是一个Panel讨论,参与Panel的有FifthThird银行的CIO,美国航空的首席架师,纽约股票交易所的ChiefArchitect,还有AIG副总等人物一起来谈应用Linux的开始,以及应用过程所碰到的各种问题,希望Linux做到的哪些功能,等等,台下有一些Subsystem的维护者(也就是开发者)分别给出了回复;
片刻休息之后,是三个主要Vendor(发行商)的总裁或副总来讨论作为Vendor如何协调Developers与EndUsers之间的关系,有Novell,Redhat,和Ubuntu,
午餐后,另一个Panel讨论EndUser观点如何参与进Developers的开发流程,
再一场是Ted讲述了你所不知道的ext3和最新的ext4的特性,ChirsMason讲述BtrFS,这个是最接近NGFS(NextGeneartionFS)概念的了,特性非常多,cool,预计在2.6.29进入mainline;
接下来分为五个Track同时进行,我穿插去听了两个,FileSystem方面还是讨论各文件系统,有一个Administrator(作为EndUser)就说为什么现在的内核用dd将一个块设备上的ext3写到另一个块设备上就挂载不了了,他说记得以前的内核是可以的,Ted和Crhis和James一起回复了关于UUID的问题,
PerformanceTuning的Track中讨论了UDP的延迟,内存资源的合理使用,内存管理的改进,等等,
一小段总结之后到了5点,准时结束,到达附近一个公园举行露天的Cocktail酒会,大家一边喝点饮料吃点东西,一边在谈着Business或者Troubleshooting;我下午看了Rosedt的RT-linux的演示,太cool了,晚上继续听了一些关于RT-patches的改进,我问有什么Benefits,回复很简单,就是
"Better User Experience",除了timer之外的每个IRQ都有单独的内核线程执行,实时的内核用起来就是非常流畅,桌面开上数百个应用程序也不会互相影响导致有停顿的现象,只要内存足够给这些应用程序;
JamesBottomley和JonathanCorbet与两位来自银行的人士在交流,你认出来了吗?
不过太困了,不到7点结束,我就返回了.
Tuesday, September 30, 2008
再说find action,提高终端下的工作效率
再说find的action,是个很有用的工具,
对于查看目录下的所有文件,普通人常用的是ls,不带任何参数的ls,碰到有子目录的情况,就cd到子目录里面,进去只为敲个ls,再又cd回来,因为当前还是主要工作目录,需要查看哪个目录时就cd到哪儿去;进阶一点的人会用ls后接目录参数,可是ls还是只能列出一个目录,对于需要同时查看多个目录的情况可以用"ls -R",可是它只列出了文件名,没有全路径,对于下一步的最大可能是cat或调用编辑器,有了全路径才是最有用的;
试试这个: "find -ls"
一次将目录下所有文件都以ls方式列表出来,可以是递归的方式看到所有文件的"ls -l"方式的结果,并且有了全路径,可以用鼠标双击全选中,再敲中键(就是鼠标滚轮)便会粘贴出来,C-A定位光标到达行首,加上个cat或者vim,阅读或者是编辑,一切操作都是连贯的;
在Shell应用中,对/proc/sys/或/sys/下的查看常常既有列表还需要阅读变量内容,以前的做法是:
find /proc/sys/vm -type f -ls -exec cat {} \;
或者需要监视这个变量值的变化情况,加上个watch,每隔1s重读一次:
watch -n1 'find /proc/sys/vm -type f -printf "%p\t" -exec cat {} \;'
find是一个简单而强大的工具,绝不只是如名称一般只有"查找"文件的功用,它的参数有两个基本类型:
- test是一个条件判断,如查按文件名查找使用"-name ...";
- action是对找到的文件的一个动作,如缺省的-print是打印全路径名,-ls是模拟ls方式列表;
缺省的action只有ls,printf等,(printf另有强大的功能),而-exec扩展方式可以后接程序执行,如上面的-exec cat读出文件内容,
但是-exec cat实在太常用了,今日作了一个patch,在find-4.5.2上面加上-cat这个action,这样上面的监视命令就可以简化为:
find /proc/sys/vm -cat
Download as text
1 | --- |
Download as text
参看这个帖子来个实用的:查看文件链接,回复find命令的人是我:有人需要一些shell功能,想到了用python去写,想法不错,却没想到的是,那一段的python代码只对应了一行find命令。
Monday, September 22, 2008
KS2008与LPC2008刚结束
Canonical的内核开发者在过去三年,从2.6.19到2.6.27-rc5之间,只向内核提交了约100个补丁!(与我在过去两年内做的差不多~)
作为对比,Greg也同样列出了各大Distro的数据:
RedHat排名第二,Novell排名第五,Mandriva是第45,Canonical是第81,
而社区发行版中,Debian和Gentoo分别排名第41和第49,
其实,早在上半年JonathonCorbet就以LWN文章提出了对Canonical的批评,但这次Greg的这次更猛烈的批评则是第一次将问题的严重性推向聚光灯下:
- Kernel Log: The second day of Kernel Summit 2008; criticism of Ubuntu at the opening of the Linux Plumbers Conference
- Linux Plumbers Conference 2008 Keynote
说到这个排名,可能有人对更为神秘的第一名感兴趣,那么,这个神秘的能够超越RedHat的第一名究竟是谁呢?
那就是我们伟大的Amateurs(业余爱好者)!Kernel的发展自始至现在仍然保持着平民化的Amateurs为主导的发展!
Tuesday, September 02, 2008
manually upgrade x11-drivers/nvidia-drivers
So let's upgrade it manually:
http://paste.ubuntu.com/42782/
Index: NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv-linux.h
===================================================================
--- NVIDIA-Linux-x86-173.14.12-pkg0.orig/usr/src/nv/nv-linux.h
+++ NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/nv-linux.h
@@ -77,6 +77,7 @@
#if !defined(KERNEL_2_4)
#include <linux/sched.h> /* suser(), capable() replacement */
+#include <linux/pid.h> /* for find_pid */
#include <linux/moduleparam.h> /* module_param() */
#include <linux/smp_lock.h> /* kernel_locked */
#include <asm/tlbflush.h> /* flush_tlb(), flush_tlb_all() */
@@ -104,7 +105,7 @@
#endif
#include <linux/spinlock.h>
-#include <asm/semaphore.h>
+#include <linux/semaphore.h>
#include <linux/completion.h>
#include <linux/highmem.h>
Index: NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/os-interface.c
===================================================================
--- NVIDIA-Linux-x86-173.14.12-pkg0.orig/usr/src/nv/os-interface.c
+++ NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/os-interface.c
@@ -704,7 +704,7 @@ RM_STATUS NV_API_CALL os_kill_process(
U032 sig
)
{
- return kill_proc(pid, sig, 1) ? RM_ERR_OPERATING_SYSTEM : RM_OK;
+ return kill_pid(find_vpid(pid), sig, 1) ? RM_ERR_OPERATING_SYSTEM : RM_OK;
}
/*******************************************************************************/
this patch also reflects some changes in 2.6.27:
1. asm/semaphore.h => linux/semaphore.h stands a common implementation in all arch;
2. kill_proc => kill_pid
But there's still a problem haven't been resolved, it reports license issues in modpost phase:
1. kill_pid is exported with EXPORT_SYMBOL_GPL, can be used only by GPL code;
2. nvidia.ko is licensed with "NVIDIA", not GPL;
# cd /var/tmp/portage/x11-drivers/nvidia-drivers-173.14.12/work/NVIDIA-Linux-x86-173.14.12-pkg0/usr/src/nv/
# make -C /usr/src/linux-2.6.27-rc5/ M=$PWD modules
the core functionality of nvidia.ko is hidden in nv-kernel.o, that's completely binary, there's no corespoding nv-kernel.c, results of `strings` told that the license is declared in this binary file;
the last killer approach is hexeditor! use it to hexedit the string to "GPL\0", compiling well, insmod well, all runs OK!
Hexediting is an ugly hack, hope my next machine can run toally under free operating system, no hidden binary anymore!
Friday, August 29, 2008
monitor the system totally with dstat
- "vmstat 2" to get a total system "proc,mem,swap,io,sys,cpu" load;
- "iostat 2" to get all block devices with seperated I/O bandwidth data;
- "ifstat 2" to get different network interfaces network activity;
- "top" to get the most CPU-consuming processes;
gektop@tux ~ 0 $ dstat -M proc,cpu,mem,sys,page,net,disk,topcpu,topmem,topio,topbio 5The meanings of "proc,cpu,mem,sys,page,net,disk,topcpu,topmem,topio,topbio" is obvious, it speaks for itself, the design of dstat is all modular, you can use many other modules than this:
---procs--- ----total-cpu-usage---- ------memory-usage----- ---system-- ---paging-- -net/total- -dsk/total- -most-expensive- -most-expensive- ----most-expensive---- ----most-expensive----
run blk new|usr sys idl wai hiq siq| used buff cach free| int csw | in out | recv send| read writ| cpu process | memory process | i/o process | block i/o process
0 0 6| 39 9 37 14 0 1| 272M 25M 193M 12M| 760 2178 | 0 21B| 0 0 |5577k 1645k|firefox 10|firefox 125M|mount.ntfs- 10M:8223k|mount.ntfs-2699k: 736k
3 0 8| 93 6 0 0 0 1| 252M 25M 189M 37M| 546 980 | 0 0 |3197B 564B| 109k 675k|firefox 15|firefox 125M|mount.ntfs- 771k:3056B|pdflush 0 : 82k
3 0 71| 77 16 0 7 0 1| 257M 26M 191M 29M| 548 1247 | 0 0 |5445B 689B| 230k 544k|firefox 13|firefox 125M|mount.ntfs- 771k:3056B|pdflush 0 : 94k
2 0 24| 85 14 0 1 0 0| 251M 26M 192M 33M| 550 1046 | 0 0 |1173B 418B| 50k 344k|firefox 12|firefox 125M|mount.ntfs- 771k:3056B|pdflush 0 : 85k
2 0 25| 85 12 0 2 0 0| 275M 26M 194M 8044k| 517 1024 | 0 0 |1206B 448B| 104k 642k|cc1 22|firefox 125M|mount.ntfs- 771k:3056B|pdflush 0 : 47k
2 0 9| 88 9 0 2 0 1| 278M 26M 193M 5568k| 558 1056 | 0 0 |1383B 615B| 110k 451k|cc1 26|firefox 125M|mount.ntfs- 771k:3056B|pdflush 0 : 51k
$ (cd /usr/share/dstat/; ls *.py)So with "dstat -M battery 5", you can get the most battery consuming components when hardware supports ACPI.
dstat_battery.py dstat_gpfs.py dstat_mysql5_com.py dstat_mysql_keys.py dstat_postfix.py dstat_thermal.py dstat_topoom.py dstat_vzcpu.py
dstat_cpufreq.py dstat_helloworld.py dstat_mysql5_conn.py dstat_nfs3op.py dstat.py dstat_topbio.py dstat_utmp.py dstat_vzubc.py
dstat_dbus.py dstat_innodb_buffer.py dstat_mysql5_io.py dstat_nfs3.py dstat_rpcd.py dstat_topcpu.py dstat_vmkhba.py dstat_wifi.py
dstat_freespace.py dstat_innodb_io.py dstat_mysql5_keys.py dstat_nfsd3op.py dstat_rpc.py dstat_topio.py dstat_vmkint.py
dstat_gpfsop.py dstat_innodb_ops.py dstat_mysql_io.py dstat_nfsd3.py dstat_sendmail.py dstat_topmem.py dstat_vmknic.py
Its module is just a simple py file with a simple class derived from dstat, so if there's no one fit for you, you can write your own dstat module.
Note: only CLI-based utils discussed here, I know there are many GUI-based or graph-generating tools can do better graphics, but on ther server side, "
Simple is better than complex."
Saturday, August 09, 2008
(setq cscope-do-not-update-database t)
(setq cscope-do-not-update-database t)
Sunday, July 13, 2008
some most useful bash features
Invoke an editor on the current command line, and execute the result as shell com‐
mands. Bash attempts to invoke $FCEDIT, $EDITOR, and emacs as the editor, in that
order.
insert-completions (M-*)
Insert all completions of the text before point that would have been generated by pos‐
sible-completions.
complete-into-braces (M-{)
Perform filename completion and insert the list of possible completions enclosed
within braces so the list is available to the shell (see Brace Expansion above).
insert-comment (M-#)
Without a numeric argument, the value of the readline comment-begin variable is
inserted at the beginning of the current line. If a numeric argument is supplied,
this command acts as a toggle: if the characters at the beginning of the line do not
match the value of comment-begin, the value is inserted, otherwise the characters in
comment-begin are deleted from the beginning of the line. In either case, the line is
accepted as if a newline had been typed. The default value of comment-begin causes
this command to make the current line a shell comment. If a numeric argument causes
the comment character to be removed, the line will be executed by the shell.
Keyboard Macros
start-kbd-macro (C-x ()
Begin saving the characters typed into the current keyboard macro.
end-kbd-macro (C-x ))
Stop saving the characters typed into the current keyboard macro and store the defini‐
tion.
call-last-kbd-macro (C-x e)
Re-execute the last keyboard macro defined, by making the characters in the macro
appear as if typed at the keyboard.
display-shell-version (C-x C-v)
Display version information about the current instance of bash.
Friday, July 11, 2008
one line curl paste
Recently an utility named wgetpaste run into my field, but after coming across it, I found it was really a shell script, it just organizes arguments and transfer to wget, in use of post mode of wget,
$ head -n1 /usr/bin/wgetpaste
#!/bin/sh
In fact, I found that curl is better at this job, when I post some code to a paste service, just one curl command is enough:
$ curl -d poster=chengrq -d syntax=c --data-urlencoded content@file.c \
http://paste.ubuntu.com
And, if you would like to read from a pipe other than a file, you could use '-' to replace the filename, it always did like what you think of that!
BTW, ubuntu did a good job on the paste service, supporting many syntax highting.