linux内核,驱动,应用程三者的概念和之间的关系
我知道三者是怎么下载到开发板的,linux内核是编译以后利用u-boot下载到开发板的,那驱动程序是单独下载的还是编译好后放在linux内核中一起随内核编译下载的还是其它...
我知道三者是怎么下载到开发板的,linux内核是编译以后利用u-boot下载到开发板的,那驱动程序是单独下载的还是编译好后放在linux内核中一起随内核编译下载的还是其它的什么,应用程序编译好后放在内核中还是单独下载到开发板的,要是单独下载的话那它们之间的下载顺序是怎么样的。本菜鸟也是刚学linux 嵌入式,我觉得怎么样写代码这不重要,重要的是弄清楚一些概念,很多书只讲了怎样写代码,怎么移植,但不知道如何下载。
展开
3个回答
展开全部
首先,要理解操作系统的概念,操作系统是用户和硬件之间的一层媒介程序。不管是Linux还是Windows或者安卓、IOS,它的主要功能有两点:
1、有效管理硬件。
2、方便用户操作。
其次,Linux内核是Linux系统的核心程序,主要完成任务调度、内存管理、IO设备管理等等功能,主要目的是为了应用程序提供一个稳定良好的运行环境,这是一个基础。
再次,驱动程序是操作系统有效管理硬件的一个途径。应用程序是方便用户操作提供的程序,比如Shell,Linux中的bash shell以及KDE、gnome等图形Shell都是应用程序。 你可以简单的理解为驱动程序实现了操作系统对硬件的有效管理,应用程序实现了操作系统方便用户操作的目的。
最后,从编程角度来看,Linux内核就是一个调用库,应用程序通过调用Linux提供的API函数来实现操作,Linux内核通过与驱动通信实现对硬件的有效管理。具体的编程细节,需要自己在实践编程中体会。这是一个整体的描述。
1、有效管理硬件。
2、方便用户操作。
其次,Linux内核是Linux系统的核心程序,主要完成任务调度、内存管理、IO设备管理等等功能,主要目的是为了应用程序提供一个稳定良好的运行环境,这是一个基础。
再次,驱动程序是操作系统有效管理硬件的一个途径。应用程序是方便用户操作提供的程序,比如Shell,Linux中的bash shell以及KDE、gnome等图形Shell都是应用程序。 你可以简单的理解为驱动程序实现了操作系统对硬件的有效管理,应用程序实现了操作系统方便用户操作的目的。
最后,从编程角度来看,Linux内核就是一个调用库,应用程序通过调用Linux提供的API函数来实现操作,Linux内核通过与驱动通信实现对硬件的有效管理。具体的编程细节,需要自己在实践编程中体会。这是一个整体的描述。
展开全部
1、首先楼主脑子中要有个概念 U-BOOT(BOOTLOADER) LINUX内核(一般包含驱动,也就是和内核一起编译好后下载到板子中) 文件系统(包含用户应用程序等)这三个重要部分 是按照预先设定好的位置放置于NAND FLASH(我这里就不说BOOTLOADER放在NOR FLASH,从NOR 启动了),板子上电后直接运行 BOOTLOADER,BOOTLOADER 根据预先设置好的位置 把LINUX内核加载到内存,并将控制权交给LINUX内核,内核利用文件系统驱动(比如YAFFS驱动等)来从NAND FLASH中操作文件系统。
2、应用程序是放在文件系统(比如YAFFS文件系统)中的,所以应用程序不放在内核中,而是放在文件系统中,制作成文件系统一并下载到NAND FLASH中(或者通过其它途径把文件拷贝到该文件系统中)。
2、应用程序是放在文件系统(比如YAFFS文件系统)中的,所以应用程序不放在内核中,而是放在文件系统中,制作成文件系统一并下载到NAND FLASH中(或者通过其它途径把文件拷贝到该文件系统中)。
追问
文件系统编译好后单独利用U-Boot下载到开发板中的吗,是不是U-BOOT已经把nand flash分区好了,先将内核下载到一个分区,再下载文件系统啊,另外应用程序是编译好后放在文件系统的哪个文件夹中,还是将应用程序源文放到文件系统中一起编译,如果是这样那放到文件系统的哪个文件夹下
追答
是的,需要单独下载到开发板中,分区是事先根据各个大小确定好位置后,然后BOOTLOADER和内核的分区里面一致不冲突就可以了。你可以先下载文件系统后在下载内核,不冲突。因为现在已经对这两块内容固定起始位置了。先下载哪个都无所谓。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先说内核,内核就是系统本身,你可以考虑为 win7 系统。 驱动呢,可以编译进内核,也可以不编译进去。不编译进去的时候,可以在内核跑起来之后,用insmod 加载进内核,这个过程,就好比你在win7 下,从网上下载一个显卡驱动并装上。应用呢,就是内核起来后,可以在系统里跑的程序,比如浏览器什么的。那么驱动和应用有啥不同呢,应用是调用内核提供给用户空间的接口,而驱动是在内核空间运行的,用的是内核内部的接口。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |