除了上市,小米背後竟然還有這麼多開源項目

程序員之家2018-07-21 10:48:42

開源最前線(ID:OpenSourceTop) 猿妹整編

轉載請註明來源作者


小米股價近日一掃上市首日即破發的陰霾,一路攀升。較7月9日開盤價的16.6港元/股,截至昨日收盤,公司股價已上漲至21.050港元/股。根據實時數據,截至7月13日上午,雷軍身家再次超越美的何享健,僅次於騰訊馬化騰、阿里馬雲、恆大許家印、萬達王健林、碧桂園楊惠妍,居於福布斯中國富豪第6位。



回顧這八年,小米集團給我們推出了許多讓人難忘的優秀產品,除了在產品上不斷給大家帶來驚喜,近年來,小米也不斷在開源領域做出貢獻,今天我們一起來盤點一下,小米都有哪些優秀的開源產品:


1
神經網絡框架 mace

https://github.com/XiaoMi/mace Star 21115


Mobile AI Compute Engine (MACE) 是一個專為移動端異構計算平臺優化的神經網絡計算框架。 主要從以下的角度做了專門的優化:


● 性能

代碼經過NEON指令,OpenCL以及Hexagon HVX專門優化,並且採用 Winograd算法來進行卷積操作的加速。 此外,還對啟動速度進行了專門的優化。


● 功耗

芯片的功耗管理,例如ARM的big.LITTLE調度,以及高通Adreno GPU功耗選項。


● 系統響應

支持自動拆解長時間的OpenCL計算任務,來保證UI渲染任務能夠做到較好的搶佔調度, 從而保證系統UI的相應和用戶體驗。


● 內存佔用

通過運用內存依賴分析技術,以及內存複用,減少內存的佔用。另外,保持儘量少的外部 依賴,保證代碼尺寸精簡。


● 模型加密與保護

模型保護是重要設計目標之一。支持將模型轉換成C++代碼,以及關鍵常量字符混淆,增加逆向的難度。


● 硬件支持範圍

支持高通,聯發科,以及松果等系列芯片的CPU,GPU與DSP(目前僅支持Hexagon)計算加速。 同時支持在具有POSIX接口的系統的CPU上運行。


2
企業級監控系統open-falcon

https://github.com/XiaoMi/open-falcon Star 2620


Open-Falcon是一種可擴展的開源監控解決方案,具有企業級高可用性,最初由小米AI和雲團隊的工程師開發。Open-Falcon 整體可以分為兩部分,即繪圖組件、告警組件;目前,小米、滴滴、美團、360、金山雲、愛奇藝等十幾家企業都在Open-Falcon


3
分佈式 Key-Value 存儲系統 pegasus

https://github.com/XiaoMi/pegasus Star 664


Pegasus 是小米雲存儲團隊開發的一個分佈式 Key-Value 存儲系統,下圖顯示了Pegasus的架構:



以下是對圖中概念和術語的簡要說明:

● MetaServer:Pegasus中的一個組件,用於執行整個集群管理。元服務器就像HBase中的“HMaster”。

● Zookeeper:Pegasus的外部依賴。我們使用zookeeper來存儲集群的元狀態並執行元服務器的容錯。

● ReplicaServer:Pegasus中的一個組件,用於提供客戶端的讀/寫請求。副本服務器也是副本的容器。

● 分區/副本:整個密鑰空間被分成幾個分區,每個分區都有幾個副本用於容錯。您可能需要參考PacificA算法以獲取更多詳細信息。


4
android_tv_metro

https://github.com/XiaoMi/android_tv_metro Star 479


Android_tv_metro是一款安卓版TV Metro框架和服務器API。API和數據結構Metro風格由兩種元素構成:Album和Display Item,簡而言之,此框架可幫助您輕鬆構建一個電視地鐵UI樣式應用程序。至於詳細的業務數據定義,您需要自己處理。


5
分佈式部署和監控系統minos

https://github.com/XiaoMi/minos Star 434


Minos是一個分佈式部署和監控系統。它最初是在小米開發和使用的,用於部署和管理公司中使用的Hadoop,HBase和ZooKeeper集群。可以輕鬆擴展Minos以支持其他系統,其中HDFS,YARN和Impala在當前版本中得到支持。


Minos系統包含以下四個組件:Client、Owl、Supervisor、Tank



6
rose

https://github.com/XiaoMi/rose Star 431


人網,糯米網釋出的,開源的高效Java web開發框架。部分研發團隊核心人員轉至小米繼續參與維護,具有如下特性:

● 基於IoC容器 (使用Spring 2.5.6).

● 收集最佳實踐,形成規範和慣例,引導按規範慣例,簡便開發.

● 收集通用功能,形成一些可使用的組件,提高生產效率.

● 特性的插拔,使用基於組合而非繼承的設計.

● 提供可擴展的點,保持框架的可擴展性.

● 注重使用簡易性的同時,注重內部代碼設計和實現.


7
LuckyMoneyTool

https://github.com/XiaoMi/LuckyMoneyTool Star 329


LuckyMoneyTool,是小米2015年秋季發佈會時演示的搶紅包測試源碼。整個項目的源代碼只有3個文件,MainActivity可能是插件啟動操作頁面,HongbaoService應該是具體的搶紅包實現邏輯。  


8
chronos

https://github.com/XiaoMi/chronos Star 305


Chronos 是一個具備容錯特性的作業調度器,可處理依賴性和基於 ISO8601 的調度。Chronos 是由 Airbnb 公司推出的用來替代 cron 的開源產品。你可以用它來對作業進行編排,支持使用 Mesos 作為作業執行器,支持和 Hadoop 進行交互。可定義作業執行完成後的觸發器。支持任意長度的依賴鏈。架構如下:




9
linden

https://github.com/XiaoMi/linden Star 188


Linden是一個基於Lucene構建的分佈式實時搜索系統,Linden提供了一個類似SQL的查詢語言接口,名為BQL(瀏覽查詢語言),Linden有一個靜態模式文件來指定文檔字段屬性(名稱,類型,索引,存儲等),Linden還支持動態字段架構。


10
themis

https://github.com/XiaoMi/themis Star 183




Themis 是小米公司開發的,為 HBase 提供了跨行/跨表的事務處理,基於 Google 的 percolator。Themis包含三個組件:時間戳服務器,客戶端庫,它們是協處理器。


11
shepher

https://github.com/XiaoMi/shepher Star 164


Shepher是ZooKeeper的管理工具。小米將它用作配置管理中心。具有如下特性:

● ZooKeeper 節點的可視化操作

● ZooKeeper 節點的快照管理

● ZooKeeper 節點修改的 Diff 和 Review 功能

● ZooKeeper 節點操作郵件通知

● 集成 CAS 和 LDAP 登錄

● 權限管理,參照 權限管理說明


12
jack

https://github.com/XiaoMi/jack  Star 49


JACK 是小米公司開發的一個粘合zookeeper與thrift的框架,可以簡單地讓你的thrift server更簡單地做到高可用。


13
misound

https://github.com/XiaoMi/misound Star 47


MiSound是一款Android應用程序,使小米的SoundBar更加強大。


14
ECFileCache

https://github.com/XiaoMi/ECFileCache Star 21


ECFileCache是一個分佈式文件緩存,它基於Erasure Code並使用Redis進行存儲。與其他分佈式緩存相比,ECFileCache在保持高可用性的同時沒有主從交換機的主設備和狀態。即使多個緩存節點同時出現故障,ECFileCache仍然可以正常工作。


公眾號內回覆“1”帶你進粉絲群

閱讀原文

TAGS: