2. 如何学习Linux开发¶
2.1. 嵌入式Linux学习路线¶
我们立足于树莓派的开发方式,借鉴其一系列先进的设计理念和软件架构, 力求为电子爱好者提供强大、好用的DIY平台,方便用户实现各种天马行空的想法。 与此同时,所有的软件和芯片手册将全部开源, 为有志于从事嵌入式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系统移植,不过是用芯片公司团队做好的系统镜像, 自己复制粘贴一些文件,修改一些配置,然后重新编译安装到系统里面去,真正高阶的技能其实没学到多少。
2.1.2. 鲁班猫的教育理念¶
鲁班猫(LubanCat)是野火科技推出的Linux、Android卡片电脑系列品牌。 该系列卡片电脑硬件产品线丰富,操作系统适配度高,开源教材资料众多,应用开发简单。
凭借它优越的性能以及多产品线覆盖教育、商业应用、工业控制等领域,具备广泛的应用场景: - 卡片电脑:办公、编程开发,家庭娱乐、编程教育等 - Linux服务器:私有云、软路由、NAS、个人WEB服务器等 - 家庭智能化中枢:电视盒子、智能家居控制、传感器数据分析、安防监控等 - 工业化:电子广告牌、自动售卖机、机器人、无人机等 - 嵌入式开发板:加速嵌入式项目验证及开发
鲁班猫系列电脑从硬件到系统、教材、应用,都提供了丰富的资料和版本,通用性强:
硬件:具有不同性能的主控、外设接口、存储容量、板卡尺寸
系统:支持Ubuntu、Debian、Android等系统
教材:提供多套教材,覆盖纯应用层用户以及系统开发用户,如PythonQtAndroid应用开发,Linux系统使用与内核、驱动、镜像制作
应用:针对上层提供各种应用示例,如使用C/Python控制各式硬件,基于ROS机器人系统的应用开发
完善的开源资料,包括但不限于产品手册、系统源代码、原理图封装库、各式各样的高质量Linux开发教程等。 即使初入行业的嵌入式小白,也能根据我们的教程完成开发,而对资深的嵌入式老鸟,则能加速产品二次开发过程。