五千年(敝帚自珍)

主题:【原创】论山寨手机与Android联姻的技术基础 -- 邓侃

共:💬324 🌺1366
分页树展主题 · 全看首页 上页
/ 22
下页 末页
    • 家园 【原创】老兄忽略了一个X因素

      之前看老兄的帖子觉得很专业,但是看来对于手机操作系统领域,还属于一知半解的状态。想讨论MTK和Android,必须要理清下面几个关系:

      1,MTK与山寨机的关系

      2,Android与ARM的关系

      说山寨机能跑到CMOS去,离题也够远的了。MTK之所以能够成功,主要还是因为其商业模式,提供了turnkey solution。这并不代表MTK的技术有多先进,使用Nucleus也是为了规避知识产权方面的问题。

      而Nucleus本身有不可回避的技术限制,比如没有虚拟内存,系统和应用程序运行在同一个空间中。这对于Feature Phone来说,问题还不是很大,但是对于Smart Phone来说就是非常致命的了。应用程序的权限或者恶意程序不受限制就可以获取整个操作系统的控制权。典型的案例就是死机短信,利用了应用程序的Bug,结果造成了整个操作系统挂掉。

      所以,MTK的成功,不是技术的胜利,而是商业模式的创新。所以,其他公司也可以参照这种商业模式,现在国内的IC设计公司几乎都推出了自己的turnkey,比如展讯、K3、瑞芯微等。

      接下来就是AP的问题了,ARM7大部分版本不带MMU,所以无法实现虚拟内存。而Smartphone需要虚拟内存来隔离操作系统和应用程序,所以ARM7就不再使用了。Smartphone几乎采用了ARM9以上的CPU,现在ARM11,ARM A8都已经出来了。所以,操作系统必须升级!

      现在看起来,升级的选项有Android,Windows Mobile,Linux,后边可能还有后来者,有人还在用XP做手机。Mac OS, Web OS,BlackBerry因为不向厂商授权,暂时不用考虑。

      所以,当AP升级到ARM9,BB升级到3G后,所有的市场格局将被重写。而且在智能手机时代,也不可能有一家公司能够重现MTK当年在Feature Phone上的辉煌了。单边格局终将被打破,取而代之的是不同芯片厂商和不同操作系统厂商的合纵连横。这个市场很快会演变成红海,惨烈的价格战将淹没一切。

      IC厂商要提供的是turnkey,在选择操作系统时,更看重的是成熟度。Android尽管很好,但是成熟度有限,还需要投入大量的软件研发人员才能成熟。研发资源可以投入,但是市场时间是无法换回来的。而且收费的操作系统也不会从IC厂商身上收钱。所以,很多IC厂商宁肯选择收费,但更成熟的WM。但收费操作系统的问题,就是费用如何收取。当然,这就不是技术问题了。

      这个市场还有另外一个X因素,就是运营商的力量,在终端决定一切的中国市场上。掌握终端的运营商几乎就是上帝。而中国的上帝又不太善于合作,比较喜欢自己来玩。所以中国移动对于android来说,绝对不能算是正面因素,只能算是X因素。

      • 家园 这个听着上道

        也欢迎自己开个系列吧。这个版能引来几个行家就算大功一件,真正的insight靠查资料是查不来的,科普一下倒是够了。

      • 家园 狼兄说的完成正确

        其实本来是讨论商业模式的。但是,商业模式又必须和技术结合才能谈的清楚,这就被逼到先谈技术。侃兄想从根上开始,我其实没有做过任何MTK的开发,但被侃兄逼上梁山。只好硬充好汉。Tooter兄关于Nucleus OS的部分,我是真心想请教的。Smartphone是我的自留地。容侃兄和我慢慢道来。

        另外,狼兄是宁老弟吗?

        • 家园 【原创】手机的安全机制

          WIFI兄好,我在西河一直是看故事的,被侃兄勾了出来。我是马宁。没想到这里还有熟人,不知道您是哪位,方便的话通个消息。谢谢!

          我也没做过MTK,不过在nucleus上Porting过一个GUI系统,其中的辛苦不说也罢。我的感觉,nucleus就是支持多任务的DOS,可是Smartphone需要的是带UAC的Windows.

          手机操作系统的应用程序Trust机制比PC操作系统要好很多,而且操作系统内建的安全机制,比后来加上去的要好很多。S60的证书问题一直饱受诟病,但是没办法,内部没有安全机制,只能控制开发者行为,所以才引起了那么大的反弹。其实这方面Windows Mobile做的真是不错,很多人说,Windows Mobile上没出现病毒,是因为用的人少,这个……其实有点以偏概全,Windows Mobile不但限制了应用程序对文件的访问,而且限制了其对核心API的访问权限。这一点还是值得学习的。这种思路有点像当年反病毒行业提出的“主动防御”概念,你想干坏事,肯定要访问那几个API,我只要看住了API,你也就没什么活动空间了。可是,由操作系统来做这事,比反病毒软件要好,毕竟反病毒软件的实质也是病毒。

          Android的情况不太清楚,不过Linux内核上没有类似机制,这也是Android当初只支持托管代码的原因吧?不过现在C++接口开放了,很多问题就不好说了。等着看吧,当应用程序的数量到了某一个数量级时,病毒自然就出来了。

          另外,据做iPhone的兄弟说,Mac OS内部也没有类似机制,所以水果公司对于开放SDK才一直遮遮掩掩。小道消息。

          • 家园 是个放权放多少的问题

            基本上,API就是给应用程序放权。放多了,程序更强大,但是强大到可以干“非法”的事情,就可以变成病毒;放少了,程序做不了更多的事情,开发人员就没有动力。

            类似的事情,在windows,浏览器都出现过。手机里面也会是类似的过程,不过大家更有经验了。硬件提供的虚存空间,中断这些东西,也要看操作系统是不是用的好。总之,存储,CPU cycles,带宽和电源这些共享资源,看操作系统怎么分配了。

          • 家园 来了就好

            宁老弟来了。我们后面的故事就更精彩了。

          • 家园 aawolf

            链接

            • aawolf
              家园 这世界真小

              原来不仅是同行,而且是邻居。

      • 家园 抛砖引玉,玉来了

        1. 说山寨机,扯到CMOS感光芯片,的确属于插科打诨。本意无非是想举个例子,说明当手机功能增加时,整个系统都要随之改进。从而引出Feature Phone与前辈手机的区别。

        不想这一扯,惹出了麻烦。有人问,第一张手机照片一下子发给了2000名亲友,那么这2000名亲友用的是什么手机?如何能看照片?得,这个问题真是把我问住了。只好举旗投降,坦言照相手机不是本文主线,得过且过,请诸位高抬贵手。

        2. Nucleus的缺陷问题,Tooter兄指出多任务不是问题。我已经对原文做了修改,尤其是在未经浪兄允许之前,就擅自拷贝狼兄文字,不是是否介意?

        3. SmartPhone系统,得浓墨重彩地细说。届时还请狼兄不吝指教。

        4. 疯狂的问题,既然有人用XP做手机,而CPU是ARM,那么对于针对x86设计的XP,岂不是要做很大修改?

        5. 狼兄提到Android与ARM的关系,怎么没说下去?能不能展开谈谈。

        果然有收获。多谢之类的客套话就免了,等待诸位的进一步指点。

        • 家园 又歪楼了。。。。。

          发照片既然通过网络,应该是发到亲友的PC上。

          感觉很多冒泡的跟侃大描述的不是一个层面的,总在津津乐道手机产业。

          侃大能不能先不要管,堵着耳朵写完,然后再回头讨论好伐?

        • 家园 【原创】答侃兄——Android

          昨天是边开会边回复的,后来那边厢吵热闹了,我就去救火了。

          我的文字没经过整理,想到哪里说到哪里,您想用就拿去用。

          Smartphone的部分您先说,到Windows Mobile部分,我在后边跟着。

          接着把Android说完吧。

          ----------------------------------------------------------------

          没有细说ARM和Android这个话题,这里其实主要是两个问题:编译器和BSP。ARM最近这几年发展很快,ARMv7出来后,很多编译器都没有跟上,可是Android背后靠的是GCC,在这方面占了极大的便宜。而且对于MIPS、SH的支持都是由开发者社区完成的。这些其他公司要投入极大资源来做的事情,在Open Source社区就是一如反掌的事情,开源可敌十万兵啊。

          在短短一年内完成了对主要CPU的架构支持,这相当了不起,当然质量如何还要时间检验。而产品级的东西,还是要有专业的技术团队支持的,比如PXA,他们已经做了快三年了。

          BSP我就不多说了,因为Andorid的BSP和Linux太像了。所以很多小公司声称自己支持Android,就是将Linux BSP放进去build了一下,能出桌面就OK了。可是学建筑的都知道,大厦外部框架起来后,只是完成了工作的一半,内部装修还要慢慢来呢。

          说到这里,不得不扯扯Andorid之父,软件界很多之父都名不符实,因为软件是大家一起做的,不过这位是货真价实的。Andoird的思想至少要领先其他OS三年以上。Andoird用了一个非常讨巧的办法解决了开发资源的问题,对于OS Kernel和编译器这种七十年代就成熟的技术,直接采用了“拿来主义”,对于App Framework,用了一个开源项目,不过此Java非彼Java。其实Android做的事情不多,定义了一个类库、实现了Middle ware这一层。不过这才是抓住了主要矛盾,我们分开来看:

          1,类库

          长期以来Linux无法和其他OS对抗的原因,是缺乏一个坚强的API层,我在此Linux上开发的应用,无法跑在彼Linux上。这个问题也出现在所有手机OS上,J2ME曾经试图统一过API层,不过因为太过迁就低端手机,类库包含的范围太窄,导致手机厂商在上面私搭乱建,Sun也没有中国城管的战斗力,对这种违章建筑也没什么好办法。

          Windows Mobile和iPhone则走向了另一个极端,用我的OS者得救。Android走的是中间路线,但更偏向Windows Mobile这边。不过最近的Ophone,XXPhone出来后,这种大一统的模式也面临着巨大挑战。其实这也是没办法的事情,强势如Windows Mobile者,重力感应都出来快两年了,你还没有定义API标准,手机厂商自己盖个小厨房也不算犯法不是?

          2,中间件

          这个中间件是从Feature Phone搬过来的,跟IBM那套鬼东西没关系。如果说类库的问题大家都看到了,而且也组织过无数次的自救,比如Moblin什么的。但是Android在Mid-ware这层的一些细节,简直可以用惊艳来形容。

          比如Mashup,这个不多说了,诸位做互联网的比我更清楚;

          比如Service类,将系统级、应用程序的功能调用都封装成Service,可以被其他应用程序无缝调用。

          再看看Android在这一层具体实现了些什么:Webkit、OpenGLES、Media Framework、SQLite、SSL……

          这些都是消费类电子产品的基础组件。如果按照这个思路走下去,Service不但来自操作系统和应用程序,而且来自互联网的都可能是我的Service. Web Service也不是啥新鲜事,Android的封装可以让你不知道你的Service来自何方。

          见微知著,所以,说Android是第一代面向服务的手机操作系统也不为过。

          尽管个人很推崇Android的思想,但总觉得Android在技术上太过完美了,即使有一些瑕疵也属于成长的烦恼。不过IT界似乎容不下太过完美的东西,还有人记得BeOS吗?

          Android最大的问题是他的商业模式,做一个操作系统的花费是一个天文数字,哪怕Google再有钱,但他是一个上市公司,他还能容忍这种纯花钱的项目多久?

          Android像是Google给所有人准备的一颗糖衣炮弹,你们免费用我的操作系统,但我要在互联网服务上将这笔钱赚回来。不过亚洲的锤子、棒子们把糖衣吃了,炮弹又打回来了。OMS不就是借Android的尸,还了CMCC的魂吗?此处存一个大大的疑。

          刚才看到有人在抱怨蓝牙,我只能说,Android的路还很长……

          -----------------------------------------------------------

          最后说点Android之父的八卦:

          这位在做Android之前还做过一个手机OS,大家有兴趣可以去找找那个OS的归宿。据小道消息说,那个OS和我目前服务的公司有一些剪不断理还乱关系。

          元宝推荐:铁手,
          • 家园 当年曾经红火一时的摩托A1200

            长期以来Linux无法和其他OS对抗的原因,是缺乏一个坚强的API层,我在此Linux上开发的应用,无法跑在彼Linux上。这个问题也出现在所有手机OS上

            ×××××××××××××××××××××××××××

            就是虽然开源,却没有API,最终也没有发展出应用软件群,最后摩托linux无疾而终。不得不用android

          • 家园 我说放弃浏览器就是这个意思

            比如Service类,将系统级、应用程序的功能调用都封装成Service,可以被其他应用程序无缝调用。

            再看看Android在这一层具体实现了些什么:Webkit、OpenGLES、Media Framework、SQLite、SSL……

            这些都是消费类电子产品的基础组件。如果按照这个思路走下去,Service不但来自操作系统和应用程序,而且来自互联网的都可能是我的Service. Web Service也不是啥新鲜事,Android的封装可以让你不知道你的Service来自何方。

            ××××××××××××××××××××××××××××××

            未来的OS是面向网络的,应该把本地数据本地资源和网络数据网络资源无缝连接,不再区分本地和远地,所以应该提供统一的API给所有

            应用程序处理网络数据。这些功能都由OS统一提供,不需要全都去调用浏览器。浏览器只是和其他程序平等的网络应用。

            远地的程序之间用XML标准API互相调用,和本地OS 提供的API一样。

            我以为chrome OS会这样做,结果出来只是个精简linux锁定浏览器。这是解决过去的问题,不是为未来准备的东西。

            最终可能会被Android吞并。

          • 家园 能谈谈Blackberry吗

            记得RIM也是做java起的家,花谢

          • 家园 这篇文章隐藏了几个坑,值得逐个挖一挖

            顺手举个例子,

            这位在做Android之前还做过一个手机OS,大家有兴趣可以去找找那个OS的归宿。据小道消息说,那个OS和我目前服务的公司有一些剪不断理还乱关系。

            小马哥是不是暗示Danger的事情?Danger最出名的产品是Danger Hiptop, 又称T-Mobile Sidekick。

            点看全图

            外链图片需谨慎,可能会被源头改

            后来Danger被MS收购了。大鱼吃小鱼的事情,天天上演。Danger被其它公司收购,本来不奇怪。但是买家是MS,这事儿透着蹊跷。

            1. 据悉DangerOS是一款Java手机操作系统。DangerOS与J2ME是什么关系?DangerOS与Any Rubin后来做的AndroidOS有没有继承关系,莫衷一是。

            2. MS为什么对Java的手机操作系统感兴趣?MS收购了Danger以后,本来以为会有跟进动作,但是却没见着。有人说MS收购Danger,根本目的是意识到了以Java为基础的手机操作系统对WinMobile的危险,欲扼杀之于摇篮。这个说法是不是靠谱?

            3. 虽说Danger被MS收购,但是DangerOS现在却由Google维护,而且是开源项目。这种怪异的现象,是不是说明MS与Google有什么合作协议?MS为什么要和Google合作?

            小马哥的回帖里,蜻蜓点水般提及很多有趣的话题,如果把这些话题展开,都是有趣的故事。

            说到Android对于手机OS的贡献,小马哥的论述是,

            其实Android做的事情不多,定义了一个类库、实现了Middle ware这一层。不过这才是抓住了主要矛盾,

            这个观点很老辣,但是行文过于简略。在我看来,如果不熟悉手机的制造过程,便难以理解MTK以及Android的贡献。如果大家不嫌我啰嗦,我打算在高人的指导下,接下去先谈谈“手机是怎么造出来的”,然后再回过头来分析和理解小马哥的评论。如果有说错或者含混的地方,请大家及时指出,便于及时改正,以免流毒四方。

            下周比较忙,可能发帖不会太频繁。不过不妨碍当一周读者,等着读大家的好帖。等消停一些以后,接着写这个系列。

分页树展主题 · 全看首页 上页
/ 22
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河