dsp开发板板的dsp开发板过程中对于创始人来说其形状至关重要吗

当前访客身份:游客 [
mips arm linux
:好吧,我直接在 veryARM 上学的,现在学了蛮多的...
:先顶后看
:引用来自“sevk”的评论 还是GSM实在。可惜辐射大...
:还是GSM实在。
:引用来自“平克曼”的评论 看来是性格觉得命运~...
:看来是性格觉得命运~
:第一本正在读,等我看得差不多了再去下载剩下的
:引用来自“开源码农”的评论 为什么要是2012年的...
:为什么要是2012年的10月1日,而不是今年的10月1...
:我校友,嘻嘻,顶一个先
今日访问:6
昨日访问:15
本周访问:31
本月访问:258
所有访问:16758
列表模式: |
作者很好很无私,大家赶快各取所需吧!
免费的编程中文书籍索引,欢迎投稿。
国外程序员在
推荐的程序员必读书籍,。
上的程序员应该阅读的非编程类书籍有哪些?
上的一个流行的编程书籍索引
欢迎大家讲珍藏已久的经典免费书籍共享出来,您可以:
以及 Pull Request
发邮箱给我
注:看到有人 fork 此 repository,其实如果觉得有帮助,可以 star 或者 watch, 如果 fork 到你的 repositories 下则不能保证你的 repo 是最新的,除非是主动定期的 pull。
star 的作用是收藏,目的是方便以后查找。
watch 的作用是关注,目的是等我更新的时候,你可以收到通知。
fork 的作用是参与,目的是你增加新的内容,然后 Pull Request,我会考虑把你的修改和我原来的内容合并。
请选择合理的方式。(上面的内容是写给一些 fork 狂的,很多开发者喜欢 fork 一些 linux 内核,jquery之类的东东,其实这些东东完全没有必要 fork)
语言无关类
(淘宝团队出品)
语言相关类
(宋劲杉, 北京亚嵌教育研究中心)
使用 Eclipse 和 Java SE 6 创建独立 Web Services 应用程序
JavaServer Faces 1.2 入门
用 Eclipse Europa 进行 Web 开发
使用 JavaServer Faces 构建 Apache Geronimo 应用程序
Apache Geronimo 和 Spring 框架
终极 mashup —— Web 服务和语义 Web
JavaScript
(PDF) (此书已由人民邮电出版社出版发行,但作者依然免费提供PDF版本,希望开发者们去购买,支持作者)
(注:原文由翻译,原始地址无法打开,所以此处地址为我博客上的备份)
(开源中国)
(繁体中文)
backbone.js
(本书网页版免费提供,电子版以 PDF、EPub 和 Mobi 格式提供购买,仅售 9.9 美元)
(此书已经出版,希望开发者们去购买,支持作者的创作)
(当我收录此项目时,作者已经写完第三章,如果读完前面章节觉得有帮助,可以给作者,以鼓励作者的继续创作)
读书笔记及其它
发布于 2年前,
阅读(180) | 评论(0) |
投票(1) | 收藏(5)
文/腾讯社交网络事业群高级工程师 马云
测试结论:
1)灭屏待机最省电:
a)任何App包括后台Service应该尽可能减少唤醒CPU的次数,比如IM类业务的长连接心跳、QQ提醒待机闹钟类业务的alarm硬时钟唤醒要严格控制;
b)每次唤醒CPU执行的代码应该尽可能少,从而让CPU迅速恢复休眠,比如申请wake lock的数量和持有时间要好好斟酌;
2)WiFi比蜂窝数据,包括2G(GPRS)、3G更省电:
a)尽量在WiFi下传输数据,当然这是废话,不过可以考虑在有WiFi的时候做预加载,比如应用中心的zip包、手Q web类应用的离线资源等;
b)非WiFi下,尽量减少网络访问,每一次后台交互都要考虑是否必须。虽然WiFi接入方式已经占到移动互联网用户的50%,但是是有些手机设置为待机关闭WiFi连接,即便有WiFi信号也只能切换到蜂窝数据;
测试分析:
1)灭屏的情况:
a)灭屏待机,CPU处于休眠状态,最省电(7mA);
b)灭屏传输,CPU被激活,耗电显著增加,即便是处理1K的心跳包,电量消耗也会是待机的6倍左右(45mA);
c)灭屏传输,高负载download的时候WiFi最省电(70mA),3G(270mA)和2G(280mA)相当,是WiFi的4倍左右;
2)亮屏的情况:
a)亮屏待机,CPU处于激活状态,加上屏幕耗电,整机电量消耗不小(140mA);
b)亮屏传输,如果只是处理1K的心跳包,耗电增加不多(150mA),即便是很大的心跳包(64K),消耗增加也不明显(160mA);
c)亮屏传输,高负载download的时候WiFi最省电(280mA),3G(360mA)和2G(370mA)相当,是WiFi的1.3倍左右;
3)Alarm唤醒频繁会导致待机耗电增加:
手机灭屏后会进入待机状态,这时CPU会进入休眠状态。Android的休眠机制介绍的文章很多,这里引用一段网络文章:
Early suspend是android引进的一种机制,这种机制在上游备受争议,这里 不做评论。这个机制作用在关闭显示的时候,在这个时候,一些和显示有关的 设备,比如LCD背光,比如重力感应器,触摸屏,这些设备都会关掉,但是系统可能还是在运行状态(这时候还有wake lock)进行任务的处理,例如在扫描SD卡上的文件等.在嵌入式设备中,背光是一个很大的电源消耗,所以android会加入这样一种机制.
Late Resume是和suspend配套的一种机制,是在内核唤醒完毕开始执行的.主要就是唤醒在Early Suspend的时候休眠的设备.
Wake Lock在Android的电源管理系统中扮演一个核心的角色. Wake Lock是一种锁的机制,只要有人拿着这个锁,系统就无法进入休眠,可以被用户态程序和内核获得.这个锁可以是有超时的或者是没有超时的,超时的锁会在时 间过去以后自动解锁.如果没有锁了或者超时了,内核就会启动休眠的那套机制来进入休眠.
当 用户写入mem或者standby到/sys/power/state中的时候, state_store()会被调用,然后Android会在这里调用request_suspend_state()而标准的Linux会在这里进入 enter_state()这个函数.如果请求的是休眠,那么early_suspend这个workqueue就会被调用,并且进入 early_suspend
简单的说,当用户按power键,使得手机进入灭屏休眠状 态,Android系统其实是做了前面说的一些工作:关闭屏幕、触摸屏、传感器、dump当前用户态和内核态程序运行上下文到内存或者硬盘、关闭CPU供 电,当然为了支持语音通讯,modern等蜂窝信令还是工作的。
这种情况下,应用要唤醒CPU,只有两种可能:
a)通过服务器主动PUSH数据,通过网络设备激活CPU;
b)设置alarm硬件闹钟唤醒CPU;
这里我们重点分析第二种情况。首先来看看什么是alarm硬件闹钟。官 方提供的解释是:Android提供的alarm services可以帮助应用开发者能够在将来某一指定的时刻去执行任务。当时间到达的时候,Android系统会通过一个Intent广播通知应用去完 成这一指定任务。即便CPU休眠,也不影响alarm services的服务,这种情况下可以选择唤醒CPU。
显 然唤醒CPU是有电量消耗的,CPU被唤醒的次数越多,耗电量会越大。现在很多应用为了维持心跳、拉取数据、主动PUSH会不同程度地注册alarm服 务,导致Android系统被频繁唤醒。这就是为什么雷军说Android手机在安装了TOP100的应用后,待机时间会大大缩短的重要原因。
比较简单评测CPU唤醒次数的方法是看dumpsys alarm,这里会详细记录从开机到当前的各个进程和服务唤醒CPU的次数和时间。通过对比唤醒次数和唤醒时间可以帮助我们分析后台进程和服务的耗电情况。Dumpsys alarm的输出看起来像这样:
其中544代表唤醒次数,38684ms代表唤醒时间。更详细的alarm services相关资料请参考Google官方定义:
4)Wake locks持有时间过长会导致耗电增加:
Wake locks是一种锁机制,有些文献翻译成唤醒锁。简单说,前面讲的灭屏CPU休眠还需要做一个判断,就是看是否还有任何应用持有wake locks。如果有,CPU将不会休眠。有些应用不合理地申请wake locks,或者申请了忘记释放,都会导致手机无法休眠,耗电增加。
关于wake locks的网络文章也比较多,也可以参考Google官方文献:
原始数据:
测试方法:硬件设备提供稳压电源替代手机电池供电,在不同场景下记录手机平均电流。
测试设备:Monsoon公司的Power Monitor TRMT000141
测试机型:
测试用例:
灭屏benchmark(CPU进入休眠状态):7mA
灭屏WiFi:70 mA
灭屏3G net:270 mA
灭屏2G net GPRS:280mA
亮屏benchmark:140mA
亮屏wifi:280mA
亮屏3G net:360mA
亮屏2G:370mA
亮屏待机:140mA
亮屏wifi ping 1024包:150mA
亮屏wifi ping 65500包:160mA
灭屏 ping1024:45mA
灭屏ping 65500:55mA
关闭所有数据网络待机:7mA
发布于 2年前,
阅读(83) | 评论(2) |
投票(0) | 收藏(1)
这是极好的,是每一个优秀程序员都应该具备的,是程序员之间合作和项目成功的基础!
Every major open-source project has its own style guide: a set of conventions (sometimes arbitrary) about how to write code for that project. It is much easier to understand a large codebase when all the code in it is in a consistent style.
“Style” covers a lot of ground, from “use camelCase for variable names” to “never use global variables” to “never use exceptions.” This project holds the style guidelines we use for Google code. If you are modifying a project that originated at Google, you may be pointed to this page to see the style guides that apply to that project.
Our , , , , , , and
are now available. We have also released , a tool to assist with style guide compliance, and , an Emacs settings file for Google style.
If your project requires that you create a new XML document format, our
may be helpful. In addition to actual style rules, it also contains advice on designing your own vs. adapting an existing format, on XML instance document formatting, and on elements vs. attributes.
These style guides are licensed under the CC-By 3.0 License, which encourages you to share these documents. See
for more details.
发布于 2年前,
阅读(67) | 评论(0) |
投票(0) | 收藏(0)
1、慎重选择第1门语言
编程语言各有不同,不过区别不大。但用语言的人区别就大了。选择了一门语言你就选择了一个群落。
–Sam Kaufman,自由职业者,iOS开发者,10x management
如果你想快速建立原型(尤其对于希望对产品进行迭代升级的创始人来说),那就用Ruby或者Javascript
–Erin Parker,Spitfire Athlete创始人兼首席开发者
2、你不是程序猿!
伟大的开发者能够建构并开发应用。惊艳的开发者能够在关注业务的同时做这件事。业务端的人大都不懂编码,但是肯定能够理解特定功能背后的动机。
别人说什么开发者就做什么,没有去理解为什么要这么做,导致双方均错失了机会,这样的事情太常见了。
–John Coggeshall,自由职业者,web开发者,10x Management,PHP核心贡献者
精通编程是一个崇高的职业目标。一旦实现了这个目标,别忘了考虑一下你自己。不要成为任何公司的奴隶或者在毫无价值的东西上浪费你的时间。
—Greg Sadetsky, Python及Javascript专家,10x Managemen;协同办公空间 Abri.co 创始人
要想按期完成,得在开始技术工作之前事先进行项目沟通(哪怕这并非先决条件),因为其他人的响应速度千变万化。
–Andrew Wilcox,web 应用开发者,Meteor核心贡献者,10x Management
3、保持敏捷,不断交付
早发布,不断发布,边说唱边发布。
–Max Nanis,自由职业者,web开发者,生物信息学专家,10x Management
不断测试。好的测试包如保单和煤矿里的金丝雀之结合。它能帮助你在生产周期中更早地找出错误,而错误越早发现越容易解决。
–Jeremy Green,自由职业者,web开发者,专长Ruby on Rails,10x Management
快速失败。编码(及生活)时我希望尽早知道什么地方不能工作,而不是放任不管让它增殖扩散。全面放开,快速失败,修补缺陷,不断继续。
–Stephanie Volftsun,Knotch联合创始人兼CTO
为所有代码编写自动测试!尽可能践行测试驱动的开发。
–Zoran Kacic-Alesic,Industrial Light & Magic研发主管
4、保持对测试流程的控制
许多项目深受多测试周期之苦。这会拖累项目,导致组织整体出现高级别的问题。
程序员应该专注于对自己的代码进行单元测试及半回归测试。他们比其他任何人更了解代码库,也知道自己会影响到哪些变更。有时此类变更会由于 QA 测试范围有限而缺失,因此导致生产环节出现重大问题。
–Sanjib Sahoo,tradeMONSTER CTO
要想在力所能及的情况下尽快开发出无缺陷代码,永远永远也不要把写测试放到后面。我们更清楚这一点。要检查一下测试的覆盖率,确保100% 无死角。
–Seth Purcell,Signpost工程副总裁
5、如果你是自由职业者,要学会说不,哪怕面对的是金钱
要对时间和成本有一个合理的评估,然后把它加倍。如果大家都说“这应该很简单,”那就做
–Ryan Waggoner,自由职业者,web及移动应用开发者,10x Management
6、荣誉属于过去—理论是一回事,但实践更重要
改进软件开发质量的最好方式就是去开发软件。许多雄心勃勃的刚入门的工程师花了很多的业务时间去读书,关于最新工具的、关于开放流程的,诸如此类的东西。
很多人都是这么消磨自己的闲暇时间的,但这样很容易就把你给耽搁了。别这样,通过尽可能用脑来强化大脑负责开发软件的那部分。
–James Cropcho,General Assembly的Ruby on Rails专家及讲师
不断探索。我见过的许多编码者手上都有几个在进行的业务项目。做业务项目迫使你要探索新技术然后学习创建应用的方方面面。你可能需要做前端的 HTML/CSS,后端的API集成,数据库优化,做移动app,还得设置自己的服务器。
–Andrew Waage,Retention Science CTO及联合创始人
7、结对评审是你的秘密武器
结对编程非常必要。两个程序员联合开发同一个模块可以相互审查对方的代码。开发团队每周也要召开代码审查会议,让每一个开发者给其他人的代码提供反馈意见,解释如何更好地改进代码。这能够形成一种协作文化,把开发者的自负抛开!
–Sanjib Sahoo
8、像躲瘟疫一样避免过早优化
只有在问题和解决方案都出现在你面前时才进行重构—过早重构是时间上的巨大浪费。不要投入半年后可能被扔掉的任何东西的完善上。过早优化是罪恶之源。
–Seth Purcell
不要过早优化!我不断看到工程师在用户还没有到1000的时候一再对扩充到100万的用户规模担心。
–Mariya Yao,Xanadu Mobile创始人兼创意总监,移动开发者及设计师
9、你的代码只写一次,可别人会读它千万遍
你写的代码机器会解析执行,可其他人却需要读你的代码,理解它,摆弄它。你必须明白,你的代码会有未来的观众。代码也是一种书写形式的沟通。
–Tracy Chou,Pinterest软件工程师
听起来很奇怪,但是你永远都得替自己的未来着想。问问自己:如果你有健忘症的话,你还能不能理解自己写过的代码?
–Wai Ching Jessica Lam,Sugarbox联合创始人兼 CTO
通读你的文档。设计改动很多,有时候代码更新的时候注释不一定会跟进。保持文档的更新,未来的人(包括你自己)理解起来就更容易。我说不清有多少次我看回自己代码时总在想:“我到底在干什么?”只要我写出了好的注释,未来头疼就少很多。
–Kitt Vanderwater,Google软件工程师
10、这是一个崇高的职业,把你的技能用到好的地方。
帮助他人是深层次的人类需求。想办法用你的工作来改善人类,你就会有成功的把握。
–Greg Sadetsky
发布于 2年前,
阅读(54) | 评论(0) |
投票(0) | 收藏(1)
  我们一直在说“国货当自强”,却很难找到更多成功进军国际的公司。说不定这是信息不对称的错,因为那些已经在国际某个圈子里拥有一定声誉的公司,很可能会将精力更多放在国际市场。毕竟市场在哪儿,营销在哪儿。
 最近我在珠海发现了一个国际上认可,但国内却默默无闻的团队,他们叫 Cubieboard,产品是基于 Linux 的开发板。别小看这个开发板,国际上主流的 Linux 发行版都推出了兼容它的版本。比如 Ubuntu、Debian、Fedora、OpenSUSE、ArchLinux 等等。这表明,至少在 Linux 这个圈子里,Cubieboard 已经得到极高的关注以及认可。
  媲美“树莓派”的 Cubieboard
  其实谈到 , 很容易会让人想起另一个有名的产品,那就是被亲切称为“树莓派”的 Raspberry Pi。从表面看,两个产品都差不多,在一块 PCB 板上集成了处理器、内存,又有丰富的接口,可以接硬盘、SD 卡、显示器、音箱/耳机等等。换言之,Cubieboard 和 Raspberry Pi 都是卡片式的超小型电脑,而且两者在硬件上都留有许多丰富的扩展接口,方便他们自己动手添加自己想要的功能。
  那 么,Cubieborad 和 Raspberry Pi 有什么不同?前者走的道路是产品创新,后者走的道路是渠道创新。从今年年初到年末,Cubieboard 已经迭代了 3 代产品,年中时团队推出了 Cubieboard 2,这几天又推出 CubieTruck。而 Raspberry Pi 则依托媒体的报道,从各个渠道方面向各国市场渗透。据 Cubieboard 联合创始人黄祖奔了解,对方已经与国内的教育机构接触。然而, Raspberry Pi 仍然是当初的产品,基本没有太大的变化。
  除了公司所看重的价值点不一样外,双方产品的性能也有差异,Cubieboard 第一代产品的性能各方面要比 Raspberry Pi 强。这里是,评测项目包括了 CPU 的性能、磁盘读写性能、内存性能测试、GPU 图形性能测试等子项。换言之,Cubieboard 能够承担更重的计算任务——这也是主要 Linux 发行版基本都推出了兼容 Cubieboard 的版本的原因。
 开源硬件的产品很多时候是要靠社区说话,如果有一个足够健壮的社区,那么它的发展前景就更加看好。而 Raspberry Pi 的社区要比 Cubieboard 更加健壮,除了常常能看到某人用 Raspberry Pi 做了些什么奇特事情的报道外,前者论坛的帖子数量就是后者的几倍。
  不过,今年才开始启动的 Cubieboard 的社区发展速度已经很快,至 今官方论坛累计流量已近突破 200 万人次,其中中文论坛的访问量在第三季度也首次突破 1 万人次。此外社区里的讨论氛围也越来越浓厚,比如说用 Cubieboard 组建服务器,是社区的用户主动提供健全的方案,而且是基于 Hadoop 的。而除了服务器、家庭影音服务器等常见的用户实践外,还有人为 Cubieboard 开发了高保真音频转换拓展卡——换言之,可以把 Cubieboard 当作高保真音频系统来用了。
  半推半就走上创业道路
 今年 6 月,新车间的李大维就向我推荐 Cubieboard 这个位于珠海的团队。当时他对我说,像国内其它做开源硬件的团队,他们都是自动自发去创业的,而 Cubieboard 则是在用户的要求下才从原来的单位跳出来。他觉得,Cubieboard 的故事更加贴近现实。毕竟不是所有人一开始就会想到要创业,而更可能是因为自己、因为环境的因素,半推半就地走上创业这条路。
  黄祖奔告 诉我,Cubieboard 是一个比较意外的产品。常常在 Linux 开源社区厮混的他,看到社区里的人需要一个价格便宜、能够兼容各个 Linux 发行版的开发板,于是想着“自己也试着做做看”,然后在召集人手利用业余时间松散开发,而当产品原型做了出来并分享给社区的时候,意外受到了社区用户的欢 迎。黄祖奔说,“我们当时抱着玩乐的心态去做,完全没有想到这块板子会那么地受欢迎。”
  后来,在社区成员的主动推荐之 下,Cubieboard 开始拥有自己的用户以及产品口碑,用户的需求量越来越高。于是,在已经有了一款相对成熟的产品下,黄祖奔和其他团队成员开始商量是否应该成立一家公司。但 现在,方糖科技虽然已经成立了,当初的 5 人却只剩下黄祖奔继续坚持。
  其实,去年加入珠海全志注的黄祖奔,到 年底已经萌生出自己创业的念头,他和黎佐廷都觉得“电子行业太累”——以黄祖奔的亲身经历举个例子来说,他在星邦威电子工作的时候,为了保证项目进度,公 司把他和项目组从深圳搬到珠海,进行半军事化的封闭式开发,只允许每人每天只睡 4、5 个小时,一直持续 8、9 个月。由于电子行业竞争激烈,公司为了保证新产品按期出现,就不得不压榨人力。在这样的气氛下工作,就让人感觉自己好像上了发条的机器人,没有什么自由。
 现在黄祖奔为在 Cubieboard 工作的北理工大学珠海校区的学生而自豪。他认为,这些大学生能够在团队里学习到课堂上老师所教不到的东西,无论是技术、待人接物还是其它方面,参与工作之 后的学生都有了很大的进步。这么看来,Cubieboard 做了一些教育上的有意义的事情。黄祖奔还希望产品能够被更多学生所了解和认识,他相信这块开发板能够更好地激发学生主动思考,提高动手能力。
 今年 10 月,黄祖奔沿着川藏线入藏,远离城市的喧嚣,整日与悬崖峭壁相伴。刚好在这样的情况下,他看了一出讨论人是如何老死的节目,心灵受到触动。他说,“后来我 觉得,人活着赚再多的钱又怎么样呢,最终不过是一杯黄土。人生应该做一些更有价值的事情。”我想,这是他能够坚持下来的原因。
  Mini PC 与 Cubieboard 未来
  从今年年初到现在,Cubieboard 产品发展了 3 代,产品销往国外 100 多个国家。那么关于未来,黄祖奔和黎佐廷又是怎么想的呢?
 他们觉得现在 ARM 与 x86 的性能差距已经不像以前的差距那么大了,可以满足普通的使用需求,比如说播放电影、听歌、浏览网页等等。曾经有客户希望订购几十块 Cubieboard,用于替换公司里的充当瘦客户端的 Raspberry Pi——他觉得 Cubieboard 的性能更好,系统运行更加流畅,有助于提高员工的办公效率,同样能节约公司成本。
  未来当 Cubieboard 采用八核处理器,2 GB 的内存,与桌面机的性能差距就更小了。这意味着它能够更好地运行桌面环境——一种价格低廉,功能也差不多的小型 PC。不管是验证想法,还是取代 PC,小型 PC 能为人提供更加灵活的方案。
 不过由于国内开源社区仍不够兴旺,黄祖奔对国内市场的看法较为悲观。此外,国内用户对待新产品的态度也较为严苛,摆脱不了“月亮是国外的圆”、“鸡蛋里 挑骨头”心态,创业者吃力不讨好。黄祖奔觉得,在国内做开发板生意,遭受的挑战要比在国外大得多。但作为一个有价值的事业,他和团队会坚持下去。
  关于未来,黄祖奔希望启动一个类似深圳柴火这样的社区,让更多学生、爱好者感受开源硬件、开源社区的文化与氛围,切磋交流;另外,他还有一些产品的规划,尚在酝酿当中。他说,只要 Cubieboard 团队战斗力强,那么他就什么都不怕。
  注:一家芯片公司,所生产的 ARM 芯片普遍用于平板上。
发布于 2年前,
阅读(128) | 评论(0) |
投票(0) | 收藏(1)
说到处理器,我们在介绍了包括苹果、英特尔、英伟达之后,另一个名字不得不提,那就是三星。是的,这个横跨智能家电、移动终端的国际厂商,在芯片领域依然 占据着举足轻重的地位。在知名的三星Note系列平板产品中,包括8英寸和10.1英寸我们都看到了三星猎户座Exynos 4412的身影。
GALAXY NOTE 8.0采用三星 Exynos 4412处理芯片
& & 这颗在2012年初发布的三星自家首款四核移动处理器Exynos 4412采用32nm HKMG(高K金属栅极技术)制程,支持双通道LPDDR2 1066MHz。新的32nm HKMG技术可以帮助降低功耗,按照官方的说法,和其前代比会减低20%的功耗。
三星 GALAXY NOTE 8.0采用Exynos 4412处理器
& & 三星Exynos 4412四核处理器仍然集成Mali-400MP图形处理器,但三星公司已将这颗图形处理器主频由此前的266MHz提升至400MHz、2012年5 月,首款采用Exynos 4412处理器的智能手机三星Galaxy S III正式上市,接着Galaxy Note 10.1以及后续的Galaxy Note 8.0也紧随其后。
&&在经历了双核时代大火的瑞芯微,如今的四核也迅速跟上,在国产芯片领域让很多对手都汗颜的跑分实力也是瑞芯微所具备的一大杀手锏。如今的瑞芯微RK3188系列芯片在很多国产平板上都有所体现,并且依靠亲民的成本也让其获得了很多国产厂商的青睐。
国产首颗28nm工艺四核Cortex-A9芯片(图片来自瑞芯微)
& & 瑞芯微RK3188四核芯片选择了成熟稳定的ARMv7 Cortex-A9四核芯片架构,我们所熟知的英伟达Tegra 3、三星Exynos4412都是基于此架构。其支持NEON与SIMD指令集,支持乱序执行并可在一个时钟周期执行四条指令的特性使处理器运算性能明显 优于每个时钟周期内只能有序执行两条指令的Cortex-A7。
性能达到现阶段主流水平(图片来自瑞芯微)
& & 其标称主频为1.6GHz。其采用28nm制程工艺,相较于全志A31的40nm和三星Exynos 4412的32nm都有所提升。另外图形处理方面配备了和瑞芯微上一代双核处理器RK3066一样的Mali-400 MP4图形处理器,不过同样四个显示核心,其频率却从之前的266MHz提升至533MHz。
加入对4G网络制式的支持(图片来自瑞芯微)
& & RK3188也与时俱进的加入对4G网络制式的支持,其采用的最新的高速通信接口可优先用于连接4G(LTE FDD/TD-LTE)、3G模组,提高上网速度。虽然这些对于网络基础工程相当薄弱的国内来说基本没什么实际使用价值,但很显然瑞芯微也是想以此打开国 际市场,特别是在网络基础建设成熟的发达国家展开竞争。
目前通话平板热潮不断,各大厂商也纷纷推出支持通话功能,甚至是双卡双待的手机平板跨界产品,在这个时代,联发科作为手机中的知名上游芯片厂商如今也来到 了平板电脑行列中来。联发科针对平板所特定优化的MT8389处理器,被很多通话平板所采用,这颗基于MT6589改动而来的芯片究竟有哪些技术特点呢?
联发科MT8389处理芯片被广泛应用于双卡双待等通话平板之中
& & 联发科MTK8389四核处理器基于Cortex-A7架构,单颗主频最高达1.2GHz的处理器也同样被用于联想A3000这款热门的通话平板之中。该 芯片整合ARM旗下超低功耗四核Cortex-A7 CPU及PowerVR Series 5XT图形处理器,同时也因为采用业界领先的台积电28纳米制程工艺,提供了绝佳的效能表现。
联发科 MT8389 采用台积电28nm LP制造工艺
& & Low Power(LP)制程是台积电28nm制造工艺中的第一个可用的版本,它是理想中解决低功耗待机的方案之一,联想 ideatab A3000 所用的MT8389的运算核心以及基带芯片均采用了这一工艺,那么使用28nm LP制造工艺的芯片将比采用40nm LP制造工艺的芯片在处理速度上有大约20%的提升。
联想 ideatab A3000使用联发科MT8389四核处理器
& & 图形处理方面MT8389采用了PowerVR SGX544MP,图形处理器也同样为四核心,单颗主频为286MHz。作为一套高度集成的SoC解决方案,MT8389内部也集成了GSM、WCDMA通讯基带。
全志这个名字或许在最初的单核时代很多网友都相当熟悉,而在经历了双核的空白之后,全志凭借目前的A31和A31s再次站到了我们的面前,让我们从瑞芯微之外看到了另一个令诸多国产厂商选择的上游芯片供应商。
全志A31系列四核处理器
& & 全志A31是首款基于ARM Cortex-A7内核的四核处理芯片,与瑞芯微推出的Cortex-A9四核有所差别。ARM Cortex-A7处理器隶属于Cortex-A系列,基于ARMv7-A架构,它的特点是在保证性能的基础上提供了出色的低功耗表现。
全志A31芯片内部结构解析(图片来自全志官网)
& & 图形处理方面全志A31集成了Imagination的PowerVR SGX544MP2双核图形显示单元,这款GPU与苹果iPad系列平板、亚马逊Kindle Fire系列的图形芯片出自一家。其像素填充率高达3000M/S,三角形渲染也同样高达100M/S。
& & 全志A31S四核解决方案,ARM Cortex-A7架构同时拥有256KB的一级缓存和1MB的二级缓存,单单从数据上而言全志A31S与全志A31相比,内存变为32位单通道,而全志 A31则为64位双通道,视频解码方面不支持4K分辨率,最大支持2160P的视频解码。
发布于 2年前,
阅读(40) | 评论(0) |
投票(0) | 收藏(0)
在国庆的十一长假中,不少人选择外出游玩,不少人选择宅在家中,而不知道屏幕前的您是否选择了利用长假几天多了解一些感兴趣的知识?对于平板电脑来说,今 年应该算是第4个年头了,自从苹果推出第一代iPad之后,国内国际都不断推陈出新,新生产品一代又一代的涌来,而在目前最新的平板产品中,究竟采用了什 么处理芯片,也是衡量产品性能的有力因素之一。借着十一长假,笔者就为大家盘点一下热门产品所采用的芯片,同时在介绍主控的同时也为大家一同回顾一下这些 最新的平板电脑产品,好了让我们废话不多说,赶快进入本次的十大芯片解析之中。
& & 我们都知道,苹果最新的iPad 4代平板使用了新款A6X处理器,相比于iPhone 5的A6只多了一个“X”,而相较于A6芯片,A6X是一个不折不扣的怪兽级移动处理器,尤其是配备了全新一代的四核心图形处理器,性能强悍。
A6X处理器带来更快的速度
& & A6X和之前的A6、A5第二版一样,都是三星32nm HKMG工艺制造的,CPU部分基本没有改变,A6X、A6的布局几乎一模一样,也是两个苹果自己设计的Swift核心,只是主频从1.3GHz略微提高 到了1.4GHz。GPU方面就大不相同了,换成了新一代的Imagination PowerVR SGX554MP4,拥有四个图形处理核心。
iPad 4采用苹果A6X处理器
& & 苹果iPad 4于北京时间日凌晨发布,距离现在也快要整整1个年头了,在发布当初iPad 4被iPad mini着实抢走了不少的眼球,而苹果也在发布会上大肆宣扬了其最新的A6X移动处理器。更强的GPU标志着苹果A6X成为了iPad 4最鲜明的标志,而其强劲的图形性能也让iPad 4成为了在当时最佳体验的平板电脑产品。
& & Tegra系列这个响亮的名字想必了解平板电脑的读者们都再熟悉不过了,作为最新一代的Tegra系列芯片,Tegra 4与2013年初的CES上大放异彩之后便受到了非常之多的追捧。在发布之初,英伟达就宣布Tegra 4芯片是当时全球速度最快的移动处理芯片,其超强的性能与电池续航能力支持智能手机、平板电脑、游戏设备、汽车信息娱乐系统、导航系统以及个人PC等多条 产品线。
目前移动处理器中性能最为强劲的芯片之 英伟达Tegra 4
& & 如果要说到Tegra 4处理器相比Tegra 3处理器变化最大的部分,GPU图形处理器的升级不得不提。从之前的类渲染管线处理方式到现在的流处理器,英伟达的GeForce ULP移动图形处理芯片正经历着颠覆摩尔定律的指数级性能增长。代号为“Wayne”的Tegra 4具备72个定制的NVIDIA GeForce GPU显示核心,其GPU处理性能是Tegra 3的六倍。此外,Tegra 4首次集成应用了四颗ARM最先进Cortex-A15 CPU核心,Web浏览可实现2.6倍的速度提升。
Tegra 4处理器主要卖点信息展示(图片来自英伟达)
& & 除了显示核心与处理核心之外,Tegra 4还具备一个第二代节电核心,拥有更高的能源效率,适合低功耗的标准使用环境。其PRISM 2 Display技术可以在实现高级视觉效果的同时减少背光功耗。在一般使用环境中,Tegra 4的消耗功率比前一代的Tegra 3减少了45%。同时,它可实现最长14小时的高清视频播放。
代号为蝙蝠侠“Wayne”的Tegra 4系列处理芯片早在CES就推出曝光
(图片来自英伟达)
& & Tegra 4系列处理器芯片同样支持LPDDR2/LPDDR3/DDR3L三种规格的内存,采用支持双通道技术的内存控制器,这方面相比Tegra 3处理器的单通道内存控制器将会对内存带宽的提升有很大的帮助。
英伟达Tegra产品线路线图(图片来自英伟达)
& & 在显示信号输出方面,Tegra 4最高支持即WQXGA的分辨率显示以及4K分辨率的外部输出,这点与三星的Exynos 5250保持一致,视频流处理方面可以进行1440P级视频的编/解码,也就是说采用这款芯片的平板电脑不但可以用来播放画质更高的高清视频,同时也可以 记录下摄像头拍摄的高清视频。
说完了iPad 4当然有必要提一提iPad mini,这个7.9英寸的小家伙着实令9.7英寸的iPad 4给其让道。发布会上高调抢占镜头,香港首发一货难求也令其在当时掀起了小尺寸平板的热潮,同时令这股趋势一直延续至今。
苹果A5芯片封装外观(图片来自网络)
& & iPad mini所采用的A5处理芯片采用新款32nm的A5双核处理芯片,主频最高可达1.0GHz,这款曾被用于iPad 2以及iPhone 4S上的处理器我们已经非常熟悉了。图形处理器采用的是Imagination的PowerVR SGX543 MP2。
& & 苹果A5处理器采用类Cortex-A9架构并由苹果自行设计三星代工生产,2011年3月初苹果正式发布iPad 2,其内置的A5处理器也首次亮相。随后同年10月份推出的iPhone 4S也采用了这款处理器。苹果A5处理器是首款搭载iOS系统的双核芯片,由三星公司代工生产制造工艺初为45nm,随后于第三代The New iPad发布时升级为三星最新的使用高K金属栅极的32nm制造工艺,在功耗控制和散热方面的处理有所提升,苹果给出的数据是续航时间可以延长16%。
苹果iPad mini采用A5处理器 同时iPhone 4S和iPad 2同样采用此处理器
& & iPad mini从配置上来看完全就是一个缩小版的iPad 2,摄像头达到了The New iPad的iSight水准,虽然性能没有提升,但胜在便携性。同样采用A5双核处理器,机身厚度由iPad 2的8.8mm锐减到7.2mm,放在包里很轻松。308克完全不会成为任何负担,它并不比你包里所放置的物品重多少。
在长篇大论的谈及了Tegra 4芯片之后,作为目前仍在主流平板中使用的四核处理芯片,Tegra 3笔者认为还是有必要和大家普及一下基本的知识内容。这颗当初在谷歌Nexus 7上使用的芯片令很多人都记忆深刻。
不少平板产品使用了英伟达Tegra 3处理芯片
& & 早在2011年2月,英伟达公司就公布了ARM架构移动SoC片上系统处理器的未来计划,预告将在年底推出第三代Tegra。同年11月9日,代号“Project Kal-El”(超人原名)的Tegra 3,也是全球首款移动四核心处理器终于正式揭开了面纱。
Tegra3处理器内部结构(4+1核模式)
图片来自英伟达
& & Tegra 3采用台积电40nm工艺制造,四核心最高频率1.4GHz,单核最高1.5GHz,CPU性能最高可达Tegra 2的5倍。内部集成12核GeForce GPU,GPU性能是Tegra 2的3倍,并支持3D立体显示。同时,其四核功耗也比双核的Tegra 2更低。
Tegra 3四核处理运行状态示意图(图片来自编辑)
& & 名为“四核”的Tegra 3实际上内部包含了5个CPU核心,其中一个被称“Companion CPU core”协核心。NVIDIA将这种架构称为vSMP(可变对称多处理,Variable Symmetric Multiprocessing)。Tegra 3中的5个CPU核心在内部结构上完全一致,均为Cortex-A9架构。不过,其中四个采用高性能制程制造,为更高频率运行优化。而最后一个协核心则为 低功耗制程(LP)打造,漏电流更低,为低频率运行优化,最高频率仅500MHz。
Tegra 3处理器的显示特效(水花溅射)
NVIDIA Tegra Zone应用截图
& & vSMP架构的特色在于,在“动态待机”(即运行后台进程)和音乐、视频播放时,全部四个主核心皆关闭节能,仅留下协核心运行。而在运行需要更高性能的应 用时,则按需逐个开启主核心,同时关闭协核心,切换延迟不超过2毫秒。更重要的是,在操作系统的眼中协核心是不存在的,它只会看到四个性能平衡的核心,而 不会发现在单核低负载运行时,实际上已经切换到了更低功耗的协核心上。
发布于 2年前,
阅读(50) | 评论(0) |
投票(0) | 收藏(0)
【按】作者,果壳电子副总裁,曾任优酷土豆集团副总裁、土豆网技术副总裁、中国移动12580高级总监、新浪网研发中心总监等职位。熟悉云计算、互联网和移动互联网产品。也是中国FreeBSD、Python社区的发起者和积极参与者,啄木鸟社区的创始人之一。原文系《程序员》10月刊开篇文,雷锋网已获得作者授权。
1995年,第一次使用Modem拨号上网,一阵让人愉悦的“嘀嗒声”过后,我经历了人生的第一次触网。按照电信运营商写的小册子中的说明,我 FTP到了一个日本服务器,看到服务器返回的“欢迎”提示而手足无措。这是我第一次上网的经历,在这之后,我有幸经历了互联网接入到家庭、门户、互 联网通信、游戏、电子商务、移动互联网这几波浪潮。2013年5月,我离开了中国最大的视频门户,决定开始自己的创业生涯,但我没有去做身边朋友认为我最 熟悉的云计算、移动互联网应用,也没有去追热门的社交网络、游戏,而是搬家到了上海,加入掌门科技,作为果壳电子的技术负责人,同时在准备创办一家新的公 司,以智能路由器为基础开始了自己的创业生涯。很多人问我为什么从软件行业投身到纯硬件行业之中,我的回答只有两个字:“浪潮”。
许多“浪潮”中最让我震撼的要数我“大诺基亚”的衰退了。就在不久前,诺基亚的手机部门终于在微软“内应”的支持下与微软合体了。而回归到2005 年,所有人都在期待互联网与手机融合的创新,每个人都在幻想互联网随身而行的未来。这时诺基亚拿出了什么呢?WAP浏览器、J2ME支持、S60的新界面 是它的王牌。每一个人都在思考,这些是不是智能手机,用着不爽,但又无法改变,庞大的诺基亚帝国似乎无人能去撼动。
时间到了2007年中旬,苹果公司发布了第一部iPhone手机,它漂亮的外观让人耳目一新,神奇的触摸方式完全改变了手机的使用规则,庞大的屏幕 简直“亮瞎了”大家的眼睛。不过比诺基 亚少得多的功能,打电话、发短信都不够好用的缺点还是为很多人所诟病。但苹果只坚持一件事——智能手机应该是电话与电脑的结合。智能手机不只是要让手机上 网,更要取代电脑,成为智能中心。苹果为iOS最终架构了三个体系:如电脑般的硬件核心、内容与服务的生产与消费生态、基于互联网的云基础服务。
于是从2008年起,当人们看到苹果手机、App Store,以及后来出现的Google的Android系统时,新的智能手机就这样被定义了,所有人都认定了这是智能手机的未来。iOS和 Android完胜了诺基亚,直到2013年的第一季度,经过五年多的发展,智能手机的出货量第一次超过了功能手机,事实证明了智能手机的胜出。这不只是 智能手机的起点,更是我们身边各种智能化设备的起点。
看看我们的身边,互联网风生水起,由云计算和移动互联网为基础的海量信息已风卷残云般地摧垮了传统报纸、杂志甚至电视这样的媒体。大数据、高效率撼 动着传统商业的分销模式。新形态下的社交改变了我们的婚姻、招聘、生活……软件工程师们铸就 了这所有改变的基础。可另一方面,我们还有着数量庞大的功能设备,在过去的漫长岁月里,它们是一个个单独的个体,通过每一个孤立的个体实现着标准化的功 能。物联网、智能家居、智慧地球这样的口号无一不是在体现人类希望改造传统的愿景。在软件、互联网、移动互联网日趋成熟的背景下这个愿景好像越来越近了。
图1 &1995年的486主板
我家里至今还保留着一块1995年时让我引以为傲的海洋主板和一块486DX的CPU(如图1所示)。当年它以速度、精品而著称,后来因为使用不当,CPU烧了,还保存在我家中。
今天,在我的办公桌上,有一块如手掌般大小的开发板,比起当年的海洋主板,它已经算是一台超级PC了。除了1GHz以上的主频之外,它还带有网口、多个USB接口、HDMI等你所需要的所有接口,接上外围设备,就是一台全功能的PC了(如图2所示)。
图2 & 比起当年的海洋主板,如今的开发板已相当于一台超级PC了
除了大小,这块开发板比当年的486的成本更低,一半的钱即可以买到。除了摩尔定律给我们带来的好处,我们更要感谢智能手机这个行业给我们带来的机 会。因为 手机行业大批量的出货,以ARM为基础的CPU、为移动设备而生的闪存,大批量地生产,快速形成了规模效应,成本快速下降。同时也是因为移动的特性,它们 的体积、耗电、计算能力也在快速迭代,不断给我们惊喜。
另一方面,硬件工作者们也在思考,如何让一个想法更快地变为原型,让每一个软件开发工程师都可以非常容易地将自己的代码运行到微小的芯片中去。而且 最好将硬件的开发也如软件一样,用一个个单元模组快速搭积木的方式即可完成功能。除了 Google的Android系统在一直尝试建立以手机、盒子这样的环境外,也有很多爱好者发起了开源硬件社区。与当年的开源软件一样,这样的社区也驱动 了一群人,他们可以在非常短的时间里将自己的想法变为原型向大家展示,从而快速确定自己的想法是否正确。这源自于开源社区定义了一套标准的接口,形成了一 个生态圈。同时也让有着丰富开发经验的软件工程师们使用高级语言快速实现想法。这里最为著名的就是Arduino社区了,它将专业接口变为每台计算机都有 的USB对芯片进行固件的读写,这样人人都可以在自己的PC上进行开发了。同时,这个社区更开创性地发布了一个IDE(如图3所示),它使用了一种叫做 Processing的高级语言进行开发。当程序员写完代码后,点一个按钮,你的程序就会变为机器码并上传到开发板上进行执行。
图3& &Arduino发布的IDE大大提升了开发效率
这样就大大降低了开发原型的门槛。我们公司里的小伙伴们,经常用半小时就可以完成一个根据现在办公室的温度来开关旁边的小风扇的“积木”。他们大多是传统的软件工程师,却轻易地开始了神奇的硬件制造之旅。
总而言之,智能手机催生了芯片功耗和体积的快速降低,同时也让我们拥有了一个低成本的嵌入式高性能系统。而Android和Arduino的出现, 更让大量 在互联网上有着丰富开发经验的工程师得以快速完成产品原型。所以我们身边各种各样的功能设备转变为智能设备的机会已经成熟了。另外,云计算通过移动互联网 已可以轻易地渗透到每个角落,这些毛细血管已可以将点滴信息汇聚到互联网的各个数据中心里去。所有的一切都将一幅硬件智能化崛起的巨大幕布徐徐拉开。
我们再仔细回味上文中提到的一些内容,就不难发现智能化的特点。
新的硬件基础
截然不同的计算、存储、网络能力是智能设备的基础,因为智能就需要计算和信息,没有了计算、信息和网络就等同于一个普通状态控制器。另一方面,人性 化的输 入、输出界面更是必然,现在常用的触摸屏、体感、声音和手势即是智能化提升产品用户体验的基础。换句话来讲,如果不能革自己的命,是无法带来一个新世界 的。
内容与服务的生产与消费生态
做出一个产品不难,难的是让用户真正使用起来。如果不能开放,让互联网服务和更多优秀的 软件开发工程师走进来,一个孤单的产品是无法承担用户的使用需求的。只有在软件、服务、内容上持续刺激,才是让用户持久使用与喜爱一个产品的因素。所以传 统硬件厂商的痛苦与壁垒就是在这个点上。
基于互联网的云基础服务
智能正是基于互联网的无限计算及存储而生的,如果只是一座孤岛,或是不可交换,那么必然在智能化上只走一步。更深入的话题就是,这个设备如何既走在每个用户的身边,又能连接到云端。只有连接到云端才可以将计算最大化、智能极致化。
手机和平板在基础硬件上的改进机会不多了,柔性屏幕、丰富的传感器都是热门话题,但探索性质多于实用。勤奋的发烧机已是主频、核数、屏幕之争。连一 向以创新 自居的苹果也难以给大家带来兴奋了。这主要是规模化产业的后遗症,我认为在这方面的巨大改变很难了。另一方面,内容与服务生态在App Store和各种Android市场混杂的情况下,已到了野蛮兼并的时代了。云基础服务也已经开始布局。这方面更多的不再是硬件,而是软件的战场了。
因此,人们开始把目光从手持设备转向了可穿戴设备。果壳电子在早先也推出了基于Android的手表,后续更有三星、高通相继发布手 表;Google天天向 大家展示眼镜的神奇;手环、体重秤更以健康为由头不断晒酷。相对于智能手机而言,这些产品定义了新的硬件基础,但在内容与服务的生产与消费生态、基于互联 网的云基础服务上还非常欠缺。大多数人都认为,把手机的App安装到手表上就好,可如果真是这样,为什么不用手机而要用手表呢?所以接下来,智能手表要做 的就是深挖用户需求,“以软变硬”才是求生之道。
当然,由于是手表,最大的硬件挑战就是极其酷的工业设计了。现今发布的手表,外观的设计上 还有很多改进的空间,要知道“看着酷”、“有个性”是手表行当的一贯作风。除了手表,手环、腰带也层出不穷,这些设备非常酷,比起手表,它们以用户的健康 为主体形成产品。在硬件上自然摧毁了传统设备,服务和内容生产消费由于需求的明确都在销售之初就已经准备就绪,并且全部都打通了云服务。相信接下来,随着 我们到处移动的便携设备会越来越多,这些产品大多数将是功能单一的智能配件,更像是一个智能传感器,配合手机以及云完成产品的闭环。
除去手持智能和便携智能设备外,以家庭为核心的智能设备也会是一个爆发点。现在来看OTT的机顶盒、MINI PC以及智能电视正是这个浪潮的急先锋。我自己创业的智能路由器产品更是前段时间不断被人们提起的热点。电视是由于其对内容的需求及互联网视频行业的高速 发展,而快速催生的一个行业。相信在未来的几年里,我们身边的每台电视机都会变为智能电视,或通过智能电视机顶盒变为一个智能电视。新的硬件基础已经具 备、内容产业链条和基于互联网的视频云服务均已成熟正是这一变化的基础。我之所以看重路由器,正是想通过新的智能处理器芯片给传统的路由器一个新的心脏, 让它具有更为强大的处理能力。我们甚至花费了大量的时间为一台路由器加入了触摸屏,这样,传统的墙角砖块就不会再落灰了,而是大大方方地走上桌面成为你的 伴侣,不再需要通过琢磨不定的灯去判断它的状态。除了新的硬件,我们更是将互联网服务引入路由器里来,虽然现在产品还是初始阶段,但最后,这无疑是一台接 入到互联网云服务中的路由器,它会让每个家庭、每个成员、每个设备更顺畅地使用基于互联网云的服务。继便携智能设备后,相信智能家庭设备会掀起又一波浪潮 来。
图4 & 硬件化未来的畅想
说了这么多,我们梳理一下未来。智能化的未来其实就是将现在的功能化设备的一个或多个功能,在硬件上加入计算、存储和网络能力,同时基于用户的需求建立起内容与服务的生产与消费生态,最后基于互联网的云服务打通到生活的每个角落的过程(如图4所示)。
Android 和Linux的开放生态使得它们必然成为智能设备的基础操作系统。ARM现在显然还是嵌入式计算芯片的核心。而更为丰富的人机交互界面是产品突破的核心。 因此,作为开发者和产品定义者,基于这样的模型去准备产品的软、硬件基础架构一定不会错。这个过程中,最难的即是,如何打开一个内容与服务的消费生态,同 时又与互联网的云服务打通呢?前段时间,我同事做了一个投影仪的小产品即是我非常认同的一种模式。
我们使用它非常简单,要演讲前,把我的 PPT分享给“投影仪”,我随时可以更改我的讲稿。演讲时,走到前面,遥控器打开PPT去讲就好。讲完了,如果想销毁,在我的手机上取消分享即可。没有了 小辫子的烦恼,更无需调试等待,这是一个让我没有负担的智能投影仪。真心希望有一个厂商生产出这样的投影仪来,而不只是拼外形、拼流明。
如此看来,现在的每个功能设备都有机会成为智能设备,只是要摸清它们在智能化时所完成的用户需求和改变的结果,但随着每样东西的智能化,所有的设备 都将智能 化,我们的未来必然会是全面智慧的环境,每一件设备要么成为智能中心、要么成为智能节点、要么成为智能传感器,它们通过各种途径接入到互联网中,形成一个 让每个人都享受真正智能的生活。正如我经常给团队重复的未来愿景:
一切智能设备都将互联;
智能设备都能共享信息;
生活将智能化。
综上所述,硬件崛起是有因、有果、有未来的一个潮流,我们能身在这个大浪潮中是我们的幸运。未来会出现更多的苹果推倒诺基亚这样的事情,不只是媒 体、游戏这 样的软行业受到互联网的冲击,设备制造商们也都将面对智能化、互联网化、云计算的冲击。希望身在其中的朋友们届时可以成为时代的弄潮儿。
发布于 2年前,
阅读(23) | 评论(0) |
投票(0) | 收藏(0)
  导语:美国《连线》杂志网络版周六刊登题为《为什么自由软件比以往任何时候都重要》(Why Free Software Is More Important Now Than Ever Before)的评论文章称,随着云计算技术的发展,普通用户对自己使用的软件越来越缺乏控制力,这不仅会限制他们调用资源的能力,而且可能因此受到他人 的监视,所以自由软件在当今时代比以往任何时候都更重要。
  以下为文章全文:
  自由软件运动
  从我发起自由计算运动到现在已经30年了,那场运动的目的是促进软件的“解放”——我们之所以使用这个词,是为了强调我们讨论的是自由,而不是 价格。Photoshop等专有程序十分昂贵,而Flash Player等软件却可以免费获得——但在这两种情况下,用户都要受制于他人的力量。
  自从自由软件运动发起以来,环境已经发生了翻天覆地的变化:发达国家的多数人都已经拥有可以上网的电脑或手机。非自由的软件仍然会把用户的计算 能力割让给他人,但现在,还有了另外一种方式来剥夺用户的自由:软件即服务(SaaS),它可以用他人服务器的资源来帮你处理计算任务。
  无论非自由软件还是SaaS,都可以监听用户、束缚用户,甚至攻击用户。恶意软件在服务和专有软件中随处可见,因为用户根本没有任何控制权。这是根本问题所在:虽然非自由软件和SaaS都由其他实体控制(通常是一家公司或一个国家),但自由软件却由用户自己控制。
  控制为何如此重要?因为自由意味着控制自己的生活。
  如果你用软件来为生活服务,你的自由就取决于你对软件的控制力。在你使用软件时,你理应享有控制权,更何况是当你用这些软件来处理对生活至关重要的事情时。
  你是否控制了软件,要看你是否获得了四大自由。如果任何一项缺失或不足,整个程序就属于专有软件,或非自由软件。
  1、按照自己的意愿自由地运行软件,无论何种目的都不会受到制约。
  2、自由的研究软件的“源代码”,并修改代码,以便软件可以按照你的意愿运行。程序是由程序员用编程语言编写的——就像是英语与代数的混合体 ——这种程序被称作“源代码”。任何懂得编程,并且以源代码形式获得程序的人都可以阅读源代码,理解它的运行模式,并对其修改。如果你获得的只是最终的执 行模式,即使存在一系列效率低下的问题,也无法理解并修改程序。
  3、可以按照自己的意愿自由地制作和分发额外的副本。这不是义务,你可以自由选择。如果程序自由,并不意味着别人有义务为你提供副本,也不意味 着你有义务为别人提供副本。不能自由地向他人分发软件对用户是一种虐待;然而,选择不对外分发程序,而是自己使用,就不会虐待任何人。
  4、如果你愿意,还可以自由地对外分发你修改的版本。
  前两项自由可以让用户独立控制程序,后两项则可以让任何一组用户合作控制程序。但最终结果都是为用户赋予软件的控制权。
  如果用户无法控制软件,软件就会控制用户。
  在专有软件中,总是会有一些实体,也就是软件的“所有者”,正是他们控制了软件,并借此控制了用户。非自由软件是一种束缚,是一种创造不公平的工具。在极端情况下(尽管这种极端情况已经十分普遍),专有软件甚至可以监听用户、限制用户、审查用户、虐待用户。例如,苹果公司的i系列产品都是如此。Windows、手机固件、Windows版Chrome浏览器也都使用了通用的后门,使得一些公司可以不经用户允许就远程修改程序。亚马逊Kindle也可以通过后门删除电子书。
  自由软件运动的目标是终止非自由软件这种不公平的现状,解放软件程序,从而让用户解放自我。我们1984年就开发了自由操作系统GNU。如今有数百万台电脑运行GNU,主要是GNU/Linux的结合。
  新时期的挑战
  SaaS发挥了什么作用?SaaS并不意味着在服务器上运行的软件是非自由状态(尽管多数情况如此),而是说,使用SaaS会导致与使用非自由 软件相同的不公平:这是殊途同归的两股邪恶力量。以SaaS翻译服务为例:当用户向服务器发送文本时,服务器会将文本翻译出来,然后把译文发回给用户。整 个翻译工作都由服务器的运营者控制,用户丝毫无法插手。
  如果你使用SaaS,服务器运营者就会控制你的计算过程。它要求你将所有相关资料都提交给服务器运营者,而服务器运营者则有可能被迫将资料提交给政府——由此看来,这些服务器真正的服务对象究竟是谁?
  当你使用专有软件或SaaS时,首先受害的就是你自己,因为这种软件给了某个实体不公平对待你的权利。为了你自己的利益着想,你应该逃离这种环 境。而如果承诺不与他人共享软件,还会伤害他人,做出这种承诺是邪恶的,不遵守承诺反而没有那么邪恶。从正直的角度来考虑,你压根就不应该做出这种承诺。
  有很多非自由软件还会迫使他人使用同样的软件。Skype就是最典型的例子:当有人使用非自由的Skype客户端软件时,就必须要求其他人也使 用Skype客户端——这就将自己的自由与他人的自由一同放弃。Google Hangouts也存在同样的问题。所以,我们应当拒绝使用这种软件。
  使用非自由软件和SaaS的一大坏处在于,它会奖励作恶者,鼓励这种软件或“服务”的进一步发展,从而导致更多人受害。
  当用户是公共机构或学校时,这种间接伤害还会被放大。公共机构存在的目的是为人民服务,不是为自己服务。当他们使用计算资源时,同样是为人民服务,所以他们有责任代表人民完全控制计算过程。因此,他们只能使用自由软件,而且要拒绝SaaS。
  要在计算领域维护国家主权同样需要采取这种方式。据彭博社报道,微软曾经在Windows的系统漏洞修复前将这一消息告知美国国家安全局(NSA)。我们不知道苹果公司是否也做过类似的事情,但他们都受制于同一个美国政府。对一国政府而言,使用这种软件则会危及国家安全。
  学校和所有的教育活动,都会通过言传身教影响社会的未来。所以学校应当教育学生,只能使用自由软件,从而向他们灌输民主意识,培养他们帮助他人的习惯。这甚至有助于培养新一批的编程专家。教育学生使用非自由软件,等同于让他们依赖软件所有者,这与学校的社会使命相悖。
  专有软件开发者肯定会要求我们惩罚那些想要共享软件或改写软件的学生。他们甚至会在学校展开反对共享的宣传活动。所以,每个班级都应该制定这样 的班规:“同学们,这个班级是让你们共享知识的地方。如果你把软件带到班里,就不能把它据为己有,必须与其他同学共享——如果别人想要学习,甚至还要共享 软件的源代码。因此,不允许把专有软件带到班里,除非是为了练习反向工程。”
 计算领域的合作包括把原来的程序副本重新分发给其他用户,还包括把自己修改后的版本分发给他人。自由软件鼓励这种形式的合作,而专有软件则会禁止。它禁 止分发副本,也不提供源代码,更不允许用户修改软件。SaaS也有着同样的问题:如果你的计算是通过他人的服务器完成的,你根本就接触不到软件,就更别提 共享或修改了。
  菜谱、教科书、字典、百科全书、字体、电路图和3D打印设计图并不是软件,所以自由软件运动严格来讲并不涵盖这些内容,但同样的逻辑也可以适用于这些领域。
  经常有人问我:自由软件的“优势”是什么?但“优势”这个词用在自由身上显得太过苍白。
  没有自由的生活是压抑的,计算活动如此,生活的各个方面同样如此。
  我们在使用所有软件时都必须得到控制权。如何赢得控制权?如果你是普通用户,可以在自己的电脑上放弃SaaS和非自由软件,不再向他人传播专有 软件的理念。如果你是程序员,可以开发自由软件,并放弃开发或推广非自由软件或SaaS。这样一来,便可解放所有的电脑用户。(书聿)
发布于 2年前,
阅读(7) | 评论(0) |
投票(0) | 收藏(1)
C++ 新标准 C++11 的发布导致了大批新书的出现,还有一些经典书籍也进行了更新。Andrew Binstock 在 Dr.dobbs 上给大家推介一些学习 C++ 必需的核心书籍。
1. 《》英文第四版,作者: Bjarne Stroustrup
这本书已经被正式列为C++编程的权威书籍。它堪称语言界的权威,独具特色,书面清晰,由设计C++的Stroustup所著。 也许有些读者认为ANSI C++文档才是最佳选择,但是这本书作为一个十分简洁的参考书籍,更适合已经对该
语言有所了解的读者们。该书为新特性提供了友好的解释,外加一些对于需要做的以及避免做的事情的建议,使得它成为了想要理解具体的特性的读者们的最佳选择。从这个意义上来说,这本书远远不止是一本参考教程。
一 些外在方面可能对这本书有所贬低,尤其是它没有使用等宽字体来打印代码。 不管对于一些读者来说,这看起来有多美观,它还是抛弃了普通的代码读者,他们希望垂直对齐,但这不可能出现。尽管这样,代码的排版还是比以前的版本好太多 了。另一担忧会跟C++本身有关,而不再是这本书。这个版本有1328页,比原始版本大约多了1000页。 Stroustrup对于库给了很少的介绍,这些数字足以说明C++已经变得有多复杂。 尽管有这些问题,但是我很清楚,对于C++程序员来说,不管使用这门语言的新特性有多困难,他们都得坚持,唯有这样,才能前进。 极力推荐此书!
(第四版的中文版还没有出,目前《》)
C++ Programming Language 4th Edition
2. 《()》由 Stanley Lippman,Josee Laoie 和 Barbara Moo合著
多 年来,C++ Primer 已经成为了C++的明确教程。 该版本主要针对C++11标准进行了更新,完全重写了。 900页密集的页面里,对该语言的每一个角落都进行了详细的探索。 这种说法也许有点保守。这本书的基调和内容都远远超过书名”入门”这个词所指的意思。在语言上,没有一节能是”快速讲解”,相反,从质量到文本都做了很耐 心的描述以确保能涵盖该语言的每一个方面,预见到C++程序员可能遇到的任何问题。想知道将析构函数声明为C++11标准的deleted函数,会带来什 么样的严重后果吗我也不知道。但是这本书里会有详细的解答,并引用了其他章节作为额外的辅助信息。
同 样,这本书也仅仅包括了语言方面,还有一些对库的讨论和附录,附录总结了库里包含的各种各样的头文件和算法(关于C++库的详细介绍,我推荐这两本书 《The C++ Standard Library: A Tutorial and Reference》, 后面会提到。坦白讲,你想知道的关于C++的任何东西,在这两本书里都有透彻的讲解。 刚才提到的Stroustrup的那本书《C++ Programming Language, 4th Ed》, 似乎是这本书的竞争对手。 Stroustrup的书主要是一本注重讲解的参考书,也可以偶尔查询用。但是这本书要实用得多。它有讨论到,如果你没有正确使用新特性,会出现什么问 题,还包含了大量的代码,总之,相对于前一本书,这本书提供了更多的指导。
对 于这本书,我唯一的担心就是它很明确是为已经了解基本语言的读者编写的。对于在校学生,甚至是一些有经验的程序员但是初次接触C++,我不推荐这本书。它 的内容太详细以致于不能通过快速阅读达到高效地掌握该语言的效果。 但是对于现有的C++开发人员,尤其是那些想要使用C++11新特性的开发者,这本书就是很好的选择。
3. 《》Nicolai Josuttis著
这 是C++标准库的经典教程和参考的第二版,根据新标准C++11进行了更新。不像其他许多书,包含了库和API,这不是对一大堆函数调用的美化解释。相 反,它把标准库(主要是STL)分解成了一些小节,解释了组件设计用到的基本方法。这时候,作者才进入到API的细节部分,结尾处总结了所有其它可能要用 到的方法,还有一些简短的解释。容器部分才是精华,对设计,内部结构和应用的解释,以及各种选择之间的比较。
这 些论述很有说服力,条理清晰,信息量超大。例如,STL函数对象和匿名函数的章节,花了12页篇幅只是为了解释什么是函数对象以及为什么要使用它们。这些 论述之后,作者又花费了12页来解释预定义函数对象。在这个时候,他就已经为最后的讨论《匿名函数之旅》 奠定了基础。所以全书总共1000多页。这些解释很多都使用了简短,又突出重点的程序来说明,所以你能够很确切地理解一个函数是如何使用或应用的。
这本书的第一版被许多的C++程序员视为真正的经典。我觉得第二版没有道理不受欢迎。对此不熟悉的读者,不管是把它看作是第一本书的升级版还是另一本新书,我都强力推荐。这篇简短的介绍也算是对这本是的一个很好的补充。
The C++ Standard Library 2nd Edition
4. 《&|&C++ 并发实战》 Anthony Wiliams著
这本书主要是讲在使用C++11特性时对并发的深入探讨。 它是由作为语言新线程支持基础的Boost Thread 库的主要开发及维护人员编写的。总之,作者很有权威性。
该 书从最基础的东西开始,假设读者已经有良好(甚至是非常好)的语言基础,但是首次接触并行代码。 该书逐步地探讨了一些由并发带来的问题,讲述了互斥的解决方案和局限性,以及它们是如何在C++11中实现的。接下来讲述了C++的内存模型和原子类型。 最后,深入探讨了基于锁和无锁数据结构的设计。这是自从Herb Sutter在书中讨论这个话题之后,我所见过的最好的处理方法。
这 本书很全面地涵盖了一些真正重要的话题,这些话题在其他书籍中是经常被忽略的,比如像,多线程的代码设计,线程应用程序的调试。当然,在我看来,这两者都 描述得太少了。 书中大部分内容都是作为参考资料(就单独的C++线程库就有差不多130页)。 另一个附录是一个完整的消息框架,并给出了代码和注解。 毫无疑问,作者还是花费了很大的心思,相关的内容都讲到了。
对 于这本书,我也有不满意之处,但是它们都微不足道。 第一个就是你必须深入了解C++,否则阅读起来比较困难。另一个就是作者最后一章讲述的线程池,用红色字体显示的”高级线程”。在我看来,线程池在并发处 设定标记很有意思,但是很可惜,作者却在这儿停笔了。由此可得知,虽然作者在目录有提及到角色模型,但并没有进行讲解,就好像它压根儿不存在一样,可能在 William看来,它其实对好几种语言至关重要,却不包括C++。
总的来说,这些不满意之处只能反应我的偏好,不能说明这本书有缺陷。William的这本书非常棒,至少在未来的很长一段时间里都能称得上是这个领域的典型著作。
如果你想更仔细地看下这本书的内容,我们最近在一篇很受欢迎的文章里”Waiting for One-Off Events with Futures。”有摘选了一些片段。
C++ Concurrency in Action
5. 《》&()Robert Seacord著
这 本书主要写关于C和C++的安全编码。新版的内容几乎是2005年原版的两倍,展示了我们究竟学习了多少关于攻击代码的知识。实际上,在读这本书的时候, 你可能被当下各种五花八门的东西弄得晕头转向。然而,正如作者所说的,安全其实不仅仅是实现反攻技术,而是在实现的过程中保持一种安全防范的思维定式。他 认为,只有保持这种心态,才有办法减少那些未知的攻击所带来的损害。
这 本书详细讲解了各种类型的黑客以及怎么阻止黑客或者让他们感到气馁。书中的解释一目了然,代码也很清晰。但是它在要求上比其他编程书也更高一些:要求读者 必须对C和C++d的执行有很好的了解,并且清楚在机器层发生了什么。因为这些必需的知识,书中没有提到,所以如果事先不去了解的话,你可能不会真正理解 书中的精华部分。
对 于那些真正理解了程序执行的内部工作原理的开发人员来说,这本书就是不仅仅是一个很好的入门,更是一种启示。例如,如果你不是一个安全方面的专 家,Seacord在书中关于攻击是如何通过加倍释放已分配的内存块被激活的论述, 凸显了简单的编码错误的这一特征,可能就会被完全忽略了。 书中的解释很有启发性。
该书的实践本质就是让你频繁地使用一些推荐的工具去验证代码,并锁定黑客喜欢探索的访问机制。这本书真的很棒,绝对让你受益匪浅,当然,也会使你成为一名更优秀的程序员。
Secure Coding in C and C++ 2nd Edition
6. 《》Chris Kormanyos著
这 本书简单地介绍了在实时项目中如何使用C++11。作者介绍了几个基本的项目,展示如何使用C++11来完成编码。他以艾特梅尔公司的AVR单片机为例, 使用GCC工具链编译,从产品设计,到硬件和编码的实现,以及如何刷机和运行程序都给出了解释,在各种不同的环境下启动发光二极管。接下来又引入了更复杂 的项目,像使用C++编写底层硬件驱动程序。在最后一章,继续探讨了标准C++库和STL为嵌入式所用。
这本书很实用,书中的代码也很清晰。它表明了对于进行嵌入式工作的来讲,C++11是一个合理的选择。总之,对于想要进行嵌入式编程的C++开发人员来说,这本书是很好的教程。但是它所选的一些案例项目,可能对于那些活跃在该领域的开发者来说,没有什么吸引力。
Real-Time C++
原文链接:&
&&&翻译:&
译文链接:&
发布于 2年前,
阅读(189) | 评论(1) |
投票(0) | 收藏(15)

我要回帖

更多关于 arm9开发板 的文章

 

随机推荐