共 1,395 篇文章
共 6,621 篇文章及评论
- Association for Computing Machinery TechNews (ACM)
- Go Parallel! (Dr. Dobbs)
- HPCwire (Tabor Communications, Inc.)
- insideHPC (John West)
- Joe Duffy's Weblog (Microsoft)
- Microsoft Parallel Programming Development Center (Microsoft Germany)
- MultiCoreInfo.com
- scalability.org (Scalable Informatics)
- Software Dev Blog (Intel Germany)
- Soft Talk Blog (Intel United Kingdom)
- The Moth (Microsoft)
Archives
帖子来自 Xu Cheng 
|
Dail Science & Technology Limit., Wuhan |
Moblin开发过程中的经验分享——系统需求
作者: Xu Cheng (7 篇文章) 日期: 十二月 29, 2009 在 11:41 上午
评论 (0)
硬件需求 目前,Moblin只支持英特尔公司出品的凌动(Atom)中央处理器(CPU),并且要求目标设备使用英特尔图形芯片。凌动处理器沿用x86架构,与现在主流的个人电脑相同。因此对于开发环境来说,任何使用x86架构处理器的个人电脑都能满足硬件需求。 综合考虑操作系统、虚拟化技术、图形加速技术和Moblin相关开发工具对硬件的需求,开发工作站的最低硬件需求见表2.1所示。 表2.1 Moblin开发工作站最低硬件需求列表 配件名 最低需求 说明 中央处理器 采用x86架构; 使用32位或64位指令集; 主时钟频率大于1GHz; 支持虚拟化技术 英特尔、AMD和VIA公司生产的处理器大多采用x86架构,2006年后设计的产品均能支持虚拟化技术 图形显示卡 采用英特尔GMA4500芯片 使用Clutter框架为Moblin应用设计图形界面,以及在工作站上测试Moblin映像时需要英特尔GMA4500芯片。其他情况下并不做强制要求 内存 大于1GB 如果使用虚拟机,建议将内存增加到2GB以上 硬盘 可用空间大于20G 安装开发环境操作系统和Moblin映像创建者的最低需求 USB总线驱动器 采用USB 2.0标准 用于将USB映像写入到USB存储器中 网络适配器 任何有线或无线网络适配器 创建Moblin映像时需要连接到互联网 声卡 任何立体声声卡 设计多媒体程序时将用到 对于测试环境来说,最好是能够拥有一套目标设备,如上网本、移动互联网终端等。条件不具备的读者可以使用虚拟机模拟目标设备,但这会影响到驱动程序开发,也无法获得与目标设备完全相同的使用感受。 操作系统 Moblin使用GTK图形环境和Yum软件包管理器,因此只要支持这两种环境的主流Linux发行版都可以作为Moblin开发工作站。下列操作系统已被证实可以进行Moblin开发: 1.Fedora桌面版 Moblin在很多地方都与Fedora桌面版相似,例如,两者均使用Yum软件包管理器,图形系统同以GTK作为基础。Fedora对虚拟机的支持也非常出色,可在其上运行KVM虚拟机。籍此,本教程以Fedora 10为标准。 2.Ubuntu桌面版 Ubuntu是一个相对较新的发行版,它有非常多的分支,例如面向学生的操作系统Edubuntu,面向多媒体设计人员的Ubuntu Studio。我对于操作系统的很多构想都是受到Ubuntu的启发,因此Ubuntu可以作为Moblin设计学习的榜样。目前Ubuntu退出了针对上网本和移动互联网设备的发行版,可以说是Moblin的竞争对手之一。目前可用于Moblin开发的版本为Ubuntu 8.10和9.04。 Linux发行版所采用的内核版本和部分函数库可能与Moblin不一致,如果要以Linux系统作为开发平台,需要对内核和函数库的版本进行矫正。相关资料可通过在Moblin网站上查询函数库版本获得。 另外,可以直接在Moblin系统上进行开发,只是必须为Moblin系统安装必须的开发包。对于使用Windows系统的工作站,可用虚拟机方式安装和运行Linux、Moblin系统,并且在虚拟机中进行开发。 Linux和Moblin系统的基本操作 Linux和Moblin系统有两种操作行为,一种是在桌面环境中操作,用户使用鼠标作为主要的操作工具。另一种是在控制台或终端上操作,需要用户通过键盘输入相关命令。Linux和Moblin的操作方法非常相似,下面介绍一些基本概念和操作方法。 1.根用户和普通用户 在安装Linux时,通常要求输入根(root)用户的密码。根用户是系统上最高权限的用户,它有权力访问和修改计算机中的任何文件。普通用户通常是在首次登陆时系统提示设置的,普通用户权力受到限制,只能访问一部分文件,而修改文件的操作仅限于用户的主目录中。所以,我们使用根用户对系统进行配置,除此以外大多数时间都使用普通用户进行操作,这样能保障系统的安全。 Moblin虽然继承了Linux的用户管理机制,但是只保留了一个根用户和一个普通用户。原因非常简单,Moblin没有将公用计算机或用户隐私保护纳入视线以内。最新Moblin测试版的图形界面尚未提供用户登录验证机制,或许这一状况在将来会被改变。Moblin的根用户密码是在创建时设置的,而不是在安装过程中。Moblin的普通用户名称为“Moblin”,该用户未设置密码。 2.shell程序 shell是介于用户和系统内核间的一个接口,用于以命令方式管理程序。Linux和Moblin都包含shell程序。shell有很多种类,名为bash的shell是Linux和Moblin默认配置。bash是一系列命令集合,常用bash命令见表2.2所示。 表2.2 常用bash命令及解释 ls 查看目录及文件列表 cd 改变工作目录 cp 复制目录或文件 mv 移动目录或文件 rmdir 删除空目录 rm 删除目录或文件 mkdir 创建新目录 cat 查看文本文件内容 chmod 修改目录或文件权限 chown 更改目录或文件的所有者 3.控制台 Linux和Moblin有多个控制台,进入控制台后可使用shell程序操作计算机,如图2.1所示。控制台能与桌面同时运行,并且随时进行切换。以Fedora 10为例,切换到控制台的快捷键为“Ctrl+Alt+[F2 ...
分类: 博客征文专栏, 移动技术
标签:Moblin
Moblin开发过程中的经验分享——开发环境
作者: Xu Cheng (7 篇文章) 日期: 十二月 29, 2009 在 11:29 上午
评论 (0)
赴洛阳白马寺礼佛,见毗卢殿有一副楹联曰:天雨虽宽不润无根之草,佛门广大不渡无缘之人。读者踏入Moblin开发之门的第一步当然是配置开发环境,此过程并不需要使用很多复杂的工具或专门的硬件。常见到一些人大张旗鼓地烧着高香走进佛殿,却忘了这本是一片清静之地。因果有报,平日多行善举自然会得到正果,三柱清香足以表达敬意;对于Moblin开发者来说,经常积累使用经验,几个简单的软件就能够完成复杂的工作。 在开发环境部分,我们要涉及到三个部分: (1)硬件平台和操作系统。 (2)编译器、调试器和集成开发环境。 (3)Moblin项目提供的开发工具。 硬件平台和操作系统是开发Moblin项目首要条件,我们会列出Moblin开发的最低系统需求,尽量给出一个大部分学习者都能满足的解决方案。编译器、调试器和集成开发环境用在程序设计中,熟练掌握这些工具有助于实践Moblin开发技术。Moblin项目提供的开发工具主要是Moblin Image Creator和Linux Project Generator,这两个工具用于建立Moblin系统和应用程序模板。 为了保证读者在今后的学习中都能理解书中示例,并进行相关Moblin开发的实践,本章还将介绍Linux和Moblin系统的基本操作方法和概念,同时也将介绍一些重要工具的操作方法和概念。
分类: 博客征文专栏, 移动技术
标签:Moblin
Moblin开发过程中的经验分享——开源思想
作者: Xu Cheng (7 篇文章) 日期: 十一月 25, 2009 在 5:36 下午
评论 (4)
开源思想在中国有太多误解,甚至让许多开发人员迷惑。但是首先要明白的是,开源并非免费,通过开源软件同样能创造商业价值。与传统软件不同的是,开源软件的价值在于服务中,而不是软件使用权的出售。 开源项目的参与比较简单,大多开源项目依赖于网络社区。开发者将自己的程序源代码提交给社区,如果这段代码有其利用价值则会被采纳,成为该项目的一部分。项目的所有代码都可被自由使用,其中包括使用这些代码为最终用户服务获取商业利润。 参与者只有在付出劳动后才能获得回报,这是开源项目的游戏规则和内在规律。以Moblin项目为例,假如你将它开发成一个成熟的发行版并且为某些设备生产商服务,那么你一定会期待Moblin项目能长久的发展下去,这样你才能获得更多的回报。此时你就不能仅仅索取,却不将用户反馈提供给社区。如果你为解决某一问题付出辛勤劳动,但是你又不愿意将解决问题所产生的源代码提供给社区,在将来Moblin项目可能会越发偏离你所解决的问题,造成你需要付出更多劳动才能解决。 《金刚经》记录了一段佛与弟子间的对话,佛问如果用很多钱财去施舍,回报会很多吗。弟子答,一定非常多。佛说,他的回报并没有传递真知更多。佛教的核心思想正是传递真知,因此繁荣了数千年之久。寺庙中的经书由信众捐印,任何人都可以自由索取,于是更多人皈依佛教。这种模式与开源思想有类似之处,项目参与的人越多,为此付出的越多,回报也就越大。虽然我们不能认定每个参与开源项目的人都是心灵纯洁的正人君子,但内在规律会决定一切。 最后我谈一下开源项目的服务,主要服务是定制、维护和技术支持。虽然这些服务的价格并没有销售商业软件那么高,但是由于很多代码是复用的,开源项目的开发成本会非常低,因此整个项目的利润不会低于商业软件。
分类: 博客征文专栏, 移动技术
标签:Moblin
Moblin开发过程中的经验分享——发展方向
作者: Xu Cheng (7 篇文章) 日期: 十一月 25, 2009 在 5:35 下午
评论 (0)
多年以前,传说在我所生活的城市有一个专门研究黑客技术的中学生,能够入侵系统,盗取他人的聊天账号,云云。直到有一天他打电话向我求助才认识他,他问我:怎样安装操作系统。不过又过了许多年,他在我面前展示了BackTrack系统,这个系统是黑客为自己开发的Linux发行版,集成了各种入侵、破解软件,为心术不正之人提供诸多方便。实际上,这个操作系统给人的启发在于分众化思想,就是为特定人群设计特定的操作系统。 Ubuntu社区在分众化方面显得非常有远见,现在已经诞生了专门为学生设计的操作系统和专门为儿童设计的操作系统。相对于商业操作软件,Ubuntu已走在前列。Moblin的优势在于能够很方便的开发应用和操作系统,为分众化提供了可能。我们可以想象,石油勘探人员携带着基于Moblin开发的便携设备帮助其随时统计勘探数据,通信维护人员使用Moblin设备检查通信线路。抑或,中学生用Moblin模拟化学实验。 分众化不仅是开源操作系统优于商业操作系统的显著特征,也是中国众多中小软件开发商和个人开发者的商业机会。只要专注于某个领域,对某类应用提供了有效的解决方案,那么就有可能获得巨大的市场回报。
分类: 博客征文专栏, 移动技术
标签:Moblin
Moblin开发过程中的经验分享——读者对象
作者: Xu Cheng (7 篇文章) 日期: 十一月 25, 2009 在 5:35 下午
评论 (1)
俗谚:"老不读《三国》,少不读《水浒》。男不读《西厢(记)》,女不读《红楼(梦)》"。每部书在诞生前并没有为其划定读者的范围,全由读者自己选择。但是往往有些多事之人喜欢信口雌黄,硬是将某书划入一个小圈中。从作者的观念出发,大多希望作品雅俗共赏、老少咸宜,在深度和广度上都有摄入。当然,这只是作者的一厢情愿。不过,我自认为有两类读者可能阅读此书受益:学生和程序员。 在我国现在的教育体系下,很难顾及到现实应用中的新技术。以计算机技术为例,往往需要多年的时间才能将一种新技术引入到教学中,到那时这个新技术又变成了旧技术。处在求知欲最强的学生时代,本该青春作赋,反倒皓首穷经。这涉及到教育人才培养机制落后的问题,很多在职的教师无法从社会获得新知,更何况在实际的教学中引导学生。 但是学生可以通过自学掌握所需要的知识,以期步入社会时能处于有利竞争地位。对于计算机专业的学生,学习Moblin技术的好处在于能够深入了解操作系统的开发过程。Moblin的所有源代码是公开的,也不需要特别复杂的设备来运行,特别是在碰到疑惑时能够获得国际上一流的软件工程师的帮助。如果有能力参与到项目中,不仅可以在理论层面上获得提高,而且还能获得丰富的项目经验。 子曰:有教无类。其实我更希望非计算机专业的学生阅读此书,因为软件设计本不是一个封闭的专业,每个作品都需要具备广泛知识背景的人来参与。以财务软件为例,编程只是整个项目中的一小部分,而具备财务知识的人所进行的软件设计工作直接决定了软件项目的成败。对于软件项目来说,真正最有价值的是具备交叉知识的人。非计算机专业的学生掌握了Moblin技术后,可将自身的创造力和专业背景融入到一个移动应用的设计中,其收获必然极为丰富。 对于程序员来说,很多程序员会遇到一个困惑,到底学习什么技术最好。新技术多得让人眼花缭乱,未必学习Moblin开发技术是最好的选择?我并不能给出肯定的答案,但是我始终认为一个程序员应该选择一门专攻方向,而这个方向又是自己有兴趣、有天赋的。 程序员的成长过程中会有三个时期,分别是设备痴迷器、技术痴迷期和应用痴迷期。设备痴迷器是最早的状态,对各种信息设备产生无限的激情。技术痴迷期是第二个时期,每当看到新技术时都有种莫名的兴奋,现在大多数程序员都处于这个时期。应用痴迷期的程序员已经称得上工程师了,这个时期逐渐对某一行业有了深入了解,相信自己的技术可以解决所有的现实问题。假如度过了这三个时期,程序员会看到一个更广阔的天地,并且也能理解自己在社会中的位置。 实际上我谈到的正是程序员的修养,首先来说程序员是一个普通人,而不是技术疯子。我们需要在这个社会中正常的与人交流,体验工作的种种快乐。其次,程序员应该有较广的知识面,这样才能在项目实践中察觉到更多细节,考虑信息技术和其它技术的融合。有修养的程序员会从各种技术中选择适合自身,能够为自己创造更多价值的技术。Moblin技术只是各种移动应用技术的一种,如果它能满足你的期望,那么你就应该毫不犹豫的选择该技术,将它放在你的职业规划中。
分类: 博客征文专栏, 移动技术
标签:Moblin
Moblin开发过程中的经验分享——缘起
作者: Xu Cheng (7 篇文章) 日期: 十一月 25, 2009 在 5:33 下午
评论 (0)
经常听到开发人员讨论什么系统好,什么系统不好;哪种平台好,又有哪些平台不好。听得多了,不由得感到厌烦。于是我想起了惠能大师所说:"本来无一物,何处惹尘埃?"的确,软件本身是看不见摸不着的,无善无恶,不存在好与不好的差别。每种软件的诞生都是因缘而起,而它的消亡也是因缘而灭。你使用它受益,弃用它无害。那么,你为何不多看它好的一面来受益,而偏偏要放大它的缺陷给自己增添烦恼? Moblin项目最初是由美国英特尔公司所发起的,它的设计目的在于为移动互联网设备提供操作系统支持,降低移动互联网设备的成本,从而增加英特尔的凌动处理器销售量。但是移动互联网设备的推广情况并不理想,反而是一种称为上网本(Netbook)的设备大行其道。于是英特尔公司在Moblin的第2版上做了战略调整,使其成为能够涵盖上网本、车载电脑等众多移动设备的操作系统。2009年4月,Moblin项目被英特尔公司移交给了Linux基金会,只是主要的开发工作依然是由英特尔公司完成。 该项目的重要基础是Linux内核,Moblin只是在该内核的基础上添加了对移动设备的支持,主要包括快速启动、电源管理等技术。Moblin项目最终的产品是Moblin内核堆栈,准确的说它不是一个操作系统,只是一些软件的集合。 很多不了解Linux系统的读者可能会感到奇怪,内核、内核堆栈和操作系统之间究竟有什么区别?以Linux系统为例,Linux基金会的开发成果是Linux内核,内核包括了对计算机硬件管理的主要功能,是真正的操作系统。我们所说的操作系统是在内核的基础上加入一些常用软件组成的,如Fedora、Ubuntu等,它们确切的名称是Linux发行版。 说到这种模式产生的原因并不奇怪,Linux上的软件是由大大小小很多离散的组织来开发。GNU组织提供了编译工具、GNOME桌面环境,Open Office社区提供了办公管理软件,某些软件甚至是个人开发的。Fedora、Ubuntu等社区从Linux基金会获得Linux内核,然后在内核上安装一些软件,于是就生产出了一个新的操作系统。当然,实际的工作复杂得多,除了选择软件外,还要对各种软件的组合进行繁复地测试。不过与当前流行的商业操作系统比较起来还是非常简单的。 Moblin的内核堆栈是Linux内核与Linux发行版的中间层,可以使用Moblin内核堆栈建立针对移动设备的操作系统。Moblin项目提供了很多有用的工具,将创建操作系统的难度降到极低,即使是个人开发者都能完成。我们国内已经有企业开展了这项工作,目前处于整个行业的领先水平。 总结起来,Moblin项目的益处就是能够让读者简单地、快速地开发出自己的移动设备操作系统,无论是由个人兴趣使然,还是因为商业利益驱动。读者可能会有两个疑问,其一是如何参与项目,其二是参与这个项目的好处,这两个问题我将在后文中与读者一同探讨。
分类: 博客征文专栏, 移动技术
标签:Moblin
Moblin开发过程中的经验分享——前言
作者: Xu Cheng (7 篇文章) 日期: 十一月 25, 2009 在 5:32 下午
评论 (2)
Moblin对于广大开发人员来说是一个陌生的操作系统项目,在中国的软件开发者还在热烈讨论Android系统、J2ME技术时,Moblin倍受冷落。我涉足此项目的时间也并不长,前后仅有一年多时间,但是在这个项目中我窥见一些对于中国开发者难得的机会: Moblin是一个面向移动设备的免费操作系统,任何人都能参与该项目的开发。 Moblin有强大的技术团队支持,开发者可通过各种途径获得Moblin项目团队的技术支持。 移动设备迅猛发展需要大量的软件支持,中国的中小软件企业或者个人能通过开发受益。 我在进行Moblin项目开发中积累了一些技术经验和运营经验,这些经验的得来离不开上述原因。目前很多大型项目的参与门槛很高,而我国的开发者因语言、技术经验以及社会环境等原因无法参与,从而得不到项目积累。而有些入行门槛低的项目,因为没有成规模的技术团队支持,即使投入了辛勤劳动却也得不到技术和市场上的回报。再者,中国的国情特殊,外国软件企业和国内大型软件企业把持市场,中小软件企业况且苟存,独立的个人开发者境况不言而喻。 因此,我希望分享我的技术经验和运营经验,将这一些开发经验和感触随意集成文字,信马由缰。我的目的并不是为该项目鼓吹,而是希望和读者一同去思考其背后深层次的技术解决方案和市场战略目标,只愿能有读者为中国的开发者辟出一条新路。
