English | 中文 | Русский | Français
共 414 篇文章
共 2,630 篇文章及评论
请与我们分享您关于线程的方法和意见,不论是游戏还是财务服务应用,欢迎您畅所欲言。请记住:多核总比单核好哦!
开源思想在中国有太多误解,甚至让许多开发人员迷惑。但是首先要明白的是,开源并非免费,通过开源软件同样能创造商业价值。与传统软件不同的是,开源软件的价值在于服务中,而不是软件使用权的出售。 开源项目的参与比较简单,大多开源项目依赖于网络社区。开发者将自己的程序源代码提交给社区,如果这段代码有其利用价值则会被采纳,成为该项目的一部分。项目的所有代码都可被自由使用,其中包括使用这些代码为最终用户服务获取商业利润。 参与者只有在付出劳动后才能获得回报,这是开源项目的游戏规则和内在规律。以Moblin项目为例,假如你将它开发成一个成熟的发行版并且为某些设备生产商服务,那么你一定会期待Moblin项目能长久的发展下去,这样你才能获得更多的回报。此时你就不能仅仅索取,却不将用户反馈提供给社区。如果你为解决某一问题付出辛勤劳动,但是你又不愿意将解决问题所产生的源代码提供给社区,在将来Moblin项目可能会越发偏离你所解决的问题,造成你需要付出更多劳动才能解决。 《金刚经》记录了一段佛与弟子间的对话,佛问如果用很多钱财去施舍,回报会很多吗。弟子答,一定非常多。佛说,他的回报并没有传递真知更多。佛教的核心思想正是传递真知,因此繁荣了数千年之久。寺庙中的经书由信众捐印,任何人都可以自由索取,于是更多人皈依佛教。这种模式与开源思想有类似之处,项目参与的人越多,为此付出的越多,回报也就越大。虽然我们不能认定每个参与开源项目的人都是心灵纯洁的正人君子,但内在规律会决定一切。 最后我谈一下开源项目的服务,主要服务是定制、维护和技术支持。虽然这些服务的价格并没有销售商业软件那么高,但是由于很多代码是复用的,开源项目的开发成本会非常低,因此整个项目的利润不会低于商业软件。
多年以前,传说在我所生活的城市有一个专门研究黑客技术的中学生,能够入侵系统,盗取他人的聊天账号,云云。直到有一天他打电话向我求助才认识他,他问我:怎样安装操作系统。不过又过了许多年,他在我面前展示了BackTrack系统,这个系统是黑客为自己开发的Linux发行版,集成了各种入侵、破解软件,为心术不正之人提供诸多方便。实际上,这个操作系统给人的启发在于分众化思想,就是为特定人群设计特定的操作系统。 Ubuntu社区在分众化方面显得非常有远见,现在已经诞生了专门为学生设计的操作系统和专门为儿童设计的操作系统。相对于商业操作软件,Ubuntu已走在前列。Moblin的优势在于能够很方便的开发应用和操作系统,为分众化提供了可能。我们可以想象,石油勘探人员携带着基于Moblin开发的便携设备帮助其随时统计勘探数据,通信维护人员使用Moblin设备检查通信线路。抑或,中学生用Moblin模拟化学实验。 分众化不仅是开源操作系统优于商业操作系统的显著特征,也是中国众多中小软件开发商和个人开发者的商业机会。只要专注于某个领域,对某类应用提供了有效的解决方案,那么就有可能获得巨大的市场回报。
俗谚:"老不读《三国》,少不读《水浒》。男不读《西厢(记)》,女不读《红楼(梦)》"。每部书在诞生前并没有为其划定读者的范围,全由读者自己选择。但是往往有些多事之人喜欢信口雌黄,硬是将某书划入一个小圈中。从作者的观念出发,大多希望作品雅俗共赏、老少咸宜,在深度和广度上都有摄入。当然,这只是作者的一厢情愿。不过,我自认为有两类读者可能阅读此书受益:学生和程序员。 在我国现在的教育体系下,很难顾及到现实应用中的新技术。以计算机技术为例,往往需要多年的时间才能将一种新技术引入到教学中,到那时这个新技术又变成了旧技术。处在求知欲最强的学生时代,本该青春作赋,反倒皓首穷经。这涉及到教育人才培养机制落后的问题,很多在职的教师无法从社会获得新知,更何况在实际的教学中引导学生。 但是学生可以通过自学掌握所需要的知识,以期步入社会时能处于有利竞争地位。对于计算机专业的学生,学习Moblin技术的好处在于能够深入了解操作系统的开发过程。Moblin的所有源代码是公开的,也不需要特别复杂的设备来运行,特别是在碰到疑惑时能够获得国际上一流的软件工程师的帮助。如果有能力参与到项目中,不仅可以在理论层面上获得提高,而且还能获得丰富的项目经验。 子曰:有教无类。其实我更希望非计算机专业的学生阅读此书,因为软件设计本不是一个封闭的专业,每个作品都需要具备广泛知识背景的人来参与。以财务软件为例,编程只是整个项目中的一小部分,而具备财务知识的人所进行的软件设计工作直接决定了软件项目的成败。对于软件项目来说,真正最有价值的是具备交叉知识的人。非计算机专业的学生掌握了Moblin技术后,可将自身的创造力和专业背景融入到一个移动应用的设计中,其收获必然极为丰富。 对于程序员来说,很多程序员会遇到一个困惑,到底学习什么技术最好。新技术多得让人眼花缭乱,未必学习Moblin开发技术是最好的选择?我并不能给出肯定的答案,但是我始终认为一个程序员应该选择一门专攻方向,而这个方向又是自己有兴趣、有天赋的。 程序员的成长过程中会有三个时期,分别是设备痴迷器、技术痴迷期和应用痴迷期。设备痴迷器是最早的状态,对各种信息设备产生无限的激情。技术痴迷期是第二个时期,每当看到新技术时都有种莫名的兴奋,现在大多数程序员都处于这个时期。应用痴迷期的程序员已经称得上工程师了,这个时期逐渐对某一行业有了深入了解,相信自己的技术可以解决所有的现实问题。假如度过了这三个时期,程序员会看到一个更广阔的天地,并且也能理解自己在社会中的位置。 实际上我谈到的正是程序员的修养,首先来说程序员是一个普通人,而不是技术疯子。我们需要在这个社会中正常的与人交流,体验工作的种种快乐。其次,程序员应该有较广的知识面,这样才能在项目实践中察觉到更多细节,考虑信息技术和其它技术的融合。有修养的程序员会从各种技术中选择适合自身,能够为自己创造更多价值的技术。Moblin技术只是各种移动应用技术的一种,如果它能满足你的期望,那么你就应该毫不犹豫的选择该技术,将它放在你的职业规划中。
经常听到开发人员讨论什么系统好,什么系统不好;哪种平台好,又有哪些平台不好。听得多了,不由得感到厌烦。于是我想起了惠能大师所说:"本来无一物,何处惹尘埃?"的确,软件本身是看不见摸不着的,无善无恶,不存在好与不好的差别。每种软件的诞生都是因缘而起,而它的消亡也是因缘而灭。你使用它受益,弃用它无害。那么,你为何不多看它好的一面来受益,而偏偏要放大它的缺陷给自己增添烦恼? 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对于广大开发人员来说是一个陌生的操作系统项目,在中国的软件开发者还在热烈讨论Android系统、J2ME技术时,Moblin倍受冷落。我涉足此项目的时间也并不长,前后仅有一年多时间,但是在这个项目中我窥见一些对于中国开发者难得的机会: Moblin是一个面向移动设备的免费操作系统,任何人都能参与该项目的开发。 Moblin有强大的技术团队支持,开发者可通过各种途径获得Moblin项目团队的技术支持。 移动设备迅猛发展需要大量的软件支持,中国的中小软件企业或者个人能通过开发受益。 我在进行Moblin项目开发中积累了一些技术经验和运营经验,这些经验的得来离不开上述原因。目前很多大型项目的参与门槛很高,而我国的开发者因语言、技术经验以及社会环境等原因无法参与,从而得不到项目积累。而有些入行门槛低的项目,因为没有成规模的技术团队支持,即使投入了辛勤劳动却也得不到技术和市场上的回报。再者,中国的国情特殊,外国软件企业和国内大型软件企业把持市场,中小软件企业况且苟存,独立的个人开发者境况不言而喻。 因此,我希望分享我的技术经验和运营经验,将这一些开发经验和感触随意集成文字,信马由缰。我的目的并不是为该项目鼓吹,而是希望和读者一同去思考其背后深层次的技术解决方案和市场战略目标,只愿能有读者为中国的开发者辟出一条新路。
这里是强劲的英特尔® 至强® 5500 处理器的又一个成功案例,欢迎免费下载 :-) 盛京医院数字化医疗体系
最近在做项目开发中,使用了一个开源的代码框架,Debug编译的时候一切正常,但是在Release时候就挂了。找了老半天也没找出哪里错,因为一下就跳到系统DLL,然后就崩溃了,连call stack都看不到了,应该是堆栈被破坏了。根据经验判定可能是内存分配释放问题,因为Release版本可能暴露出一些Debug版本的内存使用问题。 这时想起不是Intel Parallel Inspector能找内存错误吗?就开到它的最大内存错误检查模式试着跑一把。结果大有收获!原来是使用的框架中犯了一个经常犯的错误: p = new Foo [100] 必须用 ...
因工作需要,我自己经常需要确认手头某个英特尔CPU的型号,也经常有客户/朋友这样问。 当然最基本的方法是用CPUID指令,编一个小汇编,再去对手册。但这个十分麻烦,不是一般人可以承受的。 还有就是网上有很多现成的小程序,可以安装了之后运行一下。但这招普遍有两个问题: 1。这些程序的更新不见得十分及时,最新发布的CPU一般认不出 2。为了运行程序,需要安装OS,不能裸机就看出CPU类型来。 最近,发现一个网站,十分有效,可以根据英特尔CPU上的标志,直接查出已经正式发布的英特尔CPU类型来,好用阿! http://ark.intel.com/sspecqdf.aspx 查时请看CPU背面(没有针脚的一面,是背面吧),上面一般都有如下的一些字: 450/512/100/2.0V S1 ...
当下的embedded system已经非同以往,多核与网络化功能的发展加速了整个行业的多元化进程。让我们先回顾一下embedded system的大概框架,再来分析Intel的发展。 标准的嵌入式系统架构有两大体系: RISC(Reduced Instruction Set Computer,精简指令集计算机)处理器,和CISC(Complex Instruction Set Computer,复杂指令集计算机)处理器体系。 RISC体系的阵营非常广泛,从ARM、MIPS、PowerPC、ARC、Tensilica等等,都属于RISC处理器。不过这些处理器虽然同样是属于RISC体系,但是在指令集设计与处理单元的结构上都各有不同,因此彼此完全不能兼容,应用软件也无法简单的重用。 CISC体系就包括了我们的Intel的X86处理器。CISC体系其实效率并不高,因为其指令集和芯片结构全而复杂。过去被应用在嵌入式系统的X86处理器,多为工业计算机中仍可见到的但是数年前早已退出个人计算机市场的Pentium3处理器。由于其性能稳定,加上已经被市场长久验证,故常应用于效能需求不高,但稳定性要求高的应用中,如工控设备等产品。当然了在这个市场上,Intel ...
经常有人问:你介绍的很多东西有没有什么具体的例子呢?我收集了一些可以公开的成功案例,特此陆续献上,希望可以帮助大家更好的理解英特尔的产品,英特尔的技术。 之前介绍过英特尔® 至强® 5500 处理器。这款已经正式发布的CPU,性能十分强劲,这里就是宝信的一个例子: 宝信一体化监控指挥平台iCentroView5采用基于英特尔® 至强® 5500处理器的测试平台显著提升软件整体性能