感谢您发送咨询!我们的团队成员将很快与您联系。
感谢您发送预订!我们的团队成员将很快与您联系。
课程大纲
简介
- 目标
- 你是谁
- Linux基金会
- Linux基金会培训
- 认证项目与数字徽章
- Linux发行版
- 平台
- 准备你的系统
- 使用和下载虚拟机
- Linux中的变化
预备知识
- 流程
- 标准与LSB
如何参与开源项目 **
- 如何正确贡献的概述
- 为安全与质量保持与主线的紧密联系
- 研究并理解项目的DNA
- 找出你想解决的问题
- 识别维护者及其工作流程与方法
- 尽早获取反馈并公开工作
- 增量贡献,而不是大量代码提交
- 放下自我:不要过于敏感
- 保持耐心,建立长期关系,乐于助人
编译器
- GCC
- 其他编译器
- 主要gcc选项
- 预处理器
- 集成开发环境(IDE)
- 实验
库
- 静态库
- 共享库
- 链接库
- 动态链接加载器
- 实验
Make
- 使用make和Makefiles
- 构建大型项目
- 更复杂的规则
- 内置规则
- 实验
源代码控制
- 源代码控制
- RCS和CVS
- Subversion
- git
- 实验
调试与核心转储
- gdb
- 什么是核心转储文件?
- 生成核心转储
- 检查核心转储
- 实验
调试工具
- 获取时间
- 性能分析
- valgrind
- 实验
系统调用
- 系统调用与库函数
- 如何进行系统调用
- 返回值与错误码
- 实验
内存管理与分配
- 内存管理
- 动态分配
- 调整malloc()
- 锁定页面
- 实验
Linux中的文件与文件系统 **
- 文件、目录与设备
- 虚拟文件系统
- ext2/ext3文件系统
- 日志文件系统
- ext4文件系统
- 实验
文件I/O
- UNIX文件I/O
- 打开与关闭
- 读取、写入与定位
- 位置与向量I/O
- 标准I/O库
- 大文件支持(LFS)
- 实验
高级文件操作
- Stat函数
- 目录函数
- inotify
- 内存映射
- flock()与fcntl()
- 创建临时文件
- 其他系统调用
- 实验
进程 I
- 什么是进程?
- 进程限制
- 进程组
- proc文件系统
- 进程间通信方法
- 实验
进程 II
- 使用system()创建进程
- 使用fork()创建进程
- 使用exec()创建进程
- 使用clone()
- 退出
- 构造函数与析构函数
- 等待
- 守护进程
- 实验
管道与FIFO
- 管道与进程间通信
- popen()与pclose()
- pipe()
- 命名管道(FIFO)
- splice(), vmsplice()与tee()
- 实验
异步I/O**
- 什么是异步I/O?
- POSIX异步I/O API
- Linux实现
- 实验
信号 I
- 什么是信号?
- 可用信号
- 信号分发
- 闹钟、暂停与睡眠
- 设置信号处理程序
- 信号集
- sigaction()
- 实验
信号 II
- 可重入性与信号处理程序
- 跳转与非本地返回
- siginfo与sigqueue()
- 实时信号
- 实验
POSIX线程 I
- Linux下的多线程
- 基本程序结构
- 创建与销毁线程
- 信号与线程
- fork与线程
- 实验
POSIX线程 II
- 死锁与竞争条件
- 互斥操作
- 信号量
- Futexes
- 条件操作
- 实验
网络与套接字
- 网络层
- 什么是套接字?
- 流套接字
- 数据报套接字
- 原始套接字
- 字节序
- 实验
套接字地址与主机
- 套接字地址结构
- 转换IP地址
- 主机信息
- 实验
套接字端口与协议
- 服务端口信息
- 协议信息
- 实验
套接字客户端
- 基本客户端流程
- socket()
- connect()
- close()与shutdown()
- UNIX客户端
- 互联网客户端
- 实验
套接字服务器
- 基本服务器流程
- bind()
- listen()
- accept()
- UNIX服务器
- 互联网服务器
- 实验
套接字输入/输出操作
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- 实验
套接字选项
- 获取与设置套接字选项
- fcntl()
- ioctl()
- getsockopt()与setsockopt()
- 实验
Netlink套接字**
- 什么是netlink套接字?
- 打开netlink套接字
- netlink消息
- 实验
套接字多路复用与并发服务器
- 多路复用与异步套接字I/O
- select()
- poll()
- pselect()与ppoll()
- epoll
- 信号驱动与异步I/O
- 并发服务器
- 实验
进程间通信
- IPC方法
- POSIX IPC
- System V IPC**
- 实验
共享内存
- 什么是共享内存?
- POSIX共享内存
- System V共享内存**
- 实验
信号量
- 什么是信号量?
- POSIX信号量
- System V信号量**
- 实验
消息队列
- 什么是消息队列?
- POSIX消息队列
- System V消息队列**
- 实验
要求
本课程适用于有经验的开发人员。学生应精通 C 编程,并熟悉基本的 Linux 实用程序和文本编辑器。
观众
本课程适用于有经验的开发人员。学生应精通 C 编程,并熟悉基本的 Linux 实用程序和文本编辑器。
经验水平: 中级
28 小时