|
11| 0
|
C语言编写操作系统,数据库,网络协议栈,编译器 |
课程介绍: 适合人群: 1.大学计算机相关专业的在校学生,通过视频可拉近与名校学生的差距,毕业有机会进入大公司。 2.已工作但基础不扎实的程序员, 通过视频可打好基础, 成为资深程序员/Team Leader/技术专家。 你将会学到: 从0编写一个操作系统,数据库系统,TCP/IP协议栈,Web服务器,GUI库,编译器 课程简介: 视频内容 计算机组成原理:讲解计算机有哪些部件构成及其工作原理,使用晶体管(verilog)构造门电路,加法器,存储器, ALU, CPU, 逐步构造出一台计算机。 X86系统编程:开始在计算机上使用汇编和c语言编写运行程序,结合c语言编译后的汇编语言深入讲解c语言本质。 操作系统:讲解操作系统原理,从零编写一个操作系统wind_os,实现物理/虚拟内存管理,进程/线程,系统调用,中断处理, fork/malloc,多核,文件系统,图形界面gui。 linux程序设计:讲解使用操作系统api编写应用程序,实现一个web服务器, shell,设备驱动。 算法与数据结构:讲解常用算法和数据结构原理和实现,热门leetcode题目总结,丰富的算法练习项目。 数据库原理:讲解sql语言,数据库设计,数据库实现,从零编写一个关系型数据库, 实现sql解析,事务,并发控制,索引, 错误恢复,查询优化。 计算机网络:讲解网络协议原理及实现,在wind_os上实现tcp/ip协议栈(dns/http/tcp/udp/icmp/ip/eth),详解ipv6,TLS,多媒体协议。 软件工程:在wind_os上实现gui库,使开发者可以为wind_os编写图形应用程序,结合gui库的开发过程讲解软件工程,面向对象,设计模式, 单元测试,重构。 编译原理:讲解编译器实现原理(词法/语法/语义分析,优化,寄存器分配,汇编代码生成),从零实现编译器。 虚拟机:自己动手编写java/python/js虚拟机。 课程目录: 第1章计算机组成原理上:自己动手编写CPU(4小时50分钟22节) 1-1为什么要学习计算机基础?(必看)[15:59] 1-21.0组成原理上课程内容介绍[09:44] 1-31.1计算机系统概述[15:14] 1-41.2基本门电路实现[09:57] 1-51.3加法器实现[14:41] 1-61.4乘除法器实现[10:39] 1-71.5寄存器存储器实现[22:53] 1-81.6存储器层次结构[03:33] 1-91.7随机存储器SRAM,DRAM,DDR工作原理[16:07] 1-101.8高速缓存Cache工作原理[15:22] 1-111.9辅助存储器,磁盘SSD,RAID工作原理[10:46] 1-121.10cpu指令设计[11:41] 1-131.11ALU实现[08:31] 1-141.12CPU的实现[11:11] 1-151.13Computer的实现[08:20] 1-161.14单周期多周期处理器[18:56] 1-171.15中断或异常处理[02:49] 1-181.16流水线技术[11:12] 1-191.17流水线冒险[06:17] 1-201.18并行计算机技术[11:47] 1-211.19输入输出设备[06:28] 1-22组成原理上每节2分钟试看[48:17] 第2章 计算机组成原理下:在x86系统上编写运行程序 (7小时33分钟 26节) 2-12.0组成原理下课程内容介绍[09:02] 2-22.1汇编和C语言结构[14:53] 2-32.2常见x86汇编指令介绍[15:56] 2-42.3x86指令的格式[05:19] 2-52.4C语言函数外[05:59] 2-62.5C语言函数[23:32] 2-72.6C语言语句[10:33] 2-82.7C语言运算符[08:01] 2-92.8C语言printf函数[07:03] 2-102.9预处理宏定义[12:56] 2-112.10.0整数详解[09:35] 2-122.10.1整数加减乘除[16:01] 2-132.11类型转换规则[16:35] 2-142.12浮点数[24:42] 2-152.13.0浮点fpu指令[13:11] 2-162.13.1浮点sse指令[12:54] 2-172.14.0指针数组字符串[28:09] 2-182.14.1结构体联合体枚举[25:16] 2-192.15csapp的data-bomb实验[14:20] 2-202.16链接详解[36:23] 2-212.17.0i386分段机制[12:20] 2-222.17.1bootloader加载执行流程[16:20] 2-232.18内核加载执行[24:26] 2-242.19内核输入输出实现[15:29] 2-252.20内核打印函数调用堆栈[17:59] 2-26组成原理下每节2分钟试看[56:33] 第3章 操作系统原理:自己动手编写OS (11小时25分钟 41节) 3-13.0操作系统课程内容介绍[10:13] 3-23.2.0i386分页机制[17:37] 3-33.2.1i386分页机制的实现[11:20] 3-43.2.2物理内存管理初始化流程[07:42] 3-53.2.3物理内存管理初始化流程实现[14:17] 3-63.2.4物理内存分配算法[14:26] 3-73.2.5物理内存分配算法实现[14:25] 3-83.3.0中断异常管理[13:48] 3-93.3.1中断处理代码实现[21:28] 3-103.3.2外部中断使能代码实现[10:21] 3-113.5内核线程实现[26:25] 3-123.6用户进程实现[36:38] 3-133.7系统调用的实现[13:01] 3-143.8.0fork系统调用实现[11:24] 3-153.8.1wait/exit系统调用实现[08:29] 3-163.9.0缺页异常处理[09:08] 3-173.9.1fork写时复制实现[06:32] 3-183.9.2malloc/free函数实现[22:30] 3-193.9.3页面置换算法介绍及实现[21:52] 3-203.10.0进程调度算法[14:17] 3-213.10.1时间片轮转调度算法实现[15:00] 3-223.10.2sleep系统调用实现[10:33] 3-233.11.0多处理器系统实现[24:48] 3-243.11.1多处理器调度简介[07:01] 3-253.12.0同步互斥自旋锁信号量原子操作介绍[18:37] 3-263.12.1自旋锁和信号量实现[13:04] 3-273.13用户态线程实现[17:23] 3-283.14进程间通信实现[09:12] 3-293.15文件系统介绍[04:44] 3-303.16.0文件系统实现[16:08] 3-313.16.1文件系统制作代码实现讲解[13:37] 3-323.16.2文件系统加载的流程[34:08] 3-333.16.3应用程序读写文件的接口[14:11] 3-343.16.4大文件支持[10:24] 3-353.16.5main函数参数传递实现[06:23] 3-363.16.6管道pipe的实现[15:12] 3-373.17.0GUI图形用户界面实现[12:39] 3-383.17.1桌面程序启动流程[13:05] 3-393.17.2edit图形应用程序启动流程中文显示原理[16:32] 3-403.17.3鼠标移动,窗口切换移动流程[09:53] 3-41操作系统每节2分钟试看[01:36:36] 第4章 Linux程序设计:自己动手编写WebServer (8小时59分钟 25节) 4-14.0.0linux课程内容介绍[12:00] 4-24.0.1linux系统简介[03:43] 4-34.1linux库函数使用[18:09] 4-44.2.0shell和环境变量[28:53] 4-54.2.1shell语句和函数[14:46] 4-64.2.2正则表达式[26:54] 4-74.3进程操作接口[17:54] 4-84.4.0文件操作接口[17:31] 4-94.4.1目录操作接口[10:41] 4-104.6.0字符编码[18:54] 4-114.6.1C语言宽字符[17:27] 4-124.9信号使用和实现介绍[01:16:02] 4-134.10.0终端介绍[17:52] 4-144.10.1进程组和会话[32:32] 4-154.10.2信号实验[27:55] 4-164.11网络编程接口socket介绍[14:28] 4-174.12.0http协议,web_client,we[11:20] 4-184.12.1epoll接口介绍[14:14] 4-194.12.2epoll实现高并发web_server[27:12] 4-204.12.3优先队列实现web_server定时器[18:36] 4-214.12.4get,post参数解析[14:46] 4-224.13.0静态库链接[14:55] 4-234.13.1共享库查找和命名规则[25:26] 4-244.13.2动态库链接[31:29] 4-254.16linux设备驱动介绍[26:02] 第5章 算法与数据结构 (10小时39分钟 39节) 5-15.0算法课程内容介绍[11:39] 5-25.1.0算法分析简介[11:21] 5-35.1.1基本数据结构链表,栈,队列[22:21] 5-45.1.2基本算法思想递归,二分查找,回溯,贪心,分[19:29] 5-55.2.1冒泡,选择,插入,希尔排序算法[19:28] 5-65.2.2归并排序算法[12:15] 5-75.2.3快速排序算法[10:46] 5-85.2.4.0二叉堆优先队列[13:18] 5-95.2.4.1堆排序算法[10:22] 5-105.2.5桶排序,计数排序,基数排序算法[12:22] 5-115.3.1数组和链表实现符号表[14:26] 5-125.3.2.0二叉树[04:37] 5-135.3.2.1二叉搜索树[14:02] 5-145.3.3.0AVL树[10:12] 5-155.3.3.1红黑树[27:29] 5-165.3.4散列表[15:43] 5-175.3.5.0跳表[17:24] 5-185.3.5.1布隆过滤器[06:17] 5-195.4.0并查集Union-Find动态连通分量[08:20] 5-205.4.1.0无向图深度和广度优先搜索[17:36] 5-215.4.1.1连通分量,无环图,二分图[12:15] 5-225.4.2有向图,拓扑排序,强连通分量[14:26] 5-235.4.3Min生成树,Prim算法,Kruskal[27:21] 5-245.4.4.0最短路径,Dijkstra算法,Bel[23:39] 5-255.4.4.1A*寻路算法[08:04] 5-265.5.1字符串排序算法[17:05] 5-275.5.2.0单词查找树Tries树[11:42] 5-285.5.2.1三向单词查找树[07:43] 5-295.5.3.0暴力和KMP子字符串查找算法[20:31] 5-305.5.3.1KMP子字符串查找算法版本2[09:20] 5-315.5.3.2BoyerMoore,RabinKar[14:24] 5-325.5.4AC自动机[22:02] 5-335.5.5正则表达式实现[11:55] 5-345.5.6.0霍夫曼压缩算法[17:04] 5-355.5.6.1LZW压缩算法[12:25] 5-365.6.0动态规划算法[26:14] 5-375.6.1.0碰撞检测,后缀数组[10:45] 5-385.6.1.1Max流问题(old)[16:04] 5-39算法每节2分钟试看[01:16:35] 第6章 数据库系统原理:自己动手编写DB (10小时7分钟 30节) 6-16.0数据库课程内容介绍[16:13] 6-26.1数据库系统介绍关系模型,关系代数[17:08] 6-36.2.0常用sql语句介绍[32:49] 6-46.2.1sql练习[18:25] 6-56.3数据库设计,范式[12:56] 6-66.4数据库管理系统层次结构[01:44] 6-76.5存储管理页管理,元数据,缓冲区管理[15:32] 6-86.6.0存储管理实现元组,系统目录[17:29] 6-96.6.1页和缓冲区管理实现[26:54] 6-106.7.0加载元数据信息,创建删除表sql语句解析执[16:00] 6-116.7.1增删改查sql语句解析执行[23:07] 6-126.7.2连接,聚合,分组,排序sql语句解析执行[21:59] 6-136.8.0索引概念聚集索引,主索引,静态哈希,动态哈[13:10] 6-146.8.1B+树特性,B+树增删改查过程[12:45] 6-156.9.0B+树查找实现[28:20] 6-166.9.1B+树插入和删除实现[18:00] 6-176.9.2sql中使用索引[11:31] 6-186.10.0查询优化概念,查询优化步骤[16:08] 6-196.10.1简单嵌套,块嵌套,索引嵌套,hash连接[22:58] 6-206.10.2排序归并连接算法,外部归并排序算法[22:50] 6-216.11.0查询优化实现直方图,选择性因子,连接基数[23:40] 6-226.11.1Selinger查询优化器,best连接[20:14] 6-236.12事务概念,事务ACID特性,可串行化调度,事[16:56] 6-246.13并发控制:锁,两阶段锁协议,封锁粒度[08:39] 6-256.14事务和加锁实现[12:09] 6-266.15多粒度封锁实现[37:20] 6-276.16乐观并发控制机制时间戳,多版本并发控制(MV[31:53] 6-286.17故障恢复日志系统,检查点,回滚和恢复过程[13:52] 6-296.18基于日志恢复机制实现[19:03] 6-30数据库每节2分钟试看[57:45] 第7章 计算机网络:自己动手编写TCP/IP协议栈 (11小时49分钟 45节) 7-17.0计算机网络课程内容介绍[13:36] 7-27.1计算机网络概述[08:50] 7-37.2.0协议栈基本组件用户级线程,信号量,邮箱[16:43] 7-47.2.1协议栈内存管理[11:23] 7-57.2.2协议栈数据包管理[07:50] 7-67.2.3TCPIP协议栈框架介绍[06:07] 7-77.3.0应用层协议socket接口介绍[05:58] 7-87.3.1DNS协议介绍[11:58] 7-97.3.2DNS协议实现[15:16] 7-107.4.0运输层协议UDP介绍[11:27] 7-117.4.1UDP协议实现[09:30] 7-127.5网络层协议介绍,ip数据报格式,ip发送数据包[08:31] 7-137.6链路层介绍,以太网帧格式,网卡功能[10:22] 7-147.7ip编址,交换机,路由器nat,dhcp,vl[28:05] 7-157.8.0协议栈添加网卡驱动[09:22] 7-167.8.1协议栈添加网络接口[09:08] 7-177.8.2arp协议实现[25:12] 7-187.8.3ip,udp,dns输入实现[19:02] 7-197.9.0tcp协议介绍[25:02] 7-207.9.1tcp三次握手实现[29:15] 7-217.9.2tcp发送和接收数据实现[25:07] 7-227.9.3tcp四次挥手实现[14:36] 7-237.9.4tcp糊涂窗口综合症解决实现[07:51] 7-247.9.5tcp失序报文段处理实现[06:27] 7-257.9.6tcp超时重传实现[08:57] 7-267.9.7tcp拥塞控制实现[11:02] 7-277.9.8tcp零窗口探测实现[05:41] 7-287.9.9tcp服务端处理实现[16:38] 7-297.9.10tcp保活机制keep-alive和连接[07:34] 7-307.10ipv6详解[41:39] 7-317.12网络安全对称加密CA证书介绍[15:54] 7-327.13TLS协议介绍[35:34] 7-337.14HTTP2介绍[15:09] 7-347.15HTTP3,QUIC介绍[14:47] 7-357.16websocket介绍[17:03] 7-367.17CDN介绍[08:38] 7-377.18浏览器缓存和cookie介绍[15:55] 7-387.19web代理介绍[08:05] 7-397.20接入互联网介绍[12:55] 7-407.21多媒体协议HLS,DASH介绍[10:48] 7-417.22多媒体协议RTMP介绍[06:31] 7-427.23多媒体协议RTSP介绍x[09:05] 7-437.24NAT路由器p2p打洞介绍[11:14] 7-447.25多媒体协议ICE,Webrtc,Sip介绍[13:41] 7-45计算机网络每节2分钟试看[01:26:11] 第8章 软件工程:自己动手编写GUI库 (3小时32分钟 20节) 8-18.0软件工程课程内容介绍[12:15] 8-28.1软件工程概念[07:57] 8-38.2需求分析[12:55] 8-48.3架构设计[03:36] 8-58.4面向对象基本概念[12:53] 8-68.5.0设计原则单一职责开闭原则[11:03] 8-78.5.1里式替换原则基于接口而非实现编程[12:32] 8-88.5.2迪米特法则多用组合少用继承原则[10:23] 8-98.5.3KISS_YAGNI_DRY原则[06:56] 8-108.6.0单例模式[07:49] 8-118.6.1工厂方法抽象工厂模式[10:17] 8-128.6.2原型模式和建造者模式[06:32] 8-138.6.3适配器模式组合模式[11:10] 8-148.6.4外观模式观察者模式[08:04] 8-158.6.5模版方法模式迭代器模式[04:54] 8-168.7.0wind_gui面向对象设计和实现[15:51] 8-178.7.1wind_gui事件处理和焦点切换流程[21:50] 8-188.7.2移植gui代码到wind_os[15:30] 8-198.7.3窗口切换实现[07:18] 8-208.7.4wind_gui重构列表[12:35] 第9章 编译原理:自己动手编写编译器 (7分钟 1节) 9-19.0编译原理课程内容介绍[07:51]
购买主题
本主题需向作者支付 98 学币 才能浏览
| |
学IT吧 www.xueit8.com X3.4
Copyright © 2001-2021, Tencent Cloud.