前言
本文内容为苏嵌培训时期的自己总结的学习重点,今天主要谈嵌入式的概述,什么是嵌入式,以及嵌入式与传统开发的区别等
首先第一个问题就是什么是嵌入式,简单而言就是为了特定的需求而存在的小型计算机系统。专业点就是以应用为中心,计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,体积,成本,功耗严格要求的专用计算机系统。
传统开发模式是由软硬件组成,写好的软件烧写到相应的硬件上,也就是说软件要适配相应的硬件,一旦硬件发生变化,软件也得跟着改变,这样就造成了软硬件之间的耦合度很高,即软件的可扩展性(可移植性)差。
嵌入式开发和传统开发最大的区别就在于,嵌入式开发在软硬件之间加了一层操作系统。软硬件互相访问要通过访问操作系统,然后由操作系统访问硬软件实现,这就很好的解决了软硬件耦合度高的问题。可以说嵌入式开发就是在已有的硬件上移植操作系统。
操作系统是一种系统软件,为软件提供一些库函数的接口(系统调用的接口),由函数操控硬件。在这个过程中,比如软件要使用硬件资源,只需要调用操作系统中的某某函数,而该函数是如何实现的,就是操作系统的工作。操作系统就是整个系统的管家,软件代表用户的话,用户需要什么服务就不需要自己亲自去连接硬件,交给管家即可。操作系统内有开源的工具和库,并提供多任务、以及网络等,相比于传统开发提高了开发的效率。
一个小知识点,安卓用了一段时间就会卡是因为安卓操作系统的内核是类Linux系统,是开源的,这就允许应用软件可以不断往里面加东西,应用软件占用过多的系统资源,从而卡顿。而苹果用的是类Unix的闭源的内核,因此不卡。
操作系统的核 心是内核,一个嵌入式操作系统由内核,shell命令行,GNU工具库,桌面环境,应用软件等组成。
一个操作系统壮大的必要因素是生态,也就是用户以及庞大的社区,这就是为什么国产操作系统无法取代安卓原因。如果想要取代,当初Linux取代Unix是通过兼容,也就是有可移植的操作系统接口如POSIX,现如今鸿蒙就是在兼容安卓。
这就要提到虚拟机,虚拟机是一种能够模拟硬件(pc)的软件,即可以实现在一个系统下装多个系统。有时候开发需要跨平台,这就要用到虚拟机
为什么嵌入式开发用的是Linux而不是Windows,因为Linux的软件包放在一起管理,用统一的方式安装,因此安装过程简单从而利于环境的搭建。并且Linux多用命令进行操作,命令相较于键鼠更快,因为无需界面以及渲染等,只需以字符串的形式出现占用的资源少,效率更高。
常见的嵌入式操作系统,要了解
Vxworks实时性(实时性是指要在规定时间点内完成任务)美军方航天局研发,不开源 WinCE Linux Lite os (华为) RT—Thread One Net(移动) Free RTOS等
零散知识点:
1. GPL协议,享受开源的同时,在此基础上做出的改进等也要开源
2. 驱动,就是用软件来驱动硬件,(翻译硬件产生的信号)
3. 系统镜像是指一个打包好的操作系统的文件
4. Ubuntu是Linux的一个发行版
5. Linux 命令大全 | 菜鸟教程 Linux命令手册
6. ubuntu Ctrl+Alt+T调出命令行
总结
以上就是今日所学,希望能对大家有所帮助