『壹』 移植linux内核后怎么做出界面移植linux内核
cpu内核移植什么意思?
内核移植就是指将RT-Thread内核在不同的芯片架构、不同的板卡上运行起来,能够具备线程管理和调度,内存管理,线程间同步和通信、定时器管理等功能。移植可分为CPU架构移植和BSP(Boardsupportpackage,板级支持包)移植两部分。
CPU架构移植
??为了使RT-Thread能够在不同CPU架构的芯片上运行,RT-Thread提供了一个libcpu抽象层来适配不同的CPU架构。libcpu层向上对内核提供统一的接口,包括全局中断的开关,线程栈的初始化,上下文切换等。
??RT-Thread的libcpu抽象层向下提供了一套统一的CPU架构移植接口,这部分接口包含了全局中断开关函数、线程上下文切换函数、时钟节拍的配置和中断函数、Cache等等内容。
BSP移植
??相同的CPU架构在实际项目中,不同的板卡上可能使用相同的CPU架构,搭载不同的外设资源,完成不同的产品,所以我们也需要针对板卡做适配工作。RT-Thread提供了BSP抽象层来适配常见的板卡。
??如果希望在一个板卡上使用RT-Thread内核,除了需要有相应的芯片架构的移植,还需要有针对板卡的移植,也就是实现一个基本的BSP。主要任务是建立让操作系统运行的基本环境,需要完成的主要工作是:
??1)初始化CPU内部寄存器,设定RAM工作时序。
??2)实现时钟驱动及中断控制器驱动,完善中断管理。
??3)实现串口和GPIO驱动。
??4)初始化动态内存堆,实现动态堆内存管理。
cortexm3上可以移植嵌入式linux吗?
内核是CM3的CPU有很多种。只要RAM的容量够大,支持FLASH,就可以运行Linux.例如NXPLPC1788运行uCLinux完全没有问题。
linux内核由哪些部分组成?
一个完整的Linux内核一般由5部分组成,它们分别是内存管理、进程管理、进程间通信、虚拟文件系统和网络接口。
1、内存管理内存管理主要完成的是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子系统对内存分配的请求。
Linux内存管理支持虚拟内存,而多余出的这部分内存就是通过磁盘申请得到的,平时系统只把当前运行的程序块保留在内存中,其他程序块则保留在磁盘中。在内存紧缺时,内存管理负责在磁盘和内存间交换程序块。
2、进程管理进程管理主要控制系统进程对CPU的访问。当需要某个进程运行时,由进程调度器根据基于优先级的调度算法启动新的进程。:Linux支持多任务运行,那么如何在一个单CPU上支持多任务呢?这个工作就是由进程调度管理来实现的。
在系统运行时,每个进程都会分得一定的时间片,然后进程调度器根据时间片的不同,选择每个进程依次运行,例如当某个进程的时间片用完后,调度器会选择一个新的进程继续运行。
由于切换的时间和频率都非常的快,由此用户感觉是多个程序在同时运行,而实际上,CPU在同一时间内只有一个进程在运行,这一切都是进程调度管理的结果。
3、进程间通信进程间通信主要用于控制不同进程之间在用户空间的同步、数据共享和交换。由于不用的用户进程拥有不同的进程空间,因此进程间的通信要借助于内核的中转来实现。
一般情况下,当一个进程等待硬件操作完成时,会被挂起。当硬件操作完成,进程被恢复执行,而协调这个过程的就是进程间的通信机制。
4、虚拟文件系统Linux内核中的虚拟文件系统用一个通用的文件模型表示了各种不同的文件系统,这个文件模型屏蔽了很多具体文件系统的差异,使Linux内核支持很多不同的文件系统。
这个文件系统可以分为逻辑文件系统和设备驱动程序:逻辑文件系统指Linux所支持的文件系统,例如ext2、ext3和fat等;设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。
5、网络接口网络接口提供了对各种网络标准的实现和各种网络硬件的支持。网络接口一般分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。
网络设备驱动程序则主要负责与硬件设备进行通信,每一种可能的网络硬件设备都有相应的设备驱动程序。
(1)linux内核移植实验扩展阅读:
Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet网络。
1981年IBM公司推出微型计算机IBMPC。
1991年,GNU计划已经开发出了许多工具软件,最受期盼的GNUC编译器已经出现,GNU的操作系统核心HURD一直处于实验阶段,没有任何可用性,实质上也没能开发出完整的GNU操作系统,但是GNU奠定了Linux用户基础和开发环境。
1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix操作系统。1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统。
1991年4月13日在comp.os.minix上发布说自己已经成功地将bash移植到了minix上,而且已经爱不释手、不能离开这个shell软件了。
1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux0.99的代码大约有十万行,用户大约有10万左右。
1994年3月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。
1995年1月,BobYoung创办了RedHat(小红帽),以GNU/Linux为核心,集成了400多个源代码开放的程序模块,搞出了一种冠以品牌的Linux,即RedHatLinux,称为Linux"发行版",在市场上出售。这在经营模式上是一种创举。
2001年1月,Linux2.4发布,它进一步地提升了SMP系统的扩展性,同时它也集成了很多用于支持桌面系统的特性:USB,PC卡(PCMCIA)的支持,内置的即插即用,等等功能。
2003年12月,Linux2.6版内核发布,相对于2.4版内核2.6在对系统的支持都有很大的变化。
2004年的第1月,SuSE嫁到了Novell,SCO继续顶着骂名四处强行“化缘”,Asianux,MandrakeSoft也在五年中首次宣布季度赢利。3月,SGI宣布成功实现了Linux操作系统支持256个Itanium2处理器。
『贰』 请问有没遇到这样的情况,linux内核移植到板子上时,内核启动不了,如图:
内核启动不了, 有很多原因, 想确认原因,肯定需要一步步的来调试, 你先确认下你的Uboot有没有问题,再看看内核本身有没有问题, 可以在UBOOT/kernel中增加打印信息,这样就通过debug信息来看到运行到那一步,以及哪一步出了问题.这样的调式肯定是比较麻烦的,需要耐心和细心.祝你成功!
『叁』 有关linux内核移植时的裁剪涉及哪些内容
嵌入式Linux系统的移植主要有U-Boot、Linux内核、文件系统这三部分。
Uboot是在系统上电时开始执行,初始化硬件设备,准备好软件环境,然后才调用Linux操作系统内核。文件系统是Linux操作系统中用来管理用户文件的内核软件层。文件系统包括根文件系统和建立于Flash内存设备之上文件系统。根文件系统包括系统使用的软件和库,以及所有用来为用户提供支持架构和用户使用的应用软件,并作为存储数据读写结果的区域。
可将Linux系统移植过程大致需要分成6个步骤:
1) 准备工作,包括下载源码、建立交叉编译环境等。交叉开发是指在开发主机上安装开发工具,编辑、编译目标板的漏镇升引导程序、内核和文件系统,使返老其能在目标板上运行。
2) 配置和编bootloader(引导装载程序)。通过这段小程序,可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统硬件环境,为最终调用操作系统内核做好准备。
3) 配置和编译Linux内核,对其进行相应的裁旅乎剪,修改内核以支持相关的硬件设备。
4) 为大容量NAND Flash移植YAFFS文件系统,并将该文件系统加入Linux内核中;
5) 制作RAMdisk来挂载根文件系统。Linux系统中的文件和设备是通过文件系统来组织的。文件系统的存在使得数据和设备可以被有效而透明地存取访问。一个linux的最简根文件系统应该包括支持linux系统正常运行的基本内容,包括系统使用的软件和库,以及所有用来为用户提供基本支持的架构和指令。
6) 烧写、调试系统;如果调试出错,则需要重新配置,返回上述步骤(2)。
『肆』 linux内核移植是什么意思
内核总是针对某一种硬件(CPU)的,内核移植就是将为某种CPU所写的linux经过少量修改运行到另外一种CPU上