诸如音乐播放器、视频播放器、恒温器等提供特定用途的系统都是嵌入式系统。
你可拿它跟桌面或服务 器系统(能做各种事情但并不精于某一项的系统)对比一下。
你可以认为嵌入式系统是与分布式系统相反的,它不但没有打算扩展系统的规模,反而总是希望缩减 它,以放进一个小的设备中。当今最流行的嵌入式Linux应该是Android了。
嵌入式系统通常需要由特定的硬件跟软件组合而成。比如说,你可以为PC添加足够的网络硬件以及配置 正确的网络环境,来使其成为一个无线路由器。
但更常见的做法是买一个抛除多余硬件而只保留必要硬 件的小型专用路由器设备。例如,路由器与桌面机器相比需要更多的网络端口,而完全不需要视频或音 频硬件。
有了定制的硬件之后,还要有定制的软件,例如定制操作系统和用户界面。
OpenWRT就是一个这样的Linux定制发行版。
随着越来越多的小型硬件的面世,嵌入式系统也越发受到关注,尤其是能将处理器、内存和外围设备集 成在一小块空间上的单片系统。
如Raspberry Pi和BeagleBone之类的单板系统就是这种设计,它们可选择 一些Linux变种来作为操作系统。
这些设备提供容易接收的输出以及传感器输入,可用Python等语言来操 作,使得它们能广泛用于原型设计和小工具的制作。
各个嵌入式Linux的差异在于从服务器/桌面版保留了多少功能。
配置有限的小型设备必须将基本功能以外 的东西拿掉,以节省空间。
也就是说,甚至可能连shell和一些核心工具都要由BusyBox来提供。
这些系统 与完整安装的Linux有很大不同,而且你可能会在上面看到一些老旧的软件,如System V init。
供嵌入式系统使用的软件,其开发平台一般还是在桌面环境上。
而一些更强大的设备如Raspberry Pi则拥 有更丰富的存储空间和更强的能力来运行许多开发工具。
抛开不同的部分,嵌入式设备也具备本书描述的Linux基因:内核、设备、网络接口、init、用户进程。
嵌 入式的内核跟普通的内核相近(或者说一样),只是很多功能被屏蔽了。
从底层越往上层走,才会越觉 得它跟一般的Linux不同