亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

[轉]最封閉的開源系統,話說Android的八宗罪

系統 1833 0

Andriod的非開發性,在今年年初被Linux將Andriod貢獻的代碼刪除,以及SUN抱怨Andriod采用了自己的JAVA規則,已經讓人非常不安。Andriod以開放和開源做旗幟,最后走向了壟斷,將壟斷產業生態鏈的源頭,這是最可怕的。所以今天看到這篇文章的標題很有同感,就轉載過來。 | lordhong 譯。

文章來自http://www.ifanr.com/9833。By Andreas Constantinou from VisionMobile.com

你以為 Android 是開放的嗎?Google 采用了一系列的控制手段來保證每一部 Android 手機上都有它指定的軟件和硬件規格。然而,他們同時又利用 Android SDK 里面的 Apache 許可證來大肆鼓吹 Android 是開放的。

沒錯,Google 的移動平臺是當前最聰明的利用開源來驅動商業議程的實現。但在我們深入探討這個為什么之前,我們先說說為什么 Android 的成功和開源并沒有什么關系吧。

是什么成就了 Android

雖然早期飽受質疑,Google 的 Android 移動平臺已經在移動行業得到了營運商和手機廠商的廣泛支持,僅剩固執的諾基亞。Android 從 08 年的一款機型發展到 10 年的 50 多款,發展之快讓絕大多數的業內觀察家們吃驚。

Android 的成功和開源毫無關系。它的成功依靠下列三個主要因素:

- 蘋果 . 這點看起來很奇怪,Android 竟然是靠它的主要對手發家的?讓我來分析下。在 iPhone 空前絕后的成功以及蘋果對網絡營運商傲慢苛刻的態度下,營運商們迫切的在尋找一種更便宜的選擇; 因此這些第一層最大的營運商們開始積極的用 Android 來開發手機給那些買不起 iPhone 的用戶,更重要的是,他們不需要每賣一部手機就給 Apple 300 歐元以上的回扣。

- 全世界的營運商們迫切希望自己鶴立雞群 . Android 給他們提供了一個統一的軟件平臺; 他們可以很方便的定制自己想要的系統,而且花費的代價也很低(3 個月的時間,這個比 SavaJe 12 個月以上的定制周期要短很多)。對大型的營運商來說,Android 也降低了他們在智能手機軟件方面的投資。這也是為什么大多數的 Android 手機項目背后都是營運商和 OEM 廠商的組合。

- 高通 . 這個市值 100 億美元的芯片廠商對 Android 的崛起功不可沒。手機開發產商可以直接拿高通已經為 Android 集成好的方案,在 9-12 個月的時間內向市場上推廣。(相比起來摩托羅拉的 CLIQ 花了 16 個月,而 HTC G1 則花費了 2 年多的時間)。除了高通,我們還有 TI 的 OMAP3 平臺(摩托羅拉 Droid/Milestone 基于此方案)。ST Ericsson 和 Broadcom 也在做 Android 的集成方案。

換句話說,在 Android 手機上,大多數的 OEM 預算花在了定制方面。而 Symbian 的絕大部分預算花在無線通信的移植和硬件整合上了(Symbian 2001 年所做決定的結果)。總的來說,Android 使 OEM 廠商可以大幅削減研發預算,把錢花在定制這個刀刃上。當然我們不能忘記 Android 是免費的。這個免費讓眾多廠商激動不已。

話說回來,Android 用開源來做市場宣傳,非常成功的攪亂了整個行業,導致了諾基亞對 Symbian 的收購以及 Windows Mobile 的全面崩潰(不過譯者覺得 iPhone OS 4 的多重任務機制的發布讓 WP7 真正成了杯具帝)。不過更重要的是,利用開源的名號和 Google 的魅力,Android 吸引了成千上萬的開發者,雖然 Android 并不能讓開發者們賺到很多錢,而且 Android 手機的數量不到蘋果產品的十分之一(連支持收費的國家都比蘋果少6倍)。

在開源的面紗后面

讓人更驚訝的是 Android 到底有多封閉,盡管外面包裹著 Google“不作惡”的口號和 Apache 授權許可證模式。借用亨利福特在 Model-T 相關的書里的一句話:“任何人都可以自由挑選 Android 的顏色,只要那是黑色”(anyone can have Android in their own colour as long as it’s black)。Android 是一個絕好的商業案例——展現一家公司是如何用開源來贏得關注和社區參與,而且同時保持一個非常嚴密的商業運作。

Google 是如何控制著每臺 Android 手機里采用什么服務、軟件和硬件的?這個搜索巨人建立了一套很完善的控制管理系統。為了挖掘更多的信息,我們花了兩個月,和很多與 Android 有著緊密聯系的內部人士進行了討論。我們發掘出的事實讓人震驚。從宏觀方面說,Google 控制 Android 手機構成以下八宗罪:

1. 私有分枝 . Android 有多個私有分枝,這些只給幾個特定合作伙伴,往往是那些開發 Android 的 OEM 廠商,而且這些只提供給需要知道的人。這些私有分枝比已經公布的 SDK 要超前起碼 6 個月,也是 OEM 廠商可以保持競爭力的關鍵。而公開的 SDK 則是為第三方應用提供私有分枝里發布的最新功能。

2. 封閉的評估流程 . 所有的代碼評估員似乎都是 Google 員工,也就是說從社區提交的代碼只有 Google 才有權力決定是否接受。而且 Google 內部還流傳著“并非此處發明”的一種思考文化,他們覺得 Google 員工寫的代碼是天下無敵。隨便問任何一個給 Android 提交過補丁的人,你會得到一樣的答復:幾乎沒有什么提交被 Google 接受,而被拒絕的時候往往沒有任何理由和解釋。

3. 進化的速度 . Google 對 Android 的創新的速度是移動行業內絕無僅有的,他們在 18 個月里發布了四個大版本。想在 Android 上面做文章的 OEM 廠商只得緊跟 Google 的步伐(這里想起了移動杯具的 OMS),不然就跟不上新功能的發布和 bug 修復。Nexus One、Droid、G1 和其它帶有 Google體驗應用的手機給 Google 提供了創新的測試場。

4. 不完善的軟件 . 用公開的 SDK 并不能完整的建造手機。缺少的幾個關鍵的部份包括無線通信的集成模塊、國際化語言包、營運商信息包以及閉源的 Google 應用,比如 Market、Gmail 和 Gtalk。雖然 Cyanogen 可以自己定制 ROM,但里面包含的那些應用沒有授權,所以不能發布在商業用途的 Android 手機上。

5. 閉門的開發者社區 . Android Market 是唯一一個擁有超過四萬個程序并和每個手機 OEM 廠商都簽有合約的 android 程序商店。這個限制很要命,因為沒有一個 OEM 廠商愿意發布沒有 Market 的 Android 手機(天朝是另類)。當然,在 Market 上發布應用是個非常簡單的事情,沒有什么審批的步驟,這個和蘋果的 AppStore 剛好相反。

6. 反分化合約 . 外界幾乎不清楚原來 OHA 的成員都簽署了反分化的合約。但這個合約更可以被理解為不能發布沒有通過 CTS 兼容測試的手機。(下面細說 CTS)(譯者注:貌似移動已經被踢出 Android 的私有分枝,是不是因為他們建立的 OMS 違反了這個協定呢?)

7. 保密的發展藍圖 . Android 的發展藍圖是很杯具的,到目前為止,公開發布的發展藍圖還停留在 2009 年的第一季度。如果想要看到內部的發展藍圖,你需要 Google 的賜福.

8. Android 商標 . Google 掌握著 Android 的注冊商標和冠名權。任何想用 Android 品牌的廠商都需要得到Google的授權。簡單的說:進 Google 的門,或者沒有門。如果你要自己做 Android 分枝,你就全部靠自己了,比如你需要中國移動那么大的公司。

Android 的傳奇中還有個大篇章:CTS(兼容測試組),也就是 Google 一套測試 Android 手機是不是達到 Google 的標準。根據我們的線人消息,CTS 不僅僅測試軟件的 API 部份,它還包括性能測試,硬件功能,設備設計,UI 用戶界面需求,和機內打包的服務。CTS 決定了你可以添加額外功能,但不能從最基礎的配置中削減功能。除了 CTS 以外,OEM 廠商還要和 Google 簽訂授權合同,這樣他們才能打包 Google 的服務,比如 Gmail、YouTube 等等。

CTS 限制了 OEM 定制弱化版 Android 手機的想法(譯者注:山寨的機會啊!MTK、中微星,年底發布些低端 Android 手機吧!)這也大大限制了 Android 開拓低端市場的能力。CTS 和向前兼容 4 萬多個應用的事實,極大的挑戰著 Google 想占領智能手機市場2位數的市場份額目標。這些限制,還有 Google 與 OEM 亦敵亦友的合作關系,使得 OEM 圈內掀起了建立 Android 基金的討論。

Google 的終極目標

手握 Android,Google 的目標是為自己產生收入的服務提供一個穩定的平臺。在當前,這個廣告生意。但未來,Google 的目標在語音服務(幾十億沒有數據服務的用戶)和 Google Checkout(比如變成移動領域的 visa 卡)。但不管 Google 的終極目標是什么,我們應該意識到 Android 和 Windows Mobile、Mac OSX 或 PalmOS 相比,并沒有開放多少。Android 是用開源來驅動商業議程的最聰明的案例之一。Android 骨子里并沒有我們潛意識里所灌輸的那么多不作惡思想。

- Andreas on twitter: @andreascon

[轉]最封閉的開源系統,話說Android的八宗罪


我在網上http://www.ruanyifeng.com/blog/2010/02/open_android_or_not.html還看到了一篇阮一峰的文章,我覺得值得看看。今年2月份,Linux將Andriod提出kernel的那篇blog我看過原文。并且在博文 Google Andriod——壟斷的產業源頭 中以及我在《電信科學》發表的文章提及。也是因此關注到JAVA的不兼容問題。下面是文章轉貼

Android,開源還是封閉?

作者:阮一峰

滿大街都在談論Android。

它是當紅炸子雞。許多人覺得,iPhone將受到它的強力挑戰。

bg2010020401.png

我也曾經對它充滿了期待,但是后來的事態發展,令我改變了看法。前幾天,我就在網志上寫了自己的 擔憂

“首先,Android應用程序只能用java語言開發,莫非所有的應用程序都運行在一個巨大的虛擬機上?(【更正】網友留言指出,2009年6月Android發布NDK工具包,支持C/C++語言編程,不過性能不如SKD工具包中的Java語言。 )

其次,Google對Android采用了一種全面霸權式的管理,完全不是其他開源軟件的開發方式,一切都由Google說了算,很多地方是黑箱,外界不得而知。”

沒有想到,僅僅過了兩天,擔憂就變成了現實。Linux Kernel的維護者 Greg Kroah-Hartman 宣布, 將Android 代碼從 Linux kernel 代碼庫中刪除 。這意味著,Linux Kernel的開發小組不認可Android的貢獻,兩者產生了沖突。

消息公布以后,外界普遍覺得驚訝和可惜。好不容易,才有了一個這么受歡迎的開源手機系統,應該齊心協力、共同開發才對,為什么要“窩里斗”呢?到底是什么矛盾,使得Linux Kernel小組剔除Android代碼呢?

Greg Kroah-Hartman寫了一篇詳細的 文章 ,解釋這個決定。下面就來看看,他是怎么說的,以及Android到底是一個什么樣的系統。

在這之前,你最好知道Greg Kroah-Hartman是誰。他是目前Linux Kernel的核心開發人員,負責stable軟件包的發布。就是說,每一個新版本的Linux Kernel,都是經過他的手流出來的。此外,他還負責硬件驅動的部署。而他的手機就是HTC G1,每天都在使用。所以,他是絕對有資格談論這個問題的,他的看法代表了Linux社區對Android的看法。

首先,他指出Android和其他的Linux發行版不一樣:

“Google has taken the Linux kernel, and nothing else from a "traditional" Linux system.

Google只用了kernel,別的東西都沒用。”

這就是說,與Ubuntu、Debian、Redhat這樣的傳統Linux發行版相比,只有系統的底層結構是一樣的,其他東西在Android里都不一樣,尤其是程序員的編程接口是完全不同的。因此,Android應用程序都必須重新寫過,現存的Linux程序無法移植上去。所以,從嚴格意義上說,Android是一種全新的系統,它與Linux的距離,比Mac OS與Linux的距離還要遠。

bg2010020402.jpg

然后,Greg Kroah-Hartman肯定了Android這樣做的積極意義:

“Android also solves the problem that the phone manufacturers had been having for many years: a free version of Java and a unified application layer that programmers can write to that will work on all phone platforms that integrate it.

它解決了長期令手機制造商頭痛不已的問題:業界缺乏一個開源的Java虛擬機,以及統一的應用程序接口。現在,程序員只要寫一次程序,就能在各種手機硬件平臺之上使用。”

這段話解釋了,為什么Android的應用程序,都必須用Java語言開發。因為不這樣做的話,沒法讓程序做到硬件無關。

且慢,這真的是理由嗎?傳統的Linux系統,也并不依賴特定的硬件啊!只要把源代碼根據不同的平臺,分別編譯一下,同一個程序不也照樣可以在不同的硬件架構、不同的Linux發行版中使用嗎?

那么,Android只采用kernel、只允許用java編程的真正原因,到底是什么?

臺灣的科技網志 MMDays 一語道破真相:

“Linux kernel 的版權是 GPL。

這下問題來了:如果你是硬件廠商,希望你的硬件能在 Linux kernel 下運作,那么就必須要有驅動程序。如果驅動程序的程序代碼公開,等于硬件規格也公開的差不多了。許多廠商不愿意這么做,所以就提供編好的驅動程序,但不提供原始碼。

Android 的重點就是商業應用,Google采用了一些手法來繞過這問題。他們把驅動程序移到 "userspace",也就是說,把驅動程序變成在 Linux kernel 上頭跑,而不是一起跑的東西,這樣就可以避過GPL。然后,在 kernel 這邊開個小門,讓本來不能直接控制到硬件的 "userspace" 程序也可以碰得到,這樣只要把"開個小門"的程序代碼公布就行啦。”

看明白了嗎?

這段話的意思是說,Google玩了一個花招,在kernel和應用程序之間,自己做了一個中間層,這樣就既不違反GPL許可,又能不讓外界看到廠商的硬件驅動和應用程序的源碼。

里面的關鍵在于,Kernel和Android的許可證不一樣,前者是GPL許可證,后者是Apache Software License(簡稱ASL)許可證。GPL許可證規定,對源碼的任何修改都必須開源,所以Android開源了,因為它修改了Kernel。而ASL許可證規定,可以隨意使用源碼,不必開源,所以建筑在Android之上的硬件驅動和應用程序,都可以保持封閉。為了得到更多廠商的支持,Google有意選擇了這樣做,并且特意修改Kernel,使得原本應該包括在kernel中的某些功能,都被轉移到了userspace之中,因此得以避開開源。

這樣做或許有利于推廣Android,吸引廠商和軟件開發商的加入,但是Google也放棄了構建一個真正開源的手機系統的機會,從而也就不能獲得由全世界程序員提供智慧、分享代碼、推動創新的好處。關于許可證問題的深入討論,請閱讀Ryan Paul的文章 《Why Google chose the Apache Software License over GPLv2 for Android》

Google的這種做法,直接后果就是給Linux Kernel帶來了麻煩。Greg Kroah-Hartman清楚地說出了自己的不滿。

“...any drivers written for Android hardware platforms, can not get merged into the main kernel tree because they have dependencies on code that only lives in Google's kernel tree, causing it to fail to build in the kernel.org tree.

所有為Android寫的硬件驅動,都不能合并入kernel。因為它們只在Google的代碼里有效,在kernel里根本沒法用。

Because of this, Google has now prevented a large chunk of hardware drivers and platform code from ever getting merged into the main kernel tree. Effectively creating a kernel branch that a number of different vendors are now relying on.

由于這個原因,Google也從不把大量的硬件驅動程序和平臺源碼向kernel提交。實際上,它創造出了一個kernel的分支,大量的開發者都依賴那個分支。”

這就是Android干的事情:它修改了Kernel,但是又不提供修改的細節,自己搞了一個封閉的系統。說得難聽一點,它利用了開源社區,要求開源社區為它做貢獻,卻又不愿提供回報。

所以,Linux Kernel就把Android踢出去了,真是再正常不過了。

人們有權利質疑,Android這樣的哲學是否正確?是否符合Google“不作惡”的口號?如果Android繼續這樣封閉下去,那么開源社區為什么要為它免費制作軟件呢?因為我又不是在為開源社區服務,而是在為Google服務。既然這樣的話,那還不如去支持iPhone呢,至少能在軟件商店里多賣一點錢,而且喬布斯看上去也更酷一點。

bg2010020403.jpg

slashdot 上有很多關于此事的討論。有人指出:

“Google自己的網站,與微軟的網站一樣封閉。它開源出來的東西,都是根據GPL許可證不得不開源的。”

好吧,姑且不談Google本身,因為它至少不要求外界提供支持。但是Android不一樣,你不能假裝成開源系統,騙取社區的支持,然后又干著封閉系統的勾當。以你的實力,不用Linux Kernel,自己開發一個Google Kernel,想必也不是難事。要是這樣做,任何人都不會有非議。可是,既然你選擇了Linux Kernel,并且大張旗鼓地宣傳,那么你奉獻出什么呢?難道你的奉獻就是給Kernel開一個口子嗎?

Google必須做出改變。正如Greg Kroah-Hartman最后的呼吁:

“I really don't know. Google shows no sign of working to get their code upstream anymore.

我真的不知道未來。Google看上去沒有任何改變代碼的跡象。

I do hold out hope that Google does come around and works to fix their codebase to get it merged upstream to stop the huge blockage that they have now caused in a large number of embedded Linux hardware companies.

我確實希望Google做出改變,把它的代碼合并進我們的代碼,彌補已經出現的代碼分裂。

I've privately offered in the past to help this work get done, and am doing again here publicly. But I need the help of the Google developers to make it happen, without them, nothing can change.

我私底下已經說過,我愿意幫助完成這項工作,在這里我再次公開這樣說。但是如果沒有Google程序員的加入,什么也不會發生。”

Android必須變成一個真正的開源系統。如果像現在這樣封閉下去,就會被開源社區拋棄,就一定不會成功,即使有Google的支持。

UPDATE ONE

liufeng針對此文,寫了一篇很好的 評論 ,推薦閱讀。

我接受他的批評,我確實有點感情用事。主要是因為對Google有太大的期望,所以不能接受它現在的這種做法。

這一次,也許不能說Google做錯了什么,畢竟都符合GPL許可證的要求。但是代價也是巨大的——它放棄了創造未來的機會。我堅信,未來主流的手機操作系統一定是開源的,就像我堅信未來Linux一定勝過Windows一樣。現在,既然Google放棄了這個選擇,那么只能等待其他人來做出開源的手機系統了。這也意味著,我們還要在黑暗中等待更久。

UPDATE TWO

Greg Kroah-Hartman原文中有一些關于技術的部分,由于我不太懂,就沒翻譯出來。網友 黑日白月 做了意譯和點評。

簡單的來講,Android 的硬件驅動依賴在 Google 代碼樹里的東西,于是盡管大多數廠商都將它們的驅動反饋給社區了,但是對 Google 代碼樹的依賴導致它們無法并入主線(merge into mainline)。而 Google 代碼樹一直沒并入主線是由于 Android 平臺安全架構模型需要額外的鉤子以及完全不同的幀緩存驅動。

這次在 2.6.33 主線中把 Android 部分清理掉是由于廠商貢獻的這部分代碼在離開 Google 的代碼樹之后對其他嵌入式 Linux 沒有用處,干脆從主線中除掉好了……

這跟前段時間 Linus 指責 Red Hat 把 Nouveau 并入主線的積極性不高一樣,最后 Red Hat 也是把 Nouveau 并入 2.6.33 的主線了么……

沒有并入主線對于社區和廠商都不利,社區得不到驅動程序的擴展,廠商也得不到內核新特性的改善。但是并不是所有模塊在一開始的時候都是并入主線的,總是要發展到某個相對成熟的階段或者解決了潛在的授權問題后才并入的。總之并入主線對雙方都有利,這個問題反應這次 Google 的并入主線積極性不高(不代表不開源),社區打它屁屁了……

(完)

相關鏈接: 我的產業生態鏈和雜談文章

[轉]最封閉的開源系統,話說Android的八宗罪


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧洲成人爽视频在线观看 | 黄色亚洲毛片 | 久久婷婷综合在线视频观看6 | 变态 调教 视频 国产九色 | 久草在线观看资源 | 无遮挡又黄又爽又色的视频免费 | 四虎永久网址在线观看 | 欧美日韩加勒比一区二区三区 | 正在播放国产乱子伦视频 | 久久成人免费大片 | 91香蕉国产视频 | 一级毛片美国一级j毛片不卡 | 国内精品久久久久影院蜜芽 | 欧美日韩在线播一区二区三区 | 亚洲成a人片在线观看精品 亚洲成a人一区二区三区 | 中国一级特黄特级毛片 | 天天碰免费视频 | 毛片免费观看网址 | 夜夜艹天天干 | 国产中文在线观看 | 国产久视频观看 | 999热这里只有精品 999人在线精品播放视频 | 久久精品高清 | 天天天做天天天天爱天天想 | 综合免费一区二区三区 | 国产精品一区二区三区四区 | 成人性生交大片免费看午夜a | 欧美性大战久久久久久久蜜桃 | 国产亚洲精品一区久久 | 国产区免费| 青青草久热精品视频在线观看 | 久久精品国产久精国产80cm | 88国产经典欧美一区二区三区 | 久久久久夜色精品波多野结衣 | 国产成人毛片亚洲精品不卡 | 奇米吧| 在线播放精品一区二区啪视频 | 欧美亚洲另类色国产综合 | 天天草夜夜草 | 四虎官方影库 | 尻逼影院|