从零掌握Linux C语言开发:应用层编程与内核原理精讲
尚硅谷Linux应用层开发课程

1. 为什么选择Linux进行C语言开发?
Linux系统作为服务器领域的绝对主流,其应用层开发能力是程序员的核心竞争力。本课程从POSIX标准讲起,系统剖析在Linux环境下进行C语言开发的完整知识体系,帮助开发者建立符合行业规范的技术思维。课程特别对比了VS和GCC开发环境的差异,让学员理解开源工具链的优势所在。2. 课程核心内容模块解析
编译原理与Makefile部分详细演示了从预处理到链接的完整过程,这是理解Linux开发的基础。文件IO操作章节覆盖了fopen/fclose等标准库函数,以及open/close等系统调用的实战应用。进程与线程管理模块包含fork、execve等关键系统调用的底层原理,通过共享内存、消息队列等案例演示进程通信的多种方式。3. 深入Linux内核运行机制
课程独到之处在于内核原理的深度解析,从PCB内存模型到CPU工作方式,从虚拟内存映射到缺页处理机制,完整揭示Linux系统的工作逻辑。特别是对fork/execve等系统调用执行过程的图解,让开发者真正理解"程序如何变成进程"这一核心问题。4. 多线程与同步实战技巧
线程同步章节是课程的技术亮点,涵盖互斥锁、读写锁、自旋锁等7种同步机制,通过条件变量和信号量的综合案例,解决实际开发中的竞态条件问题。线程池实现案例展示了如何构建高性能的并发程序架构,这些内容都是嵌入式开发的必备技能。5. 网络编程基础与系统分层
最后章节从OSI七层模型切入,搭建网络编程的知识框架,为后续网络应用开发奠定基础。通过对比用户态与内核态的系统调用过程,帮助开发者理解Linux系统的分层设计思想,建立完整的系统级开发认知。
这套课程通过93节实战教学,将Linux应用层开发的关键技术点系统串联,配套的源码和资料包让学习过程更加直观。无论是想进入嵌入式领域的新手,还是希望深化Linux理解的开发者,都能通过本课程获得体系化的提升。
资源下载通道
夸克网盘分享
文件大小:6.48 GB
资源目录列表:
├─【尚硅谷】嵌入式技术之Linux应用层开发 - 带源码课件│ ├─视频
│ │ ├─01_Linux应用层编程课程介绍.mp4
│ │ ├─02_应用层开发文档介绍.mp4
│ │ ├─03_C语言开发_使用Linux的必有性.mp4
│ │ ├─04_C语言开发_POSIX标准概念.mp4
│ │ ├─05_C语言开发_VS和GCC的下载安装.mp4
│ │ ├─06_C语言开发_VS的设置使用.mp4
│ │ ├─07_C语言开发_如何彻底卸载VS.mp4
│ │ ├─08_C语言开发_HelloWorld程序演示.mp4
│ │ ├─09_C语言开发_GCC编译整体流程介绍.mp4
│ │ ├─10_C语言编译流程_预处理.mp4
│ │ ├─11_C语言编译流程_编译.mp4
│ │ ├─12_C语言编译流程_汇编.mp4
│ │ ├─13_C语言编译流程_汇编补充说明.mp4
│ │ ├─14_C语言编译流程_链接.mp4
│ │ ├─15_Makefile_编译管理工具介绍.mp4
│ │ ├─16_Makefile_引入变量.mp4
│ │ ├─17_Makefile_自动推导.mp4
│ │ ├─18_Makefile_伪目标声明.mp4
│ │ ├─19_Makefile_忽略错误和名称对应.mp4
│ │ ├─20_文件IO_打开文件fopen.mp4
│ │ ├─21_文件IO_关闭文件.mp4
│ │ ├─22_文件IO_写入字节fputc.mp4
│ │ ├─23_文件IO_写入字符串fputs.mp4
│ │ ├─24_文件IO_写入字符串fprintf.mp4
│ │ ├─25_文件IO_读取字节_fgetc.mp4
│ │ ├─26_文件IO_读取字符串_fgets.mp4
│ │ ├─27_文件IO_格式化读取_fscanf.mp4
│ │ ├─28_文件IO_标准输入输出和错误_stdin out err.mp4
│ │ ├─29_系统调用_open打开文件.mp4
│ │ ├─30_系统调用_其他常用的系统调用.mp4
│ │ ├─31_系统调用_综合案例.mp4
│ │ ├─32_文件描述符_结构图概念介绍.mp4
│ │ ├─33_文件描述符_总结图示.mp4
│ │ ├─34_进程处理_使用system库函数.mp4
│ │ ├─35_进程处理_main函数声明.mp4
│ │ ├─36_进程处理_fork创建子进程.mp4
│ │ ├─36_进程处理_fork加execve完成子进程运行.mp4
│ │ ├─37_进程处理_waitpid介绍.mp4
│ │ ├─37_进程处理_使用fork复制文件描述符.mp4
│ │ ├─38_进程处理_waitpid案例.mp4
│ │ ├─38_进程处理_使用execve跳转程序.mp4
│ │ ├─39_进程处理_进程树.mp4
│ │ ├─40_进程处理_孤儿进程.mp4
│ │ ├─41_进程通讯_类型及发展.mp4
│ │ ├─42_进程通信_打印错误及错误编号.mp4
│ │ ├─43_进程通讯_使用特殊通讯方式的必要性.mp4
│ │ ├─44_进程通讯_匿名管道通讯.mp4
│ │ ├─45_进程通讯_有名管道功能.mp4
│ │ ├─46_进程通讯_有名管道补充.mp4
│ │ ├─47_进程通讯_共享内存使用的函数和系统调用.mp4
│ │ ├─48_进程通讯_共享内存对象使用演示.mp4
│ │ ├─49_进程通讯_共享内存对象数据存储.mp4
│ │ ├─50_进程通讯_消息队列介绍.mp4
│ │ ├─51_进程通讯_使用消息队列完成父子进程通信.mp4
│ │ ├─52_进程通讯_消息队列生产者代码编写.mp4
│ │ ├─53_进程通信_生成者消费者的消息队列通信.mp4
│ │ ├─54_进程通讯_信号处理介绍.mp4
│ │ ├─55_线程处理_线程简介.mp4
│ │ ├─56_线程处理_线程创建的基础代码.mp4
│ │ ├─57_线程处理_线程终止内容介绍.mp4
│ │ ├─58_线程处理_线程终止exit.mp4
│ │ ├─59_线程处理_detach不挂起终止.mp4
│ │ ├─60_线程处理_cancel的延迟取消.mp4
│ │ ├─61_线程处理_cancel的异步取消和禁用取消.mp4
│ │ ├─62_线程同步_竞态条件和锁.mp4
│ │ ├─63_线程同步_互斥锁介绍.mp4
│ │ ├─64_线程同步_读写锁基础机制.mp4
│ │ ├─65_线程同步_读写锁使用展示.mp4
│ │ ├─66_线程同步_读写锁的写饥饿机制.mp4
│ │ ├─67_线程同步_自旋锁介绍.mp4
│ │ ├─68_线程同步_条件变量原理介绍.mp4
│ │ ├─69_线程同步_条件变量功能演示.mp4
│ │ ├─70_信号量_无名信号量实现互斥锁功能.mp4
│ │ ├─71_信号量_使用信号量解决进程间同步问题.mp4
│ │ ├─72_信号量_信号量在进程间使用的注意事项.mp4
│ │ ├─73_信号量_计数信号量控制线程执行顺序(1).mp4
│ │ ├─73_信号量_计数信号量控制线程执行顺序.mp4
│ │ ├─74_信号量_计数信号量控制进程执行顺序.mp4
│ │ ├─75_信号量_有名信号量在进程间的使用.mp4
│ │ ├─76_线程池_原理及api介绍.mp4
│ │ ├─77_线程池_使用案例演示.mp4
│ │ ├─78_内核原理_操作系统软件分层.mp4
│ │ ├─79_内核原理_pcb和内存模型.mp4
│ │ ├─80_内核原理_CPU工作模型.mp4
│ │ ├─81_内核原理_抽象进程状态.mp4
│ │ ├─82_内核原理_Linux具体进程状态.mp4
│ │ ├─83_内核原理_虚拟内存相关介绍.mp4
│ │ ├─84_内核原理_物理内存和虚拟内存映射.mp4
│ │ ├─85_内核原理_异常和中断处理.mp4
│ │ ├─86_内核原理_缺页故障原理.mp4
│ │ ├─87_内核原理_fork调用执行原理.mp4
│ │ ├─88_内核原理_execve调用执行原理.mp4
│ │ ├─89_内核原理_进程组id.mp4
│ │ ├─90_内核原理_进程切换流程介绍.mp4
│ │ ├─91_内核原理_系统调用和库函数.mp4
│ │ ├─92_内核管理_进程和线程的区别和联系.mp4
│ │ ├─93_内核管理_线程特点及内核线程.mp4
│ │ ├─94_网络编程_计算机网络分类.mp4
│ │ ├─95_网络编程_OSI7层模型介绍.mp4
│ │ ├─96_网络编程_TCP IP分层模型.mp4
│ ├─1.笔记.zip
│ ├─2.资料.zip
│ ├─3.代码.zip
相关资源