Friday, May 25, 2007

BLOG 可以...

  Ø 中国博客用户的发展速度会高于全球水平。中国博客用户在2007年以后将保持高于全球水平的增长,主要在于博客的大众化普及从2005年才刚刚开始,很多主流的网络服务商在2006年才开始提供服务,而博客用户占全体网民的比例不到20%,仍然有较大的提升的余地。

  Ø 博客将成为互联网的基础服务,博客也将成为互联网服务应用的基础核心单元。门户、即时通讯、社区等基础互联网服务都将博客纳入并融入到体系中蜕变出新的以博客为重要单元的新服务体系,这种趋势已经突显出来。用户产生内容吸引的流量已经成为门户流量的重要组成部分。

  Ø 博客与社区的融合成为重要趋势。博客逐渐演变为个人综合服务平台,呈现个人博客和社区高度一体化、富媒体化(图片、音视频)等。

  Ø 博客商业化应用将出现实质性的进展,博客生态完善机制成型。从博客成熟度曲线来说,博客商业化已经从狂热的高潮中走向冷静的反思,在一轮急速的高速增长以后,博客商业化出现了低潮,坚实的增长相信将在这之后产生。

  Ø 互联网巨头-门户巨头、IM巨头、搜索巨头在中国成为博客服务的主导力量。互联网巨头担负起了博客大众化服务的使命,单纯的博客服务商受制于可支配资源和渠道的限制在找到新的突破点之前将退居次要角色,特色化生存。

  Ø 博客将成为互联网公司变革的主导力量。用户产生内容的生产方式以及由此形成的机制将对门户、搜索、即时通讯等基础互联网服务商未来的结构化转变、发展和布局产生重要影响。

  Ø 博客推动传媒业和出版业产生变革。博客拉动的信息社会经济变革首先已经体现在传媒业和出版业中,也将影响整个中国社会文化经济。草根博客对于传统权威的挑战以及大众的声音不容忽视。

  Ø 博客的跨媒体趋势和个人门户化趋势。博客从单纯文字博客发展到集新闻资讯、社区图片、音视频、电子杂志、手机(移动博 客)、动画为一体的以博客(这里的博客实际已经代表的是博客体制)为核心的综合一体化应用,博客是个人门户应用的核心,博客圈、博客社区等社会化网络应用 是2007年博客发展成为个人门户的新取向。 

Thursday, May 24, 2007

一个可以嵌入到blog的chat工具

http://chatter.flooble.com/

Wednesday, May 23, 2007

神经衰弱者宜食物品

小麦
有养心神、益心气的作用,尤其适宜妇女神经衰弱、神志不宁、失眠,或喜悲伤欲哭、数欠伸(即中医所称的妇人脏躁病)者食用。古方有甘麦大枣汤,以小麦60克,大枣15个,甘草10克,用水3碗,煎至1碗,睡前一次服完。

糯米
补气血、暖脾胃,适宜一切体虚之人神经衰弱者食用,尤以煮稀饭,或与红枣同煮稀粥最佳,能滋润补虚、温养五脏、益气安神。

西谷米
能补脾益气,适宜一切体虚之人,或产后病后神经衰弱者食用。《柑园小识》云:“健脾运胃,久病虚乏者,煮粥食最宜。”若同红枣、莲子或胡桃等煮粥食用更妙。

鹌鹑蛋
鹌鹑的肉与蛋,其营养价值比鸡高,鹌鹑肉含蛋白质24.3%,比等量鸡肉高4.6%,鹌鹑蛋含蛋白质13.5%,比等量鸡蛋多1.7%,特别是鹌鹑蛋富含卵磷脂,是高级神经活动不可缺少的营养物质,所以,神经衰弱之人宜常吃些鹌鹑蛋及肉。

哈士蟆油
又叫田鸡油。含有丰富的蛋白质、脂肪、多种维生素和激素,是一种有力的滋补强壮食品,适宜精力耗伤、神经衰弱、久病与产后虚弱者食用,民间多用于治疗神经衰弱。如《辽宁主要药材》载:“治体虚,神经衰弱。”《四川中药志》亦云:“治神经衰弱:哈士蟆油、土燕窝、蒸服。”

猪心
有镇静、补心作用,适宜神经衰弱、惊悸、怔忡、不眠、心慌、多汗、多梦者食用。

猪脑髓
猪脑和猪脊髓都有补骨髓、健脑、益虚损的功能。《四川中药志》记载:“猪脑补骨髓,益虚劳,治神经衰弱。”民间常用猪脑髓同枸杞子或明天麻炖熟,供神经衰弱之人服食。

牡蛎肉
能治疗失眠烦热、心神不安。《医林纂要》认为:牡蛎肉“清肺补心,滋阴养血。”崔禹锡《食经》亦载:“治夜不眠,志意不定。”故神经衰弱之人食之颇宜。

鳗鲡
唐代著名食医孟诜认为鳗鲡“甚补益”。《日用本草》说它能“补五脏”,古人常用以治肺痨病。它对神经衰弱之人亦颇有益,可以经常煮食,大补虚羸。

蝗虫
我国北方农民常将它烫死以后,煎炒作菜,味如虾仁。它富含蛋白质,有补养强壮作用。叶橘泉教授曾在《食物中药与便方》中介绍:“神经衰弱,蝗虫粉,每次6克,1日2~3次,食后服。”

龙眼肉
能补血安神、益脑力,是一种滋补健脑食品,尤其适宜思虑过度、心神失养引起的神经衰弱、健忘失眠、心慌心跳、头晕乏力等人食用。龙眼肉含有丰富的葡萄糖、蔗糖、酒石酸、维生素A、维生素B等物质,这些物质能营养神经和脑组织,从而调整大脑皮层功能,改善甚至消除失眠及健忘与增强记忆力。中医古方“玉灵膏” 就是用龙眼肉与白砂糖熬制而成的,用于脑力衰退、神经衰弱之人。民间常用龙眼肉4~6枚,用莲子、芡实等量,加水炖汤于睡前服。也有用龙眼肉15克,酸枣仁6克,泡
开水1杯,晚睡前代茶饮。

桑椹
既能补血,又能安神。《随息居饮食谱》还说桑椹“滋肝肾,充血液,聪耳明目,安魂镇魄。”它适宜心血不足,心神失养的神经衰弱头晕失眠之人服用。头昏失眠者多数是与血虚或神经过度紧张等造成,可食用桑椹制作的“桑椹蜜”“桑椹膏”“桑椹酒”,或每晚睡前服食桑椹30克,颇有裨益。

葡萄
不仅含有很多糖分,还含有卵磷脂、蛋白质、氨基酸、果胶、维生素和矿物质等,有营养强壮作用。《神农本草经》中说它“益气倍力,强志。”葡萄能健脑、强心、开胃、增加气力,故神经衰弱者宜食,酿酒饮用亦佳。

胡桃
历代医家视之为健身益寿、补肾抗衰食品,常吃胡桃,对人的大脑神经也很有益。它含有丰富的脂肪油,主要成分为不饱和脂肪酸,含维生素A、维生素B1、维生素B2、维生素C、维生素E和磷脂,以及钙、磷、铁、锌、镁等微量元素。凡神经衰弱之人,宜早晚空腹各食胡桃2~3枚。民间也有用胡桃仁、黑芝麻、白砂糖共研为末,早晚各服1汤匙,颇有效果。

柏子仁
性平,味甘,能养心安神。《本草纲目》中就说过:“柏子仁养心气,润肾燥、益智宁神。”古方“柏子养心丸”治疗“劳欲过度,心血亏损,精神恍惚,夜多怪梦,怔忡惊悸,健忘遗精”,就是以柏子仁为主要成分,“常服宁心定志”。是一种理想的滋养强壮食品,凡神经衰弱者均宜食用。

大枣
民间常作补血食品,能益气、养心、安神。古代医家常用以治疗神经衰弱的病症,如《千金方》中治“虚劳烦闷不得眠”,用大枣二十枚同葱白七茎煎服,相当于现代所说的神经衰弱失眠症。《本草汇言》中还指出:“治惊悸怔忡,健忘恍惚,志意昏迷、精神不守,或中气不和,饮食无味,百体懒重,肌肉羸瘦,此属心、脾二脏元神亏损之症,必用大枣治之。”这些都是神经衰弱的表现,均宜食用大枣以养心脾、安神志。经常服食大枣,对于身体虚弱、神经衰弱者,大有益处。

莲子
有养心镇静安神之效。《神农本草经》中称它“主补中、养神、益气力。”明代李时珍说它能“交心肾,益精血。”适宜神经衰弱者同芡实、糯米煮稀粥吃。清代养生学家曹廷栋在《老老恒言》中亦云:“莲肉粥,补中强志,兼养神益脾。”民间多用莲子30个,加盐少许,水煎,每晚睡前服。

百合
能清心安神。《日华子本草》说它能“安心,定胆,益志,养五脏。”中医也常用以治疗虚烦惊悸,神志恍惚的神经衰弱症。民间对神经衰弱、睡眠不宁、惊惕易醒者,习惯用生百合60~90克,蜂蜜1~2匙,拌和蒸熟,临睡前服食。

芝麻
是一种抗衰老食物,神经衰弱之人也宜食之。《神农本草经》中载:“补五内,益气力,填脑髓。”《食疗本草》还说它能“润五脏,填骨髓。”据现代研究,芝麻中的确含有丰富的不饱和脂肪酸,丰富的维生素E、卵磷脂等滋补强壮,健脑防衰的营养成分。

银耳
有补肾、润肺、生津、提神、益气、健脑、嫩肤等功效,还能补脑强心、消除疲劳。据分析,银耳含有丰富的胶质、多种维生素和17种氨基酸、银耳多糖、蛋白质等营养成分,这些都对神经衰弱者有益。

蜂乳
中国药科大学叶橘泉教授曾说过:“神经衰弱,蜂皇浆服之有效。”这不仅仅是由于蜂乳的营养极为丰富。据现代研究,服用蜂乳后大脑功能明显改善,对细胞具有再生作用,增加组织呼吸,促进代谢。凡神经衰弱所引起的各种症状,均有改善效果。

灵芝
有养心安神、益气补血、滋补强壮、健脑益智的作用。《中国药植图鉴》中就说它“治神经衰弱。”尤其对心悸、怔忡、失眠、健忘、心脾两虚的神经衰弱之人最为适宜,可以帮助这类神经衰弱之人减轻头晕、失眠等症状。《食物中药与便方》介绍的方法是:神经衰弱者用灵芝6~10克水煎服,或制成灵芝糖浆(约30%) 每日2次,每次20毫升服用。

枸杞子
是一味药食兼用之品。《药性论》中载:“能补益髓诸不足,安神。”《摄生秘剖》中的名方“杞圆膏”,主治神经衰弱,认为有“安神养血,滋阴壮阳,益智,强筋骨,泽肌肤,驻颜色”作用,就是以枸杞子配合等量的龙眼肉熬制而成的。在民间,对神经衰弱之人习惯用杞子30克,羊脑1副,加清水适量炖服。也有用杞子 20克,红枣6个,鸡蛋2个同煮,吃蛋饮汤,每天1次,对神经衰弱、头晕眼花、精神恍惚、心悸、健忘、失眠者颇宜。

人参
有大补元气,宁心安神的作用。《神农本草经》中早有记载:“人参主补五脏,安精神、止惊悸,开心益智。”据近代研究,人参对中枢神经系统,特别是其高级部位,有某种特异作用,能改善神经活动过程的灵活性,既能加强大脑皮层的兴奋过程,同时也能加强抑制过程,能提高人的一般脑力和体力的机能。治疗神经衰弱,《中医杂志》《药学学报》曾先后均有介绍,认为人参对神经系统有显著的兴奋作用,能提高机体活动能力、减少疲劳,对不同类型的神经衰弱患者都有一定的治疗作用,使病人体重增加,消除或减轻全身无力、头痛、失眠等症状。

冬虫夏草
有补虚损、益精气的作用,神经衰弱者食之尤宜。古代常用冬虫夏草同雄鸭加姜葱及配料,炖熟食用。若能用冬虫夏草10~15克,鲜胎盘1个,隔水炖熟后加配料食用,这对神经衰弱者颇为有益。

何首乌
有突出的强壮神经和补血功能,中医说它能补肝肾、益精血。这是因为何首乌含有较多的卵磷脂,它能促进血液的新生,并有强心效果,对疲劳的心脏作用更显著。

荔枝
根据前人经验,荔枝有滋心脾、养气血、填精髓的作用。《玉楸药解》认为“荔枝甘温滋润,最益脾肝精血。”《食疗本草》也早有“荔枝益智健气”的记载。《随息居饮食谱》也说它能“通神益智”。所以,对神经衰弱之人,经常少量吃些荔枝,颇为适宜。

海参
能滋阴、补肾、养血、益精。《五杂俎》中说:“其性温补,是敌人参,故曰海参。”《现代实用中药》也说它“为滋补品,治神经衰弱。”体虚之人神经衰弱者,常食颇宜。

玉米
性平,味甘。《医林纂要》中说它“益肺宁心”。现代研究认为,玉米中蛋白质含多量的谷氨酸,它能帮助脑组织中氨的排除,同时又能促进脑细胞进行呼吸,故有健脑作用,脑神经衰弱者宜食之。

鸽肉
家鸽肉性平,味咸。唐代食医孟诜说它能“调精益气”。《本经逢原》认为:“久患虚羸者,食之有益。”民间有“一鸽胜九鸡”之说,有学者还认为,常吃鸽肉能治疗神经衰弱,增强记忆力。

葵花籽
性平,味甘,有补虚润肺的作用。现代研究报道,葵花籽中既含维生素E,有延迟人体细胞衰老的作用,又含维生素B3,能增强记忆力,治疗抑郁症和失眠。因此,失眠、健忘、气短、乏力和心情忧郁的神经衰弱之人,宜常食之。

金针菜
是忘忧草(萱草)的花蕾。性凉,味甘,有利湿热、安心神的作用。《本草图经》曾说它“安五脏,利心志。”《医醇膦义》载有“萱草忘忧汤”,专门用于“治忧愁太过,忽忽不乐”。《本草正义》还认为:“治夜少安寐,其效颇著。”因此,凡心情抑郁的神经衰弱之人,食之颇宜。

啤酒花
能健胃、安神。现代研究证实,它有一定的镇静作用,国外民间将啤酒花运用于癔病、不安、失眠症。《食物中药与便方》也介绍:“神经衰弱:啤酒花3克,开水泡,代茶饮服。”

松花粉
有益气、养血的作用。松花粉内含蛋白质、多种氨基酸和多种维生素,现代研究认为它能促进小儿生长,恢复老人活力和精神疲劳的功效。中国药科大学叶橘泉教授曾指出:“治神经衰弱、失眠。”

黄精
能补中益气、强筋骨、益精髓。历代养生学家及道家视之为抗衰老的养生延年食品。《食物中药与便方》中认为,治神经衰弱,精神萎靡,用黄精同枸杞子水煎或泡酒服。

白首乌
主产山东,又称泰山何首乌,据山东省中医界临床经验,认为白首乌对某些虚弱病者有强壮作用,它是一味滋养、强壮、补血食物,并能收敛精气,乌须黑发。《山东中药》还认为白首乌治“性神经衰弱”。凡体虚之人,未老先衰,神经衰弱,精神萎靡不振者,皆宜食之。

酸枣仁
有养肝、宁心、安神、敛汗的作用,现代研究它有镇静、催眠的功效,故神经衰弱者宜食之。民间也习惯用酸枣仁3~6克,加白糖研和,临睡前用温开水调服,治疗神经衰弱伴失眠的病人。

此外,神经衰弱者还宜选食鹌鹑、燕窝、黄豆制品、猴头菇、香菇、蜂蜜、水芹菜、松子仁、太子参、天麻、紫河车、西洋参等。

Monday, May 21, 2007

后门技术和Linux LKM Rootkit解析

::第一部分; 文章
在这篇文章里, 我们将看到各种不同的后门技术,特别是Linux的可装载内核模块(LKM)。我们将会发现LKM后门比传统的后门程序更加复杂,更加强大,更不易于被发现。知道这些之后,我们可以制造我们自己的基于LKM的Rootkit程序, 主要体现在TCP/IP层, 因为我们相信这是在系统管理员面前最好的隐藏后门的地方。

  在一些黑客组织中, Rootkit (或者backdoor) 是一个非常感兴趣的话题。各种不同的Rootkit被开发并发布在internet上。在这些Rootkit之中, LKM尤其被人关注, 因为它是利用现代操作系统的模块技术。作为内核的一部分运行,这种Rootkit将会越来越比传统技术更加强大更加不易被发觉。一旦被安装运行到目标机器上, 系统就会完全被控制在hacker手中了。甚至系统管理员根本找不到安全隐患的痕迹, 因为他们不能再信任它们的操作系统了。

  本文章以及我们开发的一些强大的LKM程序都是基于Linux Kernel 2.2.x版本的。我们的目的是尽可能多的隐藏足迹。

  在接下来的一部分, 我们将介绍一下已经存在的后门技术, 然后和LKM技术相比较, 最后讨论我么的LKM程序的设计与实现。

  后门程序的目的就是甚至系统管理员企图弥补系统漏洞的时候也可以给hacker系统的访问权限。后门程序使本地用户取得root权限可以这样做: 设置uid程序, 系统木马程序, cron后门。

  1. 设置uid程序。 黑客在一些文件系统理放一些设置uid脚本程序。无论何时它们只要执行这个程序它们就会成为root。

  2. 系统木马程序。黑客替换一些系统程序, 如"login"程序。因此, 只要满足一定的条件,那些程序就会给黑客最高权限。

  3. Cron 后门。黑客在cron增加或修改一些任务, 在某个特定的时间程序运行,他们就可以获得最高权限。

  后门程序给远程用户以最高访问权限可以这样做: ".rhost" 文件, ssh认证密钥, bind shell, 木马服务程序。

  1. ".rhosts" 文件。一旦 "+ +"被加入某个用户的.rhosts文件里, 任何人在任何地方都可以用这个账号来登陆进来而不需要密码。

  2. ssh 认证密钥。黑客把他自己的公共密钥放到目标机器的ssh配置文件"authorized_keys"里, 他可以用该账号来访问机器而不需要密码。

  3. Bind shell。黑客绑定一个shell到一个特定的tcp端口。任何人telnet这个端口都可以获得交互的shell。更多精巧的这种方式的后门可以基于udp,或者未连接的tcp, 甚至icmp协议。

  4. Trojaned服务程序。任何打开的服务都可以成为木马来为远程用户提供访问权限。例如, 利用inetd服务在一个特定的端口来创建一个bind shell,或者通过ssh守护进程提供访问途径。

  在入侵者植入和运行后门程序之后, 他会找一些方法和系统管理员开一些善意的玩笑。这主要涉及到两个方面问题: 如何来隐藏他的文件且如何来隐藏他的进程。

  为了隐藏文件, 入侵者需要做如下事情: 替换一些系统常用命令如"ls", "du", "fsck"。在底层方面, 他们通过把硬盘里的一些区域标记为坏块并把它的文件放在那里。或者如果他足够疯狂,他会把一些文件放入引导块里。
为了隐藏进程, 他可以替换 "ps"程序, 或者通过修改argv[]来使程序看起来象一个合法的服务程序。有趣的是把一个程序改成中断驱动的话,它就不会出现在进程表里了。

  LKM - 还有比这个更臭屁的么?

  我们已经看到过一些常规的技术。现在的问题是: 系统管理员可以找出它们么?实际上, 一个好的系统管理员可以很轻易的找出它们中的%99。问题是入侵者必须修改或者创建一些重要文件。 如果系统管理员保存一份"tripwire"数据库, 通过这些可以确定安全隐患的存在。通过浏览文件系统可以去掉suid程序, ".rhosts" 文件, 等。

  相反, 利用LKM我们可有效的突破这些限制。首先,我们在重要的系统目录里不必修改或创建任何文件。我们可以把LKM程序放在/tmp或/var/tmp目录下, 一般系统管理员是不会监视这些目录的。 其次, 我们可以隐藏我们想要的任何东西, 象文件, 进程, 和网络连接。 因为要得到这些信息, 用户必须依赖系统调用。

  因此我们可以修改内核结构, 我们可以用我们自己的函数来替换原系统调用。最后,我们甚至可以攻击或修改TCP/IP协议栈并且去愚弄系统内核!以下部分,我们将介绍如何利用这些机制以及实现方法。

  我们的LKM程序主要是基于Linux Kernel 2.2.x及TCP/IP上的实现, 因为一个优秀的后门程序一定会给远程用户访问该系统的权限。在目标机器上打开一个端口,运行一个服务是非常容易暴露的。我们需要尽可能的隐藏自己。

  第一个想法是我们在目标机器上不运行任何进程来等待连接,我们在TCP/IP协议栈里来创建一个函数来替代它。无论何时一个特殊的udp或tcp包被接受,内核将会检查这个包来确定是否是指定的特殊包。假如是的话, 内核将派生一个进程来执行命令。我们可以使用任何内核可以支持的协议包。

  现在我们来实现它。在内核里, 每个协议在*inet_protocol_base和*inet_protos[MAX_INET_PROTOS] hash注册自己。当系统初始化时, 所有支持的协议会再inet_protocol_base注册。他们被加到inet_protos的哈希表里。不管什么时候一个IP包达到时,内核将检查这个哈希表,找相应的处理函数和系统调用。我们就在这个点上进行hack。我们将用我们的处理函数来替换原始的协议的处理函数。因此,我们可以截获数据包并且分析它。假如它是我们需要的, 我们将执行我们的命令。 假如不是,仅仅只需要调用原来的函数。
::第二部分; 结论
可以使用palladium uxsms appliance 建立逻辑网关进行跳转分析, 集中操作平台进行控制, 包括拦截, 监控, 审计,

Linux遭遇扩展性问题

2007-05-15 08:00
  使用真正大型机器的乐趣,一方面在于能够比别人更早在可扩展性方面发现新的惊奇,所以使用SGI高性能计算机的人常常比我们许多人享有更多的乐趣。他们最近的发现与内核线程的数量有关: 在4096路系统上,Linux内核线程的数量导致内核出现了令人关注的一些行为。

  使用真正大型机器的乐趣,一方面在于能够比别人更早在可扩展性方面发现新的惊奇,所以使用SGI高性能计算机的人常常比我们许多人享有更多的乐趣。他们最近的发现与内核线程的数量有关: 在4096路系统上,Linux内核线程的数量导致内核出现了令人关注的一些行为。

  发现问题

  首先他们发现:即使使用默认的配置,也启动不了内核。Linux系统在任何一个特定的时间,活动进程通常限制在32768个。运行过ps命令的人都会注意到: 内核线程在占用数量越来越多的内存插槽。单处理器桌面系统可能在运行其中的39个活动进程。实际上,如今一个典型的系统上有足够多的内核线程,以至这些线程会占满4096路机器上的全部空间,甚至更多。这个问题比较容易得到解决,只要提高处理器数量的限额。不过,这样一来情况变得比较有意思了。

  对系统上的其他每个进程(包括内核线程)来说,init进程是最终的父进程。所以在大型系统上,init有许多子进程。这些子进程位于一个很大的链表(linked list)上。该链表由诸多函数来搜索,其中包括wait()的变种版本。如果正在搜索中的进程接近链表末端,那么这个搜索需要花费很长时间。一是因为大多数内核线程是长期线程,二是因为新进程被放在链表末端,所以某次搜索很可能确实会寻找末端的某个进程。

  然后把某个模块装入内核。当新模块进行链接时,模块装入过程就会调用stop_machine_run(),该函数会为系统上的每个进程创建高优先级的内核线程。该线程就会获取分配给它的CPU,然后只是闲置在那里,直到被告知退出;尽管所有CPU以这种方式被搁置起来,但链接过程照常执行。即便在最好的时候(即线程数量不多的时候),调用stop_machine_run()这样的函数也是有点不合常理,更何况对一个拥有4096路处理器的系统而言,stop_machine_run()会创建4096个线程,每个线程都会进入到init的子链表的末端;每个线程等到需要清理时,都必须进行搜索。结果就是,系统在很长一段时间过后才会停机。

  解决办法

  有人可能认为,拥有这么大系统的人根本不应该装入模块,但可能会受到来自用户社区的反对。所以需要找到其他的解决方案。有关报告提供了一种简单的补丁,可以把现有的进程转移到子链表的始端。这种变化解决了眼前的问题,因为它可以通过搜索这些子进程就能找到它们,不必遍历不会去任何地方的所有长期进程。

  Linus有几个变通办法。办法之一就是为僵尸进程(zombie process)建立不同的链表,从而完全不需要这种搜索。另一个办法就是停止让内核线程成为init进程的子进程,因为在任何情况下,它们与用户空间都没有多大关系。但一些开发人员认为,真正的解决方案也许在于开始减少内核线程的数量。

  导致内核线程大量创建的最主要原因无疑是工作队列。默认情况下,工作队列会为系统上的每个CPU创建一个线程。有些情况能够得益于多个线程和 CPU局部性(CPU locality),但毫无疑问也有许多情况下不需要所有这些线程。清除这些线程有助于解决部分扩展性问题; 另一个好处就是,这可以让ps列表显得整洁一些。

  在许多情况下,工作队列可能根本没有必要。相反,内核子系统可能完全使用“一般的”keventd工作队列(作为events/n线程来运行)。使用keventd内核线程存在一些问题,包括无限制延迟以及可能性很小的死锁,不过在许多情况下,它的工作效果足够好。

  在其他情况下,使用线程很有必要。涉及长时间延迟的任务是一个例子; 使用kevented运行延迟时间好几秒的函数被认为是不恰当的。需要复杂上下文的工作也会得益于其自己的线程。不过在许多情况下,这些线程在一些工作实际完成之前并不需要创建。大多数系统上迅速运行ps命令可以显示与错误处理、异步I/O、蓝牙及更多方面有关的线程。按照当前方式,这些线程在启动时(或者模块装入时)创建,其中许多线程在系统关闭之前可能根本不做任何实际工作。创建线程的成本很低,所以许多这些线程可以在需要时创建而成。

  这方面恐怕需要进行一些真正的改进。需要的只是有人、有时间、有动力来做这项工作。与此同时,使用4096路处理器系统的人可能需要打上一两个补丁。

链接:进程与线程

  可执行文件由指令和数据组成。进程就是在计算机上运行的可执行文件针对特定的输入数据的一个实例,同一个可执行程序文件如果操作不同的输入数据就是两个不同的进程。

  线程是进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享其所附属的进程的所有的资源,包括打开的文件、页表(因此也就共享整个用户态地址空间)、信号标识及动态分配的内存等等。线程和进程的关系是:线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一物理内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。

  Linux内核只提供了轻量进程的支持,限制了更高效的线程模型的实现,但Linux着重优化了进程的调度开销,一定程度上也弥补了这一缺陷。目前最流行的线程机制LinuxThreads所采用的就是线程-进程“一对一”模型,调度交给核心,而在用户级实现一个包括信号处理在内的线程管理机制。

  在Linux的“一对一”模型中,用一个核心进程(轻量进程)对应一个线程,将线程调度等同于进程调度,交给核心完成,而其他诸如线程取消、线程间的同步等工作,都是在核外线程库中完成的。因此可以把进程看作一组线程,这组线程拥有相同的线程组号(TGID),这个TGID就是这组线程序所附属的进程的ID号,每个线程的ID号就是我们用ps命令所看到的LWP号。
 链接:进程与线程

  可执行文件由指令和数据组成。进程就是在计算机上运行的可执行文件针对特定的输入数据的一个实例,同一个可执行程序文件如果操作不同的输入数据就是两个不同的进程。

  线程是进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享其所附属的进程的所有的资源,包括打开的文件、页表(因此也就共享整个用户态地址空间)、信号标识及动态分配的内存等等。线程和进程的关系是:线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一物理内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。

  Linux内核只提供了轻量进程的支持,限制了更高效的线程模型的实现,但Linux着重优化了进程的调度开销,一定程度上也弥补了这一缺陷。目前最流行的线程机制LinuxThreads所采用的就是线程-进程“一对一”模型,调度交给核心,而在用户级实现一个包括信号处理在内的线程管理机制。

  在Linux的“一对一”模型中,用一个核心进程(轻量进程)对应一个线程,将线程调度等同于进程调度,交给核心完成,而其他诸如线程取消、线程间的同步等工作,都是在核外线程库中完成的。因此可以把进程看作一组线程,这组线程拥有相同的线程组号(TGID),这个TGID就是这组线程序所附属的进程的ID号,每个线程的ID号就是我们用ps命令所看到的LWP号。

开源监控在企业服务器上闪耀光芒

Jack Loftus 
当Tom Cignarella来到PlanetOut Inc.公司走马上任,担任技术运营副总裁的时候,他的大部分数据中心还在黑暗之中。

  【IT专家网独家】当Tom Cignarella来到PlanetOut Inc.公司走马上任,担任技术运营副总裁的时候,他的大部分数据中心还在黑暗之中。

  媒体和娱乐公司的San Jose数据中心的灯火通明,但是它的网络监控却是一片黑暗——只有20%的Cignarella的服务器拥有某种报告或者监控的能力。

  “当我2006年第一次到达那里的时候,那里只有几台服务器是在监控中。只有很有限的历史图表——我们几乎是蒙着眼睛在飞行,” Cignarella说。一个客户构建的应用程序,诸如此类的,正在处理PlanetOut公司的将近40台混杂运行着Solaris和 Red Hat Enterprise Linux 4的服务器的监控和系统管理需求,他说。

  那个时候他并不知道,他的几台Sun Microsystems Inc. T1000 服务器都运行了100%的容量。其它的服务器则在不知道的情况下崩溃了。网络的缓慢开始影响了业务。但是只有20%的系统是在管理下, Cignarella和他的IT员工真的无处了解这是为什么。“是客户告诉我们发生了问题,而我们自己都不知道服务器有问题,”他说。

  Nagios的学问

  在他到PlanetOut担任IT职责之前,Cignarella是在Symantec Corp.公司工作,位于加利福尼亚州卡布奇诺,在那里,他管理一个网络监控团队。

  在Symantec, Cignarella渐渐熟悉了一个开源监控项目,叫做Nagios。Nagios是在2002年发布的,许可证是GPL。Nagios监控用户指定的主机和服务,并且在发生问题的时候提出警告,然后在主机和服务恢复之后继续监控。

  “在Symantec的时候,我们对Nagios做了大量的扩展工作,并且能够将其扩展到整个企业范围,”Cignarella说。然而,因为 Nagios是Symantec赠予的,所以它需要一位系统管理员专家来充分挖掘它的潜力。“任何系统管理员都可以把Nagios启动起来,并且将其运行在自己的环境中,但是如果你想要进一步扩展,那么你就需要一位专家了,”他说。

  PlanetOut没有这样的专家。幸运的是,Cignarella与其它一个名为GroundWork Open Source的监控公司熟悉,这家公司有一个产品,叫做监控器,由几个开源项目组成,其中包括Nagios。

  “在PlanetOut,服务器环境需要我们能够快速启动并且运行起来,”Cignarella说。一个来自“四大”的产品——IBM, CA ,惠普,以及 BMC 软件公司——也是无法提供的,Cignarella说。“随着时间一点点过去,我们需要一些可以立即启动并运行起来的东西,”他说。

  所以PlanetOut开始了对GroundWork Monitor 4.5的部署。Cignarella对于这项技术很满意,并且也很熟悉它的安装和维护过过程。成本也是一个问题,四大公司所有的产品的成本在每个监控上都要超过几十万美元。Cignarella没有详细描述他的部署成本是多少,但是说他获得了来自旧金山的GroundWork的标准支持许可证。

开源需要点运气

作者: Charles Babcock,  出处:信息周刊  
说到下一波开源项目赢家,Subversion能跻身前列的其中一个原因是靠运气。因为在谷歌的Google.Code开源项目站点中使用了它,作为版本控制系统。Subversion因此迅速取代它的开源前辈CVS系统,此外它还为微软和IBM的版本控制软件提供了网页友好的工作方式。

  说到下一波开源项目赢家,Subversion能跻身前列的其中一个原因是靠运气。因为在谷歌的Google.Code开源项目站点中使用了它,作为版本控制系统。 Subversion因此迅速取代它的开源前辈CVS系统,此外它还为微软和IBM的版本控制软件提供了网页友好的工作方式。谷歌公司的开源项目经理克里斯•迪博纳(Chris Dibona)表示“我们喜欢Subversion”,而Subversion的代码委员会里就有谷歌公司的员工。但谷歌还是有所保留;它只是在外部项目的管理上使用了Subversion,而它自己的内部研发,使用的是商业软件Perforce。

  贝伦多夫评论道,Apache和Subversion就是“合适的时机出现的合适产品。”因为“它们诞生之日,也正是市场上对它们的功能有强烈需求之时。”换言之,它们走在创新的前面。MySQL AG的产品部执行副总裁师扎克•艾尔洛克(Zack Urlocker)认为开源代码必须颠覆原有的做事方式。艾尔洛克进一步指出,开源软件“作为颠覆动力”的角色有时被忽视了。”

  企业开发者面临的关键问题是:这个开源项目能否解决我和同事正在苦苦挣扎的问题?如果需求足够强烈,甚至OpenVista也可以走出困境。谷歌的迪博纳认为 OpenVista已被期待很长时间了,因此开发人员都会忍不住去关注它的代码。“我见过不少项目刚发布时简直一团混乱,”他表示,“但如果代码正好符合用户对软件的需求,就会有开发人员参与修改代码。”

  Spring框架项目的领导乔纳森作为程序员看到了伦敦金融机构的强烈需求。他认为Java企业版(Java Enterprise Edition)对普通人来说太复杂了,而且确实会拖慢开发进度。他认为:“我看过许多用Java开发的项目,但根本没法完成。”

  当被问到他会否像贝伦多夫一样再创开源项目的辉煌,乔纳森承认机遇的成分,和高速变化的技术环境中思维领导能力的重要性。“要碰到有快速增长需求的时机,最顶尖的开源项目也得靠点魔力,”他总结道。“但魔力不是人人都有的。”

Nagios网络警报被SNMP虚假警告打败

2007-04-12 09:24
  位于旧金山的在线租赁服务代理公司Mynewplace.com的HP ProLiant服务器在技术上没有什么问题,但是IT员工在早上4点钟就开始不停收到哔哔的声音,这些警告最终被证明是虚假警报……

  位于旧金山的在线租赁服务代理公司Mynewplace.com的HP ProLiant服务器在技术上没有什么问题,但是IT员工在早上4点钟就开始不停收到哔哔的声音,这些警告最终被证明是虚假警报。

  所以尽管服务器没有问题,IT员工却并非如此。每个月都要浪费几天时间在诊断他们的50 台运行Red Hat Enterprise Linux 4 AS 和 ES 操作系统的HP ProLiant DL145s 和 DL385s服务器上,John Shin说,他是Mynewplace.com公司负责系统的主任。Shin下决心说他们需要一些改变了。

  与网络监控斗争

  “我们与网络监控进行斗争,”Shin说,但是这只是一个保守的掩饰。事情是如此糟糕,实际上,去年的某个时间,他决定将所有的监控应用程序一起失效,因为它们所带来的坏处超过了他们的好处。

  这个应用程序就是Nagios,一个流行的开源系统,网络监控应用程序,可以为用户自定义的主机和服务提供警报。然而,在Shin的网络中,它被错误 地触发了警报,因为简单网络管理协议(SNMP)与Mynewplace.com的开源应用程序服务器,Resin 2.0不兼容。Resin 是PHP脚本语言基于Java实现的,并且被位于圣地亚哥的Caucho技术公司提供维护和支持。

  Nagios, JVM 和 Resin 2.0 的灾难

  因为Resin 和 Nagios不能直接兼容,Shin只能通过SNMP求救于应用程序栈的Java虚拟机(JVM),并且用这种方式监控环境。不幸的是,在这样条件的响应时间是非常慢的,他说。

  “Nagios并不是真正问题所在,”Shin说。“是JVM栈不能正确响应。它在SNMP中记录事件,然后被Nagios观察到,这就让事情犹如爬行。这里浪费了好几个小时,并且它在凌晨四点触发了警报。”

  除了在开源仓库(例如SourceForge.net)中的流行之外,Nagios也有不少诽谤者。在 SearchEnterpriseLinux.com网最近一次进行的采访中,Zenoss Inc.公司的首席执行官Bill Karpovich批评了Nagios,说它缺乏企业级的支持。“维护从来像一个IT经理们会用它来监控整个企业环境的项目那样进行过,”他说。 Zenoss是在系统管理领域内的开源发起人之一。

  另一个选择:惠普的OpenView

  像许多具有网络监控需求的用户一样,Mynewplace.com首先看到了惠普公司的系统管理套件,OpenView。然而,Shin说,这是针对中型企业的,Mynewplace.com有预算方面的限制,而OpenView价格太贵买不起。

  惠普提供的功能丰富的,价格昂贵的产品,还有其他四大成员——IBM,CA,BEA——促进了“四小”(这个词是分析机构RedMonk首次提出)的 诞生,分别是Hyperic, Zenoss, Qlusters和 GroundWork。来自这些企业的老总们期望他们的芯片可以在有价值的中等市场上赢得类似Mynewplace.com这样的客户。

  与OpenView相比较而言,来自“四小”的产品在价格上要平均便宜2.5倍,Shin发现,虽然他没说具体的钱数。OpenView还有另外一个 打击:“它没有在合适的地方放置框架来监控我们一些关键的应用程序,”也就是Resin 和 Postgres,Shin说。

  拼命寻找Resin的支持

  Shin的惟一一个对网络监控应用程序的需求就是它可以与Resin兼容。但是到现在为止他还没有找到——收费的,或者是开源的——都无法与Resin兼容。

  但是,在3月份,一次简单的Google搜索发现了一个意外:Hyperic HQ 3.0,这是位于旧金山的Hyperic公司的旗舰产品。与其他许多商业开源公司一样,Hyperic免费提供了产品的下载,通过GNU公共许可证 (GPL)可以使用,然后再向顾客销售所需的支持。Shin下载了一个免费的拷贝来测试。

  在3月31日,Shin说Mynewplace.com与Hyperic公司以一个“不错的折扣”签订了一份合同,支持4台ProLiant机器上的 25%的节点,具体钱数没有透漏。“机器外的支持和与Resin的兼容值得这个数,”他说,在这四台机器上,虚假警报终于停止了。

  将Nagios监控的机器向Hyperic移动的过程也需要感谢一下HQ公司的自动发现工具,Shin说。在安装上,HQ自动发现并集成了Shin的 Nagios环境。HQ还能收集来自Nagios 提供的响应代码,还有Shin现有的Nagios插件也会以基于文本的形式报告输出。这些插件进行了主机和服务的检测,然后返回给Nagios主机或者服 务的状态。

  机器上运行的是Red Hat Enterprise Linux AS 和 ES,Postgres,以及一个名为StrongMail的安全邮件服务器。最终,如果所有这些都按照计划完成,Shin期望他可以在今年下半年用 Hyperic HQ替换掉剩余的仍然用Nagios SNMP监控75%的节点。

  与此同时,Shin不后悔忽略掉惠普的OpenView。“如果我们使用了OpenView,你就可以设想一下,所有的客户工作和插件都要与我们的核 心需求一起工作起来,这需要的时间与现在Nagios所需要的时间也差不多了,”Shin说。“与我们现在所做的比较起来,过去我们通常每个月要花费5个 人日来维护Nagios,这是没有道理的。现在每个月只用几个小时。”

  对这篇文章有疑问或者评论吗?请发送电子邮件给Jack Loftus新闻编辑,不要忘了参观我们的新博客,企业 Linux 日志。

开源七大盈利模式

盈利模式之一:多种产品线

这种模式中,利用开源软件为直接产生收入的专有软件来创造或维持一种市场地位。开放源代码的客户端软件带动了服务器的销售,借用开源版本带动商业许可版本的产品销售。

盈利模式之二:技术服务型

在这种模式中,开放源代码软件采用了一种全新的市场定位,并非面向产品,而是针对技术服务。JBoss就是这种模式的典型代表。JBoss 应用服务器完全免费。

盈利模式之三:应用服务托管

PHP Live! 就是一种构架于 PHP、MySQL 之上的开源软件,它可为企业用户提供实时交谈服务。目前已经有数十家公开提供 PHP Live! 托管服务的应用服务提供商。

盈利模式之四:软、硬件一体化

这种模式是针对硬件制造商的。随着竞争的普及,市场压力迫使硬件公司开发并维护软件,但是软件本身却并不是利润中心,因而采用开源软件。 这种模式为大型公司广泛采纳,比如 IBM HP 等服务器供应商巨头,通过捆绑免费的 Linux 操作系统销售硬件服务器。

盈利模式之五:附属品

在这种模式中,出售开放源代码的附加产品。比如在低端市场,出售杯子和T恤衫等;在高端市场上,出售专业编辑出版的文档和书籍。O'Reilly集团是销售开源软件附加产品公司的典型案例,他出版了很多优秀的开放源代码软件的参考资料。

盈利模式之六:品牌战略服务致上

在这种模式中,开源公司通过开源软件先天的传播优势,以极低的成本建立和传播品牌。并通过向用户提供产品相关的服务来获得回报。 康比尔公司的 Compiere ERP & CRM 软件是这种模式的典型案例。

盈利模式之七:市场策略

这种模式是一种快速抢占市场的营销策略,主要是为以后增强版产品的销售打基础。微软宣称部分的公开 Office 的源代码,就是这种策略。

Sunday, May 20, 2007

我的tunes使用了adobe, 不喜欢MS

微软Adobe竞逐Web 2.0开发
Web 2.0带动的不只是下一波网络风潮,也可能改变网页程序设计的方式,这也引发微软与Adobe的战火。

  微软将在推出新的网页设计软件Expression Web中文版,号称下一代FrontPage,可以改善过去FrontPage会产生掺杂不标准源代码的缺点,协助网站开发人员设计、开发出标准化网站。

  Expression Web具备CSS呈现引擎,较过去产品能呈现出设计者想要的的视觉效果,而由于支持XML、ASP.NET和XHTML,通过工作窗格和设计工具,新产品也整合后端数据库的信息。

  Expression Web Designer并能和Visual Studio整合,让网站前、后端开发流程更加顺畅,微软指出。

  不过这只是微软应对新一代网页设计概念兴起而推出下一代开发工具计划的一部份而已。除了Expression Web,微软预计于明年春天及夏天推出Expression Blend及Expression Designer,作为互动式动画及2D/3D的图形设计。“这是应对Web 2.0特性的视觉开发工具,”微软台湾开发工具产品营销经理胡德民说。

  虽然Web 2.0的定义模糊,不过一个普遍的特征是与使用者互动性更高。另一项特征是AJAX技术的应用,使得前端Web应用可以和后端数据库互动,将XML信息重新整理、重组再显示到网页上。这也使得新一代的网站应用必须兼顾使用者经验及信息与商业流程。

  新的网站—即现在说的Web 2.0—设计概念也使过去两个世界界限开始消融。“过去动画、网页设计与程序开发人员属于两个世界的人,前者在乎美学、视觉设计,后者则关注流程、逻辑及程序语言,”胡德民说,“新一代的网站则将这二种工作的分野模糊掉。”

  这也使得过去开发Flash动画的使用者,未来可能开发Web应用,或是 Flash、网页设计人员及应用开发人员之间必须更密切合作。然而就像任何来自不同训练背景的工作团队,网站设计与程序设计人员之间也存在极大沟通障碍,造成Web应用开发时程的延宕,胡德民指出。

  微软构想的正是一套可开发人员开发出活动、高互动性的Web应用,或者成为两种角色的协同平台,使设计人员开发出来的界面,可由开发人员无痛接续下去,他说。

  网站设计与应用逐渐融合

  而另一方面,Adobe也不甘示弱。Adobe十月间宣布软件开发平台Apollo,希望能够成为Web 开发和界面设计人员所使用工具。长远而言,Adobe希望让HTML与Flash开发人员都能用这个同一套语言来开发Web应用。

  该公司日前宣布将把名为ActionScript Virtual Machine的软件捐赠给Mozilla基金会,未来将会内建到Firefox浏览器中,希望让开发人员开发混搭式程序,包括AJAX-based网页以及Flash媒体或动画。

  不过微软的计划才开始启动。除了Expression外,微软新网页开发工具蓝图还包含ASP.net AJAX及WPF。

  ASP.net AJAX可说是针对现有ASP.net开发人员设计的工具。开发人员可以在现有技能基础之上,很快上手使用AJAX。WPF(Windows Presentation Framework)则让开发人员撰写出能同时在Web、桌面电脑及手持设备上执行的动画影像,类似Adobe的Flash;WPF有助于吸收过去为 Adobe用户的程序设计师。WPF已包含在.Net Framework 3.0的出货。

  胡德民认为,Web 2.0特色不只是更花俏的网站,而是与商业流程的结合,这也是开发工具的重要性所在。“否则如果使用者会直接按Skip键跳过而不看的Flash网站,再酷炫也只是可有可无的葱花。

2007年十大热门技术 Web 2.0继续升温

  据Gartner网站报道,Gartner调研副总裁Carl Claunch日前列出了2007年最值得关注的十项技术,它们分别为:

  1. 服务器虚拟化

  2. 新型数据中心技术

  3. 网格计算

  4. 液体冷却

  5. 开源软件

  6. 信息接入

  7. 普适计算

  8. 网络聚合

  9. Web 2.0

  10.多内核处理器

谣言称iPhone跳票 苹果市值6分钟蒸发40亿美元

科技时代_谣言称iPhone跳票 苹果市值6分钟蒸发40亿美元
周三的市场谣言令苹果股价出现异常波动

  新浪科技讯 北京时间5月17日消息,美国当地时间周三,一则关于苹果iPhone手机和Leopard操作系统双双跳票的谣言令苹果市值在短短6分钟内蒸发了40亿美元。

  周三上午11:49,美国著名硬件网站Engadget发布了一则消息称,从苹果公司内部获取的一份邮件显示,iPhone手机和Leopard将无法如期上市,iPhone由6月推迟至10月,Leopard由10月推迟到明年1月。

  消息刚一传出,在纳斯达克交易的苹果股票立即出现大量卖出指令,从11:56到12.02,短短六分钟内从107.89美元猛跌至103.42 美元,市值瞬间蒸发40亿美元。随后Engadget发布澄清声明,称获苹果公司通知,上述邮件非公司所发,内容并不属实,“苹果将如期在6月底推出 iPhone、10月推出Leopard。”

  股市立刻对此消息做出回应,到12:22,

苹果股价便迅速反弹至下跌前水平,当天收盘时微跌1.4美元。

  市场人士怀疑,有人蓄意发布虚假消息,操纵股市从中渔利。目前尚不清楚美国

证券监管当局是否会介入调查。(甘利)

AJAX的安全与web2.0

Web 2.0不断将网站的能力向外推展,也掀起第二波Web狂潮。然而专家警告,在网站不断增加功能的同时,小心安全主问题已被抛到九霄云外去。

  这项新科技带动的商机令人回想起90年代的网络风潮,许多所费不赀的大型会议、多如过江鲫的新创公司,以及一些颇具创意的公司像是MySpace.com与Writely被以天价收购,这些都是当时热闹景象不可或缺的元素。


“我们所犯的错还是一样,我们都把安全摆到最后,”SPI Dynamics Web安全专家首席工程师Billy Hoffman说。“大家都全心拥抱这个热朝,把它和Web应用兜在一起,但他们根本没有考虑到安全的问题,不知道这样会置使用者于何种风险之下。”

  Yammaner、Samy与Spaceflash是网络上赫赫有名的攻击程序。 Yammaner蠕虫锁定雅虎Mail而来,专门收集邮件帐号并将自己复制到雅虎使用者的所有通讯录中。Samy与Spaceflash两只蠕虫都已在 MySpace上扩散,将这个知名社交网站的使用者信息(profile)加以变更。

  Web 2.0其实没有精准的定义,而是一个笼统概念,涵括非静态、非纯网页的网站。Web 2.0网站更具互动性,让使用者可以把照片贴在网站上等。而和过去的Web不同的是,它提供了与桌面应用非常相似的使用经验。

  AJAX是实现更炫更互动网页的主要技术。Google去年推出的Google Maps是第一批向世人展示AJAX开发效果的网站之一,它让使用者可以用鼠标把地图移到屏幕上任何一处。

  但AJAX的“功能”不只是把网页变得更互动而已。专家说,它也提供黑客整垮Web服务器,攻击使用者的渠道。

  “我们可以用房子来比喻,”将在下周黑帽安全大会上针对AJAX安全发布演说的Hoffman说,“传统网站好比一幢没有窗子、只有一扇门的房子,而AJAX

网站则是一个有数不清窗子和旋转门的房子,尽管你在前后大门上加了最安全的锁,但我还是可以从窗口钻进去。”

  以这种新技术开发的网站“攻击面积”又更大,因为它和浏览器有更多互动,而且可以在用户端PC上执行JavaScript。JavaScript是常见的描述性语言。传统网站一般需通过表格来接收信息。

  跨网站描述语言

  AJAX也增加了跨网站指令码(Cross-Site Scripting)的可能性,如果网站源代码撰写不留意就可能发生。专家指出,攻击者可以利用这项弱点绑架使用者帐号,发动网钓诈骗窃取信息,或甚至把恶意源代码下载到使用者电脑中。一些知名公司像是微软、eBay、雅虎与Google等网站都曾出现跨网站指令码的漏洞。

  风险还不只如此。AJAX其他可能风险包括程序竞争条件(race condition)、源代码正确性(code correctness)、违反物件模型(object model

violation)、不安全随机(randomness)以及错误处理不当等等,源代码分析工具供应商Fortify Software首席科学家Brian Chess说。

  上述错误都可能导致信息外泄、A使用者控制B使用者的通讯,恶意源代码被执行或引发其他攻击等等,Fortify说。该公司研究人员发现在去年一本针对软件开发人员所着的《Foundation of Ajax》中,揭露了上述AJAX源代码样本分析结果。

  “书中的源代码样本可以当成示范,让许多软件开发人员学到不安全的程序撰写习惯有哪些。”Chess说。

  本书作者之一Ryan Asleson表示目前还没听到有源代码样本中的漏洞,但他表示,如果有也不令人意外,因为这种源代码太简单了,大家都学得起来。

“我们从来没有假设这种源代码已存在企业应用中。”他说。

  确保长治久安之道是开发人员训练与作法,Asleson说。“如果有人说他的程序没有安全问题,我觉得他是在痴人说梦,”他说。“开发人员只要一个不小心,就会让安全洞开。”

  Chess说,AJAX本身不会引发漏洞,只是它让旧有问题变得更容易发生。软件产业现在还停留在桌面应用时代,缓冲溢位(buffer overflow)在那是相当

严重的问题。但AJAX中的JavaScript则为老问题注入索尼量。“简直就是历史重演。”

  写过两本AJAX相关着作的Asleson同时也是开发人员,他并不同意网站开发人员忽视安全问题。“有时这牵涉到桌面电脑十多年来发展的轨迹,十多年前大家都不注重安全,现在这个问题已没人敢轻忽,”他说。

  两大网络巨人Google与AOL也有同样看法。Google工程部门副总裁Douglas Merrill在电子邮件中说道,Google是AJAX的爱用者。

  “和其他软件开发一样,AJAX的开发也需相当注重安全,时时谨记使用者的最大利益,”Merrill说。Web应用好处之一是修补漏洞又快又简单,而不需要劳动到使用者。

  他表示,虽然Google还无法百分之百免除网站漏洞,但安全却是该公司产品与服务设计、开发、上线及运营不可或缺的一环。

  “在我们经验里,只由安全小组做完的流程无法适用到别的部门,不够有效,因此我们试着把安全融入到整个产品开发过程当中。”Merrill说。

  愈大愈好?

  AOL则相信大型网络公司在安全上做得比新创公司来得好。“我们有二十多年经验,又有很大的安全专业部门确保我们既有与新推出的产品的安全,”该

公司发言人Andrew Weinstin说。

  MySpaces、Flickr或Google Maps的成功引发网络另一波拓荒潮,而且进入门槛也不高,Hoffman说。但他表示,事情可不只是架个网站那么简单。开发

人员得要具备安全意识,留心软件瑕疵,或是内建功能遭人以恶意程序滥用。

  上个月发现的Yamanner蠕虫就是利用雅虎 Mail可在信息中附加JavaScript的功能而来,专家出。只要使用者一打开件,描述语言就会执行,并对雅虎 Mail服务下指令把使用者的通讯录寄到远端服务器。这只蠕虫也会命令邮件服务把恶意信息寄给所有联络人。

  雅虎表示会努力保护用户信息。“我们已成立项目小组确保工程师对安全的重视,并且以各种方法确保整个开发过程中的安全品质,包括开发人员教育、基础架构、检测及工具等等,”该公司代表说。

  MySpaces方面,去年十月爆发的Samy被视为第一个跨网站指令码漏洞攻击。它攻击了MySpace网站,把数百万用户加入到作者的“好友名单”上。

MySpace用户看到被感染的使用者信息(profile)时,他自己的使用者信息也会被感染,并且会去感染别人。

  两种攻击都没有引发损害,但专家警告这些漏洞未来可能遭到更严重攻击。“我认为AJAX还没有这种攻击或防护。”Chess说。

  专家表示,网站开发人员对使用者及服务器的安全意识将渐成Web 2.0安全之所系。网络使用者的PC安全软件,像是杀毒与反网钓工具的能提供一定程度的防护。但此类应用一般只在攻击发生后效果最大,因为它们需要攻击签名或已知恶意网站的黑名单为之。

  “使用者一定被弄得一头雾水,但是Web应用真的存在漏洞,”Hoffman说。“解铃还需系铃人,只有实际撰写Web应用程序的人才能真正解决安全问题。”Hoffeman说。

TechCrunch:生活中必不可少的Web2.0公司

导语:北京时间1月4日,著名博客迈克尔·阿灵顿(Michael Arrington)近日在TechCrunch发表文章,公布了自己生活中必不可少的15个Web2.0网站,其

中包括Digg、Flickr、Skype、以及YouTube等等。

  一年前,阿灵顿曾经写下一篇名为“我生活中必不可少的Web2.0公司”的文章,并列出了对他日常生活影响最大的13家公司。他喜欢这些公司的产品,

并且每天都会使用。进入2007年,阿灵顿更新了这一列表。在原有的13家公司,有7家公司保留下来,另外6家则名落孙山。此外,他又新增加了两家公司,

因此新列表中共有15家Web2.0公司,下面是这些公司的名单(按首字母排序):

  800-Free-411:

  免费的411服务去年为我省了不少钱。到目前为止,411服务在美国信息通话市场已经占据了超过3%的份额,甚至AT&T都已宣布将模仿其模式。对于消费

者而言,这当然是一个好消息。

  Amie Street:

  Amie Street去年7月刚刚推出,它采用了一种引人关注的DRM免费音乐销售模式。乐队首先上传自己的音乐,随后由用户免费下载。当歌曲流行之后,

Amie Street就开始向用户收取一定的费用,收费标准从0.01美元到0.99美元不等。如果用户想寻找最流行的歌曲,只需关注下载价格即可;如果用户更喜欢

冒险,也可以尝试更多歌曲。作为一个DRM免费数字音乐“自由市场”,Amie Street也许代表着未来。

  Ask City:

  今年的列表中不再有Bloglines,但Ask.com旗下的另一项资产、最近推出的Ask City榜上有名。我个人认为,Ask City已经取代雅虎地图服务,成为最

佳的互联网地图产品。Ask City最令我喜欢的功能是多点导向和注释工具,用户将地图转寄好友之前可以在上面做标记。虽然推出不足一个月,但Ask City

已经成为我最喜欢的一个互联网应用。

  BlueDot:

  BlueDot是一个类似于del.icio.us的社交书签服务。我已经用BlueDot取代了del.icio.us,因为我更喜欢它的界面。BlueDot允许用户仅在好友间共享书

签,而del.icio.us则只为用户提供完全公开和完全私有的选择。BlueDot于去年7月推出,去年10月进行了一次升级。

  Digg:

  每一位TechCrunch读者都了解我对Digg的态度。Digg是新闻的未来,它也是继博客之后对主流媒体的最大冲击。当然,Digg必须在吸引活跃用户的同时

,同垃圾信息作斗争,这并不容易。无论如何,我每天都浏览Digg网站。

  Flickr:

  2006年出现了多家类似于Flickr的新兴公司,但它仍然是我每天必用的图片标记和共享网站。Flickr推出的多项新功能简直令人难以置信,例如我就很

喜欢它的面部识别功能。

  Flock:

  早在2005年8月,我就成为了Flock的忠实用户。我认为,Flock可以看作是一个完整的系统,而Firefox还存在着一些兼容性方面的问题。如果没有Flock

,我会成为一名快乐的Firefox用户,但事实情况是我将Flock作为自己的首选浏览器。有消息称,Flock近日将推出一个重要的新版本。

  Gmail:

  尽管最近出现了一些问题,但我仍然认为Gmail是最接近完美的桌面电子邮件应用。原因很简单,它的容量很大,可以为邮件加标签,而且最近增加了对

POP的支持。当然,最主要的原因还是免费。

  NetNewsWire:

  自2006年初转到Mac平台之后,我就开始使用NetNewsWire桌面种子阅读器。NetNewsWire并不免费,但它的高速和离线种子访问功能让我觉得每月付出30

美元完全值得。由于NetNewsWire的存在, Bloglines今年退出了列表。当然,未来我很有可能会转向Google阅读器。有了EVDO无线接入,离线接入已经不再

那么重要,而Google阅读器自去年9月升级后有了很大的提高。

  Netvibes:

  我每天都会访问Netvibes数次,以快速浏览一些重要的种子。Netvibes的用户人数仍然在高速增长,自今年初获得1500万美元融资后,它的经济实力也

越来越雄厚。我猜测,Netvibes目前正在抵御其它公司的收购,但也许到2007年底它就不再是一家独立的公司。

  Pandora:

  自2005年推出之后,我对Pandora就一直非常关注。也许我在Pandora听音乐的时间已经超过任何人,因为每当我写博客的时候都会使用它的服务。我想

还有数百万忠实的用户认同我的观点。

  Skype:

  自电子邮件之后,我认为Skype是最能提升生产力的单一产品。我一直将Skype作为首选即时信息工具,几乎每天都会使用它的免费通话功能。Skype无疑

是互联网“杀手级”应用之一。

  Techmeme:

  TechMeme就是博客圈的日报,同时也是我访问最多的网站之一。TechMeme的内容经常会在几天后出现在《纽约时报》或其它主流媒体上。我父亲是

Techmeme旗下政治网站Memorandum的忠实用户,而我则更喜欢它的科技新闻区。

  Wordpress:

  从创建TechCrunch之日起,我就一直使用Wordpress。Wordpress是最灵活的博客平台,而它的Akismet垃圾评论过滤服务使我摆脱了每天近一百万条垃圾

评论带来的困扰。如果没有这项服务,我只能聘请一位专职人员来处理垃圾评论。

  YouTube:

  YouTube并不是一家新公司。今年11月,Google已经以价值16.5亿美元的
股票收购了YouTube。尽管存在着一些不足,但我仍然是YouTube的忠实用户。

  其它有望上榜的公司:

  AllOfMP3、AllPeers、Last.fm、Meebo、维基百科、Zoho。(摩尔)

内核 unix, linux

所有的Unix内核都同宗同源,并且提供相同的API,现代的Unix内核存在许多设计上的相似之处。Unix内核几乎毫无例外的都是一个不可分割的静态可执行块(文件)。也就是说,它们必须以完整、单独的可执行块的形式在一个单独的地址空间中运行。Unix内核几乎都需要硬件系统提供页机制以管理内存。这种页机制可以加强内存空间的保护,并保证每个进程都可以运行于不同的虚地址空间上。

单内核与微内核设计之比较
操作系统内核可以分为两大设计阵营:单内核和微内核(第三阵营外内核,主要用在科研系统中,但也逐渐在现实世界中壮大起来)。

单内核是两大阵营中一种较为简单的设计,在1980年之前,所有的内核都设计成单内核。所谓单内核就是把它从整体上作为一个单独的大过程来实现,并同时运行在一个单独的地址空间。因此,这样的内核通常以单个静态二进制文件的形式存放于磁盘。所有内核服务都在这样的一个大内核空间中运行。内核之间的通信是微不足道的,因为大家都运行在内核态,并身处同一地址空间:内核可以直接调用函数,这与用户空间没有什么区别。这种模式的支持者认为单模块具有简单和高性能的特点。大多数Unix系统都设计为单模块。

另一方面,微内核并不作为一个单独的大过程来实现。相反,微内核的功能被划分为独立的过程,每个过程叫做一个服务器。理想情况下,只有强烈请求特权服务的服务器才运行在特权模式下,其他服务器都运行在用户空间。不过,所有的服务器都保持独立并运行在各自的地址空间。因此,就不可能像单模块内核那样直接调用函数,而是通过消息传递处理微内核通信:系统采用了进程间通信(IPC)机制,因此,各种服务器之间通过IPC机制互通消息,互换“服务”。服务器的各自独立有效地避免了一个服务器的失效祸及另一个。

同样,模块化的系统允许一个服务器为了另一个服务器而换出。因为IPC机制的开销比函数调用多,又因为会涉及内核空间到用户空间的上下文切换,因此,消息传递需要一定的周期,而单内核中简单的函数调用没有这些开销。基于此,付之于实际的微内核系统让大部分或全部服务器位于内核,这样,就可以直接调用函数,消除频繁的上下文切换。Windows NT内核和Mach(Mac OS X的组成部分)是微内核的典型实例。不管是Windows NT还是Mac OS X,都在其新近版本中不让任何微内核服务器运行在用户空间,这违背了微内核设计的初衷。

Linux是一个单内核,也就是说,Linux内核运行在单独的内核地址空间。不过,Linux汲取了微内核的精华:其引以为豪的是模块化设计、抢占式内核、支持内核线程以及动态装载内核模块的能力。不仅如此,Linux还避其微内核设计上性能损失的缺陷,让所有事情都运行在内核态,直接调用函数,无需消息传递。至今,Linux是模块化的、多线程的以及内核本身可调度的操作系统。实用主义再次占了上风。

当Linus和其他内核开发者设计Linux内核时,他们并没有完全彻底地与Unix诀别。他们充分地认识到,不能忽视Unix的底蕴(特别是Unix的 API)。而由于Linux并没有基于某种特定的Unix,Linus和他的伙伴们对每个特定的问题都可以选择已知最理想的解决方案—在有些时候,当然也可以创造一些新的方案。以下是对Linux内核与Unix各种变体的内核特点所作的分析比较:
·Linux支持动态加载内核模块。尽管Linux内核也是单内核,可是允许在需要的时候动态地卸除和加载部分内核代码。

·Linux支持对称多处理(SMP)机制,尽管许多Unix的变体也支持SMP,但传统的Unix并不支持这种机制。

·Linux内核可以抢占(preemptive)。与传统的Unix不同,Linux内核具有允许在内核运行的任务优先执行的能力。在其他各种Unix产品中,只有Solaris和IRIX支持抢占,但是大多数传统的Unix内核不支持抢占。

·Linux对线程支持的实现比较有意思:内核并不区分线程和其他的一般进程。对于内核来说,所有的进程都一样—只不过其中的一些共享资源而已。

·Linux提供具有设备类的面向对象的设备模型、热插拔事件,以及用户空间的设备文件系统(sysfs)。

·Linux忽略了一些被认为是设计得很拙劣的Unix特性,像STREAMS,它还忽略了那些实际上已经根本不会使用的过时标准。

·Linux体现了自由这个词的精髓。现有的Linux特性集就是Linux公开开发模型自由发展的结果。如果一个特性没有任何价值或者创意很差,没有任何人会被迫去实现它。相反的,在Linux的发展过程中已经形成了一种值得称赞的务实态度:任何改变都要针对现实中确实存在的问题,经过完善的设计并有正确简洁的实现。于是,许多其他现代Unix系统包含的特性,如内核换页机制,都被毫不迟疑的引入进来。

不管Linux和Unix有多大的不同,它身上都深深地打上了Unix烙印。