zoukankan      html  css  js  c++  java
  • Github上的几个C++开源项目

    

    http://www.zhihu.com/question/28341521

    有人吐槽怎么下手FreeNOS,上文档 FreeNOS: FreeNOS Documentation
    --更新--

    把平时关注的一些c++相关的github的project列下,欢迎补充。

    1. FreeNOS
    lordsergioinspa/FreeNOS · GitHub

    这是我在大学的时候,接触完整学习的第一个开源的C++项目,当时简直是,各种惊叹,里面有太多值得学习的地方。
    这是一个用C++实现的微内核的操作系统,各种宏内核中的服务作为一个独立的services在微内核中,基于消息的通信方式,这点其实跟mac内核中的mach那部分机制相似。
    除了是一个操作系统的实现,另外从中也能很好的学习到OOP的设计方式,整个代码风格特别好,完全基于面相对象,还有一些常见的设计模式,在接触了这个开源项目之后,才了解,代码风格,注释,doxygen,scons,设计模式。

    对于直接入手就啃Linux kernel的同学,个人觉得会门槛有点高,身体还不是特别棒的时候,直接攀登珠穆拉玛还是有点吃力的,可以先找个黄山爬爬。

    2. Chromium
    向左向右,怎么看现在只有Chromium是c++中最庞大的一个,自己在造轮子的时候,可以搜索下这个宝库,保证有各种型号的轮子。
    Chromium涉及了几乎所有的平台,所以不仅能学到平台之上API的封装,还有包括Network的各种封装和借口,协议的C++的实现。
    更甚至,webrtc,native client,sandbox,GPU,并行加速,debug,各种神奇的第三方的库,各种各样的技术,能潜心学深一个,就可以功力大增。


    有空在补充。。。

    ////////////////////updated 2.28///////////////////////////

    3. Node.js
    红的发紫的项目,整个node.js 包括内部的核心V8都是C++的项目,完全的事件驱动,非阻塞IO,性能比nginx还快,可以说是把服务器彻底的榨干的节奏,这种设计模式,是现在比较流行的Reactor pattern ,concurrent computing。在构建一些大型的web services中,尤其凸显优势,现在移动互联网时代,在做app push services的时候,后端自己实现的推送服务,基本也是这种思路,An Open Source MQTT v3.1 Broker 并发量能到几十万,甚至对内核参数修改过后能到上百万。
    Node.js另一个核心的组建是Marc Lehmann’s libev libev.schmorp.de , 基于event驱动的非阻塞IO库,在node-v0.9.0之后,node.js项目考虑到跨平台的实现,封装了一个项目libuv/libuv · GitHub,

    • Linux based on (epoll)
    • windows based on IOCP
    • Unix (mac os x) based on kevent

    学习下,也能用在自己做不同平台高性能网络


    ////////////////////updated 3.1///////////////////////////
    收到好多点赞,对于每天风平浪静,只期待不给我弹error的生活,带来些小激动的。
    平时喜欢接触一些新鲜的概念,产品,可能这也是自己选择这个行业的一个原因,虽没有一日如隔三秋的变化速度,但至少三月都会蹦出很多新奇的trend,技术,方向。总有一种学无止境的感觉,对于C++来说,基础的东西变化不大,哪怕是新的标准C++0x,我的理解是实践动手,如果有项目能去应用。
    知识爆炸,我们可能无法穷尽学习所有的知识,但是可以通过github这个平台完善属于自己的知识wiki,觉得未来应该是。
    看小说,看电影,看code。
    这样一个进去我们习惯的行为。
    废话太多~~~

    4. Sandstorm
    sandstorm-io/sandstorm · GitHub
    Github上面最近比较火的一个项目,主页上面一句话的介绍“Personal Cloud Sandbox”。主要解决的问题是,在自己的私有人服务器上面,安装各种开源的云服务(GitLab, WordPress......),就像mobile上面的通过应用商店install app那样快速方便,实现这个目标,要在Linux之上,构建一个基于sandbox的平台,并且留给开发者porting这些web 服务 (.spk file)到应用商店。
    个人觉得比较精华的是里面sandbox部分,每个web app都是跑在LXC的container里面的,这点是类似Docker的实现,非常高效和轻量。另外会用到seccomp机制,对web app进行系统调用过滤,保障云主机本身的安全,这一点sandbox的安全机制跟chrome在Linux上面的实现也是一致的。

    • Sandstorm's server-side sandboxing is based on the same underlying Linux kernel features as LXC and Docker. We use the system calls directly for finer-grained control.
    • (Planned) The kernel attack surface is reduced using seccomp-bpf to block and/or virtualize system calls.



    ////////////////////updated 3.2///////////////////////////
    昨天被柴女神刷屏了,其实我们在用C++的时候,也是在为环境作贡献,
    C++之父在YouTube上面的视频,C++在数据中心的使用,高性能的优势,节省不少电。
    <img src="http://pic1.zhimg.com/7a37bcb2980f128783bf3b4ed59f0578_b.jpg" data-rawwidth="511" data-rawheight="337" class="origin_image zh-lightbox-thumb" width="511" data-original="http://pic1.zhimg.com/7a37bcb2980f128783bf3b4ed59f0578_r.jpg">

    5. BitCoin
    bitcoin/bitcoin · GitHub
    BitCoin这两年很火,抛开比特币本身,看BitCoin实现,也是C++的项目,构建在P2P网络之上的一套虚拟的支付系统。
    我们可以利用的是背后的P2P Protocol,密码学,支付,去中心化这些。
    现在有很多衍生的开源项目,就是利用BitCoin 的这套P2P的框架在做,bitmessage,
    bitmessage.org/wiki/Mai
    完全去中心化,能防止老大哥的监听,在现在云计算,大数据风行的时代,privacy问题会越来越多,可以借鉴P2P的思路,构建这些去中心化的服务。


    ////////////////////updated 3.3///////////////////////////
    6. CoreCLR
    dotnet/coreclr · GitHub
    没看错,微软最近一直在放大招,之前开放了 .NET Core的源代码,这次又把.NET的CoreCLR推到了GitHub。在Windows上运行一个.NET应用所需要的完整软件栈都已经开源,对Linux和Mac OS X的支持马上出来。微软.NET因为整个软件栈全部开源。开发者可以编译自己的CoreCLR,在上面跨平台运行.NET程序。
    以前Mono做的就是这个事情。对语言,编译,相关感兴趣的可以学习学习,背后开放了RyuJIT,garbage collection等一些技术。
    微软从产品公司变成服务公司,重点放在企业级市场,对桌面这块越来越开放,节奏很好。

    对.net不是很了解,拿来抛砖引玉。


    ////////////////////updated 3.4///////////////////////////
    7. Apache Mesos
    apache/mesos · GitHub
    简单介绍 下Mesos, 是twitter背后开源群集管理的核心,现在是apache上的top项目了。
    下面是Mesos的architecture
    <img src="http://pic3.zhimg.com/5279c29c57b509d620f265218ac7f61e_b.jpg" data-rawwidth="1408" data-rawheight="675" class="origin_image zh-lightbox-thumb" width="1408" data-original="http://pic3.zhimg.com/5279c29c57b509d620f265218ac7f61e_r.jpg">有家云计算创业公司Mesosphere,正在将这一技术推向一个更广的高度,可以通过mesos构建的节点,抽象各个public cloud服务商,更可以方便快速的做云迁移,从AWS可以到GCE。有家云计算创业公司Mesosphere,正在将这一技术推向一个更广的高度,可以通过mesos构建的节点,抽象各个public cloud服务商,更可以方便快速的做云迁移,从AWS可以到GCE。
    提到Mesos就会出现这样的组合,
    Mesos + Docker
    Docker(可能跑题了,Docker是用Go写的)是PaaS供应商dotCloud开源的一个基于LXC 的Container引擎,虚拟化解决方案上面杀出的一个新马。常见的搭配如下,Docker是 Mesos 的first class citizen。
    <img src="http://pic1.zhimg.com/5c7764c3af2433697be6aa2cd6246958_b.jpg" data-rawwidth="638" data-rawheight="359" class="origin_image zh-lightbox-thumb" width="638" data-original="http://pic1.zhimg.com/5c7764c3af2433697be6aa2cd6246958_r.jpg">

    技术 日新月异,是个好时代,别人造的轮子越来越好了,一直有东西学,蛮开心。


    ////////////////////updated 3.5///////////////////////////
    8. Mongo Database
    mongodb/mongo · GitHub
    NoSQL, BigData

    9. DOOM-3
    id-Software/DOOM-3 · GitHub
    最牛的游戏engine code
    还有一个cocos2d-x
    cocos2d/cocos2d-x · GitHub
    Itseez/opencv · GitHub

    10. HHVM
    facebook/hhvm · GitHub
    编译,JIT

  • 相关阅读:
    android29
    android28
    android27
    android26
    Dynamics CRM2011 MspInstallAction failed when installing an Update Rollup
    Dynamics CRM Import Solution Attribute Display Name description is null or empty
    The service cannot be activated because it does not support ASP.NET compatibility
    IIS部署WCF报 无法读取配置节“protocolMapping”,因为它缺少节声明
    Unable to access the IIS metabase.You do not have sufficient privilege
    LM算法与非线性最小二乘问题
  • 原文地址:https://www.cnblogs.com/jpfss/p/9910541.html
Copyright © 2011-2022 走看看