Course Code: lfd401
Duration: 28 hours
Prerequisites:

本课程适用于有经验的开发人员。学生应精通 C 编程,并熟悉基本的 Linux 实用程序和文本编辑器。

观众

本课程适用于有经验的开发人员。学生应精通 C 编程,并熟悉基本的 Linux 实用程序和文本编辑器。

经验水平: 中级

Overview:
  • 在线直播(虚拟)或直播(课堂)
  • 4天讲师指导的上课时间
  • 动手实验和作业
  • 资源和课程手册
  • 结业证书
  • 数字徽章

了解如何为 Linux 环境开发应用程序。在这个讲师指导的课程中,你将获得 Linux 应用程序开发所需工具和方法的实践经验,并了解 Linux 独有的功能和技术。

你会学到什么?

在本课程中,您将了解在 Linux 下开发 C 程序和进行系统编程的工具和方法、调试技术、流程管理、Linux 特定的付费和系统调用等。

你会得到什么?

本课程将为您为 Linux 环境开发应用程序做好准备。

Course Outline:

介绍

  •  目标
  •  你是谁
  •  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 消息队列**
  •  实验室
Sites Published:

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)

Nepal - Developing Applications For Linux (LFD401)

Uzbekistan - Developing Applications For Linux (LFD401)