嵌入式linux系统应用非常广泛,涵盖各行各业,基于ARM、mips等微处理器架构的硬件平台。基于嵌入式linux系统的设备已经深入生活中各个角落,随处可见。
我们常说的嵌入式linux系统,其实与电脑端运行的linux系统本质上是一样的,都是使用的linux内核,相同的文件系统目录结构。区别在于嵌入式linux系统多少经过裁剪的,可能在操作时你会发现,有些命令不支持,或者有些命令的个别参数不支持!还有就是内核的功能也有裁剪。
嵌入式linux系统多用于定制开发专用设备,功能可能比较固定,对于不同的行业,根据需求对软硬件进行裁剪选配,这也是嵌入式linux系统广泛应用的特点之一。
C语言即可入门
嵌入式linux开发,大多是是使用C或者C++,底层内核代码大部分是C语言实现,驱动代码也是C语言,内核提供的系统API都是C语言接口,对于会C语言编程的同学来说,入门还是很容易的。
命令行
关于linux命令行;使用linux系统,就少不了与命令行打交道,其实命令行在linux开发中,是与系统沟通的最主要方式!所以需要去熟悉常用的命令,常用的并不多,经过一段时间使用也很容易掌握,这些命令在PC端和设备端基本上是一样的,比如:文件/目录操作、网络配置、磁盘管理等;这些命令也都是C语言实现的,在嵌入式linux系统中,这些命令都来自于busybox(工具集),感兴趣可以去busybox里看看命令的实现!代码很简洁,命令的设计也体现了linux设计思想:简单;一个命令只完成一个功能,通过不同的命令相互组合,就可以实现复杂的功能!
网络
说到linux不得不提的是其强大的网络功能,所以对于需要用到网络通信的需求方案来说,这是个很好的选择,如果使用单片机做网络通信,是比较麻烦的,TCP/IP协议栈都是个问题,linux有完整的网络通信功能,而且很容易加上WIFI、4G等通信方式。
远程运维
基于网络,嵌入式linux系统很容易实现远程运维,可以通过内网穿透技术、或者基于ssh2协议实现远程跨公网访问设备,这对于开发人员测试、调试、升级、问题查找等很方便;远程传输文件也很方便,可以使用ftp、scp、wget、xmodule等方式。
成本
随着技术发展,芯片的价格也在不断下降,嵌入式linux系统硬件成本也在不断下降,使得其应用的更加广泛,对于简单的控制,还是单片机的市场。