2009年5月13日星期三

3G时代,wifi是主力,而3G是补充

5月13日,针对三大运营商已开始3G大战,著名电信专家、北京邮电大学教授阚凯力作客新浪科技“对话3G”系列访谈:电信日名家说3G。阚凯力表示,推上网本和iPhone(手机上网)是3G的自杀行为。

  嘉宾简介:

  阚凯力,北京邮电大学经济管理学院教授,著名电信专家;《电信法》起草专家咨询委员会委员;曾任世界银行电信政策和发展战略顾问;主要研究领域为电信及信息产业政策和企业经营策略。

  精彩观点摘要:

  •三个3G运营商资费都偏高,只能讲是不得已而为之。因为用户一多,3G的网络不可能支撑这么多用户,所以必须资费要高,把大部分用户拦在外面不要用;所以3G现在都变成你可以买得起,但是你用不起,资费绝对要高。资费不高,大家一用,整个系统瘫痪,这是必然的结果。

  •3G根本不可能承担大规模的使用量,大量使用,带宽就会拥堵,更不要说现在推的上网本、数据卡,这是要3G的命。

  •真正能够解开3G困境惟一的就是中国电信的天翼,它的固网资源多,可以明推3G,暗推WIFI,这是中国电信的唯一解决方法,实际上它的天翼将来靠的也主要不是3G。

  •2G用户谈不到大规模转换到3G,因为等不到转换的时候就已经都变成WIFI了。而且,3G用户数量要大量增加的话,现在的3G网络根本无法承受,而扩容的成本,运营商也是无法承受的,所以资费就高;资费一高,用户就承受不了,就不用。所以,这就是一个难堪的自相矛盾,左右为难。所以,我认为,3G在中国死定了,根本不存在几年内全部转换问题。

  以下为访谈实录:

  各位新浪网友,大家好!

  主持人:各位网友大家好,一年一度的5•17国际电信日马上来临,在这个时刻正好是我国3G如火如荼上马的时期,因为5•17那一天,中国联通就要宣布3G试商用放号,而其它两个运营商实际上已经放号了,将正式形成三大运营商3G同步登台表演的时代。在此关键时期,我们有幸邀请到背景邮电大学著名教授阚先生做客新浪访谈,先请阚教授跟各位网友问声好。

  阚凯力:各位网友大家好,今天很高兴又一次来到新浪和大家进行交流。

  主持人:对3G和运营商,我们之前也曾经探讨过一些,但是以前探讨的历史和现在完全不一样,因为现在真正是3G已经放号了,包括计费方式、资费标准已经出台了,尽管中国联通没有宣布,但是网上已经流传很多。首先我们想谈一下3G资费,很多人认为三个3G运营商资费都偏高,您怎么看?

  阚凯力:只能讲是不得已而为之,因为可能很多网友都知道,我在咱们国家是对3G最大的反对派,我一直坚持这个观点:3G没有用,中国上3G不管是哪个技术标准都是死定的。所以,现在网友反映资费偏高,这是肯定的,因为在于3G内在不可调和的本质矛盾。

  主持人:为什么不可调和?

  阚凯力:3G一个基站或者是一个频道,也就是几百K,即使到了SDPA,也才几兆。这个容量非常有限。现在有些人说上3G速度很快,为什么?因为一个基站只有你一个名额。一个基站比如覆盖半径是5公里,那么它的覆盖面积就是70、80平方公里。在3G的用户真正发展起来的时候,这70、80个平方公里里会有多少用户?至少上万。那么,上万个用户来共享3G的基站,共享这几百K甚至几兆,每个用户能有多少K,这个帐很容易算。

  所以,3G根本不可能承担大规模的使用量,更不要说现在推的上网本、数据卡,这是要3G的命。

  为什么这么说?现在是没人用,运营商在这里干着急。他就想,上网的话要用计算机,要用上网本,但是上网本的平均使用数量比手机通话高多少倍?平均一个电话通话时长座机是110秒,手机也就是1分钟左右,计算机上网本也好,数据卡也好,上网平均多少时长?大家心里都有数,绝对不只一两分钟。这个东西要大规模普及推广,尤其是用这个来进行网页浏览,数据下载量有多大?3G的网络系统怎么可能受得了?绝不可能。

  所以,就像昨天有的专家讲到,绝对不能发展用户数量太大,这就是3G一方面的尴尬。但是另一方面,没有用户,用户少了,它又活不了。所以,用户要体验好,就得必须用户少,用户少运营商又活不了,所以3G本身就是一个没有前途的系统,尤其不可能承担计算机或者是上网本的大规模地上,移动互联网绝不可能,所以上网本和数据卡本身是一个3G自杀行为。

  前几天新浪报道美国AT&T就是因为iPhone,用户体验好了,但光是网页浏览一下占了它总带宽的69%。

  四五年前,2005年还是2006年,联通推数据卡,在它的CDMA网络上推,在上海联通的数据是70%的带宽被数据卡占用了,但是只挣回来7%的收入。

阚凯力:在3G系统上,上网本和数据卡大规模重复使用一旦发生,3G不是死定了吗?肯定死定了。所以,推上网本是3G的自杀行为,网络不可能支撑这么多,所以必须资费要高,把大部分用户拦在外面不要用,所以上网本也好,现在都变成你可以买得起,但是你用不起,资费绝对要高。资费不高,大家一用,整个系统瘫痪,这是必然的结果。所以,3G又不能不用,又不能让大家放开了用,所以用户不可能有好的体验,要么就资费过高,要么就网络不通,二者必居其一。

  现在对运营商来讲首要的问题是用户太少,但是你问他,他敢降资费吗?像移动也好或者是联通也好,差不多都系两三百块钱一个月包几个G的流量,几个G够干什么?

  主持人:联通是150块钱包3个G,200块钱包5个G。移动一开始很贵,但是上个月降下来了,80块钱包月不限量,电信是1700块钱包13个月。

  阚凯力:80块钱不限量,它死定了。

  主持人:为什么?

  阚凯力:80块不限量,很简单。我刚才讲一个G就算覆盖半径5公里,这几十平方公里,10个在这儿下载电影的,基站不瘫痪掉才怪。网友都拿互联网用迅雷下载过电影,这是找死。

  主持人:所以北京移动推出80块钱不限量套餐的情况下,都没敢宣传。

  阚凯力:80块钱不限量,我都没听说过,在网上都没查到,昨天我刚查公司资费状况,80块钱不限量是找死,比有线的ADSL还便宜。你能够想象它享受到2、3个G速率带宽的下载,见鬼。3G是不可克服的内在矛盾。

  主持人:这是从运营商的角度来说,反过来用户愿意接受这样的资费吗?

  阚凯力:我看很难,不敢说一点用户都没有,但是绝对不可能普及。这就带来另外一个问题,3G为什么全世界普遍亏损?原因就在这儿。又不敢放开了让别人用,又不敢不让人用,处在左右为难的尴尬局面,全世界如此,所以全世界的3G运营商普遍亏损,这是将近10年的历史所证明了的。那么3G到中国就能搞出什么新的神话出来?恐怕还不容易。

  主持人:运营商其实面临着一个困境,两个方面,一个是用户上不来,总收入就上不来;一个是用户上来了,ARPU值上不来,总数还是上不来,怎么办?

  阚凯力:而且用户上来了,ARPU值没上来,系统先垮掉了,然后马上就投诉,然后就退网,就等着打官司,好不了。尤其像上网本、上网卡,这并不是什么新的东西。西方各国都是傻瓜?难道都不懂?不可能。美国AT&T就是因为推了一个iPhone(手机上网),用户体验稍微好了一些,所以大家都在用,美国充其量到目前为止也就是几百万个iPhone,它的批量还不是那么大,新浪报道的标题是“AT&T的网络已经是不堪重负,里面数据显示69%的带宽全部用iPhone去浏览网页”。这种情况怎么可能支撑下去?中国推上网本、数据卡,屏幕比iPhone大,用户体验当然好,那流量肯定比iPhone大。

  主持人:但目前来看运营商还不断努力开发增值业务,增值业务开发出来还不是鼓励大家上网吗?

  阚凯力:只要上互联网,不需要鼓励,所有增值业务互联网上都有。

  主持人:要鼓励3G特色的东西。

  阚凯力:只要能够上互联网,任何增值业务上面都有。如果互联网上没有的话,实际上2G就全都有了。所以,3G号称比2G惟一的优势就是数据的带宽高,但是这是吹出来的。大规模应用是顶不住的。

  主持人:您担心一旦用户数上来,网络就会垮。

  阚凯力:我不担心,我是很肯定。

  主持人:现在3G终端有三种,您刚才提出有上网本、上网卡、手机。是不是3G手机的应用不大?

  阚凯力:因为用户体验不好,这么点个小屏幕,浏览什么网页,看不见,自然用的就少。

  主持人:现在有些业务还是需要带宽的,像视频通话。

  阚凯力:全世界证明视频通话是最没有人要用的业务,而且只有这一种业务是2G提供不了的,其它的所有3G的业务,比如现在有些媒体报道,像手机报,手机报明明2G上都有,和3G根本是风马牛不相及。

  主持人:也就是您觉得3G手机的业务应用不会占用太多带宽?

  阚凯力:能够发挥3G特点的业务根本就没有,不存在,除了视频通话。

  主持人:什么全球眼,中国电信的增值业务,可以用手机监控家里,那总有用吧。

  阚凯力:这实际上是属于视频通话的范畴,这个业务3G有,2G没有,但是到底有多少人用?没有听说西方哪个国家靠这个把3G的使用带动起来。

  主持人:上网卡应该体验不错。

  阚凯力:是,体验不错。

  主持人:是一个重要的应用。

  阚凯力:没错,是在用户少的时候体验得不错,像你说80块包月不限量,如果几十平方公里里有几个人下载电影,你再试试体验如何。

  主持人:有一个问题,是不是3G到了大规模应用的时代就会限制P2P,目前没有一个运营商限制。

  阚凯力:我不要限制P2P,视频点播总可以吧,有几个人用视频点播就完蛋,一样。是P2P或者不是P2P,与此无关。

  主持人:如果是P2P就更占带宽。

  阚凯力:是P2P和不是P2P惟一的区别在于它有没有服务器那里的瓶颈。P2P没有信号源的服务器的瓶颈,所以有多少传输带宽就充分利用。比如新浪,我们点击一个新浪视频节目,因为现在视频节目新浪有很多,那要受到新浪服务器端口带宽的限制,所以有时传输带宽不能充分利用。本身这两种信号,在传输中本身对占用带宽是没有丝毫区别,都是同样的视频。

主持人:您设立一个合理的资费区间。

  阚凯力:3G下来。中国根本就不应该上3G,中国具有全世界最强大、质量最好、技术水平最高、覆盖最广、规模最大的毫无争议的全世界最好的2G网络,在这种情况下,3G在中国的推出叫做自己找死。

  主持人:您的意思,从2G直接升级到4G就够了。

  阚凯力:不对。还是刚才讲的,哪怕是几个平方公里,有多少用户?这种共享是不可能的,最终还要靠WIFI。

  主持人:接下来请教您一下,目前是三大运营商运营3G,您觉得哪个更有优势?从哪个层面来讲?

  阚凯力:从3G的角度来讲,三个都一样,都死定了。但是,其中有一家推的3G套餐里边暗含杀机,是借着3G的名义推WIFI,是中国电信。

  主持人:怎么理解?

  阚凯力:中国电信的天翼最大的特点之一,它是含WIFI的,这是因为中国电信目前所处的局面决定的,中国电信现在在移动通信领域是处于最不利的地位。3G像刚才讲到,本身在全世界都证明是一个推广非常困难的、缺乏应用的系统。所以电信CDMA2000,虽然从技术成熟的角度,比移动的TD—SCDMA好一些,但是又比不了联通的WCDMA。

  但是这个无关紧要,因为即使WCDMA在全世界也都是赔钱的。3G肯定不是中国电信的出路,那么2G它就更惨了。中国电信的CDMA不但完全没有办法和中国移动的GSM来较量,甚至都不是联通的GSM的对手。CDMA的系统设备、网络设备平均成本要比GSM贵30%,而它的手机终端也平均要贵30%,这是多种原因造成的。

  首先一条,因为在全世界范围缺乏规模经济。同时,移动手里现在有四、五亿的用户,联通手里GSM用户也有一亿多,中国电信花了1100个亿所买的原来联通的CDMA,号称是4200万,接过来以后一清点少掉三分之一,只有2800万。所以,它从用户的数量也好,或者是从它的经济性、竞争性来讲,完全没有办法和中国移动、中国联通较量。所以,它的2G也是翻不了身的。它的固网现在众所周知,在全球范围是在每况愈下,业务量减少,用户流失,中国电信的出路何在?那它没有活路了。

  怎么办?中国电信的天翼好就好在它悄悄地把WIFI放在里面,明着是推3G套餐,实际上它将来的无线移动互联网的业务流量主力靠的是WIFI,而且工信部现在也在运营商的要求下,手机也允许上无线局域网。所以,手机一上了WIFI,马上紧跟着就是网络电话。

  主持人:网络电话中国电信敢推吗?没有政策。

  阚凯力:不需要推,用户自己的手机自己下载,多少用户从国外买回来的手机,SKYPE已经预装在里面了。工信部即使说无线局域网只允许中国标准WAPI,但是只要把其中的认证保密功能不去激活,它实际上就是标准WIFI。第一,我现有的套餐就是3G加固网加WIFI,手机现成有WIFI,用户自己去下载网络电话软件,电信运营商管不了,我也不想管。那么好了,不要说50块钱包月,就拿你来说,100块钱包月,你家里的座机和你的手机,有线的、无线的、宽带的、窄带的、上网的、话音的,而且这个话音是全球包月,你打任何国际长途都不花钱了,100块钱一个月,你要不要,肯定我们要。现在家里安一个ADSL还100呢。这样所有的通信费用都包在里面了,中国电信现在座机的ARPU一个月才20多块钱,30块钱不到,我推100块钱全包月,你看用户往哪儿跑?而且WIFI54M带宽,这是最起码的,半径也就几十米、一百米,几个人下载电影带宽都够。真正WIFI不覆盖的,什么高速公路、城市郊区,它再双模自动转换到3G上。所以,是3G成为WIFI的补充。

  主持人:明修3G,暗度WIFI。

  阚凯力:典型的明修栈道,暗渡陈仓,打着3G的旗号,实际上在做WIFI,充分发挥中国电信固网的优势,它现在拼命在推光纤到户、光纤到楼,就为大带宽的WIFI完全做好准备了。而且现在在南方的每个城市,已经几千个几千个在修WIFI热点,这个很贬义。比如北京市六环以内,一千平方公里,每平方公里20个最多30个基站,我是指室外的平面覆盖,总够了吧,全覆盖。20个、30个WIFI基站才多少钱?在中关村有的是,一百多块钱一个。我五年前买的。

  主持人:发射信号哪里来?

  阚凯力:就是WIFI的路由器。

  主持人:基站总有一个源头。

  阚凯力:源头就是中国电信自己的光纤、光缆网。咱们说多一点,一千块钱一个,北京市六环以内,一千平方公里,每平方公里设30个基站,六环以内3万个基站,一千块钱一个,多少投资?3000万。这个比3G覆盖那是数量级投资的差异。你说一万块钱一个,才3个亿。从成本优势上来讲,3G差的数量级根本没办法比。然后再加上它的带宽,一上来最起码,中关村卖100多块钱的无线路由器就是54M,比如10个人去分,都下载电影,每个人还有5M。5M用不了吧。

  主持人:WIFI不能穿透楼层吧?

  阚凯力:我讲的是室外覆盖,室内就是我给你天翼你包月,有线的宽带包在里面100块钱一个月,你家里固定的座机,光纤到楼,WIFI自己家里,到中关村100块钱买一个安进去,室内家里全覆盖,办公室也全覆盖,到外面用中国电信公共的,90%以上的话务量全都用了。

  主持人:WIFI手机没有正规的,不能老买水货。

  阚凯力:政府已经开了口子,上个月工信部已经说了手机上可以上WAPI。

  主持人:是可以上WAPI,没有说能上WIFI。

  阚凯力:WAPI其中的保密功能不激活就是WIFI。

  主持人:但是还是得买终端,带WAPI的终端。

  阚凯力:深圳华强本身山寨手机全搞定了。我们有很多朋友,尤其电信业内,都在淘宝网上买香港的水货手机,为的什么?不为图便宜,就为了手机上的WIFI。它里边大部分都是预装的SKYPE。即使没有预装,你有WIFI,自己下载一个就够了。有WIFI的地方就用网络电话,全球免费了。

  第一,刚才所说的3G的不可克服的内在矛盾,第一,带宽共享问题,WIFI不存在。

  第二,成本问题,它更不存在,它推100块钱包月,如果再狠一点,推50块钱,有线、无线、宽带、窄带、话音与上网浏览都包在里面,50块钱或者100块钱一个月,不限量,也不计费,你按月交钱就行了,没有任何计费投诉。中国的老百姓会用谁的什么东西,不是很明显了吗?所以,中国电信的天翼叫做暗含杀机,就是在这里,它是借着3G的名义,实际上将来真正发挥它固网的优势来推WIFI,而WIFI是中国移动的致命弱点,因为它推WIFI是属于自杀行为。

主持人:为什么3G运营商有的是按流量计费,有的是按时长计费,比如,中国移动按流量计费,是不是担心互联网结算问题?

  阚凯力:不是互联网结算问题。第一,因为它没有遍布到千家万户的固定网络,移动只有城域网,接到各个基站,没有遍布到各个楼的用户接入网。所以,它修WIFI成本比中国电信和中国联通的固网成本至少要高几十倍甚至几百倍,因为它重新要铺这个网络。

  主持人:租可以吗?

  阚凯力:谁会愿意租给移动现在一家独大的竞争对手吗?即使是租也是需要把移动打趴下之后再租。这是第一成本。

  第二,中国移动现在的话音70%、80%的收入,这一来全没了。中国移动的ARPU是60、70块钱,50块钱包月,它敢吗?电信没问题,现在它的ARPU是20几块钱。50块钱包月没问题,两边一打价格战,你就得趴下来。所以,3G必然在中国垮台,但是是中国的开放的移动互联网的一个铺路石。

  主持人:其它运营商怎么才能应对中国电信呢?

  阚凯力:联通就做跟随者吧,联通可能问题还没有想明白,但是只要看中国电信这样做了,联通的北方市场肯定也会这样做。移动就发挥它的优势吧,偏远人迹罕见的地区去发挥它的覆盖优势,也还会有一些业务。

  主持人:移动提供无线固话,利用3G。

  阚凯力:那是因为它现在实在没有用户。正是因为如此,所以我们看到这三个运营商现在3G套餐不一样,移动和联通都是计流量的,因为它们知道流量的厉害,大家一敞开用,网络就会瘫痪。但是电信是计时的,计时的下一步就是包月,无限量包月。为什么电信敢这样做?他就是为下一步的WIFI在做准备。因为我有WIFI在后面做后援,而且用这个方式把WIFI引导进来。在业务量上来之后,主要就靠WIFI了。所以,这是中国电信的战略部署,他就敢。联通是没想清楚,移动要么是没想清楚,即使想清楚他也不敢这样做,因为这属于自杀。

  主持人:按时计算好还是按流计费好?

  阚凯力:现在对消费者最好的就是不限量,包月。

  主持人:没有。

  阚凯力:有,电信现在是时长,换句话说,它就可以允许你用它来下载电影,搞P2P。它为什么敢这样做?为什么只按时长不限流量?因为它是有WIFI做它的后备队,而且就靠不限流量一方面来吸引客户,另一方面把WIFI推到前台,使3G成为WIFI的出场锣鼓,或者说叫序言。

  主持人:假如用户普遍欢迎按时长计费,中国联通和中国移动迟迟不搞按时收费,会不会对他们两家有影响?

  阚凯力:当然,现在上互联网按流量计算,典型的不合理。原因是什么?我们现在上互联网,包括新浪的网页,看一篇文章,旁边的广告、图片多大流量?我真正看的文章有多大流量?文章顶多几十K,旁边的图片几M,流量费大部分花在看图片上,对新浪不利,对消费者更不利。所以,流量计费是典型最不合理,根本是吃不开的。但是因为移动和联通怕流量超标,导致系统瘫痪,所以它不敢这样做,而电信敢这样做是因为它根本就没打算依靠3G,而是通过这个,假借3G的名义来导出WIFI。

  主持人:三个运营商上3G之后放号速度会怎么样?2G到3G,什么时候开始大量转换?

  阚凯力:谈不到转换,等不到转换的时候就已经都变成WIFI了。因为刚才讲了,用户数量要增加的话,现在的网络根本无法承受,而我扩容的成本,运营商也是无法承受的,所以资费就高,资费高,用户承受不了,用户就不用。所以,这就是一个难堪的自相矛盾,左右为难。所以,真正能够解开这里面的困境,惟一的就是中国电信的天翼,明修栈道,暗渡陈仓,明推3G,暗推WIFI,这是中国电信的唯一解决方法,实际上它的天翼将来靠的也主要不是3G。所以,还是我说的那句话,3G在中国死定了,根本不存在几年转换问题。

  主持人:今天阚教授做客新浪的访谈,聊得非常精彩,但是由于时间关系,最后我们的访谈就要结束,最后请阚教授跟网友说几句话。

  阚凯力:我们说实践检验真理,中国的3G发展未来是不是真的按照刚才我所预见和设想的路径去发展,我们只有看今后几年的时间。但是我相信,我们需要等待的时间并不需要太久。

  主持人:阚教授之前好几个著名的预言差不多都实现了,比如说认为中国电信南北拆分不是一个科学判断,现在果真已经改了。他预测的小灵通三年到五年灭亡,也差不多。我们这次再拭目以待,三年之后再看阚教授今天做客新浪访谈的预言准不准。

  阚凯力:同时我还要再说一句,因为中国电信的天翼里面所暗含的杀机以前没有人在公开媒体上公开点破,希望我们的电信监管部门不要采取一些其它没有必要的措施,希望还是坚持“三个代表”,代表先进生产力、代表广大人民群众的根本利益,也就是代表广大消费者的利益,从政策层面协助中国电信天翼计划的成功。

  主持人:好,今天阚教授的聊天到此结束,谢谢,再见!

  阚凯力:谢谢大家!


2009年5月10日星期日

ARM ADS1.2 IDE使用经验

一般都是用make/Makefile的命令行形式来编译,用ADS1.2 IDE环境时,从其它人那里拷贝过来的project,就是编译不过去,原因是去寻找此前创建这个project时的路径。我认为路径的问题,修改路径,也不行。后来google一下,得知:
工作目录不能使用中文路径;移动了工程建立时的工作路径后,应该Project/Remove Object Code。并重新编译工程.
果然,重新Make/F7就搞掂了。我这时想起来,要是从其它人那里拷贝过来,一般来做make clean,然后再重新make。换到IDE环境,又忘了。

2009年5月7日星期四

产品经理必看,产品开发要符合人性的要求

在Platt《Why Software SUCKS》一书中,提及最具决定意义的三大人性:饥饿、性和懒惰。这能解释很多问题: 

1. 麦当劳和肯德基,无论食品本身多垃圾,但满足了人性中饥饿 + 懒惰,不成功都难。 

2. 六月天,满足了性,无需多说。需要补充的是,饥饿 > 性 > 懒惰。比如六月天再麻烦,依旧能吸引大批会员赴汤蹈火。 

3. jQuery的成功,是因为在满足人性懒惰的需求上下了很大功夫:容易上手,方便使用。至于代码,绝大部分使用者是不会去看jQuery源码的,就如绝大部分家庭主妇不会去研究冰箱的运作机理一样。至于性能,大部分情况下也是遇不到的,即便遇到了,大部分用户也不会在意慢个0.1秒。而且网页的打开速度也并不是越快越好。 

4. 为何BS模式兴起?为何各种RIA方案中,目前只有Ajax如日中天?为何云计算一夜之间腾云驾雾?懒啊懒。 

5. Twitter为何流行?两个字:简单。简单是表象,隐藏的是懒惰。我爱Twitter,就像我爱加菲猫一样。140字,不是限制,是自由。只能输入文字?很好,我本就这么懒。懒对于用户体验来说,就如五弦琴的第六弦,看不见但却至关重要。 

6. 再说淘宝网的崛起。我觉得主要因素不是价格便宜,而是满足了人性中的懒。在家里点点鼠标,就能省去现实购物的烦恼,实在太好。至于比价,特别是年轻的网购族,我不信会有多少人去自找麻烦(不愁麻烦去比价的,是因为第一人性:饥饿。随着人类生活水平的再进一步提高,饥饿不那么重要后,比价的作用将更小)。 

7. 对于用户体验研究来说,就得疯狂的去想怎样方便用户能更懒地使用产品。很佩服Apple, 推出iPod, iPhone等产品,锲而不舍地让用户能更懒。Windows 7也开始加入这一潮流,这不,还没RC呢,就火爆得不行。《The Laws of Simplicity》,《Don’t Make Me Think》等书籍,贯穿的一个核心理念,也就是一个字:懒。 

最后归纳成著名的射雕终极定律: 

人性定律:凡是不能迎合三大人性的技术,势必衰竭。凡是能够满足三大人性的软件,终究流行。 

懒懒定律:凡是优秀的用户体验,必定是满足人性懒惰的。 

2009年5月6日星期三

人生如打牌

人生就象一场牌局,每个人生下来就已经是一个玩家,坐上了桌面,至死方休。
30岁以前,我们主要是在摸牌,不断积累手中的筹码。我们很少出牌。因为我们经验不足,筹码太少。
而30岁以后呢,我们出牌的次数就多了。一次次的出牌,拿牌,如果顺利的话,每一次小小的牌局后,我们都可以顺利进级。
每一次出牌,是对你决断力的考验。该不该出牌,这也是考验你的全局判断和把握能力。
只知道出牌,不知道去摸牌,那结果就是手中无牌可打。只得重新来摸牌,从第一级玩起,还好,你的经验会帮助你进级更快一些。
而打牌最重要的就是猜牌,通过各种渠道了解对手手中的牌。你得尊重裁判,不能出老千,否则,就可能直接出局。

2009年5月5日星期二

[管理文章]富士康副总裁:乱世中不变革就倒掉


2008年是全球经济从云端坠入地狱的一年,全球发达国家38年来首度集体衰退,全球贸易总额27年首次下滑,美国创造历史上最高的年度财政赤字,赤字高达4550亿美元,联合国国际劳工组织估汁2009年全球失业人口达到2.1亿人,创10年来新高。
  这让我想到北京奥运会的帆船比赛。帆船比赛其实也是一种比拼高科技的比赛,为什么这么说呢?如船怎么设汁、船怎么减少水的阻力、帆怎样能够借助最大的风力,都要用到高科技;另外还与人的技巧有关,操帆的人必须要懂得风向、潮流,同时要懂得运用技巧才能航行得最快。参加奧运会帆船比赛的都足各国顶尖的高手,用得也是采用高新科技所设计的帆船,因此只要环境一样的话如风力、海潮、水流向、高科技的帆船、选手的技术等,其结果就形成我们眼中常看到的:帆船一个紧跟着一个的局面。

  所以,只要外部环境一样,挑的路线也一样,那么第一名水远是第一名,第二名永远是第二名,很难超越。如果你一开始就把这个位置抢到,对手就很难超越。那么,当你是第二名、第三名,你超越的方法就只有一个:那就是改变。你要改变你的航线,因为你顺着这个航线走,你永远不可能超越,因为所有的条件都一样。

  乱世出英雄

  在混乱的世界里是需要努力才能生存的时代,但也是出英雄的时代。对于小市场份额的企业来说,乱世也意味可遇不可求的机遇将要来临,因为旧的格局已经被打破.市场开始洗牌。

  同样,在现在的产业竞争显向,我们若只是COPY竞争者的策略,那么我们永远只能是第二、第三,因为他总是走在前面。但是,面对2009年的经济衰退,我反而觉得很兴奋,俗话说:“乱世出英雄。”当然,在乱世里面也会有很多的悲剧,也许很多企业在乱世里关门倒闭,很多人也会因此失去饭碗。所以在混乱的世界里是需要努力才能生存的时代,但也是出英雄的时代。

  一般来说,宏观经济的好坏,只能影响大的国家,像美国GDP的增长,一定是跟全球的经济成长挂钩,这也不难理解美国为什么要在财政赤字那么高的情况下还要拿出一大笔资金去援助第三世界的小国?因为他的经济规模太大,其GDP是跟全世界总GDP联动的,美国经济要想走出衰退,他就要帮助全世界经济实现增长,反而对一些小国家来讲,GDP不跟全世界挂钩,所以他受外部的影响要小。同样的道理,宏观经济的风吹草动对大企业的影响要大得多,比如说手机产业2009年预估会下降5%,影响最大的是哪几家?像诺基亚,就已经修改了财报,三星也调降了财报,其他几家手机大腕也调低了2008年第四季的预估,MTK联发科也大幅调低了出货量。但是我们MHMobile handset在手机巾场的份额还非常小,对于小市场份额的企业来说,乱世也意味可遇不可求的机遇将要来临,因为旧的格局已经被打破.市场开始洗牌。

  对于一个小的企业来说,不管宏观经济好与坏,景气还是不景气,你都要去抢别人的市场份额,只不过在不景气的时候,被抢的人会更加抵抗,我们用的力气要更大一点。我们现在就好象在进行帆船比赛,突然之间,狂风大浪,天气巨变,让选手没办法把握正确的潮流及风向,这时候,逼得每个人都需要改变方向。所以我们要改变方向,要创新,要变革,因为你不创新,不变革的活,那么在乱世里面你就会牺牲,企业就会倒闭。

  不成长就是一潭死水

  一个不成长的组织,即使有好的人才,这些人才有企图心,有上进心,有责任心,也一定会离开,留下的则都是一些不胜任的人,那么这个组织就面临灭亡的命运。
  变革创新是行动,成长是结果,但是我们却把成长摆在第一位,在这么不景气的时代,我们凭什么成长?就是要靠创新、靠变革。但是我们企业为什么要追求成长?这里讲的成长是营收的成长,市场份额的成长。2009年越困难,就越要增加我们的市场份额,如果全球整个手机的目标市场跌到1/3的话,也许我们的营收与2008年相比可能会下降,但是降的要比人家少,所以我要鼓励大家,不管在任何经济环境下,都要增加市场份额。市场份额增加了,表明我们比竞争对手做得好。当然我不相信全球手机的目标市场会降很多,根据最悲观的估计,2009年手机行业有5%的负增长,但是这指的是金额,依照数量来讲。大部分的人估计明年的手机出货量大概持平,保持12.5亿台的数量,所以我们还是会有很多的机会。

  企业为什么要成长?企业存在的目的就是要赚钱。各位如果了解财务报表的话,损益表中我们把净利润叫Bottom Line,而经营企业就是要赚取税后净利;损益表的最上面一条是营收,叫做Top Line,没有营收,就没有利润,所以我们要争取营收的成长,才会有利润、奖金和分红。所以是为公司追求成长,同时也是为自己争取机会。假如Top Line不成长,那就代表组织不会成长,组织不会成长也就代表各位没有升迁的机会,没有新的职位创造出来。所以我常讲:一个没有成长的公司,组织永远不变,就好象一潭死水,一潭死水是养不活鱼的。

  美国有一个管理学者劳伦斯.J.彼得,他在《彼得原理》一书中提到:在一个不成长的组织里面,有很多的人会因为他的能力和表现会被提升,从班长、组长、课长一路升上来,升到最后,结果这个职位超出了这个人的能力,因为每一个人的能力都有限,假如不再学习的话能力就不会再增加,每一个人升到一个他自己没有办法胜任的职位,那么这个组织就不会继续成长.这个人也就继续呆在那里不动。”所以,一个失败灭亡的组织通常是因为这个组织里面所有的职位全都是不胜任的人,不胜任并不是说他不好,而是他的能力有限,自己又不去学习,结果造成这个组织里的人全是不胜任的人担任各职位.所以组织要追求成长。

  我们现在为什么要搬迁?因为我们的组织在成长,组织成长以后能创造很多的机会,有能力的人就可以往上爬,接受更多新的挑战。营收的成长可以让每一个人面临工作的态度不一样,它能够留住好的人才。反之,一个不成长的组织,即使有好的人才,这些人才有企图心,有上进心,有责任心,也一定会离开,留下的都是一些不胜任的人.那么这个组织就面临灭亡的命运.


  变革:人、事、物是对象

   改革的对象通常以事为主,就是组织、做事的方法及系统。革命的主要对象是人,要革每一个人的思想,目的是使大家的想法、思想有所改变。  

 我此前看到一篇文章,美国的韦氏大辞典每年都会挑选年度热词来总结今年的主题,第一个热词是“Bailout”,它的意思就是把你从财务危机里面解救出来,字典里面翻译成“财政救援”。为了拯救陷入衰退的经济,全球许多国家都出手救市。另一个热词是“Change”,改变、变革。今年最大的变革是什么?美国新当选总统奧巴马是黑人,一个非洲裔美国人,这是在美国历史上从来没有的事,全世界都在变!

   郭台铭总裁讲变革分三种:第一改善,第二改革,第三革命。改善、改革、革命它们的区別在哪里?举个例子,一栋楼我把里面隔间、墙打掉,里面再重新装修,但不动这栋楼的主结构,这叫做改善。假如我要动到它的主结构,三层变成四层,前院变后院,这叫做改革。那什么是革命呢?就是把整个楼拆掉重建。  

 改善、改革、革命都是针对物、事、人。 

  改善最主要的是针对物。我们的改善就是运用6希格玛、8S等方法来提升产品的品质, 提高生产的效率,降低成本。产品是物,通常的改善目标是提升10-30%。   改革的对象通常以事为主,就是组织、做事的方法及系统。改革的目标就是要进行大跃进、大的突破,不是10%、20%,而是一倍两倍的改善,必须要集中整个组织的力量大家一起来做,而不是展开后有200个管理项目。不是乱枪打鸟,要瞄中一个打一个。  革命的主要对象是人,要革每一个人的思想,目的是使大家的想法、思想有所改变。

  柳传志的“拧毛巾”功夫  

 柳传志曾经讲过一句话,“人要有理想,但不能理想化,在执行的时候不能理想化,要脚踏实地,一步一个脚印”。联想有宏伟的理想,但是在执行的时候靠得却是非常实在的“拧毛巾”的功夫。   最后一点是创新。我们公司有个永营专案,是总裁2008年成立的。它的目标是永续经营。因为整个鸿海-富上康已经达到了600亿美元的规模,我们怎么样让我们的企业能够做到在此基础上再成长3倍,让它永续经营。总裁成立了永营专案,网罗了台湾顶尖的大学管理学大师和教授,而且把这些教授从学校请到我们公司服务2—3年,专职来协助集团做规划。集团现在有4个台湾最有名的管理学教授。 

  永营专案的李吉仁教授是台湾大学最有名的管理学教授,他曾经在许多报章杂志上写文章批评鸿海-富士康集团,所以总裁就特意把他请来,让他负责永营专案。李教授在龙华推荐了《管理大未来》一书,并就该书的精神主轴向集团两三千位主管进行了导渎。这本书谈的就是管理创新,书中说:“其实创新分很多层次,产品的创新、流程的创新、生意模式的创新等,到最后才是管理的创新。”他认为管理的创新才是真正能够保证企业永葆竞争优势的方法。  

 机会到处皆是,我们要靠什么成长呢?成长是结果,我们要靠变革,创新,还有最重  要的是基本功要做好,我们在这里谈宏伟的目标,但是经常又看到一些客户投诉及品质问题,这些都是基本功设有做好。要达成成长的目标,我希望各位要把份内工作做好,把品质做好,不要出任何的问题。  

 2009年是一个前所未有的不景气年份,但是我们的生意机会却到处皆是。联想的柳传志先生以前听过我讲的课,我从他身上也学到不少。他曾经讲过一句话,他说:人要有理想,但不能理想化,在执行的时候不能理想化,要脚踏实地,一步一个脚印。他还说:联想的成功就是靠拧毛巾的功夫,湿的毛巾有水就要拼命地拧。所以联想有宏伟的理想,但是在执行的时候靠得却是非常实在的“拧毛巾”的功夫。  

 本文作者为富士康副总裁程天纵,原惠普中国总裁,原德州仪器亚洲总裁 (© 世界经理人)

2009年4月28日星期二

手机的十项killer功能

十项功能分别是:指南针、图书馆、备忘录、多媒体、遥控器、游戏机、导游、主妇帮手、乐器、第二人生。

横看秦岭侧成峰,远近高低各不同。要说到十项撬动未来的手机功能,每个人估计都有自己不同的答案。刘兴亮心目中的十项撬动未来的手机功能分别是:

1、位置交友

关于交友的Web网站可谓已经五花八门:有关于熟人交友的,有关于陌生人交友的;有实名制交友的,有虚拟交友的……林林总总,不一而足。

手机介入后,可以把原来的同城之类的交友更深入一步,可以深入到街道交友,或者50米交友。而且位置交友可以陌生人,也可以熟人,可男可女。不像远距离交友,可能只喜欢异性。

有了位置交友,我们可以在方寸之间找到一个符合自己条件的MM来跟自己一块喝咖啡,也可以找到生意上的伙伴或者相同职业者一起侃大山。

2、3G摄像头

短时间有事出去,把小孩一个人放家里安心吗?长时间出远门,把宠物放家里安心吗?把车停在路边安心吗?办公室的文件怕别人乱翻吗?现在,有了3G摄像头,一切尽在眼中。不管你在何地,都能通过3G手机观察到被监视场所的动态。

当然,这和“偷窥”是两码事。如果有人要把这个用于非法用途,这不是工具本身的错。

3、刷手机缴费

去食堂吃饭不用带饭卡了,用手机刷一下;挤公交不用带一卡通了,用手机刷一下;逛超市也不用带钱包了,用手机刷一下……只要带了手机,买什么都可以,我刷我刷我刷刷刷!

手机支付成熟的那一天,银行卡就可以寿终正寝了,我们的钱包里也不再需要那几十张卡了。

4、手机博客

别的不说,单看看近邻日本,使用手机在博客上发表和阅读原创小说等文学作品是日本最新流行的文化现象之一。一些博客小说因为被众人传看,被出版社相中出版,成为畅销书排行榜上的黑马。

手机博客时代,才是真正全民博客的时代,才是随时随地博客的时代。

5、手机阅读

这也是那篇文章所说的“图书馆”。网络文学要成熟,肯定离不开手机阅读。这样,才能把等电梯、等人、便秘等碎时间利用起来。

6、备忘录

这也是那篇文章提到的。电脑已经很好的代替我们的大脑了,但它还不够及时,不够随身。比如提醒约会等功能我原来都是用电脑记录,但我不带电脑怎么办,或者带了懒得开机怎么办?有了手机,一切都OK了。

吸收电脑的优点,让手机更近一步的代替我们的大脑。

7、多媒体

这也是那篇文章提到的。手机已经淘汰了MP3机,所有的一切随身的数码多媒体产品,最终都会统统集成到手机上面。

8、游戏机

这也是那篇文章提到的。电脑时代的网游已经是几百亿的市场了,手机时代还会远吗?

9、导

包括那篇文章提到的“导游”,还有导航、导饭、导唱,等等等等。

10、其他的很多个性化功能,甚至很细分化,很小众化。

比如手机中加装一个小镜片就可以变成镜子手机,比如给手机中加装一个微型打火机就摇身一变为打火机手机,再比如给手机中加装一个剃须刀就是剃须手机了

欢呼吧,蓝牙的walled garden被打开了,3.0来了。

蓝牙3.0是什么?其实就是将wifi整合进蓝牙品牌。蓝牙的应用是封闭的,它想靠各个应用来挣钱,企图搞一个walled garden,结果呢,wifi成功地打击了它的这种不良企图。互联网的精神就是open。有了蓝牙3.0,看来IVT应该感觉到危险了,谁还要那个烦人的driver呢?互联网的商业模式就是:易用+开放+免费。为什么要多装一个driver呢?随着蓝牙3的推出,中国的wifi手机会不会事实上解禁呢?呵呵,我这叫蓝牙手机,不是Wifi哟,当然也就可以公开卖啦,真TMD爽。有了互联网的bt3.0手机或叫Wifi手机,增值业务在哪里呢?

2009年4月27日星期一

现代管理是强调集体,还是要突出个人英雄??

猪没事,管理错了!

“地球提供的资源可以满足每一个人的需要,但是却不能满足人们的贪欲”。

——甘地

流行管理理论的一个致命错误,就是一再刺激人们追求做大做强。人们的贪婪一旦被刺激起来,就无所不用其极。以至于出现萨斯、禽流感,甚至猪流感。猪流感不同于禽流感,它不是先传染了鸡,再传染人。而是直接在人与人之间传染。猪流感并没有像禽流感那样杀掉一大批猪,而是直接死人。按墨西哥的比例,染病死亡率为2.5%。

猪没事,有事的是人。有事的是被贪欲武装到牙齿的人。

在昨天的博客中,我们得出重要的结论:重要的是别那么浮躁,别那么雄心万丈,而是安心于做好每一件事,凝视中国人的日常生活,承当起一刻接一刻地精进,就一定可以开发出生活这个巨大的、生生不息的矿脉。

今天我们要更深入一步看看中国管理。

中国管理错了!

美国金融危机暴露出美国一味强化的精英数字管理错了。中国企业界从美国那里移植过来的一整套数字管理体系也错了。错就错在只关注员工按规程做正确的事,却没有赋予一线员工独立思考和追求最佳的权利,以便挖掘、开发现场员工的创造力。

王育琨/文

2009年4月26日星期日

vmware linux下面增加USB移动硬盘的方法

linux 2.6.x中增加usb strage disk(160GB).
mount -t ntfs-3g /dev/sdc1 /mnt/usb-1 -o force
you can add to /etc/fstab:
/dev/sdc1 /mnt/usb-1 ntfs-3g defaults 0 0

发展的方向

我今后,以技术为生存之根本。跟着google走,走开源,linux,互联网的道路。
技术的路,走起来会很艰辛,但是踏实,风险小。在大公司有一份非常稳定的工作,然后业余时间DIY一点小东东,增强技术和成就感。这是我比较喜欢的生活方式。
不论外面有多少的变动,你只需要坚持自己的方向就好,通过坚持不懈地,一点一滴地吸收,就会成为真正的技术专家。而这,就是我的发展方向。
用金钱来换时间,用时间来换空间。这就是发展之道!

2009年4月22日星期三

泡沫如何生成的?

对于出口来讲,财物到了其它国家,货币回到中国,这也增加财富的过程吗?背后只有一条,那个国家的货币币值是非常坚挺的,有信用。全球经济越来越复杂,我感觉完全是宏观的。其核心只有一条,流动性。流动性的基础是完全的市场化,人,财,物自由流动。如果失去这个基础来解决流动性,只能造成社会的不公平。此次金融危机,有毒资产很容易就由国家买下来了。流动性的问题,一下子就解决了。根据美国,中国的企业报表来看,通胀好象就要来临了。其实,经济的发展过程,就是一个积累泡沫的过程。怎么说呢,用波形来反映,应该还是遵守那条美丽的正弦波,有波峰和波谷。随着GDP的增加或者贸易的增加,国家不断地投入货币,在优秀的企业那里,这部分新增的money就表现为利润,否则利润哪有那么多啊,利润+亏损=新增货币。货币不断增加,就是泡沫了。

2009年4月21日星期二

linux字符型设备驱动开发详解

Linux下的设备驱动程序被组织为一组完成不同任务的函数的集合,通过这些函数使得Windows的设备操作犹如文件一般。在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作,如open ()、close ()、read ()、write () 等。
Linux主要将设备分为二类:字符设备和块设备。字符设备是指设备发送和接收数据以字符的形式进行;而块设备则以整个数据缓冲区的形式进行。字符设备的驱动相对比较简单。

  下面我们来假设一个非常简单的虚拟字符设备:这个设备中只有一个4个字节的全局变量int global_var,而这个设备的名字叫做"gobalvar"。对"gobalvar"设备的读写等操作即是对其中全局变量global_var的操作。

  驱动程序是内核的一部分,因此我们需要给其添加模块初始化函数,该函数用来完成对所控设备的初始化工作,并调用register_chrdev() 函数注册字符设备:

static int __init gobalvar_init(void)
{
 if (register_chrdev(MAJOR_NUM, " gobalvar ", &gobalvar_fops))
 {
  //…注册失败
 }
 else
 {
  //…注册成功
 }
}

  其中,register_chrdev函数中的参数MAJOR_NUM为主设备号,"gobalvar"为设备名,gobalvar_fops为包含基本函数入口点的结构体,类型为file_operations。当gobalvar模块被加载时,gobalvar_init被执行,它将调用内核函数register_chrdev,把驱动程序的基本入口点指针存放在内核的字符设备地址表中,在用户进程对该设备执行系统调用时提供入口地址。

  与模块初始化函数对应的就是模块卸载函数,需要调用register_chrdev()的"反函数" unregister_chrdev():

static void __exit gobalvar_exit(void)
{
 if (unregister_chrdev(MAJOR_NUM, " gobalvar "))
 {
  //…卸载失败
 }
 else
 {
  //…卸载成功
 }
}

  随着内核不断增加新的功能,file_operations结构体已逐渐变得越来越大,但是大多数的驱动程序只是利用了其中的一部分。对于字符设备来说,要提供的主要入口有:open ()、release ()、read ()、write ()、ioctl ()、llseek()、poll()等。

  open()函数 对设备特殊文件进行open()系统调用时,将调用驱动程序的open () 函数:

int (*open)(struct inode * ,struct file *);

  其中参数inode为设备特殊文件的inode (索引结点) 结构的指针,参数file是指向这一设备的文件结构的指针。open()的主要任务是确定硬件处在就绪状态、验证次设备号的合法性(次设备号可以用MINOR(inode-> i - rdev) 取得)、控制使用设备的进程数、根据执行情况返回状态码(0表示成功,负数表示存在错误) 等;

  release()函数 当最后一个打开设备的用户进程执行close ()系统调用时,内核将调用驱动程序的release () 函数

void (*release) (struct inode * ,struct file *) ;

  release 函数的主要任务是清理未结束的输入/输出操作、释放资源、用户自定义排他标志的复位等。

  read()函数 当对设备特殊文件进行read() 系统调用时,将调用驱动程序read() 函数:

ssize_t (*read) (struct file *, char *, size_t, loff_t *);

  用来从设备中读取数据。当该函数指针被赋为NULL 值时,将导致read 系统调用出错并返回-EINVAL("Invalid argument,非法参数")。函数返回非负值表示成功读取的字节数(返回值为"signed size"数据类型,通常就是目标平台上的固有整数类型)。

  globalvar_read函数中内核空间与用户空间的内存交互需要借助第2节所介绍的函数:

static ssize_t globalvar_read(struct file *filp, char *buf, size_t len, loff_t *off)
{
 …
 copy_to_user(buf, &global_var, sizeof(int));
 …
}

  write( ) 函数 当设备特殊文件进行write () 系统调用时,将调用驱动程序的write () 函数:

ssize_t (*write) (struct file *, const char *, size_t, loff_t *);

  向设备发送数据。如果没有这个函数,write 系统调用会向调用程序返回一个-EINVAL。如果返回值非负,则表示成功写入的字节数。
globalvar_write函数中内核空间与用户空间的内存交互需要借助第2节所介绍的函数:

static ssize_t globalvar_write(struct file *filp, const char *buf, size_t len, loff_t *off)
{

copy_from_user(&global_var, buf, sizeof(int));

}

  ioctl() 函数 该函数是特殊的控制函数,可以通过它向设备传递控制信息或从设备取得状态信息,函数原型为: 

int (*ioctl) (struct inode * ,struct file * ,unsigned int ,unsigned long);

  unsigned int参数为设备驱动程序要执行的命令的代码,由用户自定义,unsigned long参数为相应的命令提供参数,类型可以是整型、指针等。如果设备不提供ioctl 入口点,则对于任何内核未预先定义的请求,ioctl 系统调用将返回错误(-ENOTTY,"No such ioctl fordevice,该设备无此ioctl 命令")。如果该设备方法返回一个非负值,那么该值会被返回给调用程序以表示调用成功。

  llseek()函数 该函数用来修改文件的当前读写位置,并将新位置作为(正的)返回值返回,原型为:

loff_t (*llseek) (struct file *, loff_t, int);

  poll()函数 poll 方法是poll 和select 这两个系统调用的后端实现,用来查询设备是否可读或可写,或是否处于某种特殊状态,原型为:

unsigned int (*poll) (struct file *, struct poll_table_struct *);


设备"gobalvar"的驱动程序的这些函数应分别命名为gobalvar_open、gobalvar_ release、gobalvar_read、gobalvar_write、gobalvar_ioctl,因此设备"gobalvar"的基本入口点结构变量gobalvar_fops 赋值如下:

struct file_operations gobalvar_fops = {
 read: gobalvar_read,
 write: gobalvar_write,
};

  上述代码中对gobalvar_fops的初始化方法并不是标准C所支持的,属于GNU扩展语法。

  完整的globalvar.c文件源代码如下:

#include
#include
#include
#include  
MODULE_LICENSE("GPL");

#define MAJOR_NUM 254 //主设备号

static ssize_t globalvar_read(struct file *, char *, size_t, loff_t*);
static ssize_t globalvar_write(struct file *, const char *, size_t, loff_t*);

//初始化字符设备驱动的file_operations结构体
struct file_operations globalvar_fops =
{
 read: globalvar_read, write: globalvar_write,
};
static int global_var = 0; //"globalvar"设备的全局变量

static int __init globalvar_init(void)
{
 int ret;

 //注册设备驱动
 ret = register_chrdev(MAJOR_NUM, "globalvar", &globalvar_fops);
 if (ret)
 {
  printk("globalvar register failure");
 }
 else
 {
  printk("globalvar register success");
 }
 return ret;
}

static void __exit globalvar_exit(void)
{
 int ret;

 //注销设备驱动
 ret = unregister_chrdev(MAJOR_NUM, "globalvar");
 if (ret)
 {
  printk("globalvar unregister failure");
 }
 else
 {
  printk("globalvar unregister success");
 }
}

static ssize_t globalvar_read(struct file *filp, char *buf, size_t len, loff_t *off)
{
 //将global_var从内核空间复制到用户空间
 if (copy_to_user(buf, &global_var, sizeof(int)))
 {
  return - EFAULT;
 } 
 return sizeof(int);
}

static ssize_t globalvar_write(struct file *filp, const char *buf, size_t len, loff_t *off)
{
 //将用户空间的数据复制到内核空间的global_var
 if (copy_from_user(&global_var, buf, sizeof(int)))
 {
  return - EFAULT;
 } 
 return sizeof(int);
}

module_init(globalvar_init);
module_exit(globalvar_exit);

  运行:

gcc -D__KERNEL__ -DMODULE -DLINUX -I /usr/local/src/linux2.4/include -c -o globalvar.o globalvar.c

  编译代码,运行:

inmod globalvar.o

  加载globalvar模块,再运行:

cat /proc/devices

  发现其中多出了"254 globalvar"一行,如下图:

点击放大此图片

  接着我们可以运行:

mknod /dev/globalvar c 254 0

  创建设备节点,用户进程通过/dev/globalvar这个路径就可以访问到这个全局变量虚拟设备了。我们写一个用户态的程序globalvartest.c来验证上述设备:

#include
#include
#include
#include
main()
{
 int fd, num;
 //打开"/dev/globalvar"
 fd = open("/dev/globalvar", O_RDWR, S_IRUSR | S_IWUSR);
 if (fd != -1 )
 {
  //初次读globalvar
  read(fd, &num, sizeof(int));
  printf("The globalvar is %d\n", num);

  //写globalvar
  printf("Please input the num written to globalvar\n");
  scanf("%d", &num);
  write(fd, &num, sizeof(int));

  //再次读globalvar
  read(fd, &num, sizeof(int));
  printf("The globalvar is %d\n", num);

  //关闭"/dev/globalvar"
  close(fd);
 }
 else
 {
  printf("Device open failure\n");
 }
}

  编译上述文件:

gcc -o globalvartest.o globalvartest.c

  运行

./globalvartest.o

  可以发现"globalvar"设备可以正确的读写。

2009年4月19日星期日

技术人员创业心经

迅雷联合创始人兼CTO李金波
1.我的创业从廉租房开始,迅雷每天都是工作区中最后熄灯的公司;
2.我们现在正在做的事是互联网中最苦力的活数据搬运;
3.有些事有些流氓手段可以想但不可以做,那样只会赢得一场战斗,却会失掉整场战役(回顾与竞争对手的竞争);
4.技术本身很重要,但如果不能商业化就没有价值;

康盛创想CEO戴志康:
5.开公司并不代表创业;
6.康盛创想发展无界限,能做多大就做多大,能走多远就走多远;
7.任何领域的发展都要经历先破后立,只有打破规则才有可能走得更远(背景:2005年12月将旗下产品全部免费);
8.我有10年的一线编程经验,参加市级省级编程大赛都获得第一名,后来我想做个跨界的人(技术人员/商业);
9.实现共赢是最终目标,让合作者赢得多自己才有可能赢得更多;

网城创想CEO吴津津:
10.自我评价如今的成功创业最初身无分文到现在凭创业娶到老婆;
11.有的创业者拿了VC死得更快,而有的人没拿VC却活得很好;
12.程序员技术创业每天写代码都应该在15小时左右,我自己创业时每天写代码超过18个小时;
13.如果做程序员创业时什么都没有,就写代码吧!

华军软件园创始人华军
14.创业期需要房子的来江苏找我,免费提供;
15.创业要坚持原则 在关键的时候要选对方向(曾放弃政府优越待遇下海,几年前有人高价欲购华军:不卖);

汉森信息技术有限公司董事长贾可
16.经常幻想成功的景象,以此激励自己度过最难熬的时光;

十大开源软件贡献者排名,linux大师

十大开源软件贡献者排名,芬兰,澳大利亚和美国,IT强国。

国外知名博客主12admin评出了自己心目中的对开源贡献者Top 10,列出的自然是大家耳熟能详的大人物。您心目中的十大开源贡献者是下面的这些人吗?
10 PHP之父-Rasmus Lerdorf
丹麦格陵兰的Rsamus Lerdof 以创建PHP语言闻名,他编写了最初的两个版本,Lerdorf也与Andi Gutmans and和后来创建zend的Zeev Suraski形成的开发小组,完成了PHP最后一个版本的开发。他93年毕业于Wterloo,并获得系统设计工程学士。2002年起,受聘于Yahoo!,职位基础架构师。
9. MySQL创始人-Michael Widenius
Michael Widenius,1962年出生在芬兰。Mysql数据库早期版本的主要开发者,Mysql AB公司的主要创始人。
Michael Widenius曾在芬兰首都赫尔辛基大学就读,之后与阿兰·拉尔森(Allan Larsson)创立了一家瑞典数据库公司。1995年至1996年编写并完成第一个版本的MySQL,02年与O’Reilly撰写了MySQL参考手册。直到08年,将MySQL卖给了SUN公司。
今年2月5日, Michael Widenius宣布离开SUN公司,创立自己的新公司。
8 年轻的技术天才-Miguel de lcaza
Miguel de Icaza,1972年出生,墨西哥自由软件开发者。令其名声大振的是创建了GNOME和Mono项目。
De Icaza与Federico Mena在1997年8月开始GNOME,创建了一个完全免费的桌面环境和组件模型为Linux及其他类Unix操作系统。早期De Icaza曾从事Midnight Commander文件管理及Linux内核,也曾创立电子表格程序Gnumeric。
2001年,他领导Helix Code(Ximian)宣布Mono项目,目标是在执行微软.net开发平台在Linux或类Unix平台上。2003年Helix Code(Ximian)受雇于Novell公司,在那里Miguel de Icaza为开发平台副总。
7. 红帽创始人-Marc Ewing
Marc Ewing是软件品牌Red Hat(红帽)创始人,Red Hat是最出名的Linux操作系统发行版。他曾经涉及参与90年代中期的86open project 。
Ewing 92年毕业于美国卡内基梅隆大学(Carnegie Mellon University,简称CMU)。 当在CMU大学时,他因带红色帽子行走在班级之间而出名,Red Hat(红帽)因此而得名。
6. Ubuntu创始人-Mark Shuttleworth
Mark Shuttleworth1973年出生的南非企业家,第二个自费太空旅游者。 Shuttleworth成立了Canonical公司,09年起,领导Ubuntu操作系统。
90年代,他是Debian操作系统的开发者。
2001年创立了Shuttleworth基金,致力于社会创新,支助教育、自由、开源软件,以及南非的开源软件项目,比如Freedom Toaster。
2004年通过Canonical公司支持建立在Debian上的Ubuntu软件开发,重返自由软件世界。
2005年成立Ubuntu基金,初始投资1千万美金。
2006年10月15日,Mark Shuttleworth成为KDE的第一赞助人-最高级别的赞助商。
5. Samba之父-Andrew Tridgell
1967年出生的澳大利亚程序员Andrew Tridgell,作为Samba文件服务器的开发者和贡献者而闻名,也是rsync algorithm的联合投资者。
他以复杂的商业软件私有协议和运输法则分析而出名,允许兼容自由软件执行。
Tridgell是 Samba软件的主要开发者,分析服务器报文快协议用来工作组和网络文件共享Windows产品。他开发了talloc分级存储分配器,作为Samba的一部分。他联合开发rsync algorithm,一个高效的文件传输同步工具。同时也是rzip作者,rzip使用与rsync类似的运算法则。
Tridgell是KnightCap-基于chess引擎的加强学习的作者。Tridgell也曾领导攻击 TiVo,使用PAL格式,使之在澳大利亚工作。
4. 自由软件运动代言人-Eric S Raymond
Eric Steven Raymond(ESR)出生于1957年,自由软件的鼓吹者。他成名于黑客文化,成为黑客字典的维护者。 1997年的《大教堂和市集》(《The Cathedral and the Bazaar》)发布,Raymond就此成为多年以来开源运动的非正式代表。
Raymond发明了这句格言“Given enough eyeballs, all bugs are shallow.”(笔者译为:眼球足够,漏洞全无)。 他赞誉Linux之父Linus Torvalds用此语录,为之起绰号 ”Linus 法则”.,该语录也出现在《The Cathedral and the Bazaar》中。 Raymond在开源运动中成为了一个突出的声音,并联合成立开放源代码促进会(1998年)。他同时自封为开源大师出席新闻发布会、商业等公共活动。 1998年Mozilla(还有Netscape)的版本源码就是早期的成就。他从VA 软体公司接受认购优先股,给该公司提供信誉,担当受雇的“企业良心大使”,并在六大洲超过15个国家演讲,其中包括在微软讲的一课。
3.Linux内核守护者- Andrew Morton
1959年出生在英国的Andrew Keith Paul Morton是澳大利亚软件工程师,最闻名的是作为Linux内核的领导开发者。他当前维护一个补丁集,知名的mm tree,包括还没有充分测试的补丁,可能晚些被官方Linux tree(Linus Torvalds维护)接受。
80年代末期,他作为一个澳大利亚悉尼的公司合伙人,生产一个叫Applix 1616的套装电脑,以及澳大利亚游戏装备生产商Keno Computer Systems的硬件工程师。
在2001年,他们举家从澳大利亚的伍伦贡(Wollongong),搬迁到加利福尼亚的新南威尔士(New South Wale)。
2003年7月,Morton在Digeo公司同意下加入了开放源代码开发实验室,那里OSDL支持Morton的Linux内核开发工作。
2006年8月,Morton受雇于Google,但是将继续他维护内核的工作。
2. 自由软件运动领袖-Richard Stallman
Richard Matthew Stallman(rms)出生于1953年3月16日,是美国的自由软件激进者、黑客、软件工程师。在 1983年9月,他启动了GNU项目,发布免费的类Unix操作系统,已经成为该项目的首席架构师和组织者。随着该项目的发布,他开始了自由软件运动,在1985年10月,成立了自由软件基金。
Stallman提出了非盈利版权的概念,同时也是一些非盈利版权许可的主要作者,包括最被广泛使用的GNU许可协议。自90年代中期,Stallman花费更多的时间在自由软件倡导上面,同时反对软件专利和他认为过分的专利法。Stallman也开发了大量的广泛使用的软件,包括初期的Emacs,GNU Compiler Collection,GNU Debugger。他在1989年联合创立了程序设计自由联盟(League for Programming Freedom) 。
1. Linux之父-Linus Torvalds
Linus Benedict Torvalds 于1969年12月28日芬兰首都赫尔辛基出生,芬兰软件工程师,最著名的当是启动了Linux内核的发展,他晚些成为Linux内核的首席架构师,现在是作为项目协调人继续活跃。
Torvalds在1988至1996就读于赫尔辛基大学,计算机科学博士学位毕业。他的博士论文“Linux:便携操作系统”。期间他加入芬兰军队彻底打断了学术生涯。选择11个月的军官训练程序,以满足芬兰义务兵役要求。在军队中,他作为第二中尉头衔,角色火力检验员,计算枪械、目标、轨迹位置,最后告知在哪里射击。1990年,他重返了母校学习,第一次接触Unix,以DEC MicroVAX的形式运行ULTRIX。 2000年6月,被母校评委荣誉博士。
Torvalds的兴趣开始于Commodore VIC-20(8位家用计算机),这个以后是Sinclair QL计算机,进行了拓展性的修改,特别是操作系统。并且编写汇编语言和一个文本编辑器,以及一些小游戏。因为吃豆人游戏(Pac Man)的翻版叫做Cool Man而小有名气 。在1991年1月2日,他购买了基于Intel 80386的IBM PC,并一个月的时间玩游戏波斯王子(Prince of Persia),在收到他的MINIX(一种类Unix操作系统)仿品之前。而这台MINIX仿品结果使Torvalds开始了辉煌的Linux生涯。

2009年4月14日星期二

炼心之九层楼

李涵虚《九层炼心》注解
(录自魏尧《一贯天机直讲》)
民国·魏尧 注释

(《人元大道九层炼心文终经》,又曰《九层炼心道言》。)

初层炼心者,是炼未纯之心也。未纯之心多妄想,多游思;妄想生于贪欲,游思起于不觉。学人打坐之际,非不欲屏去尘情,无如妄想才除,游思忽起。法在“止 观”,乃可渐渐销熔。止则止于脐堂之后,命门之前;其中稍下,有一个虚无圈子。吾心止于是,而内观之,心照空中,与气相守,维系乎规矩之间,来往于方圆之 内,息息归根,合自然之造化;巍巍不动,立清净之元基。从此一线心光,与一缕真气相接,浑浑灏灏,安安闲闲,此炼心养气之初功也。
注解:修道炼心之功夫,分为九步,分别讲之。谓为“人元大道”者,丹法分人元、天元。所谓“天元大丹”,亦从人元做起,人元亦合天元。天元纯为先天大道, 始终还虚;人元则下手之初,掺以后天有为有作之法。古者多由人元以进天元,人元即筑基栽补之法也。上德圣智,可以直修天元;若为钝根,自以人元入手为易。 天元为圆顿兼修,人元则为渐法,所谓“道以全形,术以延命”是也。李仙则吕祖亲传道法,所述九层,亦为上乘简易之功。初层炼未纯之心,即炼己也,由后天之 身心做功夫。后天之心多妄想,更有游思,妄想即念也。游思者,未起念而忽动于中,并无目的,往来无定,忽起忽落者是也。游思本无中生有,时有时无,念则有 所专注,随想而生,故念可强制而克去之,游思则无从制止。譬如贫而思富,以贫而有所欲,此是妄想;游思则无论心中有念无念,忽然撞上心来,因其无因而至, 故事前难以防止。修士炼斯二者,法在止观。止者止念,观者观心,止观在习静,在止于至善。以至善之心,止于玄牝之门,为“止观双修”,为佛家名词;道家谓 之“性命双修”、“妙窍双修”也。
止观双修,佛家又有许多层次。初时为“小止观”,后有“大乘止观”,又有“天人止观”。小止观者,渐法也;大乘止观,圆顿兼修之法也;天人止观,最后还虚 之事也,此为了手之事,而非初步之功。此观为止念观空,从空中下手,《小止观》书中有云:“止者,系心于缘中。” 缘中即空也。或者系心于眉间,或者系心于脐下,系心即观系止于何处,即止也。将空空洞洞,无思无虑之心,放之于此三处。有此三处,可分三层。两眉间者,正 与“同善社”之法相同。不过系心眉间,须却入一寸,却者退也,仍在虚空之处也。脐下系心,亦须离开肉一寸三分。两眉间为性光发见之地,所以如来两眉间放白 毫光,此即本性中之光明。所谓“虚室生白”之时,即眉间发光也,两眉间即是虚室。脐下一寸三分,胎息之地也,真息即在此处。廖蟾辉曰:“前对脐轮后对肾, 中间有个真金鼎。”金鼎者,真息凝结也,修功到时,自能知之。脐下一寸三分,有真气一团,圆转如轮,即命蒂也。人自下生以后,命蒂即在此处,由婴而孩,胎 息散,而此处成为空穴矣。单修性功者,从眉间一窍下手;单修命功者,从脐下之处下手。吕祖曰:“单修性而不修命,万劫阴灵难入圣。”只能成为阴神鬼仙耳; “单修命而不修性,寿同天地一愚夫。”(参《敲爻歌》,文字稍异)故必须性命双修。性命双修,必须从“缘中”下手。缘者边际也,边际之中,即为内外虚空相 接之虚窍,即人身天地中虚窍是也。因此处为呼吸之根,又为心神出入之门户,故神气皆聚于此。人欲修道,必先使神气心息相合相依,正好在此下手。盖神属于 性,气属于命,人藉气而有命,藉神而能灵;神气二物,为人之至宝。气自外来,盗之于天地万物,然有神能盗气入身;故人死神散,则气不入矣。而人死亦有二 种,若神先散而死者,临终时先昏迷不醒,只有出气,而无入气,气出尽则绝矣;若气先断,而后神散者,则神志清明,忽然气绝,目自死去多时,仍明是也。神气 二者,有一去身则必死,是必保此神气二者,方能生存。修道即修此神气二物也,修性从神字下手,修命从气字下手;若欲双修,必须在神气相合之处下手。彼眉 间、脐下,皆不当也;唯“缘中”一穴,神气出入,皆在此处。双修下手,由此一窍,则妙窍皆在其中,故三教皆以一中字象之。然此为虚中,而非真中,必神气相 合,心息相依,而后有真中,白玉蟾曰“念头动处为玄牝”是也,故此曰“缘中”。缘中者,真中缘此而生也,道家谓之“圆中”,亦曰“悬中”。“系心于缘 中”,即道家之“妙窍双修”,儒家之“性命双修”,佛家之“止观双修”也。大乘止观,即自然无为,安而行之者也;小止观即知止功夫也。南岳思大师,专讲大 乘止观,先须能空净其心,涵养其气,不止观而自然合于止观,即顿法也。我辈顿渐兼修,先在系心于缘中下手,则无误矣,此天元之工也。
李仙所述,人元初层下手工夫,“止在脐堂之后,命门之前,其中稍下有个虚无圈子,吾心止于是,而内观之”,即系心于脐下之法也,为以术延命之道,故谓“人 元”。其所以谓之“人元大道”,与“天元”不同者,即在以意生玄窍而已。所谓吾心止观于是,其法先以后天呼吸之气,入之深深,聚在脐下,成此虚无圈子,而 以心观之道也,所以云“心照空中(即是脐下离肉一寸三分)”,是即下手工夫也。息到于此,心亦安在此处,心息相依,即能混沌而发生造化矣。先修命而后合 性,性得于天,命立于人,所以云人元也。其法须先调息,入息以意送到内之金鼎处,出息以意送到外之脐下。及脐下元气已动,则以神合息,上住缘中,下止脐 下。方者地也,圆者天也,圆窍以通天气,方窍以通地气;“方圆之内”即天地之间之中也,“规矩之间”即脐下一寸三分之规中真金鼎处也。因脐下元气已生,规 中已成,故自外以达内中,真意来往,以维系之耳。凡六十四岁以上,或身体不健之人,宜用此功以保命。九层炼心,由人元起,而到天元,由上品丹法,进而入于 最上一乘,即此是也。由此心息相依,心合于息,然后真息成立,在先之“虚无圈子”,凝结而成玄窍,即后天中之先天也;复以二心合之,而混沌方入先天。炼到 此,而初层炼心工夫已成矣。但所谓意者,仍是有意无意之意,若过于助长,反起邪火而致疾矣。慎之。

二层炼心者,是炼入定之心也。前此一线心光,与一缕真气相接,若能直造杳冥,自当透出玄窍。奈何定心不固,每为识神所迁;心与气离,仍不能见本来面目。法在心息相依之时,即把知觉泯去,心在气中而不知,气包心外而不晓,氤氤氲氲,打成一片。此炼心合气之功也。
注解:二层炼入定之心,即心定于气中是也。心止在虚无圈子之内,是即定于一也。久久纯熟,自然由定而忘,归于混沌,不识不知,内忘其心,外忘其身,自然透 出玄关。张三丰曰:“玄关往来无定位。”又曰:“黄庭一路皆玄关。”所谓“黄庭一路”者,即呼吸之范围也。呼吸之气,从口鼻出入,凡息所能到之处,即“黄 庭一路”也。兹就丹田所在之地位,以明“一路”之范围。
从顶至中,为上田;从中至脐,为中田;从脐至阴跷,为下田。身内之丹田,必内丹成立,方为丹田,无丹则不能有丹田也。譬如土田,田中所种何物,即为何物之 田,如种草者为草田,种麦才为麦田;田中有丹,方为丹田;既未有丹,即无丹田,今所有者,只有丹田地位之空窍。丹田之地位,实只“黄庭一路”而已。黄庭一 路,皆为玄关,故玄关有上下之别,又有内外之分;或现于上,或现于下,并无定在。见于上者,为上玄关;见于下者,为下玄关,其形如环,其白如雪,其软如 绵。如○或如,此皆指外玄关而言也;至内玄关,即丹原是也,佛说为法/轮/常/转。丹原初成,大如黄豆,常在下田之范围内跳动,至静定之时,即能觉之。吾 人下手做功,而现象之玄关为外玄关;至内玄关,须待三元混合,凝结丹原,真息成立之时,方能见之。玄关一窍,最为秘密,从来皆不明说,今为便利后学计,故 详说之。心既止在脐下虚无圈子之内,一线光心,与一缕真息相接,自能杳冥,因杳冥而生恍惚,而透出玄窍,是即外玄关现象也。唯因定心不固,所以不易即见玄 关,必须事先还虚,泯去知觉,心息相依,神气相合,由定到忘,入于混沌,方能见之。所谓入于混沌,即还虚功夫也。吾人对于还虚之功,一步直入,而彼有三步 工夫。脐下一团之气,是为命宝,心定而入于其中,一也;使心息相依,神气相合,二也;渐渐杳冥,而入于混沌,返还虚境,三也。与吾人稍有不同,而到还虚以 后,得药则相同也。

三层炼心,是炼“来复”之心也。前此氤氤氲氲,打成一片,重阴来复,是名天地之心,即是玄关一窍。此刻精气神都在先天,鸿濛初判,并不分真精、真气、真 神。若能一心不动,便可当下采取运行;无奈见所未见,闻所未闻,美景现前,茫无措手,心一动而落后天,遂分为精、气、神矣。法在玄关初现之时,即刻踏住火 云,走到尾闾,坚其心,柔其息,敲铁鼓而过三关,休息于昆仑焉。此炼心进气之功也。
注解:三层炼来复之心,即七日来复,一阳生之时也,此为阳生火候。重阴之下,一阳来复,渐渐真阳充足,即见玄关一窍,此时已达恍惚之境矣。玄关既现,精气 神合而不分,若无杂念,即可采取。因见所未见,闻所未闻,而生惊喜之心,或疑惧之念,立刻即落后天,精气神分立为三矣。人元至此,有作有为,法在玄关初现 之时,不着一相,仍用功夫定神在外,一心不动。少焉阳气充足,即微用意引至尾闾。火云,即阳气也。初,一阳来到尾闾,即是到身。何以不曰身,而曰尾闾?因 阴跷一穴,藏有先天真阳,与外来真阳同类,故能招摄外阳。外面一阳前来,先到尾闾,内外相合,直到命门,而外肾即举,此为活子时;随即冲到心府,而自觉外 肾之举,此为活午时。觉知之后,即须用定,由是而二阳、三阳,阳气充满,自然由尾闾上升泥丸。人元于此,恐因着相生心,当面错过,故先以微意,引之而上, 冲开尾闾,以过三关,先通后天之道路也。天元于此,任其自然,玄窍一开,全身各窍,自无不开。人元有为,用意先之,此亦不同者也。至活子时,指阳生言;活 午时,指知觉而言。吾人为后天破体之身,阴气甚盛,阳之初来也,不甚觉知,仅知皮上跳动而已;其实阳气业已上升到顶。所谓坚心柔息,即定、忘二字之功夫 也。

四层炼心者,是炼退藏之心也。前此踏火云,过三关,心与气随,固已入于泥丸矣。然在泥丸宫内,或有识神引动,则气寒而凝,必不能化为真水洒濯三宫,前功尽 弃矣。法在昆仑顶上,息心主静,与气交融,气乃化为美液,从上腭落下,卷舌承露,吞而送之。注心于绛宫,注心于黄庭,注心于元海,一路响声,直送到底,又 得玄关之现象焉。此炼心得气之功夫也。
注解:四层炼退藏之心,即身内七返工夫也。由阴跷之阳,吸入外阳;外阳到来,冲动命门而肾举,我应定忘在外;阳气即上冲心府,而觉外肾之举,我仍定忘在 外,阳可直到顶上,此阳气内行之路也。天元丹法,任其自然升降,故在我所知觉者,只知身上酥麻,其初如蚤在身上跳动,旋即全身酥麻成片,应即用忘字功夫, 阳气方能化而为液,由昆仑下降,透心清凉,此时心中快乐,不可言喻也。人元有为,处处用意,当气上升,则静守于泥丸,注意久之,引而下降,以腭承之,咽下 重楼;又注意引下绛宫、黄庭,以归元海,此即七返之小周天也。此时应即止火;若再接续做去,身体即不舒适,而其气散矣。心与肾之相交,水火既济,阳气上 升,凉液下降,有声如雷,直达于底。上升时为阳上交于阴,下降时为阴下交于阳,此即小周天运动河车之功夫也。

五层炼心者,是炼筑基之心也。前此入泥丸,而归气穴,已有河车路径,从此一心做去,日夜不休,基成何待百日乎!然或有懈心,有欲心,作辍相仍,丹基难固。 夫筑基所以聚精会神也,工夫不勤,精神仍然散乱,何以延年!奉道法者,在行凭子午,逐日抽添,取坎填离,积金实腹。此炼心累气之功也。
注解:五层是炼筑基之心也。上功行之不怠,有三百周天,既筑基成功矣。然或时作时辍,行功不勤;或动于外诱,定心不固;行功不能合法,则虽行之甚勤,而仍 无金可积,难以进步。夫筑基,即筑其丹基而固之之意也。若优游玩忽,何能日起有功,而使之永固!故道在聚精会神,日新又新。功夫不勤者,必改之使勤;行持 不合法者,必矫之使合法。要在行一周天,有一周天之效用,逐日抽添,积金实腹,则三百周天自易毕而成功矣。人生修持,每多始勤终怠。能加一番矫正鞭策之 功,自能不蹈往辙,而渐臻有成。此炼心累气之功夫,最要而不可忽者也。

六层炼心者,是炼了性之心也。前此河车转动,聚精会神,则灵根充实矣。从此心液下降,肾气上升,是为坎离交。杳冥中有信,浩浩如潮,一半水气;蒙蒙如雾, 一半云气。是名金水初动,方修玉液还丹;但用心不专,则尽性之事难了。法在于金水初生之日,由丹田分下涌泉,霎时合到尾闾;调停真息,鼓之舞之,乃能滔滔 逆上,至于天谷;涓涓咽下,落于黄庭。如此则朝朝灌溉,心地清凉,血化为膏,意凝为土,土中生汞,汞性圆明,遇物不迁,灵剑在手。孟子谓:“尽其心者,知 其性也。”(见《孟子·尽心上》)仙家名为“阴丹”、“内丹”。此炼心明性之功也。
注解:六层炼了性之心,即炼己以生真意之功也。天元炼己,为最初下手之功,炼到真意已成,即由真意调停火候,故一面任之自然。人元先以己意导气,此意不 真;必于筑基后,作此炼己之功,使真意成而真息立,此关于性字之功夫也。盖前此心肾相交,肾气上升,心液下降;升者为坎中真火,阳交于阴也;下者为离中真 水,阴交于阳也。在内心肾相交,在外金水自然合并,即有一团真意,氤氤氲氲,周于玄关,聚而不散,二土成圭,此在外者也。至在内,则心肾相交,水火既济, 行满三百周天,自生一团真息,即是丹元,日夜跳动,自脐而下,由跷而上,往来不息,以意封固,则在脐下,圆转如轮。又能自然开阖,而真息升降,上达于顶, 下达至踵,周流上下,此时应用温养丹元功夫。只有定忘两字,每日忘若干时,定若干时,亦可安若干时;六时做工,六时必须定、忘平均。经过一年温养之后,丹 元化为还丹,外方有象,眼前见有黑球,仍守定忘,渐渐黑球变为红球。是即得到内丹,而了性之时也,将进大周天七日之功矣。

七层炼心,是炼已明之心也。前此金水河车,仙师名为“内炼”,到此还有外炼工夫,以外合内,真心乃聚而不散,盖内体虽明,好飞者汞性;内修虽具,易坏者阴 丹。设或保养不纯,则心性复灭矣。法在以虚明之心,妙有之性,和砂拌土,种在彼家;彼家虚而自我实之,彼家无而自我有之,以有投无,以实入虚,死心不动。 霎时间,先天一炁,从虚无中来,一候为一阳,有如《震》;二候为二阳,有如《兑》。时值二候,正宜合丹,那边吐出一弦真气,其喻为虎向水中生;这边落下一 点玄光,其喻为龙从火里出。两边龙虎会合,性情交感,一场大战,宛如天地晦冥,身心两静矣。俄而三阳发动,有如《乾卦》,如潮如火,如雾如烟,如电如雷, 如雪如花;身中阳乾晃耀,我即持剑掌印,踏罡步斗,鼓动元和,猛烹极炼,透三关而上泥丸,一身毛窍皆开,比前玉液河车,更不同也。吞而服之,以先天制后 天,性命合而为一,即大还也。性属火,其数七;命属金,其数九,返本还原,故名七返九还金液大丹。从此铅来制汞,其心常明,汞不动摇矣。此炼心存神之功 也。
注解:七层炼心,是炼已明之性也,即炼气化神之功也。炼己明之性,即以我之虚灵,通天地之虚灵,我心完全在于空中,于是须增忘减定。忘者,身心两忘也。我 之身心,化入于虚,与虚空无异,而虚中生出造化,显现应过大周天之景,黑球变为红球,又称“朱桔”,所谓火里炼丹,即其时矣。红球回绕吾身,忽上忽下,由 后而上,由前而下,绕后绕前,可分为子午卯酉。到子午卯酉之位,球行必稍舒缓;过此位后,忽而升入极高,忽而落下极低,如狐炼丹,人但见其红球起落也。此 子午卯酉,完全在外也;彼家即是虚空,而我以真意实于虚中。至在身内者,“白云朝顶上,甘露洒须弥”,红球升而热气与之同升。少焉红球落下,甘露亦即下 降,有声如雷;过七日后,红球变为紫气,笼罩身上,此时阴魔如潮如火,汹涌而来,此为过大周天之景,即《西游记》过火焰山之时也。
过大周天之时,宿业发现,万魔齐来,吾人所有贪、嗔、痴、爱及历劫宿业,皆发现于目前;所有曾入眼帘人物,亦皆于眼前出现。所谓“持剑掌印”者,剑即慧 剑,是为灵觉真心,须以真心镇之,譬之于剑,以斩断一切。印为天印,即天心也。阴魔既潮,心动便倾丹鼎,故须持剑印,镇伏一切,应以心放在空洞之中,不使 起意。“罡”者四正,即子午卯酉是也;“斗”者斗柄,亦即定盘星也。“此时应鼓动元和,猛烹极炼。”即是《西游记》之过火焰山是也。此山八百里,无路可 通,中有万魔聚集,火烈如焚。过此难关以后,方得平安,身上毛窍,皆已展开,有如炒豆,又痒又热,人则如醉如痴,血气全身倒流,少时凉液下降,而全身清凉 矣。过火焰山所以须芭蕉扇者,因芭蕉是木叶,虽为木质而极柔,以比木液,扇以生风,风即真阴之气。此气到口,方化液体,而甚清凉,未到口时,本为气体也。 三调芭蕉扇,煽风灭火,三即乾也,金也;芭蕉木也,此为金木交并。孙悟空见铁扇公主时,情话绵绵,以比真阴真阳相见,而阴阳交感和合也。火焰山之火,识神 之火,牛魔王为牛,即雪山之大白牛也。是为坤土,亦是意土。意多邪妄,去妄即真;意本相续,故杀之而落头生头。唯牛魔王为妄意,妄意之火,须以阴柔克之, 熄其妄而归真,乃是明心见性,故牛王皈正,全赖金刚合围,喻遍体乾金也。人生七情六欲,皆妄意也,此时真妄相战,阴阳相激。既过大周天,妄返为真,浊阴已 尽,真阳返入吾身,而成为纯阳之体,故曰“七返九还金液大还丹”,与小周天之玉液还丹不同也。小周天为七返,大周天为九还,若单举一种而言,则大小周天, 皆有七返九还也。过大周天后,止心不动,与太虚一体,此后即是出神功夫矣。

八层炼心,是炼已伏心,而使之通神也。前此七返九还,以铅制汞,心已定矣。但要温之养之,要使身中之气,尽化为神;身中之神,能游于外。于是取一年十二月 气候,除卯酉二月为沐浴,余十月为进退,故名“十月温养”。非言要十个月功夫也,否则心虽定而不灵。炼之煅之,灵心日见;灵则动,动则变,变则化,故有出 神之事,而不为物情所迷。此炼心成神之功也。
注解:八层炼已伏之心,而使之通神,是即出神之功夫也。既得外丹之后,须用温养工夫,为时约须一年。除卯酉二月,应沐浴外,共有十月,是即“十月怀胎” 也。法以我身之虚空,通天地之虚空,久之而罩身之紫光,化为金光,渐渐金光大如车轮,覆于顶上,此即出神之景也。在此时多不自觉,以一意于忘之故,不识不 知,宜有伴侣,以守护之、警提之,而使其觉。则其神一觉,而即出矣。初时其神幼稚,不能远出,仅及五步、十步而止,渐炼渐远,到后来可远至千里万里也。此 时回视色身如粪土,故多有到此时,即尸解而化去者。且此后炼神还虚,皆为神上之事,即无色身,亦可修炼,故无妨舍去;然即舍去,而其色身亦可历久不坏矣。

九层炼心者,是炼已灵之心,而使之归空也。前此温养功深,神已出而不惑,随心所欲,无往不宜,高踏云霞,遍游海岛,致足乐矣。但灵心不虚,则不能包涵万 有,此所以有炼虚一著也。炼虚者,心胸浩荡,众有皆无,清空一气,盘旋天地间,是我非我,是空不空;世界有毁,唯空不毁;乾坤有碍,唯空无碍,此所以神满 虚空,法周沙界也。此炼心之始末也,无以加矣。
注解:九层炼已灵之心,是还虚也。已灵之神,应打扫干净,使之虚空粉碎,成为千百亿万化身,则神通变化无穷矣。此时神已脱胎,故可以神还虚,亦可带躯壳而 还虚,遍虚空皆我神之所到,遍虚空皆为我之法身。于是九层炼心,大功告成。本章从初步说起,到还虚而止,因先从接命入手,功夫稍有不同。至入大周天以后, 则与现在所讲之先天大道,无以异也。

2009年4月13日星期一

linux下面开发PS2驱动过程

PS2键盘鼠标驱动开发文档

-------以及USBHID keyboard/mouse验证

 

 

 内容简介: 键盘鼠标作为基本的输入输出设备,特别是键盘更是与终端有关联,以下将简要分析其设备接口及终端输入相关处理机制, 以及驱动开发中的硬件相关配置部分.

 

目录索引:

 一.        PS2键盘鼠标驱动的硬件相关部分.

二.        PS2鼠标驱动的软件层次.

三.        USBHID keyboard/mouse验证.


一.  PS2键盘鼠标驱动的硬件相关部分.

 

文件: linux-2.4.21\drivers\char\ Ep93xx_w83977_keyb.c

同类参照文件: linux-2.4.21\drivers\char\ pc_keyb.c

 

基于w83977的键盘及鼠标设备,是完全与标准的8042键盘兼容的,因此本驱动基本直接从8042的标准驱动pc_keyb.c来进行修改,当中须要修改的地方相当的少,主要集中如下几点:

 

1.       中断的设置.

edb9302_enable_eint1()

ü         键盘的中断为EGPIO[0].

ü         鼠标的中断为EGPIO[3].

 

有关这一部分,也是必须进行相关改动的地方,主要是配置w83977的设备以及设备GPIO中断等,在这相关设备的初始化函数当中调用,主要包括如下几个简单的函数:

 

此处须要修改的地方如下:

 

[1]. pckbd_init_hw函数当中加入如下键盘GPIO中断设置函数:

// houhh 20070809, init the keyboard gpio int...

w83697uart_set_gpio(GPIO_INT_A, GPIO_KEYB_BITPOS);

 

[2]. psaux_init函数的mouse中断设备及w83977内部中部设备:

// houhh 20070809...

w83697uart_set_gpio(GPIO_INT_A, GPIO_MOUSE_BITPOS);

w83977mouse_set();

 

 

2.       键盘设备的读写, 其读写具体定义如下,与具体的平台相台,在w883977当中键盘的I/O定义如下:

         #define EDB9302_VIRT_8042                IO_BASE83977_VIRT

         #define kbd_read_input()                         __raw_readb(EDB9302_VIRT_8042 + 0x60)

         #define kbd_read_status()                       __raw_readb(EDB9302_VIRT_8042 + 0x64)

         #define kbd_write_output(val)                __raw_writeb(val, EDB9302_VIRT_8042 + 0x60)

         #define kbd_write_command(val)           __raw_writeb(val, EDB9302_VIRT_8042 + 0x64)

         #define kbd_request_irq(handler)            request_irq(IRQ_GPIO, handler, SA_SHIRQ, \

                                                                     "keyboard", "kbd"); \

                                                                           edb9302_enable_eint1(1);    

此处须要修改的地方如下:

 

         [1]. 键盘与鼠标数据读写均建立在此四个宏之基础上,其实是两个宏, 这其实是本驱动中修改最多的部分了J,构成与底层硬件通信的最基础.

       [2]. edb9302_enable_eint1(1) 是打开设备相应的GPIO中断位使能, 也是必须修改成与自己设备相关的部分.

 

3.       中断处理

 

须要修改的地方基本已经在前面的1/2点中指出来了, 一共是四处修改,此时即已经完成了驱动,下面具体了解一下有关中断的处理:

 

keyboard_interrupt()是中断处理程序,虽然他的名字叫做keyboard什么的,但是其实它是键盘与鼠标两个中断的入口,因为他们俩共用一个系统中断向量. 叫断到来时根据不同的GPIO位来判断应该处理什么中断,但实际上处理时是根据读写具体设备的相关状态是判断处理的,具体如下处理在handle_kbd_event()函数当中:

 

static unsigned char handle_kbd_event(void)

{

                   {

                            if (status & KBD_STAT_MOUSE_OBF)

                                     handle_mouse_event(scancode);

                            else

                                     handle_keyboard_event(scancode);

                   }

                   status = kbd_read_status();

         }

         if (!work)

                   printk(KERN_ERR "pc_keyb: controller jammed (0x%02X).\n", status);

         return status;

}

 

根据硬件寄存器读取的状态,进行区别是应该处理什么中断, 具体的硬件寄存器的状态可以参见手册,这里因为没作任何修改,因此不进行说明了, 至于具体的中断内部的处理流程参看源码.


二.  PS2鼠标驱动的软件层次.

 

1. 键盘设备初始化部分.

 

void __init pckbd_init_hw(void)

 

这个初始化的调用者有必要指出来,请看keyboard.h文件中有如下定义:

 

#define kbd_setkeycode                 pckbd_setkeycode

#define kbd_getkeycode                 pckbd_getkeycode

#define kbd_translate                      pckbd_translate

#define kbd_unexpected_up           pckbd_unexpected_up

#define kbd_leds                             pckbd_leds

#define kbd_init_hw                       pckbd_init_hw

#define kbd_sysrq_xlate                 pckbd_sysrq_xlate

 

kbd_init_hw调用者是上一层的键盘共用部分代码kbd_init, 该函数位于 keyboard.c文件, 调用层次关系如下

         chr_dev_init()àtty_init()àkdb_init()àkbd_init_hw();

 

__initcall(chr_dev_init); __initcall机制,在系统初始化完成后调用.

 

在此函数的调用中,完成键盘硬件的初始化以及检测配置等,最后就是安装键盘中断处理程序,键盘中断使能.

 

另外如果已经打开了鼠标支持选项, 则还会调用mouse初始化程序.

#if defined CONFIG_W83977_PSMOUSE

         psaux_init();

#endif

 

2. 鼠标设备初始化部分.

 

上面已经提到了鼠标设备如果打开了,则是在键盘设备当中附带初始化的,鼠标设备与键盘初始化时有个不同的地方,那就是要建立一个设备节点如下:

 

static struct miscdevice psaux_mouse = {

       PSMOUSE_MINOR, "psaux", &psaux_fops

};

       if ((retval = misc_register(&psaux_mouse)))

              return retval;

 

MISC类型为杂类设备,其主设备号为10, 因此这个ps2 mouse的设备节点为/dev/psaux, 主设备号为10, 次设备号为1; 这里应该讲讲为何键盘设备没有设备节点了,这也是开始时我比较困惑的问题,但经实际源码的分析,得知键盘设备其实就是针对当前终端的,在一开始初始化时就已经完成硬件设备初始化,也挂上了中断服务程序并打开了中断,而且在键盘输入时,直接就是针对当前的TTY设备, 因此键盘设备并不须要一个设备节点来打开它,如果你要读取键盘设备的数据,其实就是读取当前终端即可,这一点要弄清楚.

 

既然有moues设备节点,那就有打开设备以及打开设备号的相应文件操作,具体在如下定义,关于每一项并不做具体说明,可能见源码.

struct file_operations psaux_fops = {

       read:              read_aux,

       write:      write_aux,

       poll:        aux_poll,

       open:       open_aux,

       release:    release_aux,

       fasync:    fasync_aux,

};

 

3.  键盘数据的接收.

 

刚才在上面也讲到了键盘数据没有对应文件结构,并不是通过普通的文件读写操作来处理的,那么他具体是如何处理键盘接收的?现在进一点来看keyboard.c这个公用部分的键盘数据接收机制:

 

首先列出具体的键盘中断的处理代码,我们将分两部分来讲解以下三个问题:

 

[1]. 按下弹起这个过程是如何接收的?

[2]. 重复键盘是如何实现的?

[3]. 键盘功能灯是如何处理的?

 

static inline void handle_keyboard_event(unsigned char scancode)

{

#ifdef CONFIG_VT

         kbd_exists = 1;

         if (do_acknowledge(scancode))

                   handle_scancode(scancode, !(scancode & 0x80));

#endif                                    

         tasklet_schedule(&keyboard_tasklet);

}      

 

带着如上的三个问题,来看上述的中断处理,结论如下:

1.        handle_scancode()带这个公共部分负责完成一次按下与弹起的工作,将键盘最终通过调用put_queue(scancode);来将按键交给当前终端缓冲区, 查看这个函数的代码,我们会发觉与串口的处理相当类似,也是首先将中断中收到的数据插入一个flip缓冲区,然后再启动终端的一个tasklet来完成缓冲区数据的取走加工,这当然是异步的.

 

 

void put_queue(int ch)

{

         if (tty) {

                   tty_insert_flip_char(tty, ch, 0);

                   con_schedule_flip(tty);

         }

}

 

2.        对于后面的两个问题,其实是一并处理的,用的机制当然也是我们已经反复提到的tasklet机制,如果对这个机制还不太了解,可以参考” UART串口驱动开发文档.doc”驱动一文件中的详细关于“软中断的机制的原理介绍”, 至此我应该可以深刻的体会软中断做为一种异步机制,在内核应用广泛程度了!

 

处理键盘按键不放,以及键盘功能灯的bh函数为static void kbd_bh(unsigned long dummy), 这个函数的具体代码不详细贴出,它完成的工作如下:

 

[1]. 调用kbd_processkeycode(kbd_repeatkeycode, 0, 1), 以完成须要处理重复按键产生的情形.

[2]  处理当前终端变化的情况, 如果终端变化后才按键数据送向新的终端.

[3]. 如果键盘功能灯的状态有变,即进行响应, 如此软件即可以设置功能灯的状态了.


三.  USBHID keyboard/mouse验证.

 

这个驱证在驱动方面没有任何的代码修改,主要涉及到两个方面:

 

1.       参照DG930x-linux下面的readme.txt来打开USB模块,以及打开Input core模块,并打开键盘鼠标设备的支持,这在readme文档中已经有详细的说明了.

2.       参照minigui的配置文档MiniGUI.cfg的说明,打开输入设备的配置.

 

[1]. USB MOUSE配制:

# IAL engine

ial_engine=console

#ial_engine=dummy

mdev=/dev/input/mice

mtype=IMPS2

 

[2]. PS2 MOUSE配制:

# IAL engine

ial_engine=console

#ial_engine=dummy

mdev=/dev/psaux

mtype=IMPS2

 

3.       参照建立mouseusb设备节点名/dev/input/mice.

4.       编译minigui时,如果要移动窗体必须打开可移动窗体的配制选项, 这此配置在提交的minigui当中已经全部修改完成,可以参照配置文件buildlib-ep9302.