微信号:programmer_club

介绍:程序员第一自媒体,与你探讨码农人生路上遇到的各类泛技术话题,定期为你推荐码农人生思考、感悟以及启迪!

除了上市,小米背后竟然还有这么多开源项目

2018-07-20 22:00 程序员之家
开源最前线(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”带你进粉丝群

 
程序员之家 更多文章 雷军:小米创业8年内部影像首次公开 看完我心里边都是一团火 十天打造的编程语言,如何影响世界!!! 匿名爆料,头条员工被强制离职! 程序员用代码求救, 同事“秒懂” 程序员什么时候该考虑辞职?
猜您喜欢 Jeep75周年人物纪录系列之傅盛——关于认知、梦想、坚持、热爱、以及世界 A milestone 全方位对比Apache Mesos, Docker Swarm, Google Kubernetes 这些年,你写了多少行代码 刘墉:"技能和成绩决定了一个人能走多快,而处世的能力决定了一个人能走多远。"