Open-source project
SummerGift/EmbeddedSystem avatar
SummerGift/EmbeddedSystem

SummerGift/EmbeddedSystem: A Chinese-Language Knowledge Repository, Not a Framework

:books: 计算机体系架构、嵌入式系统基础与主流编程语言相关内容总结

711 stars154 forksJupyter NotebookMIT

At a glance

What is it?
The repository is a long-running collection of embedded systems notes, spanning ARM, RTOS, Embedded Linux, machine learning and six programming languages. It is closer to a personal curriculum than a library you install, and its value depends on whether its structure matches how you learn.
Who is it for?
Adopt this repository as a reading list and directory index if you already work in embedded systems and read Chinese, or if you want a map of topics (ARM, RTOS, Embedded Linux, compilers, machine learning) that someone else has already organized. Do not adopt it if you need an installable library, an English-language resource, or a course with exercises and graded feedback.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 134 days ago.
What is it written in?
Mainly Jupyter Notebook, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What problem this repository actually addresses

The README frames the problem in terms of scope rather than tooling. The author argues that treating embedded systems as only microcontrollers, ARM and FPGA work is too narrow, and quotes a colleague's remark that an iPhone is an embedded ARM running an OS and CUDA can be understood as a form of heterogeneous embedded computing. From that premise, the repository collects material across computer architecture, embedded fundamentals, machine learning, programming languages and tooling. The intended reader is someone who already has some exposure to embedded work and wants a broader map, not a beginner looking for a single guided path. The README is explicit that the content mixes the author's study notes, habits from daily work, and material collected from other sources. That mixture is the honest description of what you get: no editorial standard is claimed, and none should be assumed.

The directory layout is the product

There is no build system, no package manifest and no entry point. The repository is organized as top-level directories, and the README lists them: Articles, Arm, Network, RTOS, Linux, MachineLearning, C, C++, Python, Java, JavaScript, Go, Gist, Tools, Math, DataStructure and Compiler. Each of those is a topic area rather than a module. The primary language reported for the repository is Jupyter Notebook, which suggests that a meaningful share of the material is explanatory notebooks rather than compiled or runnable code. That distinction matters when you evaluate it: a notebook can demonstrate a concept, but it does not give you an API to call. The README also points to a figure at Articles/figures/architecture.png used to illustrate the computer system abstraction layers. If you want to know what a given directory contains, the only reliable method is to open it, because the README gives names and nothing more.

The stated learning thesis, and where it strains

The README makes a specific argument about how embedded engineers should be trained. It says electronics graduates typically move from the machine level (microcontrollers, computer organization) to the language level (C, Python) and then to data structures and algorithms, and that this route has a serious flaw: you end up unable to explain why things work, only that they do. The proposed correction is a deeper grounding in computer organization, with the README recommending Computer Systems: A Programmer's Perspective by Randal E. Bryant and David R. O'Hallaron, and a MOOC course on computer systems fundamentals taught by Professor Yuan Chunfeng on the icourse163 platform. The author also states having designed and implemented a simple 16-bit CPU, and argues that knowing how a few specific CPUs are used matters less than understanding computer organization and architecture across x86, ARM and RISC-V, because that transfers to GPUs, TPUs and NPUs. The thesis is coherent. The strain is that a repository of collected notes cannot itself deliver the structured grounding the thesis demands. It can point at the books and courses that do.

Getting it onto your machine

There is nothing to install. The README documents no setup command, no dependency file and no configuration keys, and no releases were retrieved for the repository. The practical way to use it is to clone it and read the directories that match your current gap:

git clone https://github.com/SummerGift/EmbeddedSystem.git cd EmbeddedSystem

From there, the README's own index is the navigation aid. If you want the architecture overview, it lives under Articles, with the figure at Articles/figures/architecture.png. If you want embedded fundamentals, the relevant directories are Arm, Network, RTOS and Linux. Language material sits under C, C++, Python, Java, JavaScript and Go. Theory sits under Math, DataStructure and Compiler. Tooling notes are under Gist and Tools. Because the repository is listed as active and the last push is dated 2026-05-05, a git pull will bring in whatever has been added since your clone. That is the entire operational surface: clone, pull, read.

The MIT licence and what it does not cover

The repository is MIT licensed. That permits reuse, modification and redistribution provided the copyright notice and permission notice are retained, and it disclaims warranty. One practical caveat follows from the README's own description: it says part of the content is collected from various sources. The MIT licence covers the repository as distributed, but it does not automatically resolve the provenance of third-party figures, translated excerpts or course material that may sit inside individual notes. If you plan to republish or adapt substantial portions rather than read them, check the specific file. This is not legal advice; it is a reason to look before you copy.

Where it is the wrong tool

The failure mode is straightforward: this is not a library, a reference implementation or a course with exercises. If your problem is that you need a working RTOS port, a driver, or a tested code snippet you can drop into a build, the repository does not promise that and the README does not claim it. The README's own framing of debugging is telling. It recounts a conversation with a colleague who said debugging is mostly thinking, and then draws on the book How to solve it to argue that fixing a bug resembles solving a mathematics problem, and that engineers should study the motivation behind a solution, not just the solution. That is a position about method, not a debugging toolkit, and it sets the register for the whole repository. Anyone expecting a toolbox will be disappointed. Anyone who wants to be pointed at the right mental model, and at the books that supply it, will find the framing useful. The material is also in Chinese, which the README and directory names make clear; an English-only reader gets little from it beyond the structure.

What a different kind of resource would give you instead

The natural alternative is a structured, exercise-driven course such as the computer systems fundamentals MOOC the README itself recommends on icourse163. The difference in approach is not quality but contract. A course sequences material, sets problems and provides feedback on whether you actually understood the abstraction layers the README cares about. This repository sequences nothing and grades nothing. It is a directory of notes whose coverage breadth is its selling point and whose depth is uneven by construction, since the README describes it as part study notes, part work habits, part collected material. A second alternative, for readers who want runnable embedded code, is a project repository with a build file and tests. That would give you something to execute; this gives you something to read. The three serve different needs, and the mistake is choosing this one when you needed either of the other two.

Editorial conclusion

Adopt this repository as a reading list and directory index if you already work in embedded systems and read Chinese, or if you want a map of topics (ARM, RTOS, Embedded Linux, compilers, machine learning) that someone else has already organized. Do not adopt it if you need an installable library, an English-language resource, or a course with exercises and graded feedback. Before relying on any single note, open the corresponding directory and check when it was last touched, because the repository has no releases, no versioning and no stated review process. The one thing to verify first is whether the specific topic you need has a substantive file behind it or only a folder name.

Official sources

  1. Issues
  2. License: MIT
  3. README
  4. SummerGift/EmbeddedSystem on GitHub
Community notes

Community notes