2009年3月31日星期二

盘点:看看地球上有哪些国家在支持开源

盘点:看看地球上有哪些国家在支持开源

发布时间: 2009-03-12 17:03 作者: Linux伊甸园 来源: Linux伊甸园 版权申明 向LUPA投递新闻

字体:    | 上一篇 下一篇 | 打印


 很多人都认为,开源还没有深入人心,支持的国家和政府机构并不多。所以小编盘点下地球上有哪些国家和政府机构在支持开源。 

  挪威 

  挪威第二大城市卑尔根大规模迁移到Linux的计划已经进行到一半。已经将许多市政管理和教育服务器迁移到Linux上,并且正在将全市100所学校迁移到开 源桌面上。在该计划完成之后,打算将市政管理的所有桌面迁移到开源操作系统上。 

  根据MERIT的Ghosh的说法,挪威公共部门对开源软件的采用开始于教育部门,这是由于微软产品中缺乏对当地语言的支持。 

  “向开源迁移开始于教育部门并且由挪威政府日益正规化,”他说。“几年前,挪威的所有学校威胁说如果微软不支持尼诺斯克语(挪威的第二大语言)将 联合起来抵制微软。后来微软支持了这种语言,但是许多学校仍然向开源迁移。” 

  挪威超过100所学校使用Skolelinux,这是Linux为学校定制的版本。根据Bergen的首席技术官Tuftedal的说法,尽管卑尔根是挪威最有名的使用开源的城市之一,但是地处挪威东南的Sarpsborg其所有系统运行的都是Linux。 

  挪威政府在几年前宣布所有公共部门组织必须制定在2006年如何使用开源软件的计划,尽管Gartner的DiMaio认为这不是说各组织必须迁移到开源。 

  挪威软件公司Trolltech的总裁Eirik Chambe-Eng认为近几年新IT系统的引入刺激了挪威政府对开源的采用。 

  “有股巨大的力量将挪威政府使用IT的方式推向现代化,”Chambe-Eng说。“从头开始意味着能体会到改变过程和体验新方法带来的好处。”MERIT的Ghosh认为挪威政府对开放标准的鼓励已经影响了公共部门对开源的采用,因为开源应用软件通常使用开放标准,而专利软件却相反。 挪威政府在几年前的通告也谈到了开放标准,要求所有公共部门的IT系统在2009年之前在公文中使用开放标准。 

  根据EU新闻站点的消息,挪威现代化部长Morten Andreas Meyer在Oslo的一次新闻发布会上说,“专利格式将不再适用于公民和政府间的通信,”。 

  巴西 

  巴西政府可能向地方学校分发一百万台运行开源软件的笔记本电脑。Massachusett技术协会发起一项计划为发展中国家构建低成本Linux笔记本电 脑。巴西政府正在考虑制造两百万台这样的笔记本电脑,其中的一半将分发给地方学校,并且正在研究财政方案。 

  开源已经由巴西的联邦,州和市政府进行配置,而州和市改革的步伐更大一些,巴西政府应该采取自己的开源策略。 

  “在联邦政府采购自由软件之前,市和州政府应该主动地为更全面的计划铺平道路,”Lemos说。 

  巴西州政府中有许多大规模的迁移,例如,Parana州正在将10000政府员工从专利软件迁移到定制版的开源协作应用软件eGroupWare上,而且S?o Paulo在 全州的学校中配置了16000台PC和1000台服务器的Linux,根据Mandriva的说法。一些州政府机构也迁移到开源软件上,据报告说22个联邦部门中的七个在 使用开源。这包括许多开源桌面配置,例如,联邦政府中有4000台主机使用OpenOffice.org,根据Sun的产品行销经理Erwin Tenhumberg的说法。 

  巴西联邦政府已经起草法案要求公共部门使用开源软件。这项法令促使政府部门迁移到开源软件,除非他们可以证明继续使用专利软件是合理的。 

  巴西一些州和市政当局已经通过法律要求公共行政部门优先选择开源软件,其中州包括Espirito Santo和Parana ,市包括Amparo,Solonopole,Ribeir?o Pires和Recife。 

  但是巴西Linux供应商Conectiva的首席主管Jaques Rosenzvaig在四月份说这些法律并不影响在这些州使用开源,因为他们不是严格强制执行的。来自由 Conectiva和Mandrakesoft合并而成的Mandriva的Bancilhon认为巴西“谈论多于行动”。“在政治家想要做的和行政部门愿意实施的之间仍然存在差距,”他说。 

  和立法机关政策一样,巴西政府也资助项目研究并促进开源的使用,例如CDTC,一个提供有关开源软件的培训和支持的技术中心。 

  巴西政府宣称其采用开源软件的主要原因是降低成本。“这种转变的首要原因是经济上的,”巴西国家信息技术协会主席Sergio Amadeu da Silveira在一次采 访中对BBC说。“如果你转而使用开源软件,就会减少给国外公司支付的版税。” 

  建议巴西政府制定其自由软件策略的Lemos同意对政府而言节省资金是“非常重要的”原因。政府支持开源的其他因素包括能够获得源代码的教育优势, Lemos说。例如,大家看到S?o Paulo政府建立了telecentros的社区中心,人们在哪里可以获得自由软件。 

  “发生在telecentros有趣的事情是人们不仅开始使用计算机浏览Internet,而且大量的人开始通过修补程序的源代码学习编程,”Lemos说。“自由软件为熟练 程序员建立了一个社区,不久后成为国家总体科技发展的重要阵地。所以‘教育’的益处也是促使巴西政府采用自由和开源软件的重要因素。” 

  根据Lemos的说法,公共部门采用自由软件也是由巴西一个大型而且活跃的自由软件社区倡导的。 

  Redmonk的Governor认为巴西政府对开源的热情部分是因为“对美国公司强烈的不信任”,还有部分是因为文化原因。 
法国 

  十年前欧洲的许多国家就已经开始大刀阔斧的推广开源软件,其中力度最大的国家非法国莫属。通过政策支持和备受瞩目的项目,法兰西共和国数年以来一直在不停的大力发展开源软件,尤其是在政府和教育领域表现尤为突出。 法国政府去年向高校学生免费派发了175000份装有开源软件的U盘。    

  即使到了今天,法国依然在不断让开源软件担任更重要的任务,并采取更优惠的措施扶持开源软件厂商。    

  今年1月份,法国准军事警察部队表示,将逐步放弃使用微软Windows操作系统,而转向使用Linux操作系统。自2005年以来,法国国家宪兵部门已先后放弃使用微软Office办公套件和IE浏览器,转而使用OpenOffice和Firefox(火狐)浏览器等开源产品。 

  法国国家宪兵总队日前称,他们通过部署Ubuntu来代替微软的Windows,已经节约了数百万欧元。法国警方从2005年开始就向开源软件过渡,当时他们采用OpenOffice取代微软的Ofiice。之后逐渐采用其他开源软件,包括Firefox和Thunderbird。 在2006年微软发布Windows Vista之后,他们开始逐步淘汰Windows系统,采用Ubuntu系统。在近期的部署中,他们已经在5000个工作站中部署了Ubuntu。他们还计划在年底之前对1.5万个工作站部署Ubuntu。他们预计在2015年之前,对整个警察系统的9万个工作站全部部署Ubuntu。 

  美国 

  美国纽约州立法机构修改美国税法,对开源软件开发者进行个人所得税补贴(减免20%),最高补贴限额为200美元(每年). 

  美国的税法很严厉,该缴多少税就得缴多少,一点不能含糊.近日,纽约立法机构(Assembly)良心发现,自己使用了火狐浏览器和电 子日历等开源软件,认识到开源软件开发者确实不容易,决定对他们们进行补贴. 

  美国参众两院投票批准了总额为7870亿美元的一揽子经济刺激计划,预计将在周一递交给奥巴马总统批准。 一个有趣的规定深埋在刺激计划的细节之中,可能有助于帮助开源软件进入医学领域。计划文档(PDF)第488页提到卫生与公众服务部长要研究开源卫生技术系统。维基百科上有一个条目就列出了数十种开源保健软件。 

  在美国联邦拨款法案中看到开源软件之类绝对是极为稀罕之事。但美国国会的2009财政年度国防授权法提案中,却包含了呼吁军事机构考虑在有人或无人操作的航空设备中使用开源软件的词语。 法案并没有详细说明如何使用开源软件,但众议院军事委员会的报告称,“委员会关注费用的上升和减少信息系统软件开发中安全相关问题”。 
英国 

  据BBC报道,英国政府将很快作出推动开放源代码软件的决策,考虑采购开放源码软件作为公众服务用途的替代商业软件,政府表示“只有当钱花得最值”的时候才可以通过,而开源软件大多数都是免费的. 

  商业软件方面,政府正面临着合同和许可证的困扰,一旦许可证到期,政府将再次支付购买软件的钱,而用开源软件,这一切就可以避免,对于金融紧张的迎过来说.开源软件成了最好选择. 政府目前还没有提出部署开源软件具体的计划,更没有计划的细则,最大的软件提供商微软和Sun并没有对此表示反对,反而是积极支持,比尔盖茨曾在CNET表示自由软件代表了一种态度,应该努力发扬这种开放的态度. 

  古巴 

  为了对抗微软视窗系统威胁国家利益,古巴日前推出了自己的Linux操作系统,名为Nova. 

  这一Linux版本还囊括了一些应用软件.日前在哈瓦那一个有关“技术主权”的大会上,有关方面推出了这一系统.古巴信息科学大学自由软件学院院长罗德里 格斯表示,目前古巴两成的电脑使用Linux系统.他说,古巴的不少大学和政府部门已经开始向Linux迁移,但是部分国有公司担心,这一系统和他们的应 用软件难以兼容. 

  罗德里格斯说,五年之内,古巴一半的电脑将使用国产Linux系统. 

  古巴政府认为,由于美国安全机构可以触及微软视窗系统的代码,因此使用视窗系统对于古巴的国家安全构成了威胁.另外,由于美国长期制裁古巴,古巴很难获得新的视窗正版软件,以及最新的软件更新. 

  古巴通信部部长瓦尔德斯表示,在信息领域获得更大程度的自我控制是一个重要问题.瓦尔德斯本人领导着一个在古巴国内推广自由软件的委员会. 值得一提的是,从去年开始,古巴居民才被允许购买个人电脑. 

德国 

        德国外交部将它的11000台电脑全部换成GNU/Linux和其它开源软件。这一举措将使外交部相比其它部门大幅度的减少维护费用。马德里德国大使馆外交官、前外交部IT主管Rolf Schuste表示,“外交部需要在一些偏远和困难的地点运行电脑。我们每年每台电脑要投入1000欧元,但仍然远低于其它部门的每年每台电脑平均超过3000欧元的费用。”他表示开源桌面系统维护费用比私有系统少得多。日本和韩国的大使馆都全面替换到了开源系统,马德里大使馆是从去年10月开始使用GNU/Linux,他表示替换很成功。 

  俄罗斯 

  俄罗斯的邮政部门的计算机系统即将整体迁移到 Linux 平台, 有关机构已开始测试 Linux 能否满足他们的需要。据悉,其转向 Linux 平台的主要原因是为降低成本。虽然俄罗斯的邮政部门目前并没有表示将具体会使用哪个一个发行版,但来自多方的消息表示其采用 Red Hat Linux 的可能性最大。   

  如果测试通过,42000多个俄罗斯的邮政局的计算机系统将迁移到 Linux 平台,涉及的计算将超过 125000 台。每天,无数的信件、期刊、包裹以及汇款都将使用 Linux 平台的计算机来进行调度。由于其规模巨大,涉及的面广,要完成这次迁移可能需要一段较长的时间。 

  俄罗斯的软件盗版率曾经高达99%。在权衡软件商和用户、国际压力和国内软件发展需求多种利益之后,俄罗斯政府终于找到了一天治标治本的打击盗版之路。 

  解决方法就是既不用正版也不用盗版。俄罗斯于2007年在全部学校使用基于Linux的Russian OS,大力推广开源软件。俄罗斯各地纷纷具办举办各种学习班、培训班学习Linux。现在这一部署已经实施一年,到今年9月,已有1,092所实验区学校部署完毕,其他非实验区的200多所学校也即将上马。 俄罗斯政府下大力气,投入大量资金在学校部署开源操作系统的用意很明显。当这一代人走出校门后,无论在家里还是在工作时,他们都会选用他们最熟悉的Linux开源软件,而不会也不需要重蹈盗版微软软件之路。 

  为了减少对国外软件和许可协议的依赖,俄罗斯目前正计划开发本基于Linux的本土操作系统。 

  报道称,这个被称之为“开源代码”的解决方案类似于Linux/GNU的衍生物。此外,该操作系统将具有很高的可制定性。据悉,这已经不是俄罗斯第一次试图开发类似的开源软件了。 

  据《俄罗斯今日报道》称,目前已经在全国三个地区展开了试点项目,以便用Linux的替代品取代俄罗斯学校中所有的微软操作系统。当地官员称,预计今年俄罗斯的教育机构将使用上这种操作系统。 

六西格玛的力量

Buy:
http://www.amazon.cn/dp/zjbk176007
http://product.dangdang.com/product.aspx?product_id=496074

download:


六西格玛的力量
乔·米特是一位聪明、有抱负的年轻专业人员,他对自己的职业生涯充满着美好的希望。他与大学好友拉里霍根离开学校后开始在美国汉堡包公司工作。乔和拉里憧憬着有一天由他们领导这家公司。
不久,乔得到了提升。但很快,伴随着美国汉堡包公司出于追求利润的目的,盲目追随各种管理潮流——全面质量管理和ISO 9000以及其他质量认证体系,乔的职业生涯停滞不前了。20年后,乔同其他一些忠诚的、投入的员工一起被停了职,他们十分沮丧,充满失落感。乔思索着他自己的生活以及职业生涯将怎样才能东山再起。
就在乔被提升不久,拉里转到了公司的另一个部门——美国比萨饼公司。现在拉里已当上了经理,正卓有成效地管理着这家集团公司中最成功的分公司。
两位老友多年没有联系,在乔被解雇后的午餐上他俩再次重逢。再次见面时,乔发现了拉里与美国比萨饼公司取得成功的关键——六西格玛质量管理法。
六西格玛是一种统计评估法,要求缺陷率为3.4/1 000 000,它是提高生产率、大幅度增加利润以及改善客户服务的核心。采用六西格玛管理法的公司在经营上进行重大改进,这些改进是从机构的各个层面上展开的。通过乔和拉里的介绍,人们认识到了六西格玛的力量。
与其他有关六西格玛的书有很大的不同,本书用一个虚构的故事将一个复杂的话题大大简化,通过乔和拉里之间的对话,说明了六西格玛并不是人们所想像的那样高深莫测、难以理解。正相反,机构中的每个人都应该了解六西格玛、了解六西格玛是如何工作的。


目录
第1章 我被解聘了
第2章 午餐
第3章 了解六西格玛
第4章 根本差别
第5章 人的力量:角色
第6章 人尽其才
第7章 过程的力量:六西格玛的五个步骤
第8章 在实践中发挥流程力量
第9章 实现目标 


网友观点:Debian之惑

http://www.lupaworld.com/viewnews-122138.html

 

网友观点:Debian之惑

来源: LUPA开源社区

发布时间: 2009-03-13 17:18 作者: 王旭 来源: 移动labs 版权申明 LUPA投递新闻

字体: | 上一篇 下一篇 | 打印


关键词: DEBIAN 发展趋势 开源项目 网友 观点

 

文章来源于http://www.lupaworld.com

  也不记得用了几年Debian了,反正自己03年开始写的Debian的书就要上市了,Potato基本没怎么用过,从 Woody 还是 testing Sarge,然后是 Etch,最近的就是 Lenny ,现在 Sqeeze 是新的 Testing 了,见证了 Debian 这么久的路,我想我还是有点评论的资本的。

  一直以来,Debian 以稳定和平滑升级而被众多的拥护者所追捧。Sarge Debian-Installer 之前,Debian 曾经以安装的艰苦而著称,如今,那些艰苦都已经成为过去了,可 Debian 所面临的挑战却更大了。

   一个开源项目,它的根本性格和命运都是由孕育它的社区所决定的,维持开源项目的生命力的关键也是让它的社区健康发展,这也就是最近流行的所谓 "ecosystem"论。拥有上千开发者和不计其数用户的Debian,因为其自由、法制和民主,无疑曾是最健康和富有活力的开源社区之一,不过,最近 却也面临着社区萎缩的危险。

  很多人会把问题归咎于Ubuntu,是的,Ubuntu源于Debian,没有Ubuntu的话,很多新 手可能会选择Debian的。可是,我觉得实际上Ubuntu的出现只是将Debian已有的一些问题暴露了出来,而并没有真的伤害Debian。首先, 选择Ubuntu的大部分新手,如果真的会选择一个Linux Distro的话,也会选择 RH/Fedora Mandrava OpenSuSE 这样的版本,而 Ubuntu 大量派发的光盘和高曝光度让很多用户熟悉了 APT 系统,这反而让他们将来可能会选择 Debian。另一方面,Ubuntu 的很多得到资助的开发者同时也会服务于 Debian,因为同时为 Debian Ubuntu 打包的难度并不大,而这些开发者本身也大多是源于 Debian 社区,对 Debian 有传统好感的。因此,Debian 如果有什么不测的话,Ubuntu 绝对不会是罪魁祸首。

  不考虑 Debian 开发者的问题,单从用户角度看,个人觉得,Debian 在它的 Release 方式方面是有一些不爽的地方的――

   首先简要介绍一下 Debian release 周期的工作方式:Debian unstable (codename: sid), testing (当前codename: squeeze),和 stable (当前 codename: lenny) 三个平行的发布版,每个都是完整的,可以直接拿来用。

  每个软件包都由一个开发者(或小组)维护(目前大概有一千个开发者维护一两万个 软件包),这个软件包在三个发布版中的哪个的包都由这同一个开发者来维护。每当上游有新版本,或开发者自己修正 bug 之后,他都会将这个软件包送入Debian仓库,确认无误的情况下会进入 unstable,也就是说只要开发者工作迅速,unstable 的用户总可以用到最新最酷的软件,当然,代价是用户要面临最新出炉的bug,事实证明,debian unstable中的bug其实也不是很多。

   如果一个软件包在 unstable 中待了足够长时间没有bug,又没有什么依赖关系的羁绊,那么它就毕业进入 testing 了。unstable 相当于一个新软件包的仓库,它关心的是软件升级和bug。但testing不同,testing的目的是将来成为stable,因此 testing 追求的是整体上的功能目标和整体上没有严重bug,当 testing 已经具备了预先商定的功能,又控制住了整体bug的数量时,testing 就会被复制一份成为新的 stable了,原有的 stable 变为 oldstable,而 testing 也要获得一个新的 codename 了,刚刚发生过的一次更替就是 lenny 取代 etch 成为 stable,新的 testing 被命名为 squeeze

 

按理说上面这个过程天衣无缝,不论是软件包还是发布版整体,都能达到一个相当稳定的程度,可以达到既定的平滑升级与稳定运行的目标,是理想的发布版。但是正是这个过程,存在着一些让人挺痛苦的问题:

   首先是不可预知的发布周期:如果Debian的一个版本跳票一两个月,那简直值得我们去庆祝一下了,Debian的大部分版本迟到都在半年以上,差不多 两年的也不是没有,为了达到一个可以release的目标,常常要耗费很长时间,相比于Ubuntu这样的固定每年发布两个版本的系统,Debian的稳 定恰恰成了它让人望而却步的死穴。

  正是最后临近发布的这段时间,很多升级都被freeze了,大家忙着抓虫除错,让sid很难得到最 新的软件,很多期盼新版本的人实际是期盼新版本快点发布,好让新版本软件可以快点进入sid来。而每当一个stable release之后,大量新的更新涌入也让这段时间成为了致命bug的高发时段,这样,对于大量求新的桌面用户,无法从stable的发布中获益,反而受 到挺大冲击,这就成了Debian的又一个梦魇。

  此外 Debian 需要支持包括 x86, ppc, ia64, mips, arm 等这些不同的硬件架构并同期发布新版本,这也为其debug带来了很多困难,相比之下,ubuntu们舍弃了很多,也换来了轻快。

   实际上,Debian最好能一方面不考虑release的正常的平滑更新,这正式大多数桌面用户所需要的,另一方面,又能在一定时间点分支出一个分支, 进行除错和稳定化,退出面向关键应用的更稳定的版本,没有必要分成三个发布版。但是,这样对于由志愿者组成的Debian是很困难的,要知道,业余时间就 算是写个这么长的blog都挺累的,更何况让这些志愿者们同时维护相差甚远的两个版本,并按时保质保量的发布呢。这大概也就是前DPL要引入一些商业资助 的原因吧。

  稳定和平滑,确实是有矛盾的,Debian平滑运行了16年,我们拭目以待debian如何解决它面临的问题吧。

 

热点剖析:Linux上的云计算

http://www.lupaworld.com/viewnews-122194.html

 

热点剖析:Linux上的云计算

来源: LUPA开源社区

发布时间: 2009-03-17 10:38 作者: IBM 来源: IBM 版权申明 LUPA投递新闻

字体: | 上一篇 下一篇 | 打印


关键词: IBM LINUX 云计算 剖析 热点

 

文章来源于http://www.lupaworld.com

  云计算和存储通过 Internet 将物理资源(比如处理器和存储空间)转换成可伸缩的共享资源(将云计算和存储作为 "服务")。尽管虚拟化不是一个新概念,但是通过服务器虚拟化共享物理系统使得云计算和存储更加高效、伸缩性更强。通过云计算,用户可以访问大量的计算和 存储资源,并且不必关心它们的位置和它们是如何配置的。正如您所料,Linux在这个过程中扮演了重要的角色。探索云计算,了解其中的奥秘。

   最近,没有哪家技术性网站不提到所谓的云计算的。云计算其实就是以服务的形式提供计算资源(计算机和存储)。这又涉及到以一种简单、透明的方式动态地将 服务延伸到更多的计算机和存储的能力。所有这些都类似于效用计算(utility computing)背后的思想。在效用计算中,计算资源被看作一种计量服务,就像更传统的公共设施(例如水或电)一样。它们的区别不在于这些思想背后的 目标,而在于组合到一起、使这些思想成为现实的现有技术。

  云计算背后最重要的概念之一就是可伸缩性,而实现它的关键则是虚拟化 (virtualization)。虚拟化在一台共享计算机上聚集多个操作系统和应用程序,以便更好地利用服务器。虚拟化还允许在线迁移,因此,当一个服 务器超载时,可以将一个操作系统的一个实例(以及它的应用程序)迁移到一个新的、不那么繁忙的服务器上。

  IBM Amazon Web Services

   云计算提供一种在虚拟环境中开发应用程序的方法,该环境的计算能力、带宽、存储、安全和可靠性都不成问题您不需要在自己的系统上安装软件。在虚拟云计算环境中,可以开发、部署和管理应用程序,您仅需支付所使用的时间和容量,但这使您能够根据不断变化的业务需 求调整应用程序。

  IBM Amazon Web Services 进行合作,让您能够在 Amazon Elastic Compute Cloud (EC2) 虚拟环境中使用 IBM 软件产品。我们在 EC2 上提供的软件产品包括:

  DB2 Express-C 9.5

  Informix Dynamic Server Developer Edition 11.5

  WebSphere Portal Server and Lotus Web Content Management Standard Edition

  WebSphere sMash

  这是产品级别的代码,其中的所有特性和选项都是可用的。从 IBM developerWorks Cloud Computing Resource Center 了解更多信息,并下载运行这些产品的 Amazon Machine Images

  从外部看,云计算只是将计算和存储资源从企业迁出,并迁入到云中。用户定义资源需求(例如计算和广域网、带宽需求),云提供者在它的基础设施中虚拟地装配这些组件,如图 1 所示。


 

1. 云计算在 Internet 中迁移资源

 云计算在 Internet 中迁移资源


  但是,为什么您会心甘情愿地放弃对自己资源的控制,而让它们虚拟地存在于云中呢?原因有很多,但我相信最重要的两个原因是成本和可伸缩性。云计算的目标是使这些资源比您自己所能提供和管理的资源更廉价。云计算除了降低成本外,还有更大的灵活性和可伸缩性。云计算提供者可以轻松地扩展虚拟环境,以通过提供者的虚拟基础设施提供更大的带宽或计算资源。

云计算在环保方面的优势是,它可以在不同的应用程序之间虚拟化和共享资源,以提高服务器的利用率。图 2 显示了一个例子。在这个例子中,不同的应用程序使用了 3 个独立的平台,每个应用程序都在它自己的服务器上运行。在云中,可以在多个操作系统和应用程序之间共享(虚拟化)服务器,从而减少服务器的数量。更少的服务器意味着需要更少的空间(减少数据中心占用的空间)和更少用于制冷的电力(减少碳污染)。



图 2. 虚拟化和资源使用

  虚拟化和资源使用

  但是,有得必有失,云计算并非没有缺点。本文后面会探索其中的一些问题。但是现在,让我们更深入地探究云计算。

云计算剖析

  当您深入观察云时,您会发现,它实际上并不是一个单独的服务,而是一个服务集合,如图 3 所示。这些层定义了提供的服务的级别。



  图 3. 云计算的层次

  云计算的层次

  我们从最低级的服务开始,即基础设施(Infrastructure-as-a-Service 或 IaaS)。IaaS 就是将基础设施(计算资源和存储)作为服务出租。这意味着虚拟计算机不仅具有有保证的处理能力,而且为存储和 Internet 访问预留了带宽。实际上,IaaS 具有在有特定服务质量约束的情况下出租计算机或数据中心的能力,使之能执行任意操作系统和软件。

  云计算的价值

  除了减少与云计算资源相关的管理成本外,云计算还有其他优点。例如,当您通过 Internet 将自己与自己的资源分离开时,那些资源在哪里并不重要。又如,它们可以在一个可自然制冷的环境中,从而减少能耗。

  顺着栈往上看,上一级的服务是平台(Platform-as-a-Service 或 PaaS)。PaaS 类似于 IaaS,但是它包括操作系统和围绕特定应用的必需的服务。例如,除了虚拟服务器和存储外,PaaS 还提供一个特定的操作系统和应用程序集(通常是作为一个虚拟机,即 VM,或文件,例如 VMware 的 .vmdk 格式),以及对必要的服务(例如 MySQL 数据库或其他专用本地资源)的访问。换句话说,PaaS 就是 IaaS 加上一个用于给定应用的定制软件栈。

  最后,在 图 3 顶部是可以提供的最简单的服务:应用程序。这一层被称作 Software-as-a-Service(SaaS),它是从一个集中的系统部署软件,使之在一台本地计算机上(或从云中远程地)运行的一个模型。由于是计量服务,SaaS 允许出租一个应用程序,并计时收费。

  这是高度概括的云计算的视图。这个视图忽略了云的其他一些方面,例如data-Storage-as-a-Service(dSaaS),后者以计量服务的形式提供存储,消费者按使用的容量(使用的存储的容量)和利用率(存储的带宽需求)付费。另外还有云服务,它为互操作性和外部应用程序编程接口(API),例如 Web 服务,提供了内部机制。

云计算现状

  最近几个月,对云计算和相关基础设施的投资呈爆炸式增长。这样巨大的投资表明,对云中资源的虚拟化存在着巨大的需求。去年已经有了很多新的服务,图 4 展示了其中一部分。



  图 4. 云计算各层及相关产品

  云计算各层及相关产品

  这绝不是一份详尽的产品类别,因为变化非常频繁。但是,这的确给出了一些产品的概览,并展示了它们之间的区别。

  Linux 和开放源代码在云中的应用

  现在让我们来探索一下,Linux 和开源社区如何为云计算领域做出贡献。您可能已经猜到,Linux 和开放源代码扮演着极其重要的角色。

  Software-as-a-Service

  SaaS(软件即服务)就是以服务的形式访问 Internet 上的软件。一种早期的 SaaS 方法是 Application Service Provider(ASP)。ASP 提供对 Internet 上存放或交付的软件的订阅。ASP 交付软件,并根据软件的使用收费。这样一来,您就不必购买软件,只需随需租用软件。

  SaaS 实例

  传统应用程序与 Saas 应用程序之间的对比的一个有趣的例子是 SoftwarePlanner.com 提供的应用程序生命周期管理工具。该公司以传统形式或 SaaS 的形式提供他们的工具。当使用传统形式时,客户将应用程序套件放在他们的企业中;而当使用 SaaS 形式时,客户拥有应用程序套件,并将其放到 Internet 上。

  SaaS 的另一个方面是在 Internet 上使用远程执行的软件。这种软件可以是本地应用程序所使用的服务(并定义为 Web 服务),也可以是通过 Web 浏览器看到的远程应用程序。远程应用程序服务的一个例子是 Google Apps,它通过一个标准的 Web 浏览器提供一些企业应用。要远程地执行应用程序,通常需要依赖于一个应用服务器来公布所需的服务。应用服务器 是一个软件框架,它公布软件服务的 API(例如事务管理或数据库访问)。具体的例子有 Red Hat JBoss Application Server、Apache Geronimo 和 IBM WebSphere® Application Server 等。另外还有很多其他的应用服务器,参考资料小节给出了一份详细的列表。

  SaaS 的另一个最近的例子是 Google 的 Chrome 浏览器。这个浏览器是作为新桌面的理想环境,除了具有传统的 Web 浏览体验外,还可以通过它来(以本地或远程方式)交付应用程序。

Platform-as-a-Service

  PaaS 可描述为一个完整的虚拟平台,它包括一个或多个服务器(在一组物理服务器上虚拟而成)、操作系统以及特定的应用程序(例如用于基于 Web 的应用程序的 Apache 和 MySQL)。在某些情况下,这些平台可以预先定义和选择。而在另一些情况下,可以提供一个 VM 镜像,该镜像包含所有的特定于用户的应用程序。

  PaaS 一个有趣的例子是 Google App Engine。App Engine 是一个服务,通过它可以在 Google 的可伸缩性极佳的架构上部署 Web 应用程序。App Engine 为可通过 Internet 引用的 Python 应用程序提供一个沙盒(将来还会支持更多的语言)。除了支持用户认证、镜像操作和电子邮件发送外,App Engine 还提供了 Python API,用于持久地存储和管理数据(使用 Google Query Language 或 GQL)。Web 应用程序运行时所在的沙盒将限制对底层操作系统的访问。虽然 App Engine 限制了应用程序可用的功能,但是它支持有用的 Web 服务的构造。请参阅 参考资料 小节,了解更多信息。

  注意:在一定的带宽和存储约束范围内,在 App Engine 中部署应用程序是免费的。但是,如果要用 App Engine 构建生产 Web 站点,则需要评估使用费。

  PaaS 的另一个例子是 10gen,它既是一个云平台,又是一个可下载的开放源代码包,可用于创建您自己的私有云。10gen 是类似于 App Engine 的一个软件栈,它提供与 App Engine 类似的功能 — 但有一些不同之处。通过 10gen,可以使用 Python 以及 JavaScript 和 Ruby 编程语言开发应用程序。该平台还使用沙盒概念隔离应用程序,并且通过自己的应用服务器的许多计算机(当然,是在 Linux 上构建)提供一个可靠的环境。

  Infrastructure-as-a-Service

  IaaS 是以服务的形式交付计算机基础设施。这一层与 PaaS 的不同之处在于,只提供虚拟硬件,而没有软件栈。客户提供一个 VM 镜像,该镜像在一个或多个虚拟服务器上被调用。IaaS 是作为服务的计算的最原始的形式(除了对物理基础设施的访问)。最著名的商业 IaaS 提供程序是 Amazon Elastic Compute Cloud(EC2)。在 EC2 中,可以指定一个特定的 VM(操作系统和应用程序集),然后将应用程序部署到它上面,或者提供要在服务器上执行的 VM 镜像。然后,只需根据计算时间、存储和网络带宽付费。

  Eucalyptus 项目(Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems)是 Amazon EC2 的一个开源实现,它与商业服务接口兼容。和 EC2 一样,Eucalyptus 依赖于 Linux 和 Xen 进行操作系统虚拟化。Eucalyptus 是加利福尼亚大学(Santa Barbara)为进行云计算研究而开发的。您可以从该大学的网站上下载它,或者通过 Eucalyptus Public Cloud 体验它,不过后者有一些限制。

  另一个 EC2 风格的 IaaS 是 Enomalism 云计算平台。Enomalism 是一个开放源代码项目,它提供了一个功能类似于 EC2 的云计算框架。Enomalism 基于 Linux,同时支持 Xen 和 Kernel Virtual Machine(KVM)。与其他纯 IaaS 解决方案不同的是,Enomalism 提供了一个基于 TurboGears Web 应用程序框架和 Python 的软件栈。

  其他云开发

  除了前面已经讨论过的开发外,还有其他一些基于 Linux 的开放源代码包,它们在云环境中也比较有用。Hadoop 是一个开放源代码 Java™ 软件框架,它类似于 PaaS,但是着重于在一组联网的服务器上操纵大型的数据集(受 Google MapReduce 的启发,后者支持大型数据集的并行处理)。因此,它在 Web 搜索和广告应用中派上用场 — 特别是在 Yahoo! 上。Hadoop 还提供一些子项目,这很像 Google 应用程序。例如,HBase 提供类似于 Google BigTable 数据库的功能,Hadoop Distributed File System(HDFS)提供类似于 Google File System(GFS)的功能。

  问题和挑战

  云计算的问题显而易见 — 其中最重要的两个问题是保密性和安全性。保密性可以通过加密来解决,但是在选择云计算服务时,要审慎一些。在 Web 刚开始发展时,即使是电子商务也受到了怀疑。在全球,每年要发生价值上万亿美元的电子商务事务,所以云计算可以收益于当今所有提供 Web 安全的技术(例如安全套接字层或 SSL)。

  结束语

  云计算的风暴已经开始,推动云计算的 Linux 开源开发也在迅猛发展。随着云计算领域出现巨大的投资,向集中式数据中心的转型已显而易见。有趣的新技术和架构即将到来!

 

Interactive map of Linux kernel 探索:Linux核心的交互图

外文快译:免费的Linux 昂贵的企业投资

http://www.lupaworld.com/viewnews-122065.html

 

外文快译:免费的Linux 昂贵的企业投资

来源: LUPA开源社区

发布时间: 2009-03-11 13:22 作者: Richard Hillesley 来源: 51CTO.com 版权申明 LUPA投递新闻

字体: | 上一篇 下一篇 | 打印


关键词: JBOSS LINUX 企业 外文 投资 红帽 英特尔

 

文章来源于http://www.lupaworld.com

  Alan Cox,红帽的一个关键Linux 内核开发者,最近转投Intel。近期这样的工作变动并不值得大惊小怪,但关于Intel、红帽和Cox本人,我们可以从中看到一些有趣的事情,首先 Intel得到了一个Linux内核开发者,其次Cox更接近了底层芯片的工作,最后红帽也将从Cox未来的工作中得到方便。尽管这只是一个简单的变动, 但却反映了未来LinuxIntel的动向。目前许多企业选择Linux作为操作系统,而Intel也正想用Linux来代替他们数据中心中长久使用的 基于RISCUnix系统。

  开源馅饼

   在以前很长一段时间里,除了发烧友和很少一些有眼光的系统管理员,几乎没有人真正重视Linux和自由软件,但现在的情况已经发生了翻天覆地的变化,几 乎每个大公司都想在开源这个市场中分一杯羹,自由软件的开发高手们也因此成为软件业巨头的抢手货。这一变化发生在90年代后期,红帽率先以60亿美元市值 在纳斯达克上市,而在其后的200012月,IBM也发布承诺将全面支持LinuxLinux因此揭开了新的篇章。

  在之后,越来 越多的硬件厂商发布了对Linux的支持承诺,并且他们很快为Linux制定了行业规范,这就是GPLGeneral Public License)。GPL许可证制度使Linux得到了飞速发展,并确保了在企业界的成功。"开源"逐渐成为一项大生意。

  2008 4月,Linux Foundation,包括Linux之父Linus Torvalds和其他知名的Linux内核开发者,以及来自全球超过100家大企业的高层,共同发布了一份报告,报告的结论是,"2005年,已经有 来自多于200个公司的超过3700名员工为Linux内核的开发作出了贡献。 Linux内核已经成为行业共同的资源,无数公司参与其中,尽管他们中有些在其他领域是激烈的竞争对手。"

  自我服务

  Linux能够得到如此庞大的企业赞助并不令人感到意外。来自不同领域不同背景的软件巨头们比如IntelNovellHP、美国航天局、SunIBM,在共同的GPL基础上,不仅为Linux贡献了自己的想法和软件,而且还积极参加了许多免费软件的项目开发。

  开源的成功最终使企业意识到合作的好处,软件的价值在于最终产品,企业们通过开源相互协作,分享技能,降低了长久以来存在的研发壁垒。

   IBMJohn Sarsgard非常支持公司的决策,"长久以来,我们一直想能够自己开发更便宜的操作系统,这是自我服务,而现在我们仅用250人的开发团队就可以开发 基于Linux的同级别的操作系统,这的确令人振奋。"当然公司为此的投入也是惊人的,据估计,IBMLinux开发的累计投入将高达100亿美元。

   支持免费软件将使计算机硬件行业直接受益。某个项目的开发资源可用于其他项目的开发,开发费用也可以在行业中共享。开放标准为厂商和用户提供了更好的方 案,在开放标准的驱动下,合作正逐步深入软件的底层。企业们已经在比如OpenOffice.orgGnomeFirefox等的合作开发中贡献了大 量的代码和人力,并且收效良好,而这种现象将会延续到其他领域。

 

 

Netbooks, Linux and the Lenovo S10

http://itmanagement.earthweb.com/osrc/article.php/3810971/Netbooks-Linux-and-the-Lenovo-S10.htm

 

Netbooks, Linux and the Lenovo S10

  • March 18, 2009
    By Carla Schroder

 

Hardware vendors have been missing the netbook boat ever since I can remember-- there has been demand for a small, portable, inexpensive, fast-booting computer ever since the World Wide Web became popular. You oldtimers might recall when that happened, way back in the last millennium around 1995 or so, when AOL disks rained down upon us from the heavens. For all I know, grizzled old Unix geekbeards nurtured a pent-up longing for netbooks as well. Netbooks, if they had existed, would have been perfect for the geekbeard Internet: plain text over slow dialup connections doesn't need much computing power or high-tech displays. Monochrome LCD displays have been with us since the early 80s, and color in the late 80s, so I wonder if, in a truly innovative and competitive computing marketplace, we could have had netbooks and other portable computing devices way back when.

And The Bandwagon Lumbers Into Gear

But, as the saying goes, it's no use crying over spilled milk. Just lick it up and move on. The OLPC paved the way; it was intended to be an educational tool for children, but adults everywhere were enchanted and wanted one for themselves. This even made an impression on the inert titans of tech, who ponderously diverted from their doomed path of Jabba's Law, which is "Bigger! More Lard! More Crapware! *Belch*", and were sufficiently alarmed to waddle into action. In typical robber-baron fashion, both Intel and Microsoft crashed the OLPC party and tried to co-opt it. So Microsoft is trying to shoehorn Windows XP onto the OLPC, and Intel is trying to steal OLPC's customers for their Classmate PC.

I should note that in desktop PCs, laptops, and servers, we get an amazing amount of bang for our hardware buck. Five hundred US dollars buys a desktop system that not too long ago would have been an expensive, high-end server. And thanks to Linux and Free/Open/NetBSD we can actually run nice sleek efficient software that doesn't require all that horsepower just to get out of its own way.

Eee PC Astounds the World

Meanwhile, back at the real innovation ranch, ASUS was quietly going about its business inventing the Eee PC (easy to learn, easy to work, easy to play). The first Eee PC hit the shelves in fall 2007 and was an instant hit. Configuration varied by country, and depending where you were on the planet at any particular moment you could find it in white or black, with varying sizes of solid-state drives, with Linux or Windows XP, with a modest CPU, small RAM, and built-in wired and wireless network interfaces. Their initial target retail price in the US was $199, but it ended up costing from around $245 to $399 depending on configuration, and ASUS sold skillions.

The Eee PC is very Linux-hackable, so there are many specialized netbook Linux distributions that run well on it, and it supports stock distros as well. The gang at ZaReason, my personal favorite Linux OEM vendor, think highly of the Eee PC and sell boatloads of them. Fast-forward to now, and everyone is selling netbooks, almost (but not quite) like hotcakes. And thus we arrive at the subject of this review, the Lenovo S10 IdeaPad, which I have had in my possession for a couple of weeks now, and have enjoyed greatly. This is on loan to me thanks to the nice folks at Phoenix Technologies, who sent it to me to show off their instant-on Linux-based environment, Phoenix HyperSpace. It also came with Genuine Windows XP Home, SP3.

I'm a Thinkpad fan from way back, though anymore I think it's a misplaced loyalty because Lenovo treats Linux like the perv uncle and keeps it hidden away, and plasters "We recommend Windows!" all over the place. It took some detective work to find the S-series IdeaPad netbooks on Lenovo.com, and forget finding one with Linux. I about Googled my fingers off and found a number of reviews and announcements that claimed it had either SUSE Linux or Linpus Linux options, but I never found them. In fact I am getting very tired of vendors who claim to love the penguin and Free/Open Source software, and then make it impossible to actually purchase any OEM Linux computers. That is why I stick with independent vendors like ZaReason. They tell the truth.

Even so I had high expectations for the IdeaPad. This model has the following specs:

  • 1.6 GHz single-core Intel Atom CPU
  • 1 GB RAM
  • 10.2" diagonal-measure 1024x600 WSVGA LCD display
  • 160 GB HDD
  • Webcam
  • Microphone
  • Broadcom wireless 802.11b/g
  • 3-cell 3-hour lithium-ion battery
  • Express Card slot (for 3G modem and other cool addons)
  • 4-in-1 media card reader
  • Kensingston security lock slot
  • Two-button touchpad
  • USB 2.0 x 2
  • External VGA

There is no optical drive. Of course you can connect anything via USB these days, so if you want one you can have one. There is an optional six-hour six-cell battery. With Windows XP Home (that's the ancient crippled one that cannot connect to a Windows domain) the suggested retail is $399.

Windows XP was good for about 3 hours on battery, and suspend and hibernate worked fine. The Phoenix HyperSpace environment lived up to its claim of extended battery life and delivered a little over 4 hours. At first I thought I would install Linux on it and see how it works. Then I decided not to because there is no Linux option in the US, so to heck with them. I know some people who do run Linux on this little machine in various configurations-- some dual-boot, some with Linux-only, this distro, that distro-- and it runs well. Everything works, even the card reader. So for you fine readers who want by whatever means to run Linux on this little cutie, be assured it will do just fine.

Doing Surgery

Like its big sibling Thinkpad, it is easy to open up and get inside the guts. The overall build is solid, with good fit and finish. It fits nicely in the hand, and tucks under the arm like a book. The hinges seem stout; it opens easily one-handed, yet stays securely closed without the usual type of latch. A nice touch is a Home key instead of a Windows key, so perhaps there is hope. It has an actual hardware switch to turn off the wireless radio card, and useful status LEDS for power, hard drive activity, and wireless.

Excellent Screen

The display is the real prize of this little computer. It is very sharp and bright, so that even my fading old eyeballs can read tiny fonts. The colors are bright and attractive, and while I didn't try any super-FPS (frames per second) games on it, screen redraws were smooth.

The keyboard is smaller than standard, and it is only OK. I have small hands so a slightly smaller keyboard doesn't bother me, but the keys are too flat, without enough differentiation between them, and there are inadequate cues for touch-typing, like perceptible bumps on the F and J keys.

Related Articles

·  The GNU/Linux Desktop: Nine Myths

·  Dell's New Laptop 'World's Thinnest'

·  Does SUSE Linux Server Have a Future?

Another drawback is it doesn't sit on my lap nicely like a bigger machine because it's too small.

The Verdict

A very sad, regretful thumbs down, because as much as I like this little computer I hate how Lenovo mis-markets Linux, and I refuse to pay for a Windows license when I don't want one. It's a stupid ripoff.

I wish, I wish, I wish that hardware vendors would quit letting Redmond call the shots. It is dead easy to roll and deploy a customized image of a standard Linux distribution. Even the good commercially-supported Linuxes like Red Hat and Ubuntu let you do this. There are a number of freely-available utilities for doing this for all Linuxes, and system administrators and power users do it all the time. Use the distro repositories, let users use the standard sophisticated built-in Linux utilities for software and updates management, quit wrapping all that Linux goodness in dopey proprietary crud, and freaking relax. It is astounding how these giant tech companies overcomplicate Linux by trying to build their own "simplified" interfaces and custom repositories, which only creates confusion and disappointment, and then forget to make sure that the limited netbook hardware set and important software functionality all work.

I would even settle for a naked netbook with no bundled software, but I reckon it will be a cold day in monopoly hell before that happens.

References

You can't keep a good Linux geek down, so here are a few useful netbook sites:

Lilliputing
Linux Laptop Wiki
Linux Netbook

This article was first published on LinuxPlanet.

 

深度介绍:Linux内核是如何工作的

深度介绍:Linux内核是如何工作的

发布时间: 2009-03-27 11:07 作者: 王玉磊编译 来源: CSDN 版权申明 向LUPA投递新闻

字体:    | 上一篇 下一篇 | 打印


关键词: LINUX 内核 工作原理 深度 解析 

  本文发表于Linux Format magazine杂志,作者从技术深度上解释了Linux Kernel是如何工作的。相信对Linux开发者来说有不小的帮助。

  牛津字典中对"kernel"一词的定义是:"较软的、通常是一个坚果可食用的部分。"当然还有第二种定义:"某个东西核心或者最重要的部分。"对Linux来说,它的Kernel无疑属于第二种解释。让我们来看看这个重要的东西是如何工作的,先从一点理论说起。

  广义地来说kernel就是一个软件,它在硬件和运行在计算机上的应用程序之间提供了一个层。严格点从计算机科学的角度来说,Linux中的Kernel指的是Linus Torvalds在90年代初期写的那点代码。

  所有的你在Linux各版本中看到的其他东西--Bash shell、KDE窗口管理器、web浏览器、X服务器、Tux Racer以及所有的其他,都不过是运行在Linux上的应用而已,而不是操作系统自身的一部分。为了给大家一个更加直观的感觉,我来举个例子,比如 RHEL5的安装大概要占据2.5GB的硬盘空间(具体多大当然视你的选择安装来定),在这其中,kernel以及它的各个模块组件,只有47MB,所占比例约为2%。

  
在kernel内部

  那么kernel到底是如何工作的呢?如下面的图表。Kernel通过许多的进入端口也就是我们从技术角度所说的系统调用,来使得运行在它上面的应用程序可用。Kernel使用的系统调用比如"读"和"写"来提供你硬件的抽象(abstraction)。



  从程序员的视角来看,这些看起来只是普通的功能调用,然而实际上系统调用在处理器的操作模式上,从用户空间到Kernel空间有一个明显的切换。同时,系统调用提供了一个"Linux虚拟机",可以被认为是对硬件的抽象。

Kernel提供的更明显的抽象之一是文件系统。举例来说,这里有一段短的程序是用C写的,它打开了一个文件并将内容拷贝到标准的输出:

#include
int main()
{
    int fd, count; char buf[1000];
    fd=open("mydata", O_RDONLY);
    count = read(fd, buf, 1000);
    write(1, buf, count);
    close(fd);
}

  在这里,你可以看到四个系统调用的例子:打开、读、写和关闭。不谈这段程序语法的细节,重点是:通过这些系统调用Linux Kernel提供了一个文件的"错觉",而实际上它不过是一堆数据有了个名字,这样一来你就不必去与硬件底层的堆栈、分区、头和指针、分区等交涉了,而是直接以例子中的方式与硬件"交流",这也就是我们所说的抽象(abstraction),将底层的东西以更易懂的方式表达出来。

  
台前幕后

  系统文件是Kernel提供的较为明显的一种抽象。还有一些特性不是这么的明显,比如进程调度。任何一个时间,都可能有好几个进程或者程序等待着运行。 Kernel的时间调度给每个进程分配CPU时间,所以就一段时间内来说,我们会有种错觉:电脑同一时间运行好几个程序。这是另外一个C程序:

#include
main()
{
  if (fork()) {
    write(1, "Parent\n", 7);
    wait(0);
    exit(0);
  }
  else {
    write(1, "Child\n", 6);
    exit(0);
  }
}


在这个程序中创建了一个新进程,而原来的进程(父进程)和新进程(子进程)都编写了标准输出然后结束。注意系统调用fork(), exit() 以及 wait()执行程序的创建、结束和各自同步。这是进程管理和调度中最典型的简单调用。

  Kernel还有一个更加不易见到的功能,连程序员都不易察觉,那就是存储管理。每个程序运行得都好像它有个自己的地址空间来调用一样,实际上它跟其他进程一样共享计算机的物理存储,如果系统运行的存储过低,它的地址空间甚至会被磁盘的交互区暂时寄用。存储管理的另外一个方面是防止一个进程访问其他进程的地址空间--对于多进程操作系统来说这是很必要的一个防范措施。

  Kernel同样还配置网络链接协议比如IP、TCP和UDP等,它们在网络上提供机器对机器(machine-to-machine)和进程对进程(process-to-process)的通信。这里又会造成一种假象,即TCP在两个进程之间提供了一个固定连接--就好像连接两个电话的铜线一样,实际中却并没有固定的连接,特殊的引用协议比如FTP、DNS和HTTP是通过用户级程序来实施的,而并非Kernel的一部分。

  Linux(像之前的Unix)在安全方面口碑很好,这是因为Kernel跟踪记录了每个运行进程的user ID和group ID,每次当一个应用企图访问资源(比如打开一个文件来写入)的时候,Kernel就会核对文件上的访问许可然后做出允许/禁止的命令。这种访问控制模式最终对整个Linux系统的安全作用很大。

  Kernel还提供了一大套模块的集合,其功能包括如何处理与硬件设备交流的诸多细节、如何从磁盘读取一个分区、如果从网络接口卡获取数据包等。有时我们称这些为设备驱动。

  
模块化的Kernel

  现在我们队Kernel是做什么的已经有了一些了解,让我们再来简单看下它的物理组成。早期版本的Linux Kernel是整体式的,也就是说所有的部件都静态地连接成一个(很大的)执行文件。

  相比较而言,现在的Linux Kernel是模块化的:许多功能包含在模块内,然后动态地载入kernel中。这使得kernel的内核很小,而且在运行kernel时可以不必reboot就能载入和替代模块。

  Kernel的内核在boot time时从位于/boot 目录的一个文件加载进存储中,通常这个/boot 目录会被叫做KERNELVERSION,KERNELVERSION与kernel版本有关。(如果你想知道你的kernel版本是什么,运行命令行显示系统信息-r。)kernel的模块位于目录/lib/modules/KERNELVERSION之下,所有的组件都会在kernel安装时被拷贝。


管理模块

  大部分情况下,Linux管理它的模块不需要你的帮忙,但是如果必要的时候有命令行可以来手动检查和管理模块。比如,为了查清楚当前到底哪个模块在载入kernel。这里有一个输出的例子:

# lsmod
pcspkr              4224  0
hci_usb            18204  2
psmouse            38920  0
bluetooth          55908  7 rfcomm,l2cap,hci_usb
yenta_socket       27532  5
rsrc_nonstatic     14080  1 yenta_socket
isofs              36284  0

  输出的内容包括:模块的名字、大小、使用次数和依赖于它的模块列表。使用次数对防止卸载当前活跃的模块非常总要。Linux只允许使用次数为零的模块被移除。

  你可以使用modprobe来手动加载和卸载模块,(还有两个命令行叫做insmod和rmmod,但modprobe更易于使用因为它自动移除了模块依赖)。比如lsmod的输出在我们的电脑上显示了一个名叫isofs的卸载模块,它的使用次数是零而且没有依赖模块,(isofs是一个模块,它支持CD 上使用的ISO系统文件格式)这种情况下,kernel会允许我们卸载模块:

# modprobe -r isofs

  现在,isofs不再显示在Ismod的输出中,kernel由此节省了36,284字节的存储。如果你放入CD并且让它自动安装,kernel将自动重新载入isofs模块,而且isofs的使用次数增加到1次。如果这时候你还试图移除模块,就不会成功了因为它正在被使用:

# modprobe -r isofs
FATAL: Module isofs is in use.
   
  Lsmod只是列出了当前被载入的模块,modprobe则将列出所有可用的模块,它实际上输出了/lib/modules/KERNELVERSION目录下所有的模块,名单会很长!

  实际上,使用modprobe来手动加载一个模块并不常见,但确实可以通过modprobe命令行来对模块设置参数,例如:

# modprobe usbcore blinkenlights=1

  我们并不是在创建blinkenlights,而是usbcore模块的实参数。


那么如何知道一个模块会接受什么参数呢?一个比较好的方法是使用modinfo命令,它列出了关于模块的种种信息。这里有一个关于模块snd-hda-intel的例子

# modinfo snd-hda-intel
filename:       /lib/modules/2.6.20-16-generic/kernel/sound/pci/hda/snd-hda-intel.ko
description:    Intel HDA driver
license:        GPL
srcversion:     A3552B2DF3A932D88FFC00C
alias:          pci:v000010DEd0000055Dsv*sd*bc*sc*i*
alias:          pci:v000010DEd0000055Csv*sd*bc*sc*i*
depends:        snd-pcm,snd-page-alloc,snd-hda-codec,snd
vermagic:       2.6.20-16-generic SMP mod_unload 586
parm:           index:Index value for Intel HD audio interface. (int)
parm:           id:ID string for Intel HD audio interface. (charp)
parm:           model:Use the given board model. (charp)
parm:           position_fix:Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size). (int)
parm:           probe_mask:Bitmask to probe codecs (default = -1). (int)
parm:           single_cmd:Use single command to communicate with codecs (for debugging only). (bool)
parm:           enable_msi:Enable Message Signaled Interrupt (MSI) (int)
parm:           enable:bool

  对我们来说比较有兴趣的以"parm"开头的那些部分:显示了模块所接受的参数。这些描述都比较简明,如果想要更多的信息,那就安装kernel的源代码,在类似于/usr/src/KERNELVERSION/Documentation的目录下你会找到。

  里面会有一些有趣的东西,比如文件/usr/src/KERNELVERSION/Documentation/sound/alsa/ALSA- Configuration.txt描述的是被许多ALSA声音模块承认的参数;/usr/src/KERNELVERSION /Documentation/kernel-parameters.txt这个文件也很有用。

  前几天在Ubuntu论坛有一个例子,说的是如何将参数传递到一个模块(详见https://help.ubuntu.com/community /HdaIntelSoundHowto)。实际上问题的关键是snd-hda-intel参数在正确驱动声音硬件时需要一点操作,而且在boot time加载时会中止。解决方法的一部分是将probe_mask=1选项赋给模块,如果你是手动加载模块,你需要输入:

# modprobe snd-hda-intel probe_mask=1

  更有可能,你在文件/etc/modprobe.conf中放置这样类似的一行:options snd-hda-intel probe_mask=1

  这"告诉"modprobe每次在加载snd-hda-intel模块时包含probe_mask=1选项。现在的有些Linux版本将这一信息分离进/etc/modprobe.d下的不同文件中了,而不是放入modprobe.conf中。


/proc系统文件

  Linux kernel同样通过/proc系统文件来展示了许多细节。为了说明/proc,我们首先需要扩展我们对于文件的理解。除了认为文件就是存储在硬盘或者 CD或者存储空间上的持久信息之外,我们还应当把它理解为任何可以通过传统系统调用如:打开、读、写、关闭等访问的信息,当然它也可以被常见的程序访问。

  /proc之下的"文件"完全是kernel虚拟的一个部分,给我们一个视角可以看到kernel内部的数据结构。实际上,许多Linux的报告工具均能够很好地呈现在/proc下的文件中寻到的格式化版本的信息。比如,一列/proc/modules将展示一列当前加载的模块。

  同样的,/proc/meminfo提供了关于虚拟存储系统当前状态的更多细节信息,而类如vmstat的工具则是以一种更加可理解的方式提供了相同的一些信息;/proc/net/arp显示了系统ARP cache的当前内容,从命令行来说,arp -a显示的也是相同的信息。

  尤其有意思的是/proc/sys下的"文件"。/proc/sys/net/ipv4/ip_forward下的设置告诉我们kernel是否将转发IP数据包,也就是说是否扮演网关的作用。现在,kernel告诉我们这是关闭的:

# cat /proc/sys/net/ipv4/ip_forward
0

  当你发现你可以对这些文件写入的时候,你会觉得更加有意思。继续举例来说:

# echo 1 > /proc/sys/net/ipv4/ip_forward

  将在运行的kernel中打开IP 转发(IP forwarding)

  除了使用cat和echo来检查和更正/proc/sys下的设置以外,你也可以使用sysctl命令:

# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0

这等同于:
# cat /proc/sys/net/ipv4/ip_forward
0

也等同于:
# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1

还等同于:
# echo 1 > /proc/sys/net/ipv4/ip_forward
   
  需要注意的是,以这种方式你所做的设置改变只能影响当前运行的kernel的,当reboot的时候就不再有效。如果想让设置永久有效,将它们放置在 /etc/sysctl.conf文件中。在boot time时,sysctl将自动重新确定它在此文件下找到的任何设置。

/etc/sysctl.conf下的代码行大概是这样的:net.ipv4.ip_forward=1


性能调优(performance tuning)

  有这样一个说法:/proc/sys下可写入的参数孕育了整个Linux性能调优的亚文化。我个人觉得这种说法有点过夸,但这里会有几个你确实很想一试的例子:Oracle 10g的安装说明(www.oracle.com/technology/obe/obe10gdb/install/linuxpreinst /linuxpreinst.htm)要求你设置一组参数,包括:kernel.shmmax=2147483648 这将公用存储器的大小设置为2GB。(公用存储器是处理期内的通信机制,允许存储单元在多个进程的地址空间内同时可用)

  IBM 'Redpaper'在Linux性能和调优方面的说明(www.redbooks.ibm.com/abstracts/redp4285.html)在调教/proc/sys下的参数方面给出了不少建议,包括:vm.swappiness=100 这个参数控制着存储页如何被交换到磁盘。

  一些参数可以被设置从而提高安全性,如net.ipv4.icmp_echo_ignore_broadcasts=1 它"告诉"kernel不必响应ICMP请求,从而使得你的网络免受类如Smurf攻击之类的拒绝服务器(denial-of-service)型攻击。
net.ipv4.conf.all.rp_filter=1 则是"告诉"kernel加强入站过滤(ingress filtering)和出站过滤(egress filtering)

  那么有没有一个说明能涵盖这所有的参数?好吧,这有一行命令:# sysctl -a 它将展示所有的参数名字和当前值。列表很长,但是你无法知道这些参数是做什么的。另外比较有用的参考是Red Hat Enterprise Linux Reference Guide,对此有整章节的描述,你可以从
www.redhat.com/docs/manuals/enterprise上下载。