1.1. Linux的应用场景¶
对于一般用户来说,因为经常接触PC、手机,可能会知道Windows、iOS、Andorid系统,
但对Linux系统却知之甚少,这是因为Linux的应用场景主要是服务器和嵌入式设备,
在直面消费者的桌面系统领域并不占据优势。不过,从某种程度来说,
Android系统也属于Linux的一种,毕竟它是基于Linux内核进行开发的,
只是由于它规避了Linux的开源协议,不被Linux社区接纳。
Linux的应用场景主要是由其特点决定的,其特点主要有:开源、安全、稳定、网络功能强大、
支持多种不同平台的处理器。
1.1.1. 服务器¶
服务器是指提供计算服务的设备,如网页服务器、文件服务器、数据库服务器、邮件服务器、
域名服务器和代理服务器等。可以说我们在互联网上的所有操作,背后都是在跟服务器打交道。
例如我们访问网页、网上购物、微信聊天、运行网络游戏、观看在线视频等一切需要联网才能正常进行的应用,
其背后都由服务器作为支撑。
服务器的实体各种各样,小到单板电脑,大至计算机集群,实际上你正在使用的个人电脑,
安装上对应的服务软件,通过网络给其它计算机提供资源,它也就变身成了一个服务器。
服务器的本质也是计算机,只是通常来说它们没有显示器,不需要鼠标键盘。
在商业应用中,在服务器运行的操作系统主要有Linux、Windows和UNIX,其中由于Linux系统开源、
使用成本低而且安全稳定,所以Linux在服务器使用的系统中占据了绝大多数。
感兴趣的读者可以访问Netcraft 网站 http://www.netcraft.com,
可以查询到其它网站是运行在什么操作系统上的,具体见下图。
可以查询到绝大部分知名网站都运行在Linux系统之上,包括微软官网:www.microsoft.com。
而国内的一些银行官网则通常使用Windows Server系统。
特别地,超级计算机也是特殊的服务器,目前全球TOP500的计算机运行的操作系统都是Linux。
1.1.2. 嵌入式设备¶
嵌入式设备是Linux系统的另一个主战场,这也是本书主要讲解的Linux应用方向。
嵌入式设备的定义比较模糊,不过基本上把PC、集群服务器、超级计算机排除后,
具有处理器(包括微控制器等)的,按设定程序运行的电子设备大都可以归类为嵌入式设备。
嵌入式设备种类非常丰富,包括日常生活中的手机、智能手表、各种家电、玩具、路由器、车载电子系统,
工业应用中包括电力系统监控、环境监测、工业机器人、智能快递柜、手持POS机、
地铁闸机系统、停车场管理、卫星、月球车等。
从嵌入式设备的种类就可以知道它们的应用场景是碎片化的,
它们内部的电子系统一般会针对设备的功能做专用的控制。部分嵌入式设备不使用操作系统;
部分使用freeRTOS等实时操作系统;而另一些高性能的嵌入式设备使用Linux系统。
使用Linux系统的的嵌入式设备,往往是看中Linux系统的如下特性:
嵌入式设备使用的处理器多种多样,而Linux系统支持运行在x86、ARM、PowerPC、
MIPS等不同平台的处理器上。
由于代码开源,可裁剪,非常适合针对特定场景进行定制,裁剪后的Linux内核加上文件系统可以做到50MB以内,
这能够节省硬件资源和成本。
对各种编程语言、类库、编程框架支持良好,如python、java、C++等编程语言,
Opencv、TensorFlow等类库和框架,使用freeRTOS等实时操作系统往往很难做到直接支持。
应用程序丰富,如音乐播放器、数据库等现成的应用可以直接使用。
网络功能强大,使得编写需要联网的应用程序非常方便。