2. 如何学习Linux开发

2.1. 嵌入式Linux学习路线

我们立足于树莓派的开发方式,借鉴其一系列先进的设计理念和软件架构, 力求为电子爱好者提供强大、好用的DIY平台,方便实现各种天马行空的想法。 与此同时,所有的软件和芯片手册将全部开源, 为有志于从事嵌入式Linux行业者后续深入学习各种软件架构和驱动程序扫清障碍。

2.1.1. 适合哪些用户群体

嵌入式Linux学习者大体可以分为两类,一类是进阶用户,主要指已经有大量mcu工作经验的开发者, 他们希望进阶到更有难度,薪资更高的mpu开发中去。另一类则是学生用户, 主要是刚开始接触嵌入式开发的大学生群体。

对于前者而言,出于工作的压力和升职加薪的需求,通常会比较关注课程学习的深度,关注学习完成后, 能不能顺利地利用学习的知识来跳槽升职加薪。但是对于后者,他们没有行业经验,没有工作压力, 更加注重的是课程的有趣性,功能性,想知道通过这个课程我有能力做出什么东西来。

本教程兼顾两种用户的需求,首先,最大程度上降低入门门槛,这主要指两个方面, 一方面简化开发环境的搭建,尽可能避免各种各样的软件版本问题,以及各种电脑系统的兼容性问题。 另一方面是先学习嵌入式Linux的高频技能,所谓高频技能, 就是指在大部分实际开发工作中都较为频繁地使用的技能。其次,是尝试使用这些高频技能去开发一些炫酷、 自己感兴趣的产品,进一步去了解嵌入式Linux各式各样的产业,体验嵌入式Linux在人类实际生活中的影响。 最后,在对嵌入式Linux有整体了解后,根据自己的个人兴趣和实际工作需求, 选择嵌入式Linux的某一个方面深入研究。

通常,国内传统的嵌入式Linux学习路线大体为:

  1. Linux基本操作+c语言进阶

  2. ARM裸机开发

  3. Linux系统移植(u-boot移植、kernel移植、构建根文件系统)

  4. Linux驱动开发

  5. Linux应用编程

  6. 项目实战

按照上面的学习路线走下来,一方面,需要耗费巨大的学习精力,哪怕全天学习,一般也要4个月以上的时间。 这对于还没有确定职业方向的学生用户,想玩嵌入式Linux的门槛太高。

另一方面,不贴合进阶用户实际工作需求,因为大部分课程在设计的时候充斥了许多低频技能, 这些技能在大部分嵌入式Linux工作中很少用上(比如ARM裸机开发)。 而当工作中真正遇到系统性能问题的时候,往往又没有能力去实际解决问题, 因为你所学习的Linux系统移植,不过是用芯片公司团队做好的系统镜像, 自己复制粘贴一些文件,修改一些配置,然后重新编译安装到系统里面去,真正高阶的技能其实没学到多少。

2.1.2. 鲁班猫的教育理念

鲁班猫(LubanCat)是野火科技推出的Linux、Android卡片电脑系列品牌。 该系列卡片电脑硬件产品线丰富,操作系统适配度高,开源教材资料众多,应用开发简单。

凭借它优越的性能以及多产品线覆盖教育、商业应用、工业控制等领域,具备广泛的应用场景: - 卡片电脑:办公、编程开发,家庭娱乐、编程教育等 - Linux服务器:私有云、软路由、NAS、个人WEB服务器等 - 家庭智能化中枢:电视盒子、智能家居控制、传感器数据分析、安防监控等 - 工业化:电子广告牌、自动售卖机、机器人、无人机等 - 嵌入式开发板:加速嵌入式项目验证及开发

鲁班猫系列电脑从硬件到系统、教材、应用,都提供了丰富的资料和版本,通用性强:

  • 硬件:具有不同性能的主控、外设接口、存储容量、板卡尺寸

  • 系统:支持Ubuntu、Debian、Android等系统

  • 教材:提供多套教材,覆盖纯应用层用户以及系统开发用户,如PythonQtAndroid应用开发,Linux系统使用与内核、驱动、镜像制作

  • 应用:针对上层提供各种应用示例,如使用C/Python控制各式硬件,基于ROS机器人系统的应用开发

完善的开源资料,包括但不限于产品手册、系统源代码、原理图封装库、各式各样的高质量Linux开发教程等。 即使初入行业的嵌入式小白,也能根据我们的教程完成开发,而对资深的嵌入式老鸟,则能加速产品二次开发过程。