“师傅领进门,修行在个人”。Github上一位拥有10年底层开发经验的老程序员gurugio,整理了一套适合嵌入式或底层开发(Low-Level Programming)的程序员入门指导。来帮助众多的初学者成为一名初级的底层开发程序员和Linux内核工程师。
他在底层开发拥有超过10年的从业经验,一直从事以下的工作:
80x86汇编编程
硬件设备与Atmel芯片和固件
Unix的C语言系统编程
Linux中的设备驱动程序
Linux内核:页面分配
Linux内核:块设备驱动和md模块
一、什么是底层开发?
底层开发是非常接近机器的编程,使用底层开发语言(如C或汇编)。这与使用高级语言(例如Python,Java)的程序员进行编程不同。
维基百科:底层开发
系统编程与底层开发的一个非常接近的概念。该页面包括系统编程中未包含的硬件设计和固件开发。
维基百科:系统编程
系统编程包括从硬件组件到Linux内核的内容。这里你能通过文档落得理论基础,但一页文档永远不会覆盖所有层的细节,因此本文档的目的是作为底层开发的起点。