嵌入式按照通俗的话来说,就是在已有的硬件上移植操作系统。这样的解释大家可能不太明白,那我再换一个角度解释。单片机大家应该都知道吧,单片机的工作模式是利用软件编程控制硬件,实现一些功能。嵌入式是在软件与硬件之间加入一个操作系统。两者的区别如图所示:
单片机: 软件 —— 硬件
嵌入式: 软件 ——操作系统——硬件
二者的区别就在于,嵌入式有一个操作系统。
知道单片机与嵌入式的差别是有无操作系统,那我们就应该知道以下几个问题:
什么是操作系统?
有无操作系统,有什么区别?
大家不要急,容我慢慢道来。
1.什么是操作系统?
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
简单地说,操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。
2.有无操作系统,有什么区别?(这也是我们为什么引入操作系统的原因)
我们知道,单片机通过软件直接控制硬件。因此就会出现一个问题:当用户想在另一个新的硬件平台实现相同的功能。
软件程序一定会发生改动。
软件开发者必须要先了解这个新的硬件平台,才能进行软件编程。
综上两点,单片机有以下两点缺点:
软件开发者必须懂硬件,降低了开发效率。
软件移植差。(不要问我什么移植性,自己百度去)
嵌入式是通过操作系统,间接控制硬件。因此当硬件平台发生改变,但是依旧与操作系统兼容,那么软件程序就不会改变。并且软件开发人员不需要了解硬件,只要学会操作系统中功能的调用,极大地提高了效率。因此嵌入式引入了操作系统,相比于单片机有以下几点优点:
软件移植性好。
软件开发人员不需要懂硬件,极大地提高了开发效率。
操作系统提供了很多开源的软件,工具,库。
可以实现多任务。(所谓的多任务就是快速切换)。
操作系统中有一些网络协议,因此嵌入式是可以上网的,提供了大量的网络资源,实现远程控制。
嵌入式也不是完全没有缺点的,那就是它的价格昂贵。因为嵌入式的硬件质量比单片机的质量要高的多。比如你在一个51单片机上移植一个操作系统,那是无法工作的,因为硬件跟不上。
3.移植操作系统的步骤有哪些?
移植 bootloader
裁剪和编译内核
制作文件系统
4.什么样的系统可以被称作嵌入式系统?
我们知道嵌入式是进行系统开发的一种技术,那么它就必须满足:开源的代码或提供使用的方法。
ps:转自https://blog.csdn.net/xyd2017/article/details/69372349