第7章LINUX
更新时间:2023-09-05 09:59:01 阅读量: 教育文库 文档下载
马洪连 主编
第七章 嵌入式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的驱动和其它模块。5
马洪连 主编
(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:包含建立内核代码时所 需的大部分库文件。如asmarm是arm平台所需的库文件; /init:包含内核的初始化代码,内 核从此处工作; /ipc:包含了核心进程间的通讯代 码; /kernel:包含了内核管理的核心 代码; /mm:包含了所有的内存管理代 码; /net:包含了核心的网络部分代码, 如:ipv4、ipv6等;
马洪连 主编
嵌入式Linux启动嵌入式Linux启动分为两个部分,系统引导与嵌 入式Linux启动。其中系统引导将完成嵌入式 Linux装入内存前,初始化CPU和相关IO设备, 并将嵌入式Linux调入内存的工作。系统引导主 要由BootLoader实现,BootLoader将嵌入式 Linux内核调入内存之后,将权力交给嵌入式 Linux Kernel,进入嵌入式Linux的启动部分。
马洪连 主编
power
BIOSGRUB/LILO Kernel bootstart_kernel ()激活交换分 区,检查磁 盘,加载硬 件模块
进入linux 操作系统 中完成外设及 其驱动程序 的加载和初 始化
init mingetty
rc.sysinit rc login()不同的启 动参数, 实现不同 的启动设 置
用户登 录
执行配置 文件
shell
You can use LINUX15
马洪连 主编
7.2嵌入式linux操作系统的开发工具7.2.1编译器gccGcc编译器能将C、C++语言源程序、汇程式化序 和目标程序编译、连接成可执行文件,如果没有 给出可执行文件的名字,gcc将生成一个名为 a.out的文件。在Linux系统中,可执行文件没有 统一的后缀,系统从文件的属性来区分可执行文 件和不可执行文件。
马洪连 主编
gcc 执行过程
预处理 这一步需要分析各种命令,如:#define、 #include、#ifdef等。 编译 这一步将根据输入文件产生汇编语言,由于通常 是立即调用汇编程序,所以其输出一般不保存在 文件中。 汇编 这一步将汇编语言用作输入,产生具有.o扩展名 的目标文件。 连接 在这步,各目标文件.o被放在可执行文件的适当 位置上。gcc调用连接程序ld来完成最终的任务。17
马洪连 主编
gcc用法
gcc最基本的用法是∶ gcc [options] [filenames] 其中options就是编译器所需要的参数, filenames给出相关的文件名称。
举例: gcc –c main.c gcc –c subr.c gcc –I/usr/include –o prog main.o subr.o18
马洪连 主编
gcc 参数说明
-c 只编译并生成目标文件。 -o FILE 生成指定的输出文件FILE,没有指定 FILE,默认输出文件为a.out。 -O 优化生成代码。 -w 不生成任何警告信息。 -Wall 生成所有警告信息。 -g 生成调试信息。GNU 调试器可利用该信息。 -lLIBRARY 连接时搜索指定的函数库LIBRARY。19
正在阅读:
第7章LINUX09-05
哈佛大学要求学生必看的二十部电影08-09
中华人民共和国固体废物污染环境防治法及土壤污染防治法精彩试题04-17
化工设计院17弱电设备条件表09-25
小花猫小学生作文06-15
苏教版二年级下册品德与社会教案08-10
江苏省盱眙中学2012届高三政治复习《生活与哲学》第四单元 认识社会与价值选择试题 新人教版11-25
小升初词语练习03-08
梅花鹿_马鹿血清IGF_1及GH浓度年周期变化规律研究_李光玉05-06
广东省物价局幼儿园收费管理暂行办法11-27
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- LINUX
- 重点中学小升初数学分班考试模拟试题及分析
- (完整word版)中山大学历年真题及答案(自己整理),推荐文档
- 危险化学品从业人员岗位标准
- 第七届青少年艺术节招商书(1)
- 场地,宣传品,水电,物资申请流程
- 物联网技术在井下人员定位系统中的应用
- XX医院病媒生物防治总结
- 《探究—物质的密度》说课稿陈
- 2015-2020年中国钾盐市场行业监测及投资方向研究报告
- 河北省2017中考数学复习专题复习(三)几何解答题(打包6套)
- 冀教版 四年级下册Lesson 22 My Favourite Subject
- 湘少版小学英语词汇整理(四年级下册)
- 河北工程大学2012年机械原理期末考试试卷A
- 自考美学复习资料1
- 历届中国共产党党代会的时间,主要内容及意义
- 南大推荐信
- 管理提升活动自我诊断报告
- 档案盒标签模板(免费)
- 英语课堂单词教学游戏(精选)
- 科目三考试方法及要求