1. 基础:
shell编程、C编程、vim编辑器、gcc编译器、gdb调试器、make工具、库;
文件操作、标准输入输出、界面设计、进程、信号;
进程间通信IPC--管道、消息队列、共享内存、信号量,网络编程;
2. 内核:
进程管理与调度、系统调用、内核数据结构、中断处理;
内核同步机制、定时器、时间管理、内存管理;
虚拟文件系统、块I/O、进程地址空间、页高速缓存和页回写;
设备与模块、调试、可移植性;
3. 系统移植:
嵌入式环境搭建:虚拟机、交叉编译工具、超级终端、加载工具、NFS;
BootLoader移植、内核裁剪与移植、嵌入式文件系统制作;
4. 应用开发
---------------------------------------------------------------------------------
编译:compile、 Make、 Build :
compile :只编译选定的目标,不管之前是否已经编译过;
Make :编译选定的目标,但只编译发生变化的文件,减少重复劳动;
Build :是对整个工程进行重新编译,会生成发布包;( compile+link )
协程:是一种用户态的轻量级线程,协程的调度完全由用户控制,协程拥有自己的寄存器上下文和栈,协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来时,恢复先前保存的寄存器上下文和栈,直接操作栈基本没有内核切换的开销,可以不加锁的访问全局变量,所以上下文的切换非常快;
线程由操作系统控制,协程由程序自身控制;