小米開源:站在巨人肩膀上的創新
7月22日訊息, 小米4 手機今天釋出,又一次掀起了業界關於“小米現象”的討論熱潮。藉著這股東風,我們來了解一下“開源”文化在這個炙手可熱的科技公司中佔據什麼地位。
作為一款Android系的產品,小米手機天然具有開源的基因。小米的MIUI系統,被認為是利用開源Android作業系統的成功典範。最新的小米路由器,也使用了路由器端著名的開源OpenWRT系統。除此之外,小米在日誌框架、服務框架、HTTP Web框架、訊息佇列、搜尋、分散式快取、儲存業務、監控報警、資料處理等多個領域,都使用了開源技術。
小米首席架構師崔寶秋在談到“開源”的時候曾說:“擁抱開源軟體,可以站在巨人的肩膀上進行創新。"
除了使用開源外,小米也回饋開源社群,推出了MIUI系列工具、Minos分散式部署和監控工具、Chronos高可用Timestamp服務、Themis HBase跨行跨表事務實現及其他一些運維工具等等。
1. MiCode公益社群
MiCode是小米建立的一個綠色公益社群,不含有商業利益,包括運營和發展也希望靠社群自己的力量。MiCode社群的這些開源專案的程式碼放在Github上: https://github.com/MiCode
MIUI帶頭髮起了一些專案開源貢獻給MiCode社群,包括小米便籤,還有為了幫助其他ROM製作者移植MIUI的PatchRom專案等。這些專案使用了對商業公司非常友好的Apache2.0協議。
MIUI檔案瀏覽器
MIUI檔案瀏覽器,簡單快速的檔案瀏覽器。執行與Android4.0及以上版本,運用4.0的控制元件,如:進入ActionMode,滑動切換Tab。主要功能:快速掃描、瀏覽SD卡的檔案;支援遠端管理,通過FTP協議,電腦可以操作SD卡的資源。
專案主頁:
https://github.com/MiCode/FileExplorer
小米便籤
小米便籤是Android上最受歡迎的應用之一,釋出以來累計下載量已突破百萬。具有以下特點:
- 快速新建,自動儲存,自由分類;
- 與Google Task同步,方便將本地便籤上傳、谷歌工作表中的工作項同步到本地;
- 獨特的清單模式,簡單方便的管理事務;
- 鬧鐘提醒,傳送便籤到桌面、快速分享.
- 文字中對郵箱、電話號碼、網址的識別,方便快速操作
PatchRom
MIUI ROM是小米公司在最著名的開源Android Rom CyanogenMod的基礎上開發,但是卻用於商業並且選擇閉源,曾經 為此備受詬病。後來,小米開源了MIUI ROM適配專案Patchrom,希望以此加強所有MIUI愛好者之間的交流,將MIUI ROM移植到更多的機型上去。大家可以在github下載到patchrom所有程式碼以及配套教程。
2. 小米開源硬體俱樂部
小米開源硬體俱樂部是小米社群的一個組成部分,介紹一些開源硬體相關的知識、產品,以及釋出一些小米組織和參與的開源硬體相關活動。
小米網的運營經理、開源硬體的負責人史頡華曾在 一次公開演講中表示:小米並不打算“進軍”開源硬體領域,而是打算“扶植”開源硬體領域。
3. 小米運維部的一些開源專案
- 報警助手是針對運維人員的一款簡訊報警處理軟體。
- 基於Twisted實現的智慧dns系統
- dsnat
基於lvs fullnat模基礎上開發,dsnat位於網路的閘道器位置,內網server訪問外網時,輪詢使用閘道器地址池中的外網ip。
小米運維部技術部落格:http://noops.me/
4. Hadoop佈署、監控系統minos等
分散式的釋出和監控系統Minos
Minos 是小米公司開發的一個分散式的釋出和監控系統。最初是小米開發的用來在Hadoop和 ZooKeeper叢集上釋出和管理的工具。Minos可輕鬆擴充套件來支援其他的系統,目前已經支援包括 HDFS、YARN 和Impala 。
web開發框架 Xiaomi Rose
小米公司的 Rose 是一個 Java 的 Web 開發框架,但不僅僅是框架。Rose 提供的各種特性和約束慣例,目的就是為了使您在能夠輕鬆地開發web程式。Rose規範了對Spring的使用,也允許您放置applicationContext-xxx.xml檔案來擴充套件Rose。
專案主頁:https://github.com/XiaoMi/rose