├─第00期:入门篇
│ 0.1什么是系统编程t?.mp4
│ 0.2一个系统编程的例子(上).mp4
│ 0.3一个系统编程的例子(下).mp4
│ 0.4系统调用与C标准库.mp4
│ 0.5POSIX标准.mp4
│ 0.6系统编程必备技能(上):man命令.mp4
│ 0.7系统编程必备技能(中):info命令.mp4
│ 0.8系统编程必备技能(下):strace命令.mp4
│ 0.9系统调用错误处理.mp4
│ 0.10GNU编码风格.mp4
│ 0.11linux哲学:一切皆文件.mp4
│ 0.12编程实战:音频播放器(上).mp4
│ 0.13编程实战:音频播放器(下).mp4
│ 0.14后续课程学习路线.mp4
│ 资料.zip
│
├─第01期:揭开文件系统的神秘面纱
│ 1.1本期课程规划.mp4
│ 1.2文件在磁盘上的存储(上).mp4
│ 1.3文件在磁盘上的存储(下).mp4
│ 1.4文件在Flash上的存储(上).mp4
│ 1.5文件在Flash上的存储(下).mp4
│ 1.6文件系统索引节点:inode.mp4
│ 1.7超级块:superblock.mp4
│ 1.8目录和目录项.mp4
│ 1.9文件路径解析.mp4
│ 1.10文件系统的挂载.mp4
│ 1.11文件系统类型.mp4
│ 1.12虚拟文件系统:VFS.mp4
│ 1.13文件描述符.mp4
│ 1.14文件指针.mp4
│ 1.15硬链接和软链接.mp4
│ 1.16一些命令.mp4
│ 1.17实验:磁盘格式化及挂载.mp4
│ 1.18实验:恢复删除的文件.mp4
│ 代码.zip
│
├─第02期:文件IO编程实战
│ 2.1本期课程简介.mp4
│ 2.2文件的打开模式.mp4
│ 2.3文件的读写权限.mp4
│ 2.4文件的读写函数.mp4
│ 2.5文件读写位置与定位.mp4
│ 2.6获取文件的属性信息.mp4
│ 2.7实现shell命令:ll.mp4
│ 2.8读取目录文件内容.mp4
│ 2.9实现ls命令:支持多个目录.mp4
│ 2.10实现ls命令:支持-c参数.mp4
│ 2.11音频播放器:实现循环列表播放.mp4
│ 2.12实现ls命令:支持-l参数.mp4
│ 2.13有关目录的其它操作.mp4
│ 2.14相对路径转绝对路径.mp4
│ 2.15编程实战:实现wc命令(上).mp4
│ 2.16编程实战:实现wc命令(中).mp4
│ 2.17编程实战:实现wc命令(下).mp4
│ 课件代码.zip
│
├─第03期:文件IO缓存与内存映射
│ 3.1缓存的基本概念.mp4
│ 3.2页高速缓存(上).mp4
│ 3.3页高速缓存(中).mp4
│ 3.4页高速缓存(下).mp4
│ 3.5块设备驱动架构.mp4
│ 3.6用户空间的IO缓存.mp4
│ 3.7Scatter_GatherIO.mp4
│ 3.8直接IO.mp4
│ 3.9将文件映射到内存.mp4
│ 3.10文件映射内存的实现.mp4
│ 3.11将设备映射到内存.mp4
│ 代码.zip
│
├─第04期:打通进程与终端的任督二脉
│ 4.1进程:程序运行的“牌照”.mp4
│ 4.2创建一个进程:fork.mp4
│ 4.3子进程的运行:借壳上市.mp4
│ 4.4写时复制与vfork.mp4
│ 4.5进程的退出:exi.mp4
│ 4.6进程的退出:exit与_exi.mp4
│ 4.7进程的退出:vfork与exi.mp4
│ 4.8等待子进程终止:wAI.mp4
│ 4.9进程调度.mp4
│ 4.10进程状态.mp4
│ 4.11进程的UID和GID.mp4
│ 4.12通过proc查看进程资源.mp4
│ 4.13与进程通信:信号.mp4
│ 4.14终端与控制台.mp4
│ 4.15进程组与会话.mp4
│ 4.16前台进程和后台进程.mp4
│ 4.17守护进程.mp4
│ 4.18僵尸进程.mp4
│ 4.19孤儿进程.mp4
│ 4.20 0号进程和1号进程.mp4
│ 4.21小结:linux进程全景图.mp4
│ 第04期资料.zip
│
├─第05期:进程间通信
│ 5.1什么是IPC?.mp4
│ 5.2无名管道(1):PIPE编程实例5.mp4
│ 5.3无名管道(2):shell中的管道实现.mp4
│ 5.4无名管道(3):通过管道与shell命令进行通信.mp4
│ 5.5无名管道(4):通过管道同步进程.mp4
│ 5.6命名管道:FIFO.mp4
│ 5.7FIFO应用:LOG日志系统的实现.mp4
│ 5.8FIFO应用:服务端与客户端通信.mp4
│ 5.9IPC对象和IPCkey.mp4
│ 5.10systemV消息队列.mp4
│ 5.11消息队列应用:点对点通信.mp4
│ 5.12消息队列应用:多人聊天室.mp4
│ 5.13systemV共享内存.mp4
│ 5.14systemV信号量.mp4
│ 5.15信号量编程应用:对共享内存的同步访问.mp4
│ 5.16信号量编程应用:生产者-消费者模型.mp4
│ 5.17POSIXIPC简介.mp4
│ 5.18消息队列(上):API编程实例.mp4
│ 5.19消息队列(中):异步通知.mp4
│ 5.20消息队列(下):内核实现.mp4
│ 5.21POSIX信号量.mp4
│ 5.22POSIX共享内存.mp4
│ 5.23文件锁.mp4
│ 5.24信号机制:signal.mp4
│ 5.25编写安全的信号处理函数.mp4
│ 5.26信号底层API:sigaction函数.mp4
│ 5.27linux新增API:signalfd.mp4
│ 5.28linux新增API:timerfd.mp4
│ 5.29linux新增API:eventfd.mp4
│ 5.30D-BUS总线简介及小结.mp4
│ 课件代码.zip
│
├─第06期:从零实现一个shell解释器
│ 6.1什么是shell解释器.mp4
│ 6.2shell命令的执行过程.mp4
│ 6.3在子进程中运行shell命令.mp4
│ 6.4解析用户输入的命令并执行.mp4
│ 6.5代码优化及封装.mp4
│ 6.6打印彩色命令提示符.mp4
│ 6.7实现shell内建命令:cd.mp4
│ 6.8实现shell内建命令:exi.mp4
│ 6.9增加对信号的处理操作.mp4
│ 6.10支持进程的后台运行.mp4
│ 6.11实现shell的管道命令(上):思路分析.mp4
│ 6.12实现shell的管道命令(下):编码实现.mp4
│ 6.13实现脚本的解析和运行.mp4
│ 6.14实现shell脚本语法:if-else流程控制.mp4
│ 6.15shell变量的实现.mp4
│ 6.16设置shell的环境变量.mp4
│ 6.17实现shell的export命令.mp4
│ 6.18代码优化及小结.mp4
│ 代码.zip
│
├─第07期:多线程编程入门
│ 7.1多线程编程的概念.mp4
│ 7.2多线程学习准备工作.mp4
│ 7.3创建一个新线程:pthread_create.mp4
│ 7.4线程的终止.mp4
│ 7.5等待线程的终止.mp4
│ 7.6线程属性.mp4
│ 7.7线程的调度与运行.mp4
│ 7.8线程安全.mp4
│ 7.9线程同步:互斥锁.mp4
│ 7.10线程同步:条件变量(上).mp4
│ 7.11线程同步:条件变量(下).mp4
│ 7.12线程同步:读写锁.mp4
│ 7.13线程池的概念.mp4
│ 7.14超线程技术.mp4
│ 7.15线程的概念.mp4
│ 代码.zip
│
├─第08期:时间管理和定时器编程
│ 8.1时间的概念5.mp4
│ 8.2时间的计量.mp4
│ 8.3linux系统中的时间管理.mp4
│ 8.4获取当前的时间.mp4
│ 8.5时间格式转换.mp4
│ 8.6将时间转换为字符串.mp4
│ 8.7用户指定格式的字符串.mp4
│ 8.8获取高精度时间:微秒.mp4
│ 8.9获取高精度时间:纳秒.mp4
│ 8.10linux中的定时器:alarm.mp4
│ 8.11linux中的定时器:intervaltimer.mp4
│ 8.12linux中的定时器:POSIXtimer(上).mp4
│ 8.13linux中的定时器:POSIXtimer(下).mp4
│ 课件代码.zip
│
└─练手项目:使用C语言实现协程
1.什么是协程?.mp4
2.协程的实现原理.mp4
3.保存和设置当前函数上下文.mp4
4.添加项目的Makefile.mp4
5.继续完善我们的API.mp4
6.使用POSIXAPI:getcontex.mp4
7.使用POSIXAPI:makecontex.mp4
8.使用POSIXAPI:swapcontex.mp4
9.使用swapcontext切换func1和func2.mp4
10.实现协程的API:coroutine_create.mp4
11.实现协程的API:coroutine_yield.mp4
12.实现协程的API:coroutine_resume.mp4
13.优化coroutine_yield的参数.mp4
14.支持给协程传递参数.mp4
15.修改协程栈为动态内存.mp4
16.支持用户指定协程栈大小.mp4
17.一个测试应用程序.mp4
代码.zip
有需要联系v;加客服窗口的联系方式
摘要:Linux系统编程是计算机科学领域的重要分支,本文从Linux系统编程的概述、核心概念、常用工具和实际应用四个方面进行详细阐述,旨在帮助读者全面了解Linux系统编程的相关知识。
1、概述
Linux系统编程是指利用C语言等编程语言在Linux操作系统上进行软件开发的过程。Linux作为一种开源的操作系统,具有强大的稳定性和可扩展性,因此在嵌入式系统、服务器等领域得到了广泛应用。Linux系统编程主要包括进程管理、文件系统操作、网络编程等核心概念。
Linux系统编程具有以下特点:首先,它具有跨平台性,可以在不同的硬件和操作系统上运行;其次,它具有高度的灵活性和可定制性,可以满足不同应用场景的需求;最后,它具有丰富的开源资源和社区支持,为开发者提供了便利。
随着云计算、大数据等技术的发展,Linux系统编程在各个领域都发挥着重要作用。掌握Linux系统编程技术,对于从事计算机科学领域工作的专业人士来说具有重要意义。
2、核心概念
Linux系统编程的核心概念主要包括进程管理、文件系统操作和网络编程。进程管理是指对系统中的进程进行创建、调度、同步和通信等操作。在Linux系统中,进程是系统资源分配的基本单位,进程管理对于保证系统稳定运行至关重要。
文件系统操作是指对文件进行创建、删除、读写等操作。Linux文件系统具有层次结构,包括目录、文件和设备等。掌握文件系统操作,有助于开发者更好地管理数据,提高系统性能。
网络编程是指利用套接字(Socket)等机制实现网络通信。Linux系统提供了丰富的网络编程接口,如TCP/IP、UDP等,使得开发者可以轻松实现网络应用。
3、常用工具
Linux系统编程中,常用工具包括gcc编译器、make构建工具、gdb调试器等。gcc编译器可以将C语言源代码编译成可执行文件;make构建工具可以根据Makefile文件自动构建项目;gdb调试器可以帮助开发者调试程序,提高开发效率。
此外,Linux系统中还提供了丰富的命令行工具,如ls、cp、mv等,用于文件操作;ps、top等工具用于进程管理;netstat、ifconfig等工具用于网络编程。熟练掌握这些工具,有助于开发者更好地进行Linux系统编程。
随着技术的发展,一些集成开发环境(IDE)如Eclipse、Visual Studio Code等也支持Linux系统编程,为开发者提供了更加便捷的开发体验。
4、实际应用
Linux系统编程在实际应用中具有广泛的应用场景。例如,在嵌入式系统领域,Linux系统编程可以用于开发智能家居、工业控制系统等;在服务器领域,Linux系统编程可以用于开发Web服务器、数据库服务器等;在云计算领域,Linux系统编程可以用于开发虚拟化技术、容器技术等。
此外,Linux系统编程在开源社区中也发挥着重要作用。许多开源项目,如Linux内核、Apache、MySQL等,都是基于Linux系统编程技术开发的。参与开源项目,有助于提升自己的编程技能,同时为社区贡献力量。
总结:
Linux系统编程是计算机科学领域的重要分支,具有广泛的应用前景。本文从概述、核心概念、常用工具和实际应用四个方面对Linux系统编程进行了详细阐述,旨在帮助读者全面了解Linux系统编程的相关知识。
随着技术的不断发展,Linux系统编程将继续在各个领域发挥重要作用。掌握Linux系统编程技术,对于从事计算机科学领域工作的专业人士来说具有重要意义。
本文由nayona.cn整理
联系我们
关注公众号
微信扫一扫
支付宝扫一扫