为什么要阅读吸收github上的开源项目? 大家平常的知识来源都是社区,教程,文章,分享的视频,而github上全球优秀的大佬都在上面,他们的技术实力主要是以开源项目形式存在,高质量的内容和核心技术都在开源项目上。

当你有以下想法【情况】或或是目标的时候;

一、CRUD多年,技术长期停滞不前,技术遇到瓶颈

二、CRUD多年,简历上还是写着跟培训的新人一样做过XXX项目,熟悉XXX技术栈,同新人岗位竞争技术优势不是很明显

三、想做底层项目积累实力进大厂

四、想做开源项目积攒技术经验,构建个人技术力量,打造个人技术影响力和IP,寻找更多的机会

五、长期做业务CRUD技术力量发展薄弱,没有做过大量的底层项目

阅读C/C++为核心的开源项目的前置必备知识 为什么是C/C++项目呢,因为它是互联网领域的核心基石,也是最有技术含量的东西

一、熟悉/c/c++/asm

二、熟悉linux操作系统

三、学习内功修炼 即学习掌握X86汇编语言和GDB程序调试工具对于程序员来说是非常重要的_gdb 查看x86汇编-CSDN博客

四、内功修炼课程是基于LINUX环境为基础,作为程序员研究吸收消化以C/C/++/ASM为技术栈开源项目的核心必备前置知识,对于阅读和研究消化吸收以下开源项目是必备前置准备

五、学习掌握编译器和虚拟机的开发有哪些方面的好处_在虚拟机上进行程序开发的好处-CSDN博客

哪要阅读吸收哪种开源项目呢? 互联网的核心基石主要是C/C++/ASM,比如下面的开源项目

C/C++实现的编译器工具和框架 GCC (GNU Compiler Collection)

GCC是GNU项目的一部分,包含了多个编译器前端,如GCC C、GCC C++、GCC Objective-C等。GCC是自由软件,广泛应用于Linux和其他类Unix系统中。 Clang

Clang是LLVM项目的一部分,是一个C/C++/Objective-C编译器前端,旨在提供更快的编译速度和更好的诊断信息。它与LLVM后端一起工作,生成优化的机器码。 LLVM

LLVM是一个模块化、可重用的编译器基础设施集合,包括一系列工具和库,如opt(优化器)、llc(后端编译器)、lld-link(链接器)等。LLVM被许多其他编译器项目所使用,如Clang和Apple的Xcode。【基于该工具实现的编程语言很多,比如宣称的某国产语言 php内核团队也有人参与了此项目的维护】 Microsoft Visual C++ Compiler

微软的Visual C++编译器是Visual Studio的一部分,提供了对现代C++标准的广泛支持。它也包含在Windows SDK中,用于Windows平台的开发。 Intel C++ Compiler

Intel C++ Compiler是英特尔公司开发的,针对Intel架构进行优化,支持C++11至C++20标准,并提供了额外的并行和矢量化优化。 GCCXML

GCCXML是一个为GCC编译器设计的XML输出插件,用于生成C++类和函数的XML描述文件,这有助于IDE和代码分析工具理解C++源代码。 PCC (Portable C Compiler)

PCC是一个小型的C编译器,设计用于嵌入式系统,虽然功能有限,但在资源受限的环境中很有用。 EDG (Evans & Sutherland's Design Group)

EDG提供了一个C/C++预处理器和前端解析器,被许多商业编译器和IDE采用,用于语法检查和代码分析。 OpenWatcom

OpenWatcom是一个开源的C/C++编译器套件,特别适合用于老旧的DOS和Windows 9x系统上进行开发。 CMAKE

虽然本身不是一个编译器,但CMake是一个跨平台的自动化构建系统,用于管理多步骤的编译过程。它生成各种编译器的构建文件。 MSYS2

MSYS2是一个为Windows系统提供的Unix-like shell环境,包含了一个完整的GCC编译工具链,用于在Windows上构建Unix-like源码。 MinGW

MinGW(Minimalist GNU for Windows)是一个使GCC能够在Windows上运行的环境,用于生成原生的Windows可执行文件。 GNU Binutils

Binutils是GCC的一部分,包括一系列工具,如as(汇编器)、ld(链接器)、objdump(二进制文件查看器)等。 Flex & Bison

Flex是一个词法分析器生成器,Bison是一个语法分析器生成器,它们通常用于创建编译器的词法和语法解析部分。 这些工具和框架不仅用于编译C/C++代码,还经常用于构建其他语言的编译器和解释器以及数据库等。

AI 框架底层库 TensorFlow: 虽然主要使用 Python 接口,但 TensorFlow 的核心引擎是用 C++ 编写的。 Caffe: 专为计算机视觉设计,使用 C++ 和 CUDA 加速 GPU 计算。 Torch: 使用 Lua 脚本语言,但其底层库(如 THNN 和 THCUNN)使用 C 和 CUDA。 Dlib: 提供了机器学习算法,包括深度神经网络,主要使用 C++。 MLPack: 一个快速、灵活的机器学习库,使用 C++ 构建。 计算机视觉库 OpenCV: 广泛使用的计算机视觉库,支持图像和视频处理。 ITK (Insight Segmentation and Registration Toolkit): 主要用于医学图像处理。 VXL (Vision with Virtuality Library): 面向对象的计算机视觉库。 DenseOpticalFlow: 实现了不同的光流算法。 PCL (Point Cloud Library): 用于三维点云处理。 图形库 OpenGL: 基于 C 的 API,用于渲染 2D 和 3D 图形。 DirectX: 微软的多媒体库,虽然基于 COM 对象,但底层使用 C/C++。 SDL (Simple DirectMedia Layer): 用于游戏开发的多媒体库。 Vulkan: 一种低开销、跨平台的图形和计算 API。 AGG (Anti-Grain Geometry): 用于高质量抗锯齿图形渲染。 图像处理库 FreeImage: 支持多种图像格式的加载和保存。 IPL (Intel Image Processing Library): 与 IPP 相关,用于图像处理。 CxImage: 小型图像处理库,支持多种格式。 libpng, libjpeg, libtiff, libwebp: 分别用于 PNG、JPEG、TIFF 和 WebP 格式的图像处理。 音频处理库 OpenAL: 开放源代码的跨平台音频 API。 Opus: 高质量的音频编解码器。 Speex: 语音编解码器,现在已废弃,由 Opus 替代。 Tonic: C++ 音频和音乐数字信号处理库。 JUCE (Jules' Utility Class Extensions): 用于音频应用和跨平台 GUI 的框架。 视频处理库 FFmpeg: 强大的多媒体框架,用于编码、解码、转码、复用、分离、流、过滤和播放。 GStreamer: 可扩展的多媒体框架,用于构建各种媒体处理应用。 VLC: 除了媒体播放器外,VLC 的库可用于视频处理和流媒体。 C/C++量子计算库: Quantum++

一个现代的C++11量子计算库,提供了量子比特、量子门、量子电路等的实现。它依赖于Eigen库,支持OpenMP,并且可以进行量子电路的合成、转换、优化和编译。 Qulacs

一个高性能的量子电路模拟器,支持多种量子门、噪声模型和GPU加速。Qulacs使用C++实现,并提供了并行计算的支持,适用于大规模量子电路的模拟。 Staq

一个现代C++17库,专注于量子电路的合成、转换、优化和编译。它可以作为二进制工具使用,也可以作为一个仅头文件的库,支持OpenQASM电路描述语言。 Psi4

虽然主要是一个量子化学软件包,但它的部分功能与量子计算相关,尤其是涉及到分子系统的量子力学模拟。Psi4使用C++实现。 OpenFermion

OpenFermion的大部分功能是用Python实现的,但通过插件可以与C++/C实现的量子化学软件包(如Psi4)交互,从而在量子计算领域应用。 Cirq

虽然Cirq主要是一个Python库,但它的高性能核心部分可能使用C++来实现。Cirq由Google开发,用于量子计算编程。 QubitSim

一个简单的C++实现的量子位模拟器,适用于教学和基础量子计算概念的探索。 Qpp (Quantum Programming Platform)

Qpp虽然可能提供多语言接口,但其核心模拟功能使用C++实现,用于编写、模拟和测试量子程序。 Qiskit Terra

IBM的Qiskit虽然主要使用Python,但其内部某些高性能组件可能用C++实现,特别是在处理量子电路的优化和执行方面。 C/C++实现的重要编程语言的运行时系统或解释器: Python

CPython是Python的官方参考实现,使用C语言编写。 其他Python实现如PyPy也使用了C语言作为部分实现的基础。 Ruby

MRI (Matz's Ruby Interpreter),即标准的Ruby解释器,是由C语言编写的。 PHP

PHP的主要实现也是用C语言编写的。 Perl

Perl 5的实现主要基于C语言。 Lua

Lua是一种轻量级的脚本语言,其标准实现是用C语言编写的。 R

R语言的解释器部分用C和Fortran编写,以提高数值计算的性能。 Node.js

Node.js的运行时环境是基于Google的V8 JavaScript引擎,该引擎用C++编写。 Go

Go语言的编译器和标准库最初是用C语言实现的,但后来许多部分被重写为Go语言本身。 Rust

Rust的编译器rustc最初是用C++实现的,但后来改用Rust语言自身来编写。 Swift

Swift的编译器swiftc和运行时环境使用C++和Objective-C实现,并且与LLVM编译器基础设施紧密集成。 Julia

Julia语言的编译器和核心库部分使用C语言实现,以利用其高性能特性。 C/C++实现的知名开源数据库和缓存项目: 数据库 SQLite

一个轻量级的嵌入式关系型数据库,不需要单独的服务器进程,广泛应用于各种应用程序和设备中。 MariaDB

MySQL的一个分支,完全兼容MySQL,提供了额外的功能和性能改进,使用C/C++编写。 PostgreSQL

一个强大的开放源代码的对象关系数据库系统,用C语言编写,支持复杂查询和事务。 MongoDB

虽然MongoDB提供了多种语言的驱动,其核心是用C++实现的文档型数据库,适合大规模数据存储和快速查询。 RocksDB

Facebook开发的一款嵌入式键值存储,特别适用于固态硬盘(SSD),提供高性能和持久化存储。 LevelDB

Google开发的键值存储库,用C++编写,用于构建高性能的数据存储层。 CouchDB

一个面向文档的NoSQL数据库,使用Erlang语言编写,但Erlang底层的虚拟机BEAM是用C/C++编写的。 Redis

Redis虽然主要使用ANSI C编写,但其简洁的API和高性能使其成为缓存和数据库的热门选择。 缓存 Memcached

一个高性能、分布式内存对象缓存系统,用于加速动态Web应用,减轻数据库负担。 Redis

Redis不仅可以作为数据库使用,也经常作为缓存系统,支持多种数据结构,如字符串、哈希、列表和集合。 Varnish Cache

虽然Varnish主要用作HTTP加速器,但其核心功能之一就是缓存,可以显著提高网站响应速度。 Squid

一个广泛使用的代理服务器和缓存系统,用于Web内容缓存和过滤。 Caffeine

虽然Caffeine主要是一个Java库,但其灵感来自于Guava的缓存实现,可以启发C/C++开发者创建类似的缓存机制。 C/C++和CUDA实现的开源库 GPU/CUDA 开源库 cuBLAS - CUDA Basic Linear Algebra Subprograms,用于GPU上的线性代数计算。

cuFFT - CUDA Fast Fourier Transform,提供了快速傅立叶变换的GPU实现。

cuSPARSE - CUDA Sparse Matrix Library,用于稀疏矩阵运算。

cuDNN - NVIDIA Deep Neural Network library,优化了深度神经网络的训练和推理过程。

cuRAND - CUDA Random Number Generation library,用于生成随机数。

Boost.Compute - 基于OpenCL的C++库,也支持CUDA。

Eigen - 一个高性能的矩阵和线性代数库,可以与CUDA配合使用。

MatX - 由NVIDIA推出的,用于GPU加速的数值计算库。

CV-CUDA - NVIDIA推出的用于计算机视觉的CUDA流处理库。

Thrust - 类似于STL的并行算法库,专为CUDA设计。

cuDNN-LSTM - 用于在GPU上实现长短期记忆(LSTM)网络的库。

cuGraph - NVIDIA的图形分析库,基于CUDA。

NPP (NVIDIA Performance Primitives) - 提供了图像处理和计算机视觉功能

AI机器人开源库 ROS (Robot Operating System)

ROS是机器人软件开发的事实标准,提供了丰富的库和工具集,支持C++和Python。ROS2是ROS的最新版本,增强了实时性、安全性等特性。 Robotics Library (RL)

RL是一个独立的C++库,专注于机器人动力学、运动规划和控制。 FCL (Flexible Collision Library)

用于碰撞检测和接近查询的通用库,适用于机器人学和游戏开发。 Pinocchio

用于高效机器人动力学计算的C++库,支持URDF和SDF文件导入。 MRPT (Mobile Robot Programming Toolkit)

面向移动机器人的C++库,包括SLAM、计算机视觉、运动规划等功能。 mlpack

快速、灵活的机器学习库,提供多种算法,如聚类、回归、分类等。 DyNet (Dynamic Neural Networks)

高性能神经网络库,支持动态计算图,适用于自然语言处理等领域。 TensorFlow (C++ API)

虽然TensorFlow主要是Python接口,但它也有C++API,可以用于高性能计算环境或嵌入式系统。 Caffe

用于深度学习的框架,特别适合计算机视觉应用,提供了C++接口。 CNTK (Microsoft Cognitive Toolkit)

微软的深度学习工具包,也提供了C++接口。 OpenCV

计算机视觉库,支持图像和视频分析,广泛用于机器人视觉系统。 LeRobot (by Hugging Face)

一个AI机器人工具包,虽然具体细节可能需要查阅最新的文档或GitHub页面。 OpenRAVE

机器人路径规划和仿真库,尽管最近更新较少,但依然在某些领域有应用。 Bullet Physics Library

物理模拟库,可以用于机器人运动模拟和碰撞检测 C/C++实现的游戏渲染开源库 Raylib-CPP

一个简单、高效的游戏和图形应用开发框架,基于原始的Raylib,但提供了更丰富的C++接口。 Ilum

一个基于C++的高级渲染库,提供现代图形学技术和工具,用于创建高质量、高性能的实时3D应用程序。 LonganRenderer

免费开源的C/C++图形渲染UI库,支持跨平台,包括Windows和Linux环境,属于软渲染库。 OGRE 3D

一个广泛使用的开源三维图形渲染库,适用于游戏开发和三维仿真项目。 Dear ImGui

虽然主要是一个即时模式的图形用户界面库,但它也常用于游戏开发中的调试视图和编辑器界面。 Irrlicht Engine

一个全功能的3D引擎,支持多种图形API,如OpenGL和Direct3D。 Lumix Engine

一个轻量级的3D游戏引擎,提供了渲染、物理、动画、音频等功能。 RenderDoc

虽然主要是一个图形调试工具,但其API允许在C++中捕获和调试图形管线。 EnTT

一个用于游戏开发的C++库,提供了实体组件系统(ECS)和更多功能,可以与各种渲染库结合使用。 GFX

一个现代的、可移植的C++图形库,用于构建跨平台的图形应用。 Vulkan

虽然Vulkan本身是一个低级别的图形API,但其官方和第三方库(如Vulkan-Hpp)提供了C++绑定。 OpenGL

虽然OpenGL不是一个库,但它是C/C++游戏开发者常用的图形API,有多种C++绑定和辅助库可用。 Direct3D

与OpenGL类似,Direct3D也是个API,但主要在Windows平台上使用,有C++绑定。 EasyX

一个简单的2D图形库,适合初学者和教学目的。 C/C++实现的开源嵌入式操作系统 FreeRTOS

FreeRTOS 是一个小型、开源的实时操作系统内核,非常流行,适用于微控制器和嵌入式设备。 μC/OS-II & μC/OS-III

这是两个由Jean J. Labrosse开发的实时操作系统,支持多种微处理器架构。 TinyOS

TinyOS 是一个专为无线传感器网络设计的开源操作系统,以其轻量级和低功耗而著称。 Contiki-OS

Contiki 是一个针对物联网设备的小型、开源操作系统,支持多任务和IPv6。 RIOT

RIOT(Friendly OS for the Internet of Things)是一个面向物联网设备的开源操作系统,支持多种微控制器和无线模块。 LiteOS

华为的LiteOS是一个轻量级的物联网操作系统,支持低功耗和实时特性。 Zephyr RTOS

Zephyr 是一个由Linux基金会维护的实时操作系统,目标是为资源受限的设备提供可扩展性和安全性。 FreeDOS

尽管FreeDOS不是典型的嵌入式操作系统,但它是一个开源的DOS兼容系统,可用于某些嵌入式环境。 eCos

eCos (Embedded Configurable Operating System) 是一个高度可配置的开源嵌入式操作系统。 Nut/OS

Nut/OS 是一个面向嵌入式系统的免费实时操作系统,提供了多任务支持和中断处理。 DJYOS

都江堰操作系统,这是一个国内开发的开源嵌入式操作系统。 klite

一个简洁易用的嵌入式操作系统内核。 lmosem

一个完全从头开始编写的操作系统内核,基于ARM平台,支持多进程和多CPU。 freenos

FreeNOS 是一个微内核操作系统,适用于嵌入式应用。 Apache Mynewt

由Apache软件基金会支持的一个嵌入式操作系统,专注于物联网应用,提供模块化和可扩展性。 基于Qt和C/C++实现的工具 Qt Creator

这是一个跨平台的IDE,可以用于开发基于Qt的GUI应用程序。虽然Qt Creator本身不直接针对单片机开发,但它可以与适当的编译器和工具链一起使用,以支持单片机上的Qt应用程序开发。 Qt Embedded

Qt Embedded 是Qt的嵌入式版本,专门设计用于在资源受限的嵌入式设备上运行。这包括单片机和其他嵌入式系统。 Qt for MCUs

这是Qt专门为微控制器单元(MCUs)设计的解决方案,它允许在低功耗、资源受限的设备上运行GUI应用程序。 QML for MCUs

QML是一种声明性的UI描述语言,用于构建Qt应用程序的用户界面。Qt for MCUs支持QML,使得在单片机上开发复杂的UI成为可能。 Qt Design Studio

这是一个设计和原型制作工具,用于创建和测试复杂的用户界面。虽然它主要用于桌面和移动设备,但它也可以与Qt for MCUs结合使用,为嵌入式设备设计界面。 GCC/G++ for ARM

GNU Compiler Collection (GCC) 包含G++,这是C++的编译器。对于基于ARM的单片机,可以使用GCC/G++来编译C/C++代码。 Keil MDK

Keil MDK 是一个流行的IDE,用于基于ARM Cortex-M微控制器的嵌入式软件开发。虽然它不直接使用Qt,但它可以与Qt结合使用,特别是在支持Qt的单片机上。 IAR Embedded Workbench

这是一个专业的IDE,用于基于ARM、MIPS、PowerPC和其他架构的微控制器的嵌入式软件开发。它也可以与Qt结合使用。 Code::Blocks

Code::Blocks是一个免费的C/C++IDE,可以通过插件支持不同的编译器和工具链,从而适用于嵌入式开发。 Eclipse

Eclipse 是一个多功能的IDE,通过插件可以支持各种嵌入式开发环境,包括那些基于Qt的应用。 Visual Studio

Microsoft的Visual Studio,尤其是它的社区版,可以配置为支持嵌入式开发,包括使用C/C++和Qt。 C/C++实现的电路仿真模拟器和电路信号分析器 Ngspice

Ngspice是Spice3f5的开源分支,是最常见的电路仿真器之一,使用C/C++编写,支持广泛的电路元件和分析类型。 Qucs

Qucs(Quite Universal Circuit Simulator)是一个图形界面的电路仿真器,使用C++编写,支持直流、交流、瞬态和噪声分析。 Xyce

Xyce是由美国桑迪亚国家实验室开发的高性能电路仿真器,主要用于大规模电路的仿真,使用C++编写。 CirSim

CirSim是一个基于C++的电路模拟器,虽然不如上述工具那样知名,但也是一个值得探索的选项。 GTKWave

虽然主要是一个波形查看器,但GTKWave可以与电路仿真器配合使用,进行信号分析和可视化,使用C++编写。 LTspice

LTspice虽然是使用C语言编写的,但其用户界面和一些后处理工具可能涉及C++,是一个非常流行的电路仿真软件,尤其擅长电源电路的分析。 EveryCircuit

EveryCircuit是一个移动应用和网页应用的电路模拟器,使用C++作为其后端的一部分,提供直观的电路设计和分析功能。 Proteus

Proteus是一个商业电路仿真软件,包含ISIS(原理图输入系统)和ARES(PCB布局系统),使用C++进行一些后端处理和工具开发。 Multisim

Multisim是另一个商业软件,用于电路仿真和分析,虽然其核心可能使用其他语言,但其定制和插件开发可能涉及C/C++。 GRC

GNU Radio Companion是一个图形界面工具,用于构建和仿真数字信号处理系统,使用C++和Python。 Scilab

Scilab是一个用于数值计算的开源软件包,可以用于信号分析和处理,支持C/C++接口。 Octave

Octave是一个与Matlab兼容的数值计算环境,可以用于信号分析,支持C/C++代码调用。 Simulink

Simulink是MATLAB的一部分,用于建模、仿真和分析动态系统,虽然主要是MATLAB环境,但支持C/C++代码生成和接口。 VHDL/Verilog Simulators

虽然VHDL和Verilog是硬件描述语言,但许多仿真器(如ModelSim、VCS等)都支持C/C++接口,用于系统级的信号分析和验证。 其实基于C/C++做的东西很多,比如我们基于JAVA/PHP/GO/NODE/RUST做一个小程序电商系统,都会用到mysql/redis/linux操作系统,它们也是C/C++.ASM做的,可以说C/C++/ASM是互联网应用的核心基石。 ————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/m0_54740405/article/details/140436283