主题:从曾经的Android组成员的角度来说说Android吧 -- zllwy
虽然送宝支持LZ的主贴,但是对这里的错误部分还是要批评的。
最重要的需求是一个有很多开发人员基础的易于上手的UI Framework和相应的开发工具。Apple有XCode;MS有Visual Studio;Google有什么?所以Google就使了一招:偷天换日。偷来Java的UI开发工具和开发人员;得到(引用:Java的一堆好处。。。);换掉下面的VM;得到所需的性能等等。
“ARM cpu通常没有mmu”说法灰常不正确。所有ARM应用处理器,只要能够运行完整Linux都有MMU。没有MMU的ARM只能运行阉割的Linux。所以所有运行Android的ARM必定有MMU。
“还有就是跨平台的需要,这样应用就独立于硬件结构了”有些想当然。iOS/MacOS以及其上的应用程序没有VM也是跨平台的:ARM/X86;Windows CE没有VM,从来都是跨平台的:ARM/MIPS/X86。Linux没有VM也一样是跨平台的:所有你能想象的架构。我相信,如果Android打开始就没用VM,它一定也是跨平台的。
纯技术争论,没有贬低LZ的意思。
很有道理。谢谢纠正。
不过还是解释一下。这个mmu的问题倒不是我说的。记得在解释dalvik VM的一个talk上说过,不过只有模糊记忆了。我想是这样的,几年前的时候这个可能是真的,现在当然都有MMU了。当时我听到的时候也有点迷惑,因为我写过StrongARM和XScale的hardware emulator,是有MMU的。可能我听错了吧。
至于跨平台看你怎么解释了。广义的只要你能在不同平台上compile,就可以了。就像我老板说的,C是最跨平台的语言。哈哈。MacOS的fat binary是捆绑了两个architecture的binary。VM就更进一步,只要build一个binary就都可以运行了。对于mobile当然比MacOS的好了。
插上电,网络,通上自来水就可以work了
微软之所以提供私有云方案,瞄准的是那种本来就有很高IT水平的大企业用户。你看微软现在的产品线:Sharepoint/BizTalk/Exchange这一系列,活生生的就是一个私有云,涵盖了企业内部门户、办公和通讯的大部分需求,再把office云化,齐活了,嗯~
大企业搞私有云还是会降低信息化运维成本的。举个最简单的例子,做财务的大妈手头计算机上的office三天两头崩溃,要是IT的弟兄们天天上门维修那就累死了,换成云,保证IE运行正常,一切就和谐了。
Azure是另外一会儿事儿,主要针对的是中小型企业用户。目前虽然不错,我自己也很喜欢它。但谈到前/钱景,主导这个的Ray Ozzie走人了……我自己也看不清这个东西的未来在哪里,当然我是小兵一个,眼光短浅,呵呵。
不过Bob Muglia被炒了。
这两天微软大批高干出走啊
我感觉中国软件业的真正约束是电子行业,软件的发展没有办法完全超脱电子业的发展,也就我们常说的硬件,从来都是硬件牵着软件走,否则软件就只是理论上的纸上谈兵,商业上既听不到也看不见。
另一个约束在哲学思想上,中国文化缺乏产生象“matrix"那样的思维想象力,这就注定了在现实生产中的山寨角色,甚至有一天发展到最高水平,失去山寨目标,都很难自主开拓。日本也有这个问题。
我看好中国有一天可以在物质生产领域达到今天山寨国外互联网startup的速度,今天看到youtube,明天千百个土豆站起来,但再往下并不乐观。
http://www.cs.washington.edu/mssi/2010/JingrenZhou.pdf
Cosmos在存储上基本上还是对应着GFS,是在无结构(对应着database那种强结构化)的文件系统上的一套map/reduce的分布式系统,比较有特色的是搜索组在这之上做了一层类似于sql的封装,不用像Hadoop那样还得自己如何分解任务效率才比较高。这套东西叫做Scope,有兴趣的可以看去年VLDB上研究院的牛们发的文章。我记得好像HBase是不是也是做类似的事情?
在微软内部,Cosmos被广泛用于搜索和广告内部的分布式计算以及大文件存储/处理,比如日志处理,另外不少机器学习的算法也被分布式化了。其实跟其他公司使用Hadoop的方式差不多。
至于再往前一步,佛曰,不可说,呵呵。
Android的应用程序是一种Java的变种,是将你的Java source code先编译成Java bytecode,然后再编译成DEX格式。这种DEX code将会运行在一种特殊的Java VM里面。这种VM叫做Dalvik,和我们常见的Java VM不同(stack-based VM),它是一种register-based VM,可以说是为了移动设备的特点专门打造的。
Android 2.2以后的Dalvik里面有JIT,运行时将你的程序编译成ARM格式的机器代码然后交给CPU运行。
半个小时前我开始学习Andriod系统,以后如果有什么心得的话,一定和大家交流分享。
Cosmos Storage System
。Append-only distributed file system for storing petabytesof data
。Optimized for sequential I/O
PDF中提到COSMOS的两个特点,append-only和顺序读写优化,看起来象是传统的磁带系统。一般理解,文件系统是以随机读取为主的。
COSMOS这样设计,有什么原因吗?
这些系统都是针对大容量顺序的写操作优化。最初GFS的设计是为了存储web crawl的数据,基本上只有append。在这基础上,实现bigtable之类的存储系统,都是采用log + snapshot。所以也是适应的。
HBase是个key-value store,不过支持column family之类的。这个SCOPE我大致看了一下paper,还没仔细看,感觉是类似于map/reduce,但提供了更高一层的abstraction,也就是一个类SQL的script language。从功能上来说,跟Google的dremel很像。但dremel是建立在bigtable上面的。Google bigquery已经出来了,基本上就是dremel,也是可以用类SQL语言来对大容量的数据进行查询。
看一下GFS的paper吧。