【Ubuntu】基于C++实现人脸识别( 二 )


本节主要介绍物联网的技术体系 。
技术体系
由于现在不管是电脑、手机,还是嵌入式产品,它们的功能不一样、外观不一样、使用领域也不一样,但它们总归来说都属于计算机,所以在技术上来说很多东西都是相通的 。所以先来看一下“计算机分层” 。一般一个计算机系统都是由三层构成,即硬件、操作系统、APP,如下图示 。
图1-1 计算机分层
硬件:如屏幕、摄像头等 。
操作系统:为软件提供一个可以运行的平台,如、iOS、安卓系统、等 。也就是为上层应用开发者提供API( , 应用接口),可以帮助软件开发者快速实现一些常见的功能而无需关心底层调用原理,如上网、屏幕显示等功能 。
APP:用于实现特定的功能,如微信、QQ、淘宝等 。
注:一些简单的计算机系统也可以不使用操作系统,如单片机(stm32、51…),优点是功耗低、价格便宜,但一般难以胜任复杂项目,只能应用于一些简单的项目,如共享单车等 。
在所有操作系统中,“Linux”常用于物联网、服务器领域 。“Linux”开源、轻量化、可裁剪,是一个很稳定的系统,所以常用于嵌入式开发 。虽然随着物联网的普及和发展,也出现了一些专门用于物联网领域的操作系统,如亚马逊推出了、阿里推出了AliOS 等,但全球范围内,还是Linux最常用 。下表给出了一些常见的软硬件选择 。
表1-1 不同领域下的软硬件选择
领域硬件(CPU)系统
PC端
Intel、AMD
、MacOS...
移动端
ARM
、iOS、...
物联网
ARM
Linux、、AliOS ...
职业提醒:“单片机开发”也是“嵌入式开发”的分支,但不建议将“单片机开发”作为长期的职业规划 。这是因为单片机的知识体系很浅,学一些C语言、接口协议就可以去做开发了,随着年龄的增长很容易遇到技术瓶颈,也就是没有新东西可学了,所以自己的技术、薪资就会停滞不前,于是当体力拼不过年轻人的时候就会出现“35岁危机” 。
在选择行业时一定要选择随着自己的年龄增长,能够不断学习、不断进步的行业 。所以若想从事嵌入式行业,还是建议去学一下大型的嵌入式操作系统,比如Linux 。
现在说完“计算机分层”和“操作系统”后,就总结一下根据“计算机分层”得到的嵌入式技术体系:
图1-2 技术体系
岗位要求
真正从事这个行业的话,一些具体的岗位要求都是什么呢?
学习方法
1.3 Linux开发环境搭建
一般进行嵌入式开发时都使用Linux系统,如 。因为不同的操作系统一般是不兼容的,所以进行嵌入式开发时会选择嵌入式领域最常用的操作系统——Linux,方便后续进行移植,而不是 。所以本节就来搭建一下开发环境,也就是安装虚拟机 。
具体的安装过程可以参考我的博文“辅助笔记-安装.04.1虚拟机” 。
虽然版本不一致,但实测按照我的博文进行安装可以完成整个项目,并且我这属于最新版(2023年9月)的,还囊括了上网、更新源、设置中文等 。
虽然下也可以使用图形化界面,但是实际的嵌入式产品一般都不支持图形化界面,对于嵌入式开发者来说不能过度依赖图形化操作,而是使用命令行模式来进行开发,并且命令行开发更快 。
1.4 Linux基本使用
本节课学习一下Linux的简单常用指令:
1.5 网络配置
由于后续会安装很多软件包,所以一定要保证能上网 。要是能上网的话,本节课就不用听了 。
注:网络模式不重要,只要能上网就行 。换句话说,NAT模式也没问题 。
现在能上网了,就介绍一些可以下载、安装软件的命令: