诸如音乐播放器、视频播放器、恒温器等提供特定用途的系统都是嵌入式系统。

你可拿它跟桌面或服务 器系统(能做各种事情但并不精于某一项的系统)对比一下。

你可以认为嵌入式系统是与分布式系统相反的,它不但没有打算扩展系统的规模,反而总是希望缩减 它,以放进一个小的设备中。当今最流行的嵌入式Linux应该是Android了。

嵌入式系统通常需要由特定的硬件跟软件组合而成。比如说,你可以为PC添加足够的网络硬件以及配置 正确的网络环境,来使其成为一个无线路由器。

但更常见的做法是买一个抛除多余硬件而只保留必要硬 件的小型专用路由器设备。例如,路由器与桌面机器相比需要更多的网络端口,而完全不需要视频或音 频硬件。

有了定制的硬件之后,还要有定制的软件,例如定制操作系统和用户界面。

OpenWRT就是一个这样的Linux定制发行版。

随着越来越多的小型硬件的面世,嵌入式系统也越发受到关注,尤其是能将处理器、内存和外围设备集 成在一小块空间上的单片系统。

如Raspberry Pi和BeagleBone之类的单板系统就是这种设计,它们可选择 一些Linux变种来作为操作系统。

这些设备提供容易接收的输出以及传感器输入,可用Python等语言来操 作,使得它们能广泛用于原型设计和小工具的制作。

各个嵌入式Linux的差异在于从服务器/桌面版保留了多少功能。

配置有限的小型设备必须将基本功能以外 的东西拿掉,以节省空间。

也就是说,甚至可能连shell和一些核心工具都要由BusyBox来提供。

这些系统 与完整安装的Linux有很大不同,而且你可能会在上面看到一些老旧的软件,如System V init。

供嵌入式系统使用的软件,其开发平台一般还是在桌面环境上。

而一些更强大的设备如Raspberry Pi则拥 有更丰富的存储空间和更强的能力来运行许多开发工具。

抛开不同的部分,嵌入式设备也具备本书描述的Linux基因:内核、设备、网络接口、init、用户进程。

嵌 入式的内核跟普通的内核相近(或者说一样),只是很多功能被屏蔽了。

从底层越往上层走,才会越觉 得它跟一般的Linux不同