操作系统入门与实践-参透技术本质
只有掌握技术本质,才能以不变应万变 ,突破职业天花板
操作系统是计算机的基石,理解操作系统有助于写出正确的、性能更好、稳定性更高的程序,是技术各路大厂面试官重点考察的能力之一,成为越来越多程序员的必修课,鉴于此,课程从知识点之间的联系出发,研发出一条循序渐进,不断层的学习路线,并汲取讲师多年实战经验自研理论图解和密训案例,带你从0到1参透技术本质,快速补齐操作系统短板,来一次质的提升。
适合人群
对操作系统感兴趣,有编程经验更佳
环境参数
设备 无限制,Linux系统最佳
试看链接:https://pan.baidu.com/s/15aZWD2P_QCTqUuDsbxf9OQ?pwd=p5in
相关推荐:
【拉勾教育】重学操作系统
从零开发操作系统:从加电自检到内核引导
李术铜-从0手写自己的Linux X86操作系统|完结无密
课程目录:
第1章 《2024全新版 操作系统入门与实践-参透技术本质》导学 试看 2 节 | 16分钟
操作系统是计算机的基石,理解操作系统有助于写出正确的、性能更好、稳定性更高的程序,本章介绍了课程是如何从知识点之间的联系出发,带同学们循序渐进,不断层的学习,带你从0到1参透技术本质,快速补齐操作系统短板,来一次质的提升。 …
- 视频: 1-1 为什么操作系统是计算机基石,是程序高手必经之路 (06:20) 试看
- 视频: 1-2 如何学习才能更容易掌握操作系统,看透技术本质 (08:49) 试看
-
第2章 CPU、内存以及程序运行的奥秘 试看 12 节 | 231分钟
本章的目的是让大家对计算机系统底层工作原理有较为深入的理解,操作系统本身作为一个程序离不开CPU、内存,因此对本章的学习将有助于后续对操作系统的理解。
- 视频: 2-1 谈论CPU时你的大脑里应该有什么(上) (26:40) 试看
- 视频: 2-2 谈论CPU时你的大脑里应该有什么(下) (17:20)
- 视频: 2-3 内存的本质是什么 (25:52)
- 视频: 2-4 编程语言是怎么一回事 (20:10)
- 视频: 2-5 到底什么是编译型语言以及解释型语言 (10:29)
- 视频: 2-6 为什么内存中有堆区和栈区 (23:47)
- 视频: 2-7 没有操作系统程序能运行起来吗 (17:01)
- 视频: 2-8 程序是怎样运行起来的(上) (22:00)
- 视频: 2-9 程序是怎样运行起来的(下) (19:09)
- 视频: 2-10 为什么用c语言编写操作系统 (14:30)
- 视频: 2-11 程序和进程有什么区别(上) (18:39)
- 视频: 2-12 程序和进程有什么区别(下) (15:21)
-
第3章 操作系统的实现原理与系统调用 13 节 | 235分钟
操作系统作在宏观上是怎样实现的?为什么说Linux其实是一个“过时”的操作系统?为什么一些在你看来非常难以排查定位的问题在有些人眼里简直小菜一碟?快来本章寻找答案吧。
- 视频: 3-1 操作系统是如何实现的 (22:45)
- 视频: 3-2 操作系统是如何启动的 (24:25)
- 视频: 3-3 cpu权限管理的王者之争(上) (24:17)
- 视频: 3-4 cpu权限管理的王者之争(下) (06:58)
- 视频: 3-5 为什么需要系统调用什么是系统调用(上) (17:21)
- 视频: 3-6 为什么需要系统调用什么是系统调用(下) (20:08)
- 视频: 3-7 系统调用时CPU和操作系统中发送了什么(上) (15:16)
- 视频: 3-8 系统调用时CPU和操作系统中发送了什么(下) (13:01)
- 视频: 3-9 CPU是如何执行操作系统中的函数的 (18:03)
- 视频: 3-10 系统调用执行完后怎么返回用户态?(上) (15:28)
- 视频: 3-11 系统调用执行完后怎么返回用户态?(下) (09:39)
- 视频: 3-12 实践篇_真实的内核调用栈 (20:28)
- 视频: 3-13 利用strace排查各种疑难杂症 (26:21)
-
第4章 进程管理:操作系统如何实现多任务 37 节 | 598分钟
为什么在及时只有一个CPU的系统下也可以同时运行成百上千个程序?操作系统是如何实现多任务的?怎样从零开始一步步实现进程、线程这些概念?了解这些概念对程序员有什么好处?程序员怎样编写出性能更好、稳定性更高的代码?看完这章你就明白了。…
- 视频: 4-1 操作系统为什么需要进程这个概念 (19:34)
- 视频: 4-2 操作系统是如何实现多任务的?要解决哪些问题 (08:49)
- 视频: 4-3 进程被暂停后是怎么恢复运行的? (25:37)
- 视频: 4-4 进程切换是如何实现的?(上) (14:58)
- 视频: 4-5 进程切换是如何实现的?(中) (21:00)
- 视频: 4-6 进程切换是如何实现的?(下) (17:30)
- 视频: 4-7 进程切换和函数调用的区别 (15:46)
- 视频: 4-8 为什么进程需要各种各样的状态信息?(上) (15:39)
- 视频: 4-9 为什么进程需要各种各样的状态信息?(下) (12:35)
- 视频: 4-10 操作系统是如何调度进程的(上) (26:15)
- 视频: 4-11 操作系统是如何调度进程的(下) (11:02)
- 视频: 4-12 进程是如何在各个状态之间进行转移的(上) (19:04)
- 视频: 4-13 进程是如何在各个状态之间进行转移的(下) (17:37)
- 视频: 4-14 操作系统与进程的夺权之战(上) (15:21)
- 视频: 4-15 操作系统与进程的夺权之战(下) (09:30)
- 视频: 4-16 windows与linux下的进程创建api(上) (15:14)
- 视频: 4-17 windows与linux下的进程创建api(下) (12:27)
- 视频: 4-18 为什么linux中需要fork与exec两个api(上) (17:25)
- 视频: 4-19 为什么linux中需要fork与exec两个api(下) (17:52)
- 视频: 4-20 操作系统是如何一步步创建出进程的(上) (17:28)
- 视频: 4-21 操作系统是如何一步步创建出进程的(下) (08:05)
- 视频: 4-22 进程是如何退出的? (20:00)
- 视频: 4-23 操作系统是如何实现进程间通信的(上) (16:39)
- 视频: 4-24 操作系统是如何实现进程间通信的(下) (21:20)
- 视频: 4-25 有了进程为什么还需要线程 (20:23)
- 视频: 4-26 线程这个概念的来源、本质与实现 (18:57)
- 视频: 4-27 线程是如何被创建出来的?(上) (19:00)
- 视频: 4-28 线程是如何被创建出来的?(下) (13:33)
- 视频: 4-29 彻底理解进程和线程的区别(上) (17:28)
- 视频: 4-30 彻底理解进程和线程的区别(下) (09:17)
- 视频: 4-31 利用多线程优化程序性能(上) (19:32)
- 视频: 4-32 利用多线程优化程序性能(下) (07:56)
- 视频: 4-33 有了线程为什么还有协程(上) (16:31)
- 视频: 4-34 有了线程为什么还有协程(下) (09:07)
- 视频: 4-35 实践篇多进程编程(上) (20:13)
- 视频: 4-36 实践篇多进程编程(下) (13:09)
- 视频: 4-37 多进程多线程在浏览器中的应用 (15:22)
-
第5章 内存管理:操作系统如何管理内存 21 节 | 392分钟
我们的代码到底是如何申请到内存的,申请内存时在底层都发生了什么?程序员看到的内存地址是真实的吗? 为什么程序员可以申请到比物理内存还要大的内存块?虚拟内存到底是怎么一回事?本章为你揭晓答案。
- 视频: 5-1 黑客帝国与内存背后的真相 (17:32)
- 视频: 5-2 为什么内存分配会是个问题 (18:41)
- 视频: 5-3 程序运行需要分配哪些内存 (13:38)
- 视频: 5-4 操作系统是如何为进程分配内存的(上) (13:39)
- 视频: 5-5 操作系统是如何为进程分配内存的(下) (13:23)
- 视频: 5-6 操作系统是如何为进程分配内存的 (26:09)
- 视频: 5-7 虚拟地址空间的诞生 (17:42)
- 视频: 5-8 操作系统如何为进程分配内存:段式内存管理 (22:12)
- 视频: 5-9 操作系统是如何为进程分配内存的:页式内存管理 (23:38)
- 视频: 5-10 页式内存管理会带来哪些问题 (21:06)
- 视频: 5-11 操作系统如何加速页表读取(上) (23:13)
- 视频: 5-12 操作系统如何加速页表读取(下) (13:40)
- 视频: 5-13 操作系统如何解决页表占用内存过多的问题 (19:30)
- 视频: 5-14 页式内存管理有哪些有趣的功能 (20:30)
- 视频: 5-15 为什么物理内存只有1G程序员可以申请出2G内存(上) (11:20)
- 视频: 5-16 为什么物理内存只有1G程序员可以申请出2G内存(下) (14:46)
- 视频: 5-17 操作系统是如何管理内存的 (25:26)
- 视频: 5-18 实践篇_利用内存池优化程序性能(上) (18:53)
- 视频: 5-19 实践篇_利用内存池优化程序性能(下) (12:21)
- 视频: 5-20 实践篇_申请1G内存实际会消耗多少物理内存? (20:18)
- 视频: 5-21 实践篇_进程在内存中是什么样子的 (24:20)
-
第6章 中断:操作系统如何利用中断处理外部事件 5 节 | 110分钟
为什么敲击一下键盘我们的程序就能接受到键盘按键?为什么挥动一下鼠标指针就会移动?我们程序是怎样接收到网络数据的?到底是谁在背后处理的这一切?
- 视频: 6-1 中断这一章要解决什么问题 (15:19)
- 视频: 6-2 到底什么是中断 (25:48)
- 视频: 6-3 操作系统在什么情况下开始运行 (24:55)
- 视频: 6-4 操作系统是如何处理中断的? (24:19)
- 视频: 6-5 程序是如何读取到网络数据的 (19:19)
-
第7章 并发:从硬件到软件再到操作系统 14 节 | 283分钟
为什么操作系统面临并发问题?并发问题的本质是什么?怎样一步步从零开始构建出锁、条件变量、信号量等机制?怎样利用这些机制来解决并发编程问题?
- 视频: 7-1 并发问题的本质与根源是什么 (31:02)
- 视频: 7-2 实践篇_实际动手感受一下并发编程问题 (24:52)
- 视频: 7-3 怎样从根源上解决并发问题?(上) (19:34)
- 视频: 7-4 怎样从根源上解决并发问题?(下) (13:24)
- 视频: 7-5 一山不容二虎_锁是如何实现的?(上) (16:50)
- 视频: 7-6 一山不容二虎_锁是如何实现的?(下) (17:09)
- 视频: 7-7 有回旋锁为什么还需要sleep锁.mp4_音频 (25:12)
- 视频: 7-8 闻风而动_如何实现线程间的同步等待机制(上) (17:42)
- 视频: 7-9 闻风而动_如何实现线程间的同步等待机制(下) (16:22)
- 视频: 7-10 到底什么是信号量?信号量是怎样实现的? (16:04)
- 视频: 7-11 实践篇_用信号量解决互斥问题 (25:42)
- 视频: 7-12 用信号量解决同步等待问题 (14:37)
- 视频: 7-13 用信号量解决生产者消费者问题(上) (25:58)
- 视频: 7-14 用信号量解决生产者消费者问题(下) (17:43)
-
第8章 操作系统是如何管理设备的 13 节 | 206分钟
怎样从零开始一步步在磁盘上实现文件这个概念?操作系统该怎样管理各类设备并对应用程序提供统一接口的?一起皆文件是怎么实现的?本章就带你来看一下
- 视频: 8-1 一切皆为文件是什么意思? (15:05)
- 视频: 8-2 操作系统是如何管理设备? (29:14)
- 视频: 8-3 磁盘是如何工作的(上) (14:31)
- 视频: 8-4 磁盘是如何工作的(下) (14:05)
- 视频: 8-5 文件这个概念是怎样实现的?(上) (20:21)
- 视频: 8-6 文件这个概念是怎样实现的?(下) (12:29)
- 视频: 8-7 文件系统、文件夹以及一切皆为文件是怎么实现的?(上) (19:50)
- 视频: 8-8 文件系统、文件夹以及一切皆为文件是怎么实现的?(中) (18:59)
- 视频: 8-9 文件系统、文件夹以及一切皆为文件是怎么实现的?(下) (08:21)
- 视频: 8-10 操作系统是如何打开、创建以及读写文件的(上) (16:41)
- 视频: 8-11 操作系统是如何打开、创建以及读写文件的(下) (10:05)
- 视频: 8-12 操作系统是如何加速文件读写的?(上) (15:50)
- 视频: 8-13 操作系统是如何加速文件读写的?(下) (09:50)
-
第9章 万变不离其宗-理解每一行代码对计算机的影响,你就是高手! 1 节 | 2分钟
任何软件,不管有多么复杂,都逃不过课程讲解的进程、线程、协程这些概念,能清楚的明白你写下每一行代码对计算机到底会产生什么影响,是成为高手的必经之路。
- 视频: 9-1 送君千里终于一别-收下这三句忠告,让你受益匪浅。 (01:59)