嵌入式导论——我们需要学些什么

嵌入式导论——我们需要学些什么

在正式开始嵌入式的相关知识之前,我们不妨问自己几个问题,什么是嵌入式?学习嵌入式需要掌握哪些知识?
在这里插入图片描述

一、我们需要学什么

以下几个方面的知识在嵌入式的学习中尤为重要:
1、 标准C语言程序设计(Unix系统的产物)
2、 C++语言程序设计
3、 数据结构与算法
4、 UNIX环境编程
5、 数据库
6、 QT图形界面
7、 ARM原理(含单片机 可安装操作系统)
8、 Linux系统移植
9、 驱动
而其中的第1-5条是重中之重,在嵌入式的学习过程中,大家需要格外注意。

二、什么是操作系统

作为一个学习嵌入式的学生,大家一定要有一个概念,虽然初期大家写的单片机功能非常简单,但是,后期的大量单片机实际上是在操作系统的基础上运行的。
那么现在我们就来回答这个问题,操作系统是什么?
简而言之,操作系统就是可以运行在硬件上的代码,其目的便是使硬件可工作。
举个大家比较熟悉的例子,控制键盘的输入、显示器的现实,这些都是操作系统管辖的范围。在操作系统的基础上编写程序,会让我们的工作更加便捷高效。
硬件<—操作系统<—软件(应用层)

三、常见的操作系统

PC端:
1、Windows(微软)
2、Unix(服务器、学术研究)
3、Linux(类unix)
4、Mac OS(Apple unix系统的一个分支)
5、鸿蒙(华为)
6、红旗(中科院)
7、麒麟(中文版的Unix)
在这里插入图片描述
手机端:
1、IOS
2、Android
3、塞班(诺基亚)
4、WinPhone(诺基亚+微软)
注:手机发展至今,几乎可以认定为最大的嵌入式产物,以至于被单独归为一类。
在这里插入图片描述

四、为何Mac OS没有病毒?

大家一定有有注意到,Windows系统经常性地需要安装补丁,需要频繁地查杀病毒,可是Mac OS似乎恰恰相反,仿佛以安全著称。可是这究竟是为什么呢?
首先,我们需要了解的便是“开源” 系统和“闭源”系统的区别。
对于“开源”系统,任何人都可以看到其内核代码,全世界的程序员都可以共同查找系统漏洞,并且加以修补。
而“闭源”系统,外部人员无法看到其内核代码,只有该软件公司的内部人员可以对漏洞进行修复。
所谓病毒,就是针对系统漏洞而书写的恶意代码。那么,在这样的情况下,如果一个人要针对“开源”系统进行攻击,便需要发现世界上所有程序员都没有发现的漏洞,其难度相当之大,而对于“闭源”系统的攻击,只需发现软件书写公司未发现的漏洞,其难度要小得多。
Mac OS是Unix系统的分支,有开源内核,因此,相较于Windows(闭源内核)具有更高的安全性。
在这里插入图片描述

五、“棱镜门”与华为的“安全问题”

由于“闭源”系统,大家看不到源代码,系统的制造公司完全有能力在自己的系统中植入后门软件,以窃取用户的个人隐私。
其中最具有代表性的便是美国(Windows)爆发的棱镜门事件。
而华为同样有能力做出类似的事情,美国以小人之心度君子之腹,便很自然地觉得华为的设备存在“资讯安全问题”。
在这里插入图片描述

六、什么是嵌入式?

关于嵌入式的定义,在网上可以查到各种各样的说法,这里,我就依据自己的理解进行一些描述。
嵌入式是一种可编程的设备,通过内部芯片的编程,使得该设备具有一定的功能。
其中,手机就是一种非常普遍,且功能强大的嵌入式产物。

七、虚拟机

在学习嵌入式的过程中,我们需要在虚拟机上编程。
虚拟机是个软件,可以在这个软件上安装操作系统,也因此。我们可以更方便地在Unix系统环境下进行编程。
以下是一些搭建了UNIX操作系统 的虚拟机:
1、ubuntu 乌邦图
2、rethat 小红帽
3、debian 大便(对,你没有看错)
4、centos
5、Solaris
早期的Unix系统不具备图形界面。图形界面(Desktop)非常损耗性能,因此,在很多追求性能的场合下,我们不使用图形界面。
关于Linux的基础命令使用,我们将在下一篇中进行介绍。
在这里插入图片描述