本课程适用于有经验的开发人员。学生应精通 C 编程,并熟悉基本的 Linux 实用程序和文本编辑器。
观众
本课程适用于有经验的开发人员。学生应精通 C 编程,并熟悉基本的 Linux 实用程序和文本编辑器。
经验水平: 中级
- 在线直播(虚拟)或直播(课堂)
- 4天讲师指导的上课时间
- 动手实验和作业
- 资源和课程手册
- 结业证书
- 数字徽章
了解如何为 Linux 环境开发应用程序。在这个讲师指导的课程中,你将获得 Linux 应用程序开发所需工具和方法的实践经验,并了解 Linux 独有的功能和技术。
你会学到什么?
在本课程中,您将了解在 Linux 下开发 C 程序和进行系统编程的工具和方法、调试技术、流程管理、Linux 特定的付费和系统调用等。
你会得到什么?
本课程将为您为 Linux 环境开发应用程序做好准备。
介绍
- 目标
- 你是谁
- Linux 基金会
- Linux 基础培训
- 认证计划和数字徽章
- Linux 发行版
- 平台
- 准备您的系统
- 使用和下载虚拟机
- Linux 中的情况发生了变化
预赛
- 程序
- 标准和 LSB
如何在 OSS 项目中工作 **
- 关于如何正确贡献的概述
- 贴近主线,确保安全性和质量
- 研究并了解项目DNA
- 弄清楚你想要什么痒 Scratch
- 确定维护人员及其工作流程和方法
- 尽早获得意见并公开工作
- 贡献增量位,而不是大型代码转储
- 把你的自我留在门口:皮薄
- 要有耐心,发展长期关系,乐于助人
编译 器
- 海湾合作委员会
- 其他编译器
- 主要 gcc 选项
- 预处理
- 集成开发环境 (IDE)
- 实验室
图书馆
- 静态库
- 共享库
- 链接到库
- 动态链接加载程序
- 实验室
做
- 使用 make 和 Makefile
- 构建大型项目
- 更复杂的规则
- 内置规则
- 实验室
源代码管理
- 源代码管理
- RCS 和 CVS
- 颠覆
- git
- 实验室
调试和核心转储
- GDB公司
- 什么是核心转储文件?
- 生成核心转储
- 检查核心转储
- 实验室
调试工具
- 把握时间
- 剖析和性能
- 瓦尔格林德
- 实验室
系统调用
- 系统调用与库函数
- 如何进行系统调用
- 返回值和错误号
- 实验室
内存 Management 和分配
- 存储器 Management
- 动态分配
- 调优 malloc()
- 锁定页面
- 实验室
Linux 中的文件和文件系统 **
- 文件、目录和设备
- 虚拟文件系统
- ext2/ext3 文件系统
- 日志文件系统
- ext4/ 文件系统
- 实验室
文件 I/O
- UNIX 文件 I/O
- 开盘和闭盘
- 阅读、写作和寻找
- 位置和矢量 I/O
- 标准 I/O 库
- 大文件支持 (LFS)
- 实验室
高级文件操作
- 统计函数
- 目录函数
- iNotify公司
- 内存映射
- flock() 和 fcntl()
- 制作临时文件
- 其他系统调用
- 实验室
流程 I
- 什么是流程?
- 工艺限制
- 进程组
- proc 文件系统
- InterProcess Communication 方法
- 实验室
流程 II
- 使用 system() 创建进程
- 使用 fork() 创建进程
- 使用 exec() 创建进程
- 使用 clone()
- 退出
- 构造函数和析构函数
- 等待
- 守护进程
- 实验室
管道和FIFOS
- 管道和工艺间 Communication
- popen() 和 pclose()
- 管道()
- 命名管道 (FIFO)
- splice()、vmsplice() 和 tee()
- 实验室
异步 I/O**
- 什么是异步 I/O?
- POSIX 异步 I/O API
- Linux 实现
- 实验室
信号 I
- 什么是信号?
- 可用信号
- 调度信号
- 闹钟、暂停和睡眠
- 设置信号处理程序
- 信号集
- sigaction()
- 实验室
信号 II
- 重入和信号处理程序
- 跳转和非本地返回
- siginfo 和 sigqueue()
- 实时信号
- 实验室
POSIX 线程 I
- Linux 下的多线程
- 基本课程结构
- 创建和销毁线程
- 信号和线程
- 分叉与线程
- 实验室
POSIX 线程 II
- 死锁和竞争条件
- 互斥操作
- 信号灯
- Futexes (英语)
- 条件运算
- 实验室
Networking 和插座
- Networking 图层
- 什么是套接字?
- 流套接字
- 数据报套接字
- 原始套接字
- 字节排序
- 实验室
套接字 地址和主机
- 套接字地址结构
- 转换 IP 地址
- 主机信息
- 实验室
套接字、 端口和协议
- 服务端口信息
- 协议信息
- 实验室
套接字 客户端
- 基本客户端序列
- 套接字()
- 连接()
- close() 和 shutdown()
- UNIX 客户端
- Internet 客户端
- 实验室
套接字 服务器
- 基本服务器序列
- 绑定()
- 听()
- 接受()
- UNIX 服务器
- 互联网服务器
- 实验室
套接字 输入/输出操作
- write()、read()
- 发送()、recv()
- sendto(), recvfrom()
- sendmsg()、recvmsg()
- 发送文件()
- socketpair()
- 实验室
套接字 选项
- 获取和设置套接字选项
- fcntl()
- ioctl() 中
- getsockopt() 和 setsockopt()
- 实验室
Netlink 插槽**
- 什么是 netlink 套接字?
- 打开 netlink 套接字
- netlink 消息
- 实验室
套接字多 路复用和并发服务器
- 多路复用和异步套接字 I/O
- 选择()
- 投票()
- pselect() 和 ppoll()
- 埃波尔
- 信号驱动和异步 I/O
- 并发服务器
- 实验室
进程间 Communication
- IPC的方法
- POSIX 工控机
- 系统 V IPC**
- 实验室
共享内存
- 什么是共享内存?
- POSIX 共享内存
- System V 共享内存**
- 实验室
信号灯
- 什么是信号量?
- POSIX信号量
- System V 信号量**
- 实验室
消息队列
- 什么是消息队列?
- POSIX 消息队列
- System V 消息队列**
- 实验室
United Arab Emirates - Developing Applications For Linux (LFD401)
Qatar - Developing Applications For Linux (LFD401)
Egypt - Developing Applications For Linux (LFD401)
Saudi Arabia - Developing Applications For Linux (LFD401)
South Africa - Developing Applications For Linux (LFD401)
Brasil - Developing Applications For Linux (LFD401)
Canada - Developing Applications For Linux (LFD401)
中国 - Developing Applications For Linux (LFD401)
香港 - Developing Applications For Linux (LFD401)
澳門 - Developing Applications For Linux (LFD401)
台灣 - Developing Applications For Linux (LFD401)
USA - Developing Applications For Linux (LFD401)
Österreich - Developing Applications For Linux (LFD401)
Schweiz - Developing Applications For Linux (LFD401)
Deutschland - Developing Applications For Linux (LFD401)
Czech Republic - Developing Applications For Linux (LFD401)
Denmark - Developing Applications For Linux (LFD401)
Estonia - Developing Applications For Linux (LFD401)
Finland - Developing Applications For Linux (LFD401)
Greece - Developing Applications For Linux (LFD401)
Magyarország - Developing Applications For Linux (LFD401)
Ireland - Developing Applications For Linux (LFD401)
Luxembourg - Developing Applications For Linux (LFD401)
Latvia - Developing Applications For Linux (LFD401)
España - Developing Applications For Linux (LFD401)
Italia - Developing Applications For Linux (LFD401)
Lithuania - Developing Applications For Linux (LFD401)
Nederland - Developing Applications For Linux (LFD401)
Norway - Developing Applications For Linux (LFD401)
Portugal - Developing Applications For Linux (LFD401)
România - Developing Applications For Linux (LFD401)
Sverige - Developing Applications For Linux (LFD401)
Türkiye - Developing Applications For Linux (LFD401)
Malta - Developing Applications For Linux (LFD401)
Belgique - Developing Applications For Linux (LFD401)
France - Developing Applications For Linux (LFD401)
日本 - Developing Applications For Linux (LFD401)
Australia - Developing Applications For Linux (LFD401)
Malaysia - Developing Applications For Linux (LFD401)
New Zealand - Developing Applications For Linux (LFD401)
Philippines - Developing Applications For Linux (LFD401)
Singapore - Developing Applications For Linux (LFD401)
Thailand - Developing Applications For Linux (LFD401)
Vietnam - Developing Applications For Linux (LFD401)
India - Developing Applications For Linux (LFD401)
Argentina - Developing Applications For Linux (LFD401)
Chile - Developing Applications For Linux (LFD401)
Costa Rica - Developing Applications For Linux (LFD401)
Ecuador - Developing Applications For Linux (LFD401)
Guatemala - Developing Applications For Linux (LFD401)
Colombia - Developing Applications For Linux (LFD401)
México - Developing Applications For Linux (LFD401)
Panama - Developing Applications For Linux (LFD401)
Peru - Developing Applications For Linux (LFD401)
Uruguay - Developing Applications For Linux (LFD401)
Venezuela - Developing Applications For Linux (LFD401)
Polska - Developing Applications For Linux (LFD401)
United Kingdom - Developing Applications For Linux (LFD401)
South Korea - Developing Applications For Linux (LFD401)
Pakistan - Developing Applications For Linux (LFD401)
Sri Lanka - Developing Applications For Linux (LFD401)
Bulgaria - Developing Applications For Linux (LFD401)
Bolivia - Developing Applications For Linux (LFD401)
Indonesia - Developing Applications For Linux (LFD401)
Kazakhstan - Developing Applications For Linux (LFD401)
Moldova - Developing Applications For Linux (LFD401)
Morocco - Developing Applications For Linux (LFD401)
Tunisia - Developing Applications For Linux (LFD401)
Kuwait - Developing Applications For Linux (LFD401)
Oman - Developing Applications For Linux (LFD401)
Slovakia - Developing Applications For Linux (LFD401)
Kenya - Developing Applications For Linux (LFD401)
Nigeria - Developing Applications For Linux (LFD401)
Botswana - Developing Applications For Linux (LFD401)
Slovenia - Developing Applications For Linux (LFD401)
Croatia - Developing Applications For Linux (LFD401)
Serbia - Developing Applications For Linux (LFD401)
Bhutan - Developing Applications For Linux (LFD401)