Linux/OpenWRT课程

#戴维营教育--嵌入式Linux软件培训
#课程大纲:

##基础阶段

  • GNU/Linux系统基础
  • C语言基础入门
  • C语言开发提高
  • 数据结构与算法实践

##提升阶段

  • Linux 系统编程与应用开发
  • TCP/IP 网络协议族原理精讲
  • Socket与Libevent网络编程
  • 嵌入式数据库SQLite3编程
  • C++语言基础与 STL 模板库
  • Qt5/QML跨平台嵌入式GUI开发

##升华阶段

  • ARM或者MIPS体系结构
  • Linux内核架构与模块编程
  • Linux内核NetFilter模块学习
  • Linux常见设备驱动程序开发
  • OpenWRT智能路由系统移植开发(智能路由器方向)
  • Android智能家居系统移植开发(智能家居方向)
  • OpenWRT和Android二选一

##面试就业

  • 情景面试
  • 压力面试
  • 简历辅导
  • 面试辅导

#课程内容:


| 基础阶段: |嵌入式Linux C开发初级工程师 ||
|--------|--------|-----|
|课程名称: |课程内容:||
| GNU/Linux系统基础 | Ubuntu Linux系统的介绍,安装,基础操作,磁盘分区文件系统与VFS介绍,软件包的安装与编译方法,常见流行服务的构建与配置以及Bash Shell脚本的编程| |
|C语言基础入门|标准C语言的基础数据类型,基础语法,判断,循环,递归,函数,指针,结构体,数组,字符串,文件IO,类型转换,命令行参数,预处理,编译,汇编,链接等||
|C语言开发提高|学习C语言标准库函数.静态库与动态库的创建以及团队协作与代码版本管理工具的学习与实践.Git和SVN. 熟悉结合使用GCC与GDB进行程序编译与调试,学习Makefile文件的规则与编写.||
| 数据结构与算法 | 常用数据结构:单链表,双链表,队列,栈,二叉树等;常用的排序算法和查找算法;动态内存管理以及纯C语言的面向对象编程思想实践. ||
|阶段项目实践|1.LNMP/LAMP服务超级守护脚本程序;
2.终端MP3音乐播放器;||


| 提升阶段: | 嵌入式Linux C/C++开发中级工程师 ||
|--------|--------||
|课程名称: |课程内容:||
| GNU/Linux 系统编程与应用开发 |学习Linux系统编程, 通用文件IO系统调用, 文件描述符与文件控制操作, 阻塞非阻塞IO,进程控制与管理,进程地址空间布局与堆栈内存管理,用户认证与进程权限管理,文件事件监控.信号,信号量,互斥量,读写锁,管道,消息队列,共享内存等各种进程间通讯方法等,pthread多线程编程与多线程间同步方法等等. ||
|TCP/IP 网络协议族原理精讲|从下至上学习TCP/IP协议族的各层协议,如链路层,网络层,传输层,
应用层中的常用协议原理.比如: ARP/RARP,DHCP,IP,ICMP,UDP,TCP,DNS,HTTP,FTP等网络协议.||
|Socket与Libevent网络编程| 学习网络套接字BSD编程接口,TCP网络开发与UDP单播,多播与广播编程;
WireShark网络抓包分析与LibPcap编程库任意层次网络数据包的发送;
学习基于事件的跨平台网络编程库LibEvent开发TCP,HTTP,DNS等服务器,开发高并发,高可用的网络产品.||
|嵌入式数据库SQLite3编程|学习关系数据库原理与SQL标准查询语言语法与运用;
学习SQLite3的源码编译,安装,编程开发嵌入式平台的数据库应用.||
|C++语言基础与 STL 模板库|C++语法基础,与C语言的异同点,类的继承,封装与多态,函数重载与覆盖,虚函数表与多态实现原理,命名空间,面向对象编程与设计思想;
C++的标准模板库的顺序容器,关联容器等等容器数据类型以及函数模板和类模板等.||
|Qt5/QML跨平台嵌入式GUI开发|Qt5 SDK的安装与交叉编译和开发环境搭建,Qt5基础图形控件,
Qt5多媒体编程,Qt5网络编程,Qt5数据库编程,Qt5的2D/3D编程,
Qt5 Quick/QML编程. Qt5的平台插件(QPA)开发与移植.||
|阶段项目实践|1. 终端串口通信程序;
2. 多进程多线程HTTP服务器;
3. DNS域名解析服务器;
4. Qt5串口上位机调试软件;
5. 百度FM音乐电台播放器(桌面歌词);
6. Qt5跨平台桌面弹幕应用;
7. 基于Qt5和QML的嵌入式KTV音视频点播系统.||


|升华阶段:|嵌入式Linux C/C++开发高级工程师||
|--------|--------|-|
|课程名称:|课程内容:||
|芯片体系结构|学习ARM芯片或者MIPS芯片的体系结构.了解ARM指令集与MIPS指令集||
|Linux内核架构与模块编程|学习Linux内核编译升级,内核裁剪定制,内核模块架构分析,数据结构与算法学习,系统调用定制,各种内核与用户空间通信技术.||
|NetFilter防火墙模块编程|深入Linux内核网络栈,防火墙网络数据包解析过滤,修改,链接跟踪,行为审计管理,编写自定义的NetFilter内核模块等.||
|Linux设备驱动程序开发|学习字符设备驱动,块设备驱动,虚拟网卡设备驱动,LED驱动模块,GPIO驱动模块,USB设备驱动,WiFi芯片驱动移植等等||
|Openwrt路由系统移植开发(二选一)|MIPS平台OpenWRT系统移植为例,固件裁剪和定制, USB设备驱动,SD/MMC驱动的配置,4GModem驱动定制.自定义软件包定制 等.||
|Android智能系统移植开发(二选一)|ARM平台的Android系统移植为例,固件裁剪和定制, USB设备驱动,SD/MMC驱动配置,4GModem驱动定制.有线无线网卡驱动,GPU驱动移植等.||
|阶段项目实践|1. 必须完全自己编写3到5个有实际意义的内核模块或者设备驱动.
2. 基于自主研发的OpenWrt的广告路由器固件开发,支持Captive Portal广告和离线广告以及WiFi设备MAC地址探测和采集上传云服务器做大数据分析(由内核模块驱动和用户空间的鉴权服务,实现DNS欺骗,TCP/HTTP链接劫持,移动设备的探测和采集).
3. 基于自主研发的WiFi路由器为中心的智能家居控制系统(用手机通过网络控制灯光,家电,传感器采集环境,蓝牙体温计,空气球,视频监控等).
4. 智能机顶盒开发板上移植Android操作系统,适配驱动,自己开发一个智能电视机顶盒.||

仅有 1 条评论

  1. 小余

    琼哥 大牛

评论已关闭