linux系统移植到开发板简要过程(移植bootloader引导加载程序---移植linux内核---制作根文件系统)

 一.标准linux启动过程图

linux系统移植到开发板简要过程(移植bootloader引导加载程序---移植linux内核---制作根文件系统)_第1张图片

        对于linux启动流程分析,我们需要移植bootloader引导加载程序---移植linux内核---制作根文件系统镜像文件;

二.为什么进行系统移植?

        对于不同的硬件平台,linux系统启动流程大体相同,但是资源需求有差异,所以需要对已有平台的linux系统的各种配置资源进行少量修改和裁剪,移植到已有的开发板上,使其在开发板上能运行;

三.移植bootloader引导加载程序(uboot移植)

1.uboot简介

  • bootloader:引导加载程序统称;
  • uboot是bootloader中,其中一种加载引导程序;
  • 在嵌入式开发中,常用引导加载程序为uboot,相当于电脑bios;

2.uboot特点作用

  1. uboot是一个开源分布式软件;

  2. uboot支持多种硬件架构平台(ARM/X86/POWERPC/.........);

  3. uboot是一个裸机开发程序;

  4. uboot是一个短命鬼,主要引导内核进行启动,内核启动成功之后,生命周期就结束;

  5. uboot引导内核进行启动时,会给内核传递两个参数(bootcmd/bootargs),bootcmd参数:自启动命令 ==> 进入自启动模式;bootargs参数:自启动参数 ==> 将ubuntu指定文件夹,挂载到开发板中;

 

四.移植linux内核

1.移植原因

        uboot已经移植成功,uboot主要作用引导内核进行启动,会给内核传递两个参数(bootcmd / bootargs);

        需要内核的五大功能:

  • 内存管理(内存是计算机系统中最主要的资源,内存申请释放等),
  • 文件管理(在Linux系统中一切皆是文件,通过文件系统格式进行ext2/ext3/ext4格式进行管理),
  • 进程管理(进程是在计算机系统中资源分配的最小单元,进程创建/销毁/调度),
  • 网络管理(内核支持各种网络标准协议和网络设备,通过网络协议栈,完成数据收发),
  • 设备管理(Linux 系统中几乎每个系统操作最终都映射到一个或多个物理设备上,字符设备 / 块设备);

2.linux内核特点

  1. linux内核是开源的,内核中由C语言和汇编语言实现;
  2. linux内核支持多种硬件架构平台;
  3. linux内核具有很好的移植性和裁剪性;
  4. linux内核可以采用模块化方式进行编译;

五.制作根文件系统

1.什么是根文件系统?

  • 根文件系统(rootfs):系统运行时,必须依赖的一些脚本和库相关文件;
  • 根文件系统镜像文件(ramdisk.img):将rootfs以某种格式进行压缩;

2.为什么制作根文件系统?

        内核已经成功,并且uboot可以引导内核进行启动成功,我们不能直接操作内核,内核空间属于3G~4G,应用层空间属于0G~3G , 用户是不可以直接操作内核空间;

        在Linux系统中一切皆是文件,文件是计算机系统的软件资源,操作系统本身和大量的用户程序、数据都是以文件形式组织和存放的,我们可以通过控制rootfs文件,间接控制开发板;

3.制作工具

        根文件系统制作网址:Index of /downloads

4.测试工具

        通过nfs服务器进行测试,将~/nfs/rootfs目录挂载到开发板上,串口工具对~/nfs/rootfs操作;

你可能感兴趣的:(系统移植,linux,c语言,系统移植)