学嵌入式为何要学习Linux呢?你有没有想过呢?
本次我用大白话和你们讲一下。
我们就用以上两点来做解释。
1、嵌入式通常用的构架是哪些?
ARM构架
对,嵌入式有一个说一个,都是这个构架,这个构架有那么几个特征:
以上几个特征注定他在嵌入式的霸权,嵌入式须要哪些?无非就是两点:小、方便。
如今你去考虑一个问题,我们去直接操作这个构架的指令,是不是会很麻烦?就是简单的USB驱动都是问题吧,接出来就谈谈Linux存在于嵌入式的意义吧。
2、Linux在这个构架基础做了哪些?
ARM在没有操作系统时比喻为一台操作复杂的客机linux系统编程,它上面有各类各样的设备,例如并口USB显示屏输出显存电子硬碟嵌入式linux会被淘汰吗,你写的程序要运行linux游戏,肯定须要CPU从硬碟读取数据到显存中来处理数据,你要使用显存或硬碟不是你想用能够用的,都须要根据硬碟和显存的操作方法来使用硬碟和显存读写擦除的,这个方法是一个十分复杂的时序。
然而如今ARM的SOC(哪些是SOC可以百度,你理解为CPU就好了)都把这种复杂时序寄存器化了。
哪些是寄存器化?也就是你只须要控制ARM里的FRS寄存器就可以操控这种外设读写擦除等。并且这个过程仍然十分特别麻烦,这时侯linux操作系统登场,它把上面好多复杂寄存器操作都打包成了一个一个API,哪些是API?就是一个一个功能插口,例如你须要读写硬碟,你调用API小程序按1读,按0写,按2删掉,这是不是给你在操作系统之上写应用程序提供了插口了?你在应用系统之上写的这些程序都可以调用各类API插口完成你想要的应用程序。
应用程序就是构建在操作系统之上的程序,其实操作系统还有进程和显存资源分配管理等,例如显存的地址资源管理,虚拟地址映射等,总得来说,把linux系统比喻为一艘大军舰,你可以借助里面各类资源,它本身也有好多你看不见的东东在运行,例如军舰在航行,海下边的螺旋桨转动着,怎么转动的?这种就是人家写好的操作系统内核了,你想要晓得这种内核怎么运动的,就要敲开船舱渐渐研读人家操作系统内核代码了,这样你能够更改移植它。
所以操作系统在硬件和应用程序之间做中间人。例如看影片的播放器软件,首先给操作系统命令嵌入式linux会命令汰吗,之后操作系统驱动屏幕和扬声器。