系统移植简单来说就是将准备好的内核(OS)移植到一台主机或者开发板中,类似于器官移植,将准备好的器官移植到人体中。
为什么需要系统移植?
没有内核的情况下,上层如果要控制硬件只能将C语言代码先编译成二进制文件,然后再烧入开发板中,相当于要由人来控制数据的存取地址,这就要求开发者具备一定的硬件知识。
如果有了内核,内核可以提供上层所需要的接口,同时也能控制硬件模块,实现了上层应用和底层硬件的解耦,应用层的开发者无需知道底层硬件是如何工作的,应用层只需要调用接口,OS 解析上层语言同时控制硬件,大大降低了开发难度。
系统移植的要求
系统移植讲究的是适配,不同处理器对应的汇编指令集也会有所不同,即便是处理器相同的,但是外设引脚连接不同,驱动代码也会不同。
Windows系统移植可以直接使用镜像,镜像可以理解为一个编译完的系统,但是Linux需要使用源码(还没经过编译),需要先经过配置,使其适配当前开发板,然后才能进行编译和安装。
Windows 装机 vs Linux 系统移植
Windows 装机
1、准备系统镜像(OS的安装包,是已经编译过的)
2、准备U盘启动盘(其实就是程序,用来引导系统镜像的安装)
3、BIOS选择启动方式(U盘启动)—— 电脑厂家固化在主板上的
硬盘启动、U盘启动(将系统安装到电脑的磁盘)
4、安装Windows驱动程序(装好系统以后,但是还没有跟硬件建立连接,驱动程序就是OS和硬件的桥梁)
5、安装Windows应用程序(建立OS和应用层之间的关系)
Linux 系统移植
1、准备Linux内核镜像、SD卡启动盘
2、通过拨码开关选择启动方式(SD启动,上电前,开发板上的拨码开关拨到某一边即表示对应启动方式)
3、通过SD卡中的引导程序安装系统(运行SD卡中的uboot程序)
4、安装Linux驱动程序
5、安装Linux应用程序