底层编程大学
lowlevelprogramming-university
3/5
🧩 软硬件结合
已发布
项目简介
How to be low-level programmer
这是一个名为「lowlevelprogramming-university」的开源项目,本质上是一份面向初学者的底层编程自学路线图。项目的核心目标,是解决当前计算机教育中底层技能(如C语言、汇编、操作系统内核、硬件驱动等)逐渐被忽视的问题。作者本人是一位经验丰富的底层开发者,他借鉴了知名的「google-interview-university」项目结构,将自己多年的学习与工作经验整理成一份系统化的指南,帮助那些想成为底层程序员或Linux内核工程师的人找到正确的入门路径。
标签
项目特点
**系统性路线图**:从理论到实践,从硬件到内核,提供清晰的进阶路径。
**精选资源**:推荐经过验证的书籍、在线课程和开源项目,避免信息过载。
**强调动手**:鼓励读者通过实现项目(如8086硬件套件、C语言项目)来巩固知识。
**多语言覆盖**:涵盖汇编(x86/ARM)、C语言和Rust语言的学习资源。
**开源社区驱动**:项目本身是开源的,并支持多语言翻译(如中文、韩文、日文等)。
技术规格
| 目标领域 | 底层编程、系统编程、嵌入式开发、Linux内核开发 |
|---|---|
| 核心语言 | 汇编(x86/ARM)、C、Rust |
| 理论基石 | 计算机体系结构、操作系统 |
| 应用方向 | 硬件设计、固件开发、Linux内核与设备驱动、其他系统软件 |
| 学习方式 | 自学为主,结合在线课程、书籍和项目实践 |
| 项目状态 | 只读(因垃圾信息过多) |
项目资源
GitHub仓库
Google Interview University
OSSU Computer Science
CS401: Operating Systems (saylor.org)
8086 Assembly Programming with emu8086
64bit Assembly Programming
Learning Assembly for Linux-x64
C Programming: A Modern Approach
The C Programming Language
Is Parallel Programming Hard?
C Project Based Tutorials
Build Your Own X
Michael Abrash’s Graphics Programming Black Book
Framework and Plugin Design in C
The Rust Programming Language
Rust by Example
Programming Rust, 2nd Edition
Exercism Rust Track
Easy Rust
Let's Get Rusty YouTube Channel
Rust for Linux
SICP Exercises (by author)
ARM Architecture Reference Manual
Computer Organization and Design (MIPS Edition)
Computer Organization and Design (ARM Edition)
Computer Organization and Design (RISC-V Edition)
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| 8086微处理器套件 | 1 | — | 用于学习硬件设计,理解物理内存映射设备 |
| Arduino套件 | 1 | — | 用于嵌入式系统入门实践 |
| 树莓派 | 1 | — | 用于Linux内核和驱动开发实践 |
| emu8086模拟器 | 1 | — | 用于8086汇编编程学习 |
| NASM汇编器 | 1 | — | 用于x86-64汇编编程 |
| GCC编译器 | 1 | — | 用于C语言编程 |
| Rust工具链 | 1 | — | 用于Rust语言编程 |
| Linux操作系统 | 1 | — | 用于内核开发和驱动开发 |
能力画像
⚪ 记忆与知识检索: 3/5
🔵 逻辑推演: 4/5
⚪ 表达与交流: 2/5
⚪ 感知与观察: 2/5
⚪ 数理与计算: 4/5
⚪ 动手与操作: 4/5
⚪ 狂热与坚持: 5/5
⚪ 创造与创新: 3/5
视频
所需技能
🔧 **动手能力**:需要搭建硬件套件(如8086微处理器套件)、焊接电路、使用Arduino和树莓派等嵌入式设备进行实践。
💻 **编程能力**:需要掌握汇编语言(x86/ARM)、C语言和Rust语言,能够编写和调试底层系统代码。
⚡ **电子电路**:需要理解计算机体系结构、操作系统原理,以及硬件与软件之间的交互(如内存映射、中断、总线等)。
适用场景
希望系统学习底层编程(从硬件到内核)的初学者或转行者。
对计算机体系结构、操作系统、Linux内核有浓厚兴趣的开发者。
希望提升C语言和汇编语言编程能力的软件工程师。
准备从事嵌入式系统、固件开发或系统软件开发的求职者。
对Rust语言在系统编程中的应用感兴趣的学习者。