课程介绍
抖码课堂30天算法面试训练营视频教程,由整理发布最新高清完结版。学习操作系统和网络系统对于计算机科学专业学生和从事网络相关工作的人员来说非常重要,因为它可以帮助人们更好地理解计算机的底层,包括计算机体系结构、内存管理、进程管理等,以及网络架构、协议、安全等,进而建立起更加深入的网络体系结构的理解和全面的网络安全意识,提高计算机系统设计和网络安全能力,拓展职业路径。本课带你系统学透底层基础知识;这些底层基础知识是区分[程序员]和[码农]最重要的依据。
相关推荐
抖码课堂 – [课程 A]30天算法面试训练营
抖码课堂 – [课程 A]精讲数据结构与算法
算法与数据结构高手养成-求职提升特训课
极客时间李煜东算法训练营
资源目录
46_操作系统一:程序如何运行[准备篇]/
[7.7M] 1-1_0:课程内容[程序是如何运行的]
[ 28M] 1-2_1:什么是CPU、内存等
[ 35M] 1-3_2:内存详解
[ 51M] 1-4_3:进制转换[选修,可跳过]
[ 46M] 1-5_4:程序执行过程
[ 37M] 1-6_5:计算机硬件
[ 30M] 1-7_6:不同架构的CPU,其指令集也不同
[ 45M] 1-9_8:为什么使用[栈]实现函数的调用?栈内存又是如何布局的?
[ 50M] 1-10_9:基于寄存器rbp、rsp以及rip实现函数调用汇编代码
[ 52M] 1-11_10:寄存器edx、eax、esi、edi如何参与CPU计算
[ 52M] 1-12_11:汇编指令cmp、jne、jmp以及标志位寄存器实现指令跳转
[ 45M] 1-13_12:for循环代码对应的汇编指令的执行流程
47_操作系统二:介绍篇[准备篇]/
[9.0M] 1-1_0:课程内容[操作系统介绍篇]
[ 32M] 1-2_1:想让多个程序在计算机中高效运行,离不开操作系统[面试题]
[ 27M] 1-3_2:按下计算机启动按钮,会发生什么?
[ 33M] 1-4_3:通过区分内核态和用户态,来保证计算机系统的安全
[ 37M] 1-5_4:设备控制器屏蔽IO设备硬件复杂的底层交互
[ 35M] 1-6_5:操作系统如何通过汇编指令OUT和外设通信
[ 48M] 1-7_6:使用中断机制实现键盘和CPU之间的交互
[ 32M] 1-8_7:中断机制+DMA机制减少CPU开销
[ 22M] 1-9_8:系统调用的核心问题之一:用户态到内核态之间的切换
[ 73M] 1-10_9:32位vs64位操作系统的系统调用过程的详细讲解
[ 56M] 1-11_10:CPU计算和磁盘IO重叠运行,可提高计算机性能
[ 40M] 1-12_11:异常-中断和系统调用都属于异常
48_操作系统三:ELF文件[准备篇]/
[ 60M] 1-1_1C程序的预处理、编译、汇编以及链接四个阶段
[ 90M] 1-2_2程序的链接阶段:符号解析
[ 48M] 1-3_3程序的链接阶段:重定位
[ 42M] 1-4_4静态链接:链接静态库
[ 93M] 1-5_5ELF文件格式之[可重定位目标文件]
[180M] 1-6_6ELF[可重定位目标文件]格式详解
[ 83M] 1-7_7[可重定位文件]每个section的具体位置
[140M] 1-8_8ELF文件格式之[可执行目标文件]
[ 64M] 1-9_9一个运行的程序需要多大内存?
49_操作系统四:内存寻址[内存篇]/
[3.0M] 1-1_1课程内容
[ 48M] 1-2_2物理寻址-最简单寻址方式
[ 30M] 1-3_316位CPU如何寻址20位内存地址
[ 38M] 1-4_48086处理器的分段寻址
[ 44M] 1-5_5Linux两种运行模式:实模式和保护模式
[ 39M] 1-6_6分段寻址可以被归纳位虚拟寻址
[ 59M] 1-7_7虚拟寻址降低内存管理的复杂度
[ 61M] 1-8_9多级页表-压缩页表占用内存的大小
[ 47M] 1-9_10多级分页如何进行地址转换
[ 41M] 1-10_1164位系统分页寻址总结
50_操作系统五:高速缓存[内存篇]/
[4.1M] 1-1_0课程内容(CPU高速缓存TLB)
[ 54M] 1-2_1衡量CPU性能的指标:时钟周期和主频
[ 54M] 1-3_2计算机体系结构中到处都可以看见缓存的身影
[ 49M] 1-4_3局部性原理:时间局部性和空间局部性
[ 39M] 1-5_4程序局部性的好坏会影响程序执行的性能
[ 39M] 1-6_5CPU高速缓存寻址数据
[ 82M] 1-7_6直接映射、组相联以及全相联高速缓存
[ 67M] 1-8_7高速缓存的行替换以及缓存中数据的更新
[ 71M] 1-9_8一台真实机器的CPU高速缓存
[ 39M] 1-10_9另一个高速缓存:TLB-缓存页表
[ 44M] 1-11_10分页寻址+TLB+CPU高速缓存全流程
51_操作系统六:内存布局[内存篇]/
[ 47M] 1-1_1虚拟内存布局和物理内存模型内容
[ 63M] 1-2_2用户态虚拟内存布局
[ 72M] 1-3_3内存映射(动态共享库)
[ 47M] 1-4_4内存映射函数实现mmap和mummap
[ 83M] 1-5_5内存映射区的管理
[ 65M] 1-6_6内核态虚拟内存布局(一)
[ 50M] 1-7_7内核态虚拟内存布局(二)
[ 59M] 1-8_8虚拟内存布局总结
[ 61M] 1-9_9内核页表和用户程序页表
[ 30M] 1-10_10SMP架构实现:UMA和NUMA
[ 60M] 1-11_11平坦内存模型
[ 55M] 1-12_12不连续内存模型
[ 86M] 1-13_13稀疏内存模型
[ 64M] 1-14_14_缺页异常处理程序执行逻辑-用户态
52_操作系统七:内存分配[内存篇]/
[ 16M] 1-1_1_内存分配课程内容
[ 31M] 1-2_2_内存对齐
[ 39M] 1-3_3_如何评估内存分配器的好坏
[ 81M] 1-4_4_实现一个实际的分配器需要考虑的问题
[ 86M] 1-5_5_内存分配器的数据结构-空闲链表数组
[ 45M] 1-6_6_用户态内存分配和释放-malloc和free
[103M] 1-7_7_ptmalloc中的分离空闲链表(bins)的组成
[ 87M] 1-8_8_malloc内存分配和释放流程
[ 55M] 1-9_9_物理内存页帧的分配和释放
[ 80M] 1-10_10_物理内存分配-伙伴系统
[ 62M] 1-11_11_页面置换流程以及LRU页面置换算法
[154M] 1-12_12_逆向映射
[ 50M] 1-13_13_再看缺页异常处理程序处理逻辑
[ 70M] 1-14_14_slab分配器之slab结构@ukoou.com
[ 73M] 1-15_15_slab分配器分配和释放对象的流程
[ 39M] 1-16_16_vmalloc申请分配非连续物理内存
53_操作系统八:进程和线程[进程篇]/
[ 36M] 1-1_1_进程和程序的关系
[ 42M] 1-2_2_进程运行时的CPU上下文
[ 45M] 1-3_3_进程切换[时钟中断]
[ 39M] 1-4_4_0号进程、1号进程以及2号进程
[ 53M] 1-5_5_task_struct数据结构总结
[142M] 1-6_6_创建进程的过程(fork和exec系统调动)
[ 74M] 1-7_8_线程可以访问的三类数据
[103M] 1-8_9_线程创建的详细过程
[ 81M] 1-9_10_用户级线程和内核级线程
[ 44M] 1-10_11_内核线程
[ 23M] 1-11_12_再来看0、1、2号进程
[ 71M] 1-12_13_线程的状态
[ 16M] 1-13_14_再次回顾进程和线程
[103M] 1-14_15_进程和线程的串讲以及线程池
54_操作系统九:进程调度[进程篇]/
[ 39M] 1-1_1_进程调度准备知识
[ 37M] 1-2_2_FIFO、SJF等调度算法(周转时间)
[ 34M] 1-3_3_RR调度算法(响应时间)
[ 22M] 1-4_4_CPU资源和IO重叠以提高资源利用率
[ 47M] 1-5_5_多级反馈队列(MLFQ)
[ 40M] 1-6_6_多级反馈队列(MLFQ)会产生的问题及其解决方案
[ 28M] 1-7_7_Linux任务调度算法的数据结构_实时任务
[ 59M] 1-8_8_Linux任务调度算法的数据结构_完全公平调度
[ 55M] 1-9_9_多级调度队列数据结构实现
[ 46M] 1-10_10_主动调度流程_pick_next_task
[ 60M] 1-11_11_主动调度流程_切换用户态虚拟地址空间
[ 94M] 1-12_12_主动调度流程_切换寄存器和内核栈
[ 57M] 1-13_13_抢占调度流程
[ 20M] 1-14_14_线程切换需不需要刷新TLB和CPU高速缓存?
55_操作系统十:信号和中断[进程篇]/
[ 63M] 1-1_1_什么是信号
[ 24M] 1-2_2_信号发送需要的数据结构
[ 70M] 1-3_3_信号处理需要的数据结构
[ 44M] 1-4_4_信号发送和处理的总流程
[ 52M] 1-5_5_系统调用时的信号处理
[ 24M] 1-6_6_异步中断
[ 48M] 1-7_7_同步中断以及异常
[ 35M] 1-8_8_中断描述符表(IDT)
[ 43M] 1-9_9_中断处理流程
[ 41M] 1-10_10_用户态和内核态产生异常
[ 25M] 1-11_11_异步中断处理流程及其问题
[ 60M] 1-12_12_硬中断和软中断
[3.6M] 1-13_13_CPU上下文、进程上下文以及中断上下文
56_操作系统十一:并发编程[进程篇]/
[ 39M] 1-1_1_内核代码是如何执行的?
[ 48M] 1-2_2_中断的禁止和开启
[ 33M] 1-3_3_用户态抢占和内核态抢占
[ 52M] 1-4_4_抢占的禁止和开启
[ 51M] 1-5_5_线程并发安全问题
[ 53M] 1-6_6_导致线程不安全的原因
[ 32M] 1-7_7_临界区
[ 38M] 1-8_8_硬件级别:禁止中断和原子操作
[ 28M] 1-9_10_CAS的ABA问题
[ 67M] 1-10_11_自旋锁
[ 37M] 1-11_13_自旋锁饥饿问题及其解决方案
[ 79M] 1-12_14_自旋锁浪费CPU的问题及其解决方案
[ 24M] 1-13_15_阻塞互斥锁vs自旋锁
[ 44M] 1-14_16_公平锁、非公平锁以及读写锁
[ 40M] 1-15_17_多个没有关联的资源的保护
[ 50M] 1-16_18_多个有关联的资源的保护
[ 52M] 1-17_19_细化锁的粒度可以提高并发性能
[ 60M] 1-18_21_活锁及其避免方法
[ 45M] 1-19_22_信号量(Semaphore)
[ 31M] 1-20_23_信号量的作用
[ 65M] 1-21_24_生产者消费者模式
[ 44M] 1-22_25_苹果橙子问题
[ 21M] 1-23_26_管程(monitor):并发编程的金钥匙
[ 44M] 1-24_27_管程实现的生产者消费者
[ 48M] 1-25_28_条件变量的实现
[ 82M] 1-26_29_管程实现生产者消费代码实现
57_操作系统十二:缓存一致性[进程篇]/
[ 48M] 1-1_1_什么是缓存一致性
[ 46M] 1-2_2_CPU核心之间数据如何传播
[ 36M] 1-3_3_本地读写和总线读写
[ 38M] 1-4_4_MSI缓存一致性协议(上)
[ 56M] 1-5_5_MSI缓存一致性协议(下)
[ 49M] 1-6_6_MESI缓存一致性协议
[ 16M] 1-7_7_MESI协议具体示例
[ 28M] 1-8_8_总线仲裁
[ 23M] 1-9_9_x86MESIF缓存一致性协议
[ 49M] 1-10_10_StoreBuffer
[ 32M] 1-11_11_写内存屏障(上)
[ 49M] 1-12_12_写内存屏障(下)
[ 32M] 1-13_13_失效队列
[ 29M] 1-14_14_读内存屏障
[ 68M] 1-15_15_内屏屏障总结
[ 55M] 1-16_16_lock前缀指令作为内存屏障@www.ukoou.com
[ 17M] 1-17_17_用户态插入内存屏障
58_操作系统十三:文件系统[文件篇]/
[ 16M] 1-1_1_文件系统课程内容
[112M] 1-2_2_拆解机械硬盘(HDD)
[ 53M] 1-3_3_寻道、旋转和传送时间
[ 51M] 1-4_4_顺序读写和随机读写
[ 45M] 1-5_5_RAID(磁盘阵列)
[ 32M] 1-6_6_固态硬盘(SSD)
[ 47M] 1-7_7_文件中的数据块
[ 57M] 1-8_8_如何分配数据块给文件?
[ 88M] 1-9_9_文件系统(Linux一切皆文件)
[ 35M] 1-10_10_新增磁盘
[ 42M] 1-11_11_磁盘分区
[ 22M] 1-12_12_Centos支持的文件系统
[ 42M] 1-13_13_文件系统挂载
[ 39M] 1-14_14_文件系统挂载总结
59_操作系统十四:文件读写[文件篇]/
[ 20M] 1-1_1_文件读写路径课程内容
[ 60M] 1-2_2_ext4文件系统的硬盘布局
[ 64M] 1-3_4_目录的组织
[ 65M] 1-4_5_块组描述符表
[ 28M] 1-5_6_基于ext4硬盘布局的文件读写流程准备
[ 31M] 1-6_7_基于ext4创建文件目录的过程
[ 52M] 1-7_8_基于ext4创建文件的过程
[ 53M] 1-8_9_基于ext4读写文件的过程
[ 48M] 1-9_10_虚拟文件系统的数据结构
[ 91M] 1-10_11_虚拟文件系统的操作接口
[ 57M] 1-11_12_文件系统树
[ 50M] 1-12_13_应用程序和VFS的交互
[ 48M] 1-13_14_inode和dentry缓存
[128M] 1-14_15_open文件打开流程
[ 58M] 1-15_16_read和write读写文件的流程
[ 74M] 1-16_17_硬链接和软链接
60_操作系统十五:页面缓存[文件篇]/
[ 25M] 1-1_1_页面缓存课程内容
[ 50M] 1-2_2_页面缓存的抽象address_space
[ 52M] 1-3_3_address_space中使用基数树维护缓存页
[ 41M] 1-4_4_页面缓存的数据结构及其操作
[ 51M] 1-5_5_带有页面缓存的文件读流程
[ 52M] 1-6_6_带有页面缓存的文件写流程
[ 96M] 1-7_7_再看内存映射的数据结构
[ 86M] 1-8_8_再看内存映射文件的流程
[ 81M] 1-9_9_再看缺页异常处理逻辑
[ 55M] 1-10_10_按需调页
[ 15M] 1-11_11_文件系统组件总结
61_操作系统十六:进程间通信[文件篇]/
[ 53M] 1-1_1_匿名管道和命名管道
[ 90M] 1-2_2_匿名管道的实现原理
[ 61M] 1-3_3_管道依赖的pipefs文件系统
[ 64M] 1-4_4_匿名管道底层实现
[ 58M] 1-5_5_命名管道底层实现
[125M] 1-6_7_共享内存的底层原理_基于tmpfs文件系统
[ 90M] 1-7_8_IPC中的信号量
[ 72M] 1-8_9_消息队列
62_网络一:网络体系结构/
[ 42M] 1-1_1_一个网络上计算机的通信
[ 50M] 1-2_2_多个网络上计算机的通信
[ 59M] 1-3_3_ISP内部结构
[ 47M] 1-4_4_两台计算机通信需要解决的问题
[ 34M] 1-5_5_网络分层
[ 47M] 1-6_6_分层执行流程
[ 63M] 1-7_7_每一层在计算机中的位置
[ 92M] 1-8_8_什么是协议?
[ 50M] 1-9_9_电路交换vs分组交换
[ 23M] 1-10_10_网络的分类
63_网络二:网络接口层/
[ 13M] 1-1_1_网络接口层课程内容
[ 67M] 1-2_2_物理层:解决一段链路上传输的问题
[ 33M] 1-3_3_网络适配器(网卡)基本原理
[ 34M] 1-4_4_网络性能指标:速率、带宽和吞吐量
[ 45M] 1-5_5_数据链路层基本功能:封装成帧和透明传输
[ 61M] 1-6_6_数据链路层基本功能:差错检测
[ 63M] 1-7_7_CSMA_CD协议_载波监听多点接入_碰撞检测
[ 62M] 1-8_8_MAC地址
[ 34M] 1-9_9_单播、广播和多播
[ 33M] 1-10_11_集线器(Hub)
[ 43M] 1-11_12_交换机(Switch)
[ 47M] 1-12_13_交换机通过自学习算法构建转发表
[ 80M] 1-13_14_数据链路层总结
64_网络三:网络层/
[ 72M] 1-1_1_网络层课程内容
[ 22M] 1-2_2_分类的IP地址(A类、B类和C类)
[ 63M] 1-3_3_可分配的IP和不可分配的IP
[ 43M] 1-4_4_分类IP地址分配的例子
[ 77M] 1-5_5_路由器
[ 67M] 1-6_6_IP分组转发流程_基于分类的IP地址
[ 62M] 1-7_7_划分子网的IP地址
[ 50M] 1-8_8_划分子网的IP地址分配例子
[ 40M] 1-9_9_IP分组转发流程_基于划分子网的IP地址
[108M] 1-10_11_无分类的IP地址分配例子@ukoou.com
[ 29M] 1-11_12_IP分组转发流程_基于无分类IP地址
[ 37M] 1-12_13_路由聚合
[ 50M] 1-13_14_再来看一个例子
[ 45M] 1-14_15_内网IP和外网IP-VPN技术
[ 74M] 1-15_16_内网IP和外网IP-NAT技术
[ 42M] 1-16_17_IP数据报首部格式详解(一)
[ 54M] 1-17_18_IP数据报首部格式详解(二)
[ 42M] 1-18_19_网际控制报文协议-ICMP协议_差错报告报文
[ 33M] 1-19_20_ping命令的原理
65_网络四:运输层/
[ 20M] 1-1_1_运输层课程内容
[ 63M] 1-2_2_端口号
[ 26M] 1-3_3_协议的复用和分用
[ 38M] 1-4_4_UDP和TCP的区别
[ 31M] 1-5_5_传输差错:分组丢失、分组失序、分组重复
[ 69M] 1-6_6_可靠传输协议:停止等待协议
[ 33M] 1-7_8_可靠传输协议:选择重传协议
[ 41M] 1-8_9_TCP首部中实现可靠传输的三个字段
[ 38M] 1-9_10_TCP可靠传输实现原理
[ 36M] 1-10_11_TCP超时重传时间的选择
[ 41M] 1-11_12_TCP流量控制
[ 35M] 1-12_13_TCP拥塞控制的含义
[ 28M] 1-13_15_TCP拥塞控制:快重传和快恢复算法
[ 38M] 1-14_16_TCP建立连接:三报文握手
[ 59M] 1-15_17_TCP释放链接:四报文挥手
66_网络五:应用层/
[ 11M] 1-1_1_应用层课程内容
[ 53M] 1-2_2_DNS中的域名
[ 56M] 1-3_3_DNS中的域名服务器
[ 54M] 1-4_4_DNS域名解析流程
[ 37M] 1-5_5_动态主机配置协议-DHCP的作用
[ 60M] 1-6_6_动态主机配置协议-DHCP_报文详情
[ 78M] 1-7_7_认识HTTP
[ 48M] 1-8_8_HTTP报文格式
[ 53M] 1-9_9_HTTP头部字段
[ 53M] 1-10_10_URI和URL
[ 57M] 1-11_11_HTTP请求方法
[ 27M] 1-12_12_HTTP响应状态码
67_网络六:HTTP进阶/
[8.9M] 1-1_1_HTTP进阶的课程内容
[ 74M] 1-2_2_描述body的头部字段
[ 68M] 1-3_3_HTTP连接管理
[ 23M] 1-4_4_重定向
[ 62M] 1-5_5_Cookie机制
[ 51M] 1-6_6_HTTP的缓存控制(一)
[ 64M] 1-7_7_HTTP的缓存控制(二)
[ 46M] 1-8_8_HTTP的代理服务
[ 82M] 1-9_9_HTTP的缓存代理
[ 65M] 1-10_10_CDN的作用和原理
[ 23M] 1-11_11_HTTPS是什么?
[ 40M] 1-12_12_对称加密算法
[ 59M] 1-13_13_非对称加密算法
[ 33M] 1-14_14_数据的完整性_摘要算法
[ 30M] 1-15_15_数字签名
[ 33M] 1-16_16_CA数字证书
[113M] 1-17_17_TLS12连接过程
68_网络七:socket套接字/
[ 32M] 1-1_1_socket套接字课程内容
[ 62M] 1-2_2_socket的创建
[ 71M] 1-3_3_系统调用bind、listen、connect、accept
[ 87M] 1-4_4_代码实现:client发送消息server接收消息
[ 56M] 1-5_5_客户端服务端基于socket编程
[ 83M] 1-6_6_socket创建的内核实现
[ 55M] 1-7_7_bind、listen、connect、accept内核实现
[ 90M] 1-8_8_发送网络包全流程
[ 66M] 1-9_9_接收网络包的全流程
[ 45M] 1-10_10_发送和接收内核缓冲区大小的设置
[ 98M] 1-11_11_tcpdump查看tcp报文
[ 44M] 1-12_12_netstat查看socket
[ 77M] 1-13_13_服务端进程主动发起关闭连接请求
[ 53M] 1-14_14_服务端进程挂了,会发生什么?
[ 56M] 1-15_15_客户端进程挂了,会发生什么?
69_网络八:IO多路复用/
[认准一手完整 www.ukoou.com]计组 + 操作系统+网络系统
[4.1M] 1-1_1_IO多路复用课程内容
[ 72M] 1-2_2_阻塞IOvs非阻塞IO(读socket数据)
[ 60M] 1-3_3_阻塞IOvs非阻塞IO(写socket数据)
[ 70M] 1-4_4_什么是多路复用?
[ 25M] 1-5_5_多路中的每一路本质上就是一个fd
[ 77M] 1-6_6_select的使用
[ 59M] 1-7_7_客户端使用select实现多路复用
[ 86M] 1-8_8_服务端:单线程+多路复用+阻塞IO接收多个客户端
[ 44M] 1-9_9_服务端:单线程+多路复用+阻塞IO服务多个客户端
[ 58M] 1-10_10_服务端:单线程+多路复用+非阻塞IO
[127M] 1-11_11_select+非阻塞IO实现的单线程服务端程序
[ 99M] 1-12_12_select实现原理
[ 48M] 1-13_13_poll多路复用的使用
[ 37M] 1-14_14_客户端中使用poll多路复用
[ 62M] 1-15_15_服务端:poll+单线程+非阻塞IO实现
[ 52M] 1-16_16_poll实现原理
[ 75M] 1-17_17_epoll的使用-微信307570512
[ 31M] 1-18_18_客户端使用epoll
[ 39M] 1-19_19_服务端:单线程+epoll+非阻塞IO
[ 82M] 1-20_20_epoll实现原理
[ 53M] 1-21_21_条件触发vs边缘触发
[ 37M] 1-22_22_同步IOvs异步IO
70_网络九:高并发网络编程/
[7.4M] 1-1_1_高并发网络编程课程内容
[ 52M] 1-2_2_再次理解TCP的面向字节流
[ 36M] 1-3_3_网络字节顺序
[ 60M] 1-4_4_粘包和半包问题
[ 31M] 1-5_5_C10K问题:操作系统层面需要做的事情
[ 36M] 1-6_6_服务端进程:阻塞IO+多进程
[ 25M] 1-7_7_服务端进程:阻塞IO+多线程
[ 49M] 1-8_8_服务端进程:单线程+非阻塞IO+多路复用
[ 21M] 1-9_9_服务端进程:多线程版本的reactor
[ 38M] 1-10_10_服务端进程:主从reactor
[ 14M] 1-11_11_服务进程网络编程模型总结
资料课件/
评论0