一、课程性质与设置目的
(一)课程性质与特点
嵌入式Linux应用编程是嵌入式技术专业的核心课程之一。本课程为了适应目前发展迅速的嵌入式Linux需求而设计,课程目标是让学生达到嵌入式应用软件开发、嵌入式系统开发或嵌入式驱动开发的基本素质。课程内容基于目前应用最广泛的软硬件开发平台(Linux和Arm),使学生了解嵌入式技术的发展现状,掌握嵌入式开发的基本技能;掌握嵌入式Linux项目的完整开发流程,能够完成嵌入式Linux系统的移植和设备驱动程序的编写,掌握嵌入式Linux应用程序的开发。
(二)课程设置目的与基本要求
Linux作为日渐流行的多用户、多任务的网络操作系统,有着开放、稳定、安全、费用低廉等许多其它操作系统无可比拟的优势,具有越来越广泛的应用前景。在网络技术迅速发展的今天,网络操作系统是网络中的核心技术。本课程是高等教育自学考试嵌入式技术(专科)专业的一门专业课。本课程的目的在于讲授Linux操作系统的基础和应用知识,使学生掌握Linux系统的安装、配置、管理维护等技能,对Linux系统有一个全面的了解,奠定在Linux系统上作进一步开发的基础。
(三)本课程与相关课程的联系
本课程应该在先学习完计算机组成原理和计算机网络原理前提下开设的。学习完本课程,后续课程应该及时开设网络安全与管理等专业课,拓宽学生的知识面,从而强化本课程开设的目的。
本课程共分为十章,分别是Linux系统入门基础、Linux程序设计基础——C环境、Linuxshell编程、构建嵌入式Linux系统、嵌入式BootLoader技术、ARM-Linux内核分析、嵌入式文件系统、嵌入式Linux多线程编程、简单嵌入式Web服务器设计、嵌入式GUI。其中:
1.重点章包括:Linux程序设计基础——C环境、Linuxshell编程、构建嵌入式Linux系统、嵌入式BootLoader技术、ARM-Linux内核分析。
2.次重点章包括:嵌入式文件系统、嵌入式Linux多线程编程、简单嵌入式Web服务器设计。
3.一般章包括:Linux系统入门基础、嵌入式GUI。
二、课程内容与考核目标
第一章Linux系统入门基础
一、学习目的与要求
本章的学习目的主要是对Linux系统有一个简单的了解。认识Linux的操作系统、掌握Linux的基本操作命令。
二、课程内容
第一节认识Linux操作系统
一、Linux和Unix的简明历史
二、Linux系统的特点和组成
三、Linux的开发过程
第二节基本操作命令
一、字符界面简介
二、常用命令简介
第三节Linux文件与目录系统
一、Linux文件系统类型介绍
二、Linux目录系统
第四节shell简介
第五节网络服务简介
一、Linux支持的网络协议
二、Linux的网络服务
三、考核知识点
1.Linux系统的特点和组成
2.Linux系统的基本操作命令
3.Linux文件系统类型介绍
4.Linux支持的网络协议
四、考核要求
1.Linux系统的特点和组成
识记:Linux系统主要的特点和4个组成
2.Linux系统的基本操作命令
识记:Linux系统的常用命令
3.Linux文件系统类型介绍
识记:Linux的常用文件类型和目录系统
4.Linux支持的网络协议
领会:Linux支持的网络协议和服务
第二章Linux程序设计基础—C环境
一、学习目的与要求
本章需要掌握使用GCC编译C语言程序;理解基本的makefile文件的编写语法;熟练掌握在Linux系统里面使用C语言进行程序设计;掌握ARM汇编和C进行简单混合编程。
二、课程内容
第一节Linux编程环境介绍
一、系统平台环境
二、开发工具环境
三、基于文本模式的开发平台
四、集成开发平台Eclipse+CDT
五、文档帮助环境
第二节常用编辑器
一、VIM编辑器
二、Emacs编辑器
第三节gcc编译器的使用
一、gcc的主要选项
二、GNUC扩展简介
第四节GNUmake管理项目
一、make的简介
二、编写Makefile文件的规则
第五节GDB调试
一、GDB命令介绍
二、GDB调试例程
三、基于GDB的图形界面调试工具
三、考核知识点
1.Linux编程环境
2.VIM编辑器和Emacs编辑器
3.基于GDB的图形界面调试工具
四、考核要求
1.Linux编程环境
识记:Linux平台特性
领会:基于文本模式的开发平台和集成开发平台
2.VIM编辑器和Emacs编辑器
简单应用:VIM和Emacs两种常用的编辑器
3.基于GDB的图形界面调试工具
领会:GDB命令
简单应用:基于GDB的图形界面调试工具
第三章Linuxshell编程
一、学习目的与要求
本章的学习目的是力求使学生掌握LinuxShell编程的特性。Shell是用户与内核进行交互操作的一种接口,是Linux最重要的软件之一,目前最流行的Shell称为bashShell,需要掌握bashShell脚本编程的语法、命令、技巧、调试等内容。
二、课程内容
第一节创建与运行外壳程序
一、创建外壳程序
二、运行外壳程序
第二节使用外壳变量
一、给变量赋值
二、读取变量的值
三、位置变量和其他系统变量
四、引号的作用
第三节数值运算命令
第四节条件表达式
一、if表达式
二、case表达式
第五节循环语句
一、for语句
二、while语句
三、until语句
第六节shift命令
第七节select语句
第八节repeat语句
第九节函数
第十节shell应用举例
三、考核知识点
1.外壳变量
2.数值运算
3.条件表达式
4.循环语句
5.select语句和repeat语句
四、考核要求
1.外壳变量
简单应用:外壳变量的使用
2.数值运算
简单应用:数值运算的使用
3.条件表达式
简单应用:if表达式和case表达式
4.循环语句
简单应用:for、while和until循环的使用
5.select语句和repeat语句
简单应用:select语句和repeat语句
第四章构建嵌入式Linux系统
一、学习目的与要求
本章的学习目的主要是对构建嵌入式Linux系统的掌握。要求掌握GNU跨平台开发链的建立过程,了解嵌入式Linux内核,了解嵌入式Linux根文件系统,了解BootLoader。
二、课程内容
第一节GNU跨平台开发工具链
一、基础知识
二、GNU跨平台开发链的建立过程
第二节嵌入式Linux内核
第三节嵌入式Linux根文件系统
第四节BootLoader简介
三、考核知识点
1.GNU跨平台开发链的建立过程
2.嵌入式Linux根文件系统
四、考核要求
1.GNU跨平台开发链的建立过程
领会:GNU跨平台开发工具链基础知识
综合应用:基于ARM+Linux的嵌入式开发工具链的建立过程
2.嵌入式Linux根文件系统
简单应用:文件系统的建立
第五章嵌入式BootLoader技术
一、学习目的与要求
本章的学习目的主要是对嵌入式BootLoader的掌握。要求熟悉BootLoader的概念,了解BootLoader的结构框架,了解典型Blob的运行过程,了解Blob的移植。难点是Blob的具体移植。
二、课程内容
第一节BootLoader的基本概念
一、BootLoader所支持的CPU和嵌入式板
二、BootLoader的安装点和启动过程
三、BootLoader的操作模式
四、BootLoader与主机之间的通信方式
第二节BootLoader典型结构框架
一、BootLoader的stage1
二、BootLoader的stage2
第三节典型BootLoader分析和移植
一、Blob简介
二、Blob的运行过程分析
三、Blob的移植
三、考核知识点
1.BootLoader所支持的CPU和嵌入式板、BootLoader的安装点和启动过程、BootLoader的操作模式以及BootLoader与主机之间的通信方式
2.Blob的运行过程分析
四、考核要求
1.BootLoader所支持的CPU和嵌入式板、BootLoader的安装点和启动过程、BootLoader的操作模式以及BootLoader与主机之间的通信方式
识记;BootLoader的基本概念
领会:各种BootLoader以及它们所支持的体系结构、BootLoader的安装点和启动过程、BootLoader的操作模式以及BootLoader与主机之间的通信方式
2.Blob的运行过程分析
识记:Blob的基本概念
领会:Blob程序启动流程、Blob的移植
第六章ARM-Linux内核分析
一、学习目的与要求
本章的学习目的主要是对基于ARM体系结构的Linux内核的掌握。要求了解ARM的体系结构,了解ARM-Linux的各个组成部分包括内存管理、中断管理、系统的启动和初始化、进程管理和调度以及Linux的模块机制。重点学习ARM-Linux的各个组成部分。
二、课程内容
第一节ARM微处理器
一、ARM微处理器
二、RISC体系结构
三、ARM微处理器的寄存器结构
第二节ARM-Linux的内存管理
一、内存管理单元MMU
二、ARM-Linux的存储管理机制
三、ARM-Linux存储机制的建立
四、ARM-Linux对虚拟空间的管理
第三节ARM-Linux进程管理与调度
一、task_struct数据结构
二、Linux进程的创建、执行和消亡
三、ARM-Linux的进程调度
第四节ARM-Linux中断响应与处理
一、ARM的异常中断种类
二、ARM处理器对异常中断的响应及返回过程
第五节ARM-Linux系统启动与初始化
一、内核数据结构的初始化
二、外设初始化
三、init进程和inittab文件
四、rc启动脚本
五、shell的启动
第六节Linux模块化机制
一、Linux的模块化
二、模块的载入
三、模块的卸载
第七节ARM-Linux内核裁减
三、考核知识点
1.ARM-Linux的存储管理机制、ARM-Linux存储机制的建立和ARM-Linux对虚拟空间的管理
2.task_struct数据结构、Linux进程的创建、执行和消亡和ARM-Linux的进程调度
3.init进程和inittab文件、rc启动脚本和shell的启动
四、考核要求
1.ARM-Linux的存储管理机制、ARM-Linux存储机制的建立和ARM-Linux对虚拟空间的管理
领会:ARM-Linux的存储管理机制、ARM-Linux存储机制的建立和ARM-Linux对进程虚拟空间的管理
2.task_struct数据结构、Linux进程的创建、执行和消亡和ARM-Linux的进程调度
领会:task_struct数据结构、Linux进程的创建、执行和消亡和ARM-Linux的进程调度
3.init进程和inittab文件、rc启动脚本和shell的启动
领会:ARM-Linux系统启动与初始化
第七章嵌入式文件系统
一、学习目的与要求
本章的学习目的主要是对嵌入式Linux文件系统的掌握。文件系统是Linux系统最基本的资源,了解嵌入式Linux文件系统得基本结构和特征,了解常见的嵌入式文件系统JFFS和YAFFS,重点学习嵌入式Linux文件系统的构造过程。
二、课程内容
第一节Linux文件系统结构与特征
一、Linux文件系统概述
二、Linux文件系统布局
三、Linux支持的文件系统
第二节嵌入式文件系统简介
一、嵌入式文件系统JFFS简介
二、嵌入式文件系统YAFFS简介
第三节构建根文件系统
第四节根文件系统设置
第五节BusyBox
一、BusyBox简介
二、使用BusyBox构建根文件系统
三、考核知识点
1.Linux文件系统概述、Linux文件系统布局和Linux支持的文件系统
2.构建根文件系统和根文件系统设置
四、考核要求
1.Linux文件系统概述、Linux文件系统布局和Linux支持的文件系统
识记:文件系统的概念
领会:Linux文件系统布局和Linux支持的文件系统
2.构建根文件系统和根文件系统设置
领会:嵌入式文件系统设计所遵循的原则
综合应用:根文件系统的构建
第八章嵌入式Linux多线程编程
一、学习目的与要求
本章的学习目的主要是对嵌入式Linux多线程编程基本内容的掌握。要求了解Linux线程基本概念,多线程同步,生产者-消费者问题模型的实现。重点学习生产者-消费者问题实例的实现。
二、课程内容
第一节线程基本概念
一、Linux线程简介
二、Linux线程编程基础
第二节多线程同步
一、互斥锁
二、条件变量
三、信号量
第三节生产者-消费者问题
一、生产者-消费者问题简介
二、生产者-消费者问题实例
三、考核知识点
1.Linux线程编程基础
2.多线程同步
3.生产者-消费者问题的实例
四、考核要求
1.Linux线程编程基础
识记:Linux线程的基本概念,系统创建线程的顺序
简单应用:多线程编程常用的几个函数
2.多线程同步
简单应用:多线程同步
3.生产者-消费者问题的实例
综合应用:生产者-消费者问题模型的实现
第九章简单嵌入式Web服务器设计
一、学习目的与要求
本章的学习目的主要是对简单嵌入式Web服务器设计基本内容的掌握。要求了解基于嵌入式WEB服务器的HTTP协议,嵌入式WEB服务器的系统结构和工作原理,ARM开发板上的Socket网络编程。重点学习以ARM体系结构与编程课程中所学知识为基础,对基于ARM的简单嵌入式WEB服务器系统进行简单设计。
二、课程内容
第一节HTTP协议基础
一、HTTP协议概述
二、HTTP协议的方法
三、HTTP协议消息头
四、HTTP协议使用举例
第二节socket编程基础
一、socket描述
二、TCP/IP模型
三、socket描述符
第三节嵌入式Web服务器系统结构
一、协议标准
二、瘦Web服务器
三、嵌入式应用接口技术
四、实现形式
五、EMIT
六、RomPager
第四节Web服务器构建
三、考核知识点
1.HTTP协议概述、HTTP协议的方法和HTTP协议消息头
2.嵌入式WEB服务器系统结构
3.WEB服务器的构建
四、考核要求
1.HTTP协议概述、HTTP协议的方法和HTTP协议消息头
识记:HTTP协议的基本概念
领会:HTTP协议中内置的方法、HTTP协议部分消息头
简单应用:HTTP协议的使用
2.嵌入式WEB服务器系统结构
领会:典型的嵌入式Web服务器系统模型
3.WEB服务器的构建
综合应用:WEB服务器的构建
第十章嵌入式GUI
一、学习目的与要求
本章的学习目的主要是对嵌入式系统GUI基本内容的掌握。要求了解比较流行的MiniGUI和Qt/Embedded,了解MiniGUI和Qt/Embedded的程序设计基础。重点学习基于Qt/Embedded的嵌入式GUI的移植。
二、课程内容
第一节嵌入式GUI简介
一、MiniGUI
二、Qt/Embedded
第二节MiniGUI程序设计基础
一、MiniGUI的特点
二、窗口处理过程
三、MiniGUI的线程机制
四、MiniGUI的体系结构
五、MiniGUI底层引擎
六、MiniGUI的三种运行模式
第三节Qt/Embedded程序设计基础
一、Qt/Embedded的图形引擎实现基础
二、Qt/Embedded的事件驱动基础
三、Qt/Embedded底层支持分析
第四节嵌入式GUI的移植
三、考核知识点
1.MiniGUI和Qt/Embedded的特点
2.基于Qt/Embedded的嵌入式GUI的移植
四、考核要求
1.MiniGUI和Qt/Embedded
识记:MiniGUI和Qt/Embedded的特点
领会:窗口处理过程、MiniGUI的线程机制、体系结构和三种运行模式;Qt/Embedded3.x中底层图形引擎实现结构、事件驱动基础和底层支持分析
2.基于Qt/Embedded的嵌入式GUI的移植
综合应用:基于Qt/Embedded的嵌入式GUI的移植
三、有关说明与实施要求
(一)关于课程内容与考核目标的说明
《嵌入式Linux应用编程》课程自学考试大纲明确了《嵌入式Linux编程应用》课程学习的内容以及深广度,规定了该课程自学考试的范围和标准,是进行学习和考核的依据。该课程中各章的内容均由若干知识点组成,在自学考试中成为考核知识点。
本课程的考核目标主要是考核考生对《嵌入式Linux编程应用》课程内容的掌握程度,检测他们对《嵌入式Linux应用编程》相关理论与方法的认识深度与广度,以及他们在工作中应用这些理论与方法的能力,处理和解决工作实际问题的能力。
《嵌入式Linux编程应用》课程自学考试大纲要求考生学习和掌握的知识点内容都作为考核的内容。由于各知识点在课程中的地位、作用以及知识自身的特点不同,自学考试将对各知识点分别按四个认知(或叫能力)层次确定其考核要求。四个能力层次从低到高依次是:识记;理解;简单应用;综合应用。关于这些用语、概念的解释如下:
识记:能正确认识和表述科学事实、原理、术语和规律,知道该课程的基础知识,并能进行正确的选择和判断。
理解:能将所学知识加以解释、归纳,能领悟某一概念或原理与其他概念或原理之间的联系,理解其引申意义,并能做出正确的表述和解释。
简单应用:能用所学的概念、原理、方法正确分析和解决较简单问题,具有分析和解决一般问题的能力。
综合应用:能灵活运用所学过的知识,分析和解决比较复杂的问题,具有一定解决实际问题的能力。
(二)关于自考教材
《嵌入式Linux应用编程》许信顺、贾智平编著,机械工业出版社出版,2012年1月第1版。
(三)自学方法指导
1.本课程的学习者应根据本大纲规定,认真阅读指定教材,理解教材中的基本原理,熟悉基本分析方法。为有效地指导个人自学和社会助学,本大纲已指明了课程的重点和难点,在各章的基本要求中也指明了各章内容的重点和难点。本课程的学习者应在全面系统学习的基础上,掌握重点,有目的的深入学习重点章节的内容,但切忌在没有全面学习教材的情况下孤立地去抓重点。
2.本课程的学习者在自学时,应根据本大纲在推荐教材和参考书中找出大纲中相关章节知识点的论述,系统做出自学笔记,适当地配合做些练习。本课程中概念性、规则性、理论性内容较多,自学者在学习时,要注重对知识点的理解和掌握,仔细阅读教材和参考书中的案例内容,并能联系实际进行思考,做到融会贯通。
(四)对社会助学的要求
1.社会助学者应根据本大纲规定的考试内容和考核目标,认真钻研指定的教材,明确本课程的特点、学习范围和学习要求,对自学应考者进行切实有效的辅导,并从学习方法上给予指导,引导他们防止自学中的各种偏向,把握社会助学的正确方向。
2.正确处理重点和一般的关系。课程内容有重点与一般之分,但考试的内容要覆盖全部课程,而且重点与一般是相互联系的,不是截然分开的。社会助学者应全面系统地学习教材,掌握全部考试内容和考核知识点,在此基础上再突出重点。总之,要将把全面理解和重点深入探讨结合起来,切勿孤立地只抓重点,把自学应考者引向猜题押题的歧途。
3.正确处理基础知识与应用能力之间的关系。社会助学者既要重视基础理论知识,又要重视实际应用能力的培养,努力引导自学应考者将识记、领会同应用联系起来,将基础知识和理论转化为应用能力,在全面辅导的基础上,着重培养和提高自学应考者分析和解决问题的能力。
(五)关于命题考试的若干要求
1.本课程考试采用闭卷笔试方式,考试的时间为150分钟。本课程考试可以携带没有存储功能的小型计算器。
2.本大纲各章所规定的基本要求、考核知识点及考核要求下的知识细目,都属于考核的内容。考试命题既要覆盖到章,又要避免面面俱到。要注意突出课程的重点、章节重点,加大重点内容的覆盖度。
3.命题不应有超出大纲中考核知识点范围的题,考核目标不得高于大纲中所规定的相应的最高能力层次要求。命题应着重考核自学者对基本概念、基本知识和基本理论是否了解或掌握,对基本方法是否会用或熟练。不应出与基本要求不符的偏题或怪题。
4.本课程在试卷中对不同能力层次要求的分数比例大致为:识记占20%,领会占30%,简单应用占30%,综合应用占20%。
5.要合理安排试题的难易程度,试题的难度可分为:易、较易、较难和难四个等级。每份试卷中不同难度试题的分数比例一般为:2:3:3:2。
必须注意试题的难易程度与能力层次有一定的联系,但二者不是等同的概念。在各个能力层次中对于不同的考生都存在着不同的难度,考生切勿混淆。
6.课程考试命题的主要题型一般有单项选择题、多项选择题、判断题、填空题、名词解释题、简答题、编程题等题型。各种题型的具体样式参见附录题型举例。
附录:题型举例
一、单项选择题,要求给出四个备选答案(一个正确答案)
1、下面哪个命令是用来定义shell的全局变量()。
A.exportfs
B.alias
C.exports
D.export
二、多项选择题,要求给出五个备选答案(二个以上正确答案)
1、嵌入式linux操作系统的特点()。
A、低廉性
B、广泛性
C、可移植性好
D、良好的网络支持
E、实时性好
三、判断题
1、Linuxinit启动进程需要读取的系统配置文件是/etc/inittab。()
四、填空题
1、一个C语言程序的执行起点是_________。
五、名词解释题
1、线程
六、简答题
1、简述Linux平台的特性?
七、编程题
1、Linux下用C语言编写一程序,实现如下功能:已知一个IP地址的16进制数位0x3b40c812,请将此IP地址用十进制点的形式输出,如“59.64.200.18”。要求有Makefile。
更多信息请查看学历考试网