《尚官linux学习课程大纲》由会员分享,可在线阅读,更多相关《尚官linux学习课程大纲(16页珍藏版)》请在金锄头文库上搜索。
1、课程大纲:(共 19 周授课,每天面授 6 小时): 嵌入式基础部分 共 9 周第一、Linux 操作系统基础与 Shell 编程第二、C 语言程序提高,专为让 C 语言提升到可以实用而设计第三、数据结构与 C 语言结合成为实际开发实例第四、Linux 系统程序 POSIX 等 设计第五、Linux 网络程序 Socket 套接字 程序设计 嵌入式基础部分案例实践(根据地区及老师的不同,案例略有不同):嵌入式 C 强化部分案例a. 自己设计一个指法练习的游戏程序b. 自己设计一个汉诺塔游戏c. 自己设计一个文件加密程序嵌入式 C 语言与数据结构部分案例 a. 成绩管理系统b. 电子词典程序编写
2、c. 输入法程序编写d. 编写自己的计算器e. 文件压缩器f. 道路交通查询系统Linux 系统程序设计 POSIX 编程部分案例a. 编写自己的串口监听程序(可以做集群通信等用处)b. 手动编写一个脚本解释器-MyShell(类似 Linux 种的 Bash 或 tcsh)c. 编写自己的图片浏览器d. 编写自己的中文输入法e. 编写一个自己的 MP3 播放器Linux 网络程序设计 Socket 编程案例a. 自己编写 WEB 服务器,类似 Apache 或者 nginx 之类的服务程序b. 编写一个聊天程序c. ftp 服务器与客端程序d. 音频广播程序e. 编写一个 DDos 攻击程序
3、,用于网络攻击的分析和防范研究f. ARP 攻击程序,用于网络攻击或者病毒的分析和防范研究嵌入式高级部分 共 10 周第一、C+程序设计及 Linux 平台 C+应用 QT 编程第二、嵌入式应用程序设计总和使用嵌入式环境进行 POSIX 等开发第三、ARM 平台开发与 ARM 体系结构、ARM 汇编 裸板驱动(手写驱动的第一部分)第四、Linux 移植、 Linux 驱动在 ARM 平台下的移植 第五、Linux 内核原理与结构, Linux 设备驱动(手写驱动第二部分)从零手写 5 种以上的驱动程序第六、基于 S3C2440 ARM 平台的 PDA 智能大型项目全真开发项目嵌入式高级部分案例
4、实践(根据地区及老师的不同,案例略有不同):C+程序设计部分案例a. 成绩管理系统 (STL 实现) b. 模板库的实现(MyTL) QT 程序编程部分案例 a. 画图板程序编程b. 视频播放器c. 嵌入式系统移植初步ARM 体系结构与裸板驱动部分案a. ARM 模拟器开发b. Uart 控制程序 (bootloader 上执行)c. LCD 控制程序 (bootloader 上执行)d. 触摸屏控制程序 (bootloader 上执行)e. IIS 控制程序 (bootloader 上执行)f. 网卡控制程序g. TCP/IP 协议栈移植与 ARM 开发板 h. bootloader 开发-
5、my-booti. 文件系统制作j. ARM-Linux 移植Linux 内核与驱动部分案例 a. ARM-Linux GPIO 驱动 b. ARM-Linux WatchDog 驱动c. ARM-Linux Udev 移植d. ARM-Linux 触摸屏输入设备驱动e. ARM-Linux LCD 显示设备驱动f. ARM-Linux 音频设备驱动g. ARM-Linux Nand Flash 块设备驱动h. ARM-Linux 网络设备驱动详细教学内容及目标:- 第一部分 基础部分 (共计 45 天) -一、Linux 系统基础 (10 天) 教学目标: 能比较熟练的安装、操作 Linux
6、 系统, 并能配置开发环境与常用服务1.Linux 及嵌入式系统设计简介. Linux 与 嵌入式学习方法与快速进阶. Linux 系统结构与实际运用的实例. Linux 系统构建及安装. Linux 控制台操作2.Linux 文件及用户管理. Linux 下开发的多种帮助方法以及如何在嵌入式开发中“渔” . 文件系统以及文件系统结构. 文件属性以及文件属性修改. 用户组与用户权限. 文本处理与编辑 以及 Vi 编辑器的高级用法3.Linux 常用命令. 文件的多种查找命令. Linux 下文件压缩命令与习惯用法 . Linux 系统中输入/出重定向 以及错误输出重定向 2 等. 管道与常见的
7、管道用法4.Linux 系统配置与进程管理. 进程控制 及 相关开发内容. 进程优先级与优先级调整. Linux 系统结构与启动脚本. Linux 下的软件安装. x-window 图形体系与实际使用5.Linux 网络配置. Linux 系统中网络基础. TCP/IP 协议栈. Linux 中网卡配置 DNS 配置. Linux 路由配置6.服务配置初步. setup. nfs 网络文件系统服务. iptables 防火墙配置. vsftp 安全 ftp 服务. ssh 安全远程 shell 服务7.嵌入式相关的网络服务配置进阶. tftp 服务器. cvs 软件版本管理服务器. pxe 启
8、动服务配置. apache Web 服务器配置8.Bash Shell 初步. Shell 变量以及定义. 运算符. Shell 编程中的流程控制. Shell 编程中的环境变量9.Bash Shell 编程进阶. Shell 下文件操作及常见的实例. Shell 中使用函数. 输入输出10.Bash Shell 高级应用编程以及文本的操作. 正则表达式的使用与进阶. sed 高级编程以及实际应用. awk 高级编程以及实际应用二、C 语言程序设计 (12 天) 教学目标: 能提升自己的 C 语言水平到真正使用 C 设计应用程序的水平案例教学: (根据各地的环境以及老师的不同可能实际案例有一定
9、变化,案例为以下其中几个)a . 自己设计一个指法练习的游戏程序b . 自己设计一个汉诺塔游戏c. 自己设计一个文件加密程序1 .C 语言巩固提高 各种程序语言的产生与背景. 机器语言与汇编和 C 语言的关系. C 语言的特点与设计思想. C 语言的数据类型汇总. C 语言运算符汇总. C 语言表达式的巩固与汇总:C 语言的关系运算符汇总2 .C 语言中的主要流程控制与汇总. if 语句及常见用法. switch 语句常见用法. 循环语句的种类与常见的使用方法3 .C 语言函数汇总. 函数的声明和定义. 形参与实参. 递归的使用与常见的案例4.数组的使用与实例. 数组的定义. 整型数组. 字符
10、数组. 字符串常量. 数组名的意义. 多维数组5.加强 C 语言中指针与运用提高. 指针的定义. 指针的加减. 动态内存分配. 堆与栈的实例及分析6.数组指针的实际使用. 指针数组 以及常见实际使用. 数组指针7 .预定义. 宏. 参数宏. 条件编译. 声明的作用. 头文件的作用. ANSI VT 控制码8.开发辅助工具. 声明与头文件. Makefile 的编写,与常见用法. GDB 的使用以及 Linux 下程序调试实例. CVS 与配置管理(根据地区不同有可能使用其他版本控制软件). 静态链接库与程序跟静态链接库的使用. 动态链接库与实例9.C 语言重点演练 指针;向指针的指针. 二级指
11、针. 三级指针. 多级指针指针的使用与内核实例讲解10.组合数据类型. 结构体. 结构体指针. 枚举. 共用体 (联合) 11.函数指针. 函数指针做参数. 结构体中的函数指针. C 语言与面向对象12.文件操作. 标准 I/O . 系统 I/O. 目录操作三、用数据结构实现典型的企业基本应用 (10 天) 教学目标: 总结以前学过的数据结构与算法进行实际工作案例的讲解案例实践: (根据各地的环境以及老师的不同可能实际案例有一定变化,案例为以下其中几个)a. 成绩管理系统b. 电子词典程序编写c. 输入法程序编写d. 编写自己的计算器e. 文件压缩器f. 道路交通查询系统1 .单向链表,特别加
12、强内核与链表的实例讲解. 链表的创建 . 结点的添加. 结点的删除. 结点的查找. 链表的遍历2.双向链表 . 双向链表的创建. 双向链表插入和删除. 基于函数指针的插入条件. 基于函数指针的删除条件3、Linux 内核链表. Linux 内核链表的创建. 插入、删除、查找等函数的抽象. List 结构的作用. 有头与无头链表4、广义表. 组合链表的应用. 广义表5、队列和堆栈. 数组存储. 链式存储6、Hash 表. Hash 算法. Hash 表的创建. 遍历7、树. 数组存储. 链式存储. 树的遍历. 树的删除与插入. 权值的概念8、二叉树. 数组表示法. Huffman 树. Huff
13、man 编码9、排序及查找. 冒泡排序. 快速排序. 选择排序. 查入排序10、图. 图的建立. 数组存储. 链式存储. 路径搜索四、Linux 系统程序设计 POSIX 编程 (8 天) 教学目标: 熟悉应用程序的设计 案例实践:(根据各地的环境以及老师的不同可能实际案例有一定变化,案例为以下其中几个)a. 编写自己的串口监听程序(可以做集群通信等用处)b . 手动编写一个脚本解释器-MyShell (类似 Linux 种的 Bash 或 tcsh)c. 编写自己的图片浏览器d. 编写自己的中文输入法e. 编写一个自己的 MP3 播放器1. UNIX/Linux 进程与进程管理程序开发. 进
14、程的创建以及 Linux 下常见的相关系统调用. 进程地址空间与分配管理. mmap 机制. 父子进程的关系 以及相应的进程管理 . 僵尸进程与相关内容. 孤儿进程的形成与相关内容2. UNIX/Linux 终端. 进程的控制终端. 进程的标准输入输出. 规范及非规范模式. 波特率. select 与 poll3.进程组与信号. 进程组. 会话的建立. 守护进程. 常见的系统信号. 信号的注册. 信号处理4.进程间通信. FIFO. PIPE. 共享内存. 信号灯. 消息队列5. 线程. 线程的创建. 线程的属性. 取消状态与取消点. 线程的退出及状态检测. pthread_mutex. pt
15、hread_cond6.图形程序设计. Frame Buffer 的操作. 位图原理与显示. 矢量图形操作的实现 . Freetype 操作与矢量文字的显示. Xlib/QT/GTK 简介7.事件获取. 键盘事件获取. 鼠标事件获取. Unicode 字符获取8.音频程序设计. 音频原理. OSS 音频程序设计. ALSA 音频程序设计五、Linux 网络程序设计 Socket 编程 (5 天) 教学目标: 熟悉 TCP/IP, 熟悉一般的网络服务器程序以及典型的网络攻击防范程序案例实践: (根据尚观各地的环境以及老师的不同可能实际案例有一定变化,案例为以下其中几个)a. 自己编写 WEB 服
16、务器,类似 Apache 或者 nginx 之类的服务程序b. 编写一个聊天程序c . ftp 服务器与客端程序d . 音频广播程序e. 编写一个 DDos 攻击程序,用于网络攻击的分析和防范研究f. ARP 攻击程序,用于网络攻击或者病毒的分析和防范研究1、网络程序的开发基础. OSI 七层详解. TCP/IP 协议层分析与代码实现的体系. 网络协议应用层详解. Socket 编程与应用2、 UNIX/Linux 网络程序进阶. Socket 编程详解与实际案例3、 传输层高级应用. 基于 TCP 传输层协议的重复型和并发型程序设计. 基于 UDP 传输层协议的重复性和并发型程序设计4、广播和多播. 广播程