2.如何学习linux开发¶
2.1.1. 适合哪些用户群体¶
嵌入式linux学习者大体可以分为两类,一类是进阶用户,主要指已经有大量mcu工作经验的开发者,
他们希望进阶到更有难度,薪资更高的mpu开发中去。另一类则是学生用户,
主要是刚开始接触嵌入式开发的大学生群体。
对于前者而言,出于工作的压力和升职加薪的需求,通常会比较关注课程学习的深度,关注学习完成后,
能不能顺利地利用学习的知识来跳槽升职加薪。但是对于后者,他们没有行业经验,没有工作压力,
更加注重的是课程的有趣性,功能性,想知道通过这个课程我有能力做出什么东西来。
本教程兼顾两种用户的需求,首先,最大程度上降低入门门槛,这主要指两个方面,
一方面简化开发环境的搭建,尽可能避免各种各样的软件版本问题,以及各种电脑系统的兼容性问题。
另一方面是先学习嵌入式linux的高频技能,所谓高频技能,
就是指在大部分实际开发工作中都较为频繁地使用的技能。其次,是尝试使用这些高频技能去开发一些炫酷、
自己感兴趣的产品,进一步去了解嵌入式linux各式各样的产业,体验嵌入式linux在人类实际生活中的影响。
最后,在对嵌入式linux有整体了解后,根据自己的个人兴趣和实际工作需求,
选择嵌入式linux的某一个方面深入研究。
通常,国内传统的嵌入式linux学习路线大体为:
linux基本操作+c语言进阶
ARM裸机开发
linux系统移植(u-boot移植、kernel移植、构建根文件系统)
linux驱动开发
linux应用编程
项目实战
按照上面的学习路线走下来,一方面,需要耗费巨大的学习精力,哪怕全天学习,一般也要4个月以上的时间。
这对于还没有确定职业方向的学生用户,想玩嵌入式linux的门槛太高。
另一方面,不贴合进阶用户实际工作需求,因为大部分课程在设计的时候充斥了许多低频技能,
这些技能在大部分嵌入式linux工作中很少用上(比如ARM裸机开发)。
而当工作中真正遇到系统性能问题的时候,往往又没有能力去实际解决问题,
因为你所学习的linux系统移植,不过是用芯片公司团队做好的系统镜像,
自己复制粘贴一些文件,修改一些配置,然后重新编译安装到系统里面去,真正高阶的技能其实没学到多少。