第1篇实训方案与实训基础
第1章实训方案3
1.1教育部关于操作系统课程的实践教学体系的实施方案3
1.1.1计算机专业基本能力3
1.1.2操作系统课程内容特点及培养目标等3
1.1.3操作系统课程的实践教学体系的实施方案4
1.2可伸缩的多层次多单元的操作系统实训方案6第2章实训基础10
2.1Linux操作系统概述10
2.1.1Linux的起源和历史10
2.1.2Linux的特点11
2.1.3Linux的基本结构12
2.1.4Linux的源代码分布13
2.1.5Linux用户接口14
2.1.6Linux使用操作简介17
2.1.7Linux中的内核模块19
2.2Windows 2000/XP操作系统概述20
2.2.1Windows 2000/XP的由来和特点20
2.2.2Windows 2000/XP体系结构简介21
2.2.3Windows 2000/XP用户接口26
2.2.4Windows 2000/XP注册表30
2.2.5Windows 2000/XP任务管理器34
第2篇实训内容与实训指导
第3章实训内容39
3.1使用级39
3.1.1安装Linux39
3.1.2安装Windows XP40
3.1.3Linux系统用户接口和编程界面40
3.1.4Windows操作系统界面认识42
3.2系统管理级42
3.2.1在Linux中添加、删除用户及用户组42
3.2.2在Windows XP中添加、删除用户43
3.2.3在Linux中使用U盘43
3.2.4屏蔽Windows XP桌面上的“回收站”43
3.2.5停止Windows XP“自动升级”服务44
3.2.6在Linux中配置FTP服务器44
3.2.7在Linux中配置AMP环境45
3.2.8在Windows上配置IIS服务45
3.3系统行为观察与分析级45
3.3.1观察Linux进程/线程的异步并发执行45
3.3.2观察Linux进程状态46
3.3.3在Linux中使用信号量实现进程互斥与同步46
3.3.4在Linux中实现进程间高级通信47
3.3.5在Linux中共享文件47
3.3.6观察Linux内存分配结果48
3.3.7观察Windows XP注册表的内容48
3.3.8观察并分析Windows XP任务管理器显示的内容49
3.4实现级49
3.4.1进程调度模拟程序设计49
3.4.2页面置换模拟程序设计50
3.4.3文件系统模拟设计50
3.4.4为Linux添加一个系统调用51
3.4.5为Linux添加一个内核模块51
3.4.6Linux中简单的字符设备驱动程序设计51
3.5源代码阅读级52
3.5.1Linux源代码专题分析——进程调度程序52
3.5.2跟踪系统查找文件过程52第4章实训指导53
4.1使用级53
4.1.1安装Linux53
4.1.2安装Windows XP62
4.1.3Linux系统用户接口和编程界面62
4.1.4Windows操作系统界面认识76
4.2系统管理级77
4.2.1在Linux中添加、删除用户及用户组77
4.2.2在Windows XP中添加、删除用户80
4.2.3在Linux中使用U盘83
4.2.4屏蔽Windows XP桌面上的“回收站”84
4.2.5停止Windows XP“自动升级”服务86
4.2.6在Linux中配置FTP服务器88
4.2.7在Linux中配置AMP环境95
4.2.8在Windows上配置IIS服务104
4.3系统行为观察与分析级108
4.3.1观察Linux进程/线程的异步并发执行108
4.3.2观察Linux进程状态113
4.3.3在Linux中使用信号量实现进程互斥与同步117
4.3.4在Linux中实现进程间高级通信123
4.3.5在Linux中共享文件131
4.3.6观察Linux内存分配结果133
4.3.7观察Windows XP注册表的内容137
4.3.8观察并分析Windows XP 任务管理器显示的内容138
4.4编程与实现级140
4.4.1进程调度模拟程序设计140
4.4.2页面置换模拟程序设计151
4.4.3文件系统模拟设计164
4.4.4为Linux添加一个系统调用195
4.4.5为Linux添加一个内核模块201
4.4.6为Linux添加一个简单的字符设备驱动程序207
4.5源代码阅读与分析级223
第3篇实 训 管 理
第5章实训管理227
5.1实训计划建议227
5.1.1教材各章节选择建议227
5.1.2实训内容选择建议227
5.1.3实训过程组织227
5.2实验报告内容228
5.3实训成绩评定229
5.3.1实训检查建议229
5.3.2成绩评定建议229参考文献230
1.1Linux起源及发展1
1.1.1UNIX和GNU软件1
1.1.2Linux的发展2
1.2内核、shell、文件系统及实用程序3
1.2.1Linux内核3
1.2.2shell简介3
1.2.3文件系统7
1.2.4实用程序7
1.3选择Linux的理由8
1.3.1Linux是成熟的、广泛使用的操作系统8
1.3.2开源软件带来的优点8
1.3.3免费软件带来的优点8
1.3.4Linux得到了众多软、硬件厂商的支持9
1.3.5使用Linux的不足之处9
1.4Linux环境嵌入式开发系统组成简介9
1.4.1Linux环境嵌入式开发系统组成9
1.4.2主机(Host)9
1.4.3目标板(Target)10
1.4.4主机与目标板的连接10
1.4.5主机中运行的程序10
1.4.6目标板中运行的程序11
1.4.7开发系统附带的光盘文档12
1.5主机安装的Linux发行版12
1.5.1常用的Linux发行版13
1.5.2Linux发行版在主机的安装方式13
1.6本章小结15
1.7习题、操作与实验15第2章主机及目标板的运行16
2.1终端基础知识16
2.1.1tty16
2.1.2早期的终端及终端与主机的连接16
2.1.3XWindow、GNOME及KDE简介17
2.2主机系统引导、登录及退出Linux19
2.2.1系统引导19
2.2.2登录Linux19
2.2.3Linux的终端20
2.2.4查看及修改用户使用的shell23
2.2.5通过退出与shell的会话退出Linux25
2.2.6关闭运行的Linux系统25
2.2.7使用帮助命令help和man26
2.3目标板初次运行28
2.3.1目标板连接的电源、端口及安装的操作系统28
2.3.2目标板引导过程简述29
2.3.3主机Windows下的超级终端31
2.3.4主机Linux下的minicom仿真终端33
2.3.5装载引导程序支持的命令简介36
2.3.6目标板Linux登录、退出讨论38
2.3.7目标板Linux基础39
2.4本章小结42
2.5习题、操作与实验42第3章主机开发环境配置44
3.1交叉开发平台基础44
3.1.1本地开发及交叉开发44
3.1.2GNU跨平台工具链组成45
3.1.3如何获取工具链45
3.1.4工具链的组件及GDB简介46
3.2交叉工具链安装举例47
3.2.1交叉工具链及实验例程安装位置47
3.2.2对查找工具链的路径变量进行修改48
3.3主机Linux环境网络配置举例48
3.3.1主机Linux环境IP地址设置48
3.3.2主机Linux环境网络防火墙设置52
3.3.3主机与目标板网络通信测试52
3.3.4主机Linux环境NFS设置54
3.4输入、编译、运行一个程序全过程举例57
3.5本章小结59
3.6习题、操作与实验59第4章实验例程及驱动程序分析(一)61
4.1读取、转换时间函数编程举例61
4.1.1Linux查看、设置时间的命令61
4.1.2常用的读取、转换时间的函数62
4.1.3读取、转换时间的函数编程举例63
4.1.4例4.1对应的Makefile文件65
4.2多线程编程举例65
4.2.1Linux线程概述65
4.2.2线程、互斥量、条件变量函数66
4.2.3生产者、消费者编程举例68
4.3串行端口及标准输入/输出/错误编程举例73
4.3.1串行通信基础73
4.3.2Linux标准输入/输出/错误系统调用编程举例77
4.3.3Linux串行端口编程举例80
4.3.4C语言标准输入/输出/错误函数编程举例83
4.4ADC应用程序编程举例85
4.4.1ADC编程基础85
4.4.2ADC应用程序编程举例87
4.5ADC驱动程序源代码分析91
4.5.1概述91
4.5.2Linux设备驱动程序概述92
4.5.3s3c2410adc.h头文件源代码分析96
4.5.4s3c2410.hchip.H头文件源代码分析96
4.5.5s3c2410adc.c设备驱动程序源代码分析98
4.6本章小结104
4.7习题、操作、编程与实验105第5章Linux环境下目标板出厂软件烧写实验107
5.1目标板出厂软件烧写概述107
5.1.1目标板出厂软件107
5.1.2Linux环境要烧写的文件107
5.1.3什么情况下烧写目标板出厂软件108
5.1.4烧写环境108
5.2目标板出厂软件烧写实验(一)108
5.2.1主机Windows下安装JTAG驱动程序109
5.2.2通过JTAG端口传送并烧写装载引导程序vivi109
5.2.3通过串口传送并烧写内核zImage110
5.2.4通过串口传送并烧写根文件系统root.cramfs112
5.2.5通过网口传送并烧写应用程序yaffs.tar.bz2112
5.2.6格式化闪存以及通过串口传送并烧写vivi116
5.3目标板出厂软件烧写实验(二)117
5.3.1通过网口传送并烧写内核zImage117
5.3.2通过网口传送并烧写根文件系统root.cramfs120
5.4目标板出厂软件烧写实验(三)121
5.4.1通过JTAG端口传送并烧写装载引导程序uboot121
5.4.2通过网口传送并烧写内核uImage123
5.4.3通过网口传送并烧写根文件系统root.cramfs125
5.4.4通过网口传送并烧写应用程序yaffs.tar.bz2126
5.5uboot装载引导程序支持的命令126
5.5.1uboot支持的命令集126
5.5.2查询uboot命令的参数含义128
5.6本章小结128
5.7习题、操作与实验129第6章实验例程及驱动程序分析(二)131
6.1DAC应用程序编程举例及驱动程序分析131
6.1.1DAC硬件基础131
6.1.2DAC应用程序编程举例133
6.1.3DAC驱动程序主要代码分析135
6.2PWM直流电机应用程序编程举例及驱动程序分析138
6.2.1PWM定时器基础138
6.2.2PWM直流电机143
6.2.3编译、加载驱动程序模块145
6.2.4PWM直流电机应用程序编程举例146
6.2.5PWM直流电机驱动程序主要代码分析148
6.3LED应用程序编程举例及驱动程序分析149
6.3.1七段LED概述149
6.3.28×8点阵LED显示概述152
6.3.3CPLD与七段LED、8×8点阵LED连接举例154
6.3.4七段LED、8×8点阵LED应用程序编程举例156
6.3.5LED驱动程序主要代码分析158
6.4本章小结160
6.5习题、操作、实验及编程161附录A英汉名词术语对照汇总表162参考文献166