- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第7章LINUX
第七章嵌入式Linux操作系统及应用 内容简介 7.1 嵌入式Linux操作系统概述 7.2 嵌入式Linux操作系统的开发工具 7.3 嵌入式Linux的内核编译及驱动程序的开发 7.4 嵌入式Linux操作系统的应用开发 7.1 嵌入式Linux操作系统概述7.1.1嵌入式Linux操作系统分类 (1)RT-Linux RT-Linux是利用Linux进行实时系统开发比较早的尝试,是一种硬实时操作系统。目前RT-Linux已成功应用于航天飞机的空间数据采集、科学仪器测控,以及电影特技图像处理等众多领域。 RT-Linux工作原理: (2)uClinux: 控制领域中的linux系统。它包含linux常用的API,内核小于512K。目前已支持的CPU芯片有,Motorola公司的68K系列、PowerPC系列以及ARM公司的系列芯片。 (3)红旗嵌入式Linux 由北京中科院红旗软件公司推出,是国内做得较好的一款嵌入式操作系统。该款嵌入式操作系统重点支持p-Java。系统目标一方面是小型化,另一方面能重用Linux的驱动和其它模块。 (4)Montavista Linux 由美国MontaVista 软件公司基于Linux内核开发。MontaVista Linux能够支持广泛的CPU芯片系列、支持多种目标板结构,并提供强大的网络协议支持,而且拥有丰富的驱动程序和API。目前有三个版本 :PRO :专业版本,CGE :电信Linux版本,CEE :消费电子 版本。 (5) Mizi linux 韩国MIZI公司所公布的开放源代码的免费嵌入式操作系统arm-Linux。大部分的2410系统板上都是采用的mizi linux。 7.1.2嵌入式Linux内核组成与启动过程 1 嵌入式Linux内核的组成 进程调度 进程间通讯 内存管理 虚拟文件系统 网络接口 (1)进程调度(SCHED) : 进程调度负责控制进程对CPU的访问,当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程是仅等待CPU资源的进程,等待其它资源的进程是不可运行进程。Linux使用了基于优先级的进程调度算法选择新的进程。 (2)内存管理(MM) 允许多个进程安全的共享主内存区域。 Linux的内存管理支持虚拟内存,内存管理从逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的对换;硬件相关的部分为内存管理硬件提供了虚拟接口。 (3)虚拟文件系统(VFS) 虚拟文件系统VFS隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口。VFS提供了多达数十种不同的文件系统,具体可以分为逻辑文件系统和设备驱动程序。 (4)网络接口(NET) 网络接口NET提供了对各种网络标准的存取和各种网络硬件的支持。网络接口一般分为网络协议和网络驱动程序,网络协议部分负责实现每一种可能的网络传输协议,网络设备驱动程序负责与硬件设备通信,每一种可能的硬件设备都有相应的设备驱动程序。 (5)进程间通信(IPC) 管道和FIFO 信号量 消息队列 共享内存 2 嵌入式Linux内核目录结构 Linux内核源代码位于/usr/src/linux目录,代码分布如下: /arch:包含所有硬件结构特定的内核代码。如i386、ARM等 /Documentation:保存着详细的说明文档 /Scripts :主要在配置内核时用到,存放了配置内核的一些脚本文件,比如make menuconfig命令等。 /drivers:包含内核中所有的设备驱动程序。如USB、串口等; /fs:包含所有的文件系统代码。如jffs2、ext2、ntfs等; /include:包含建立内核代码时所需的大部分库文件。如asm-arm是arm平台所需的库文件; /init:包含内核的初始化代码,内核从此处工作; /ipc:包含了核心进程间的通讯代码; /kernel:包含了内核管理的核心代码; /mm:包含了所有的内存管理代码; /net:包含了核心的网络部分代码,如:ipv4、ipv6等; 嵌入式Linux启动 嵌入式Linux启动分为两个部分,系统引导与嵌入式Linux启动。其中系统引导将完成嵌入式Linux装入内存前,初始化CPU和相关IO设备,并将嵌入式Linux调入内存的工作。系统引导主要由BootLoader实现,BootLoader将嵌入式Linux内核调入内存之后,将权力交给嵌入式Linux Kernel,进入嵌入式Linux的启动部分。 7.2嵌入式linux操作系统的开发工具7.2.1编译器gcc Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,
文档评论(0)