课程介绍
虽然 IT 领域中各种新框架、新技术层出不穷,但它们的根基还是那些计算机基础知识。没有扎实的计算机基础知识,应用层的技术学习就像空中楼阁,只能看到表象却无法理解本质,学习的时候自然是一头雾水。
正所谓“磨刀不误砍柴工”,优秀工程师的共同特质就是扎实深厚的计算机基础知识,相信工作过一段时间的人都能意识到它的重要性。
尽管知道扎实的基本功对开发效率、技术成长都很重要,但是我们学习时遇到的问题也很多,通常困惑于以下三类问题:
基础是什么:对基础知识到底包括哪些,需要学到什么程度心里没底。
基础怎么学:底层技术那么多,内容繁多不知从何下手,缺乏清晰系统的学习路径。
理论如何和应用相结合:脑子说会了,手说“你没有”,学习技术的时候看了很多资料仍然无法融会贯通,更别说应用到工作之中。
为此,我们邀请到彭东老师,他既做过前端、后端的工作,也做过内核的开发。在这门课里,老师将结合自己十多年的理论和实战经验,帮你从源头开始一步步夯实基本功:从硬件到软件、从指令语言到内存,从原理到应用,带你系统了解计算机的基础知识。
学完这门课程,你就掌握了 IT 领域 80% 相对稳定不变的那部分知识,对于学习任何一门应用技术也是很好的前置准备。
课程设计
串联计算机从底层到应用的关键知识点,总计四个核心、八大关卡。
核心一:历史
学计算机基础,需要先学习它的历史,学习计算机是怎么一步步发展到今天这个样子的,以今天的状况推导未来的发展方向。我们会重点讨论编程架构是怎么创造出来的、CPU 从何而来、CISC 和 RISC 又各有什么优缺点。
核心二:硬件基础知识
了解硬件的工作机制对工程师实现优秀的应用软件非常重要。这里不但会详细讲解芯片的工作机制与原理,还会带你手把手实现一个五级流水线的迷你 RISCV 处理器(基于 Verilog,配套代码量 2882 行)。
核心三:软件基础知识
想要开发高性能的应用程序,语言与指令、应用与内存、IO 与文件方面的知识都是必修内容。这里我们会通过第三关到第六关四个章节带你掌握这些计算机软件基础中最核心、最重要的知识。
高级语言和低级语言之间如何互相转化?应用堆和栈内存有什么不同?多个进程之间如何通信?Linux 如何管理外设,又如何存放文件……这些重难点问题,一个都不会漏掉。
核心四:应用层基础知识
带你从底层角度审视前端技术跟后端架构,并探讨云计算、大数据与智能制造。这些热门领域都是对基础技术的综合应用,有助于你开阔视野,提升自己的知识迁移能力,让你真正学有所用。
〖资源截图〗:
〖资源目录〗:
- ├──01|CISC&RISC:从何而来,何至于此.md 16.04kb
- ├──01|CISC&RISC:从何而来,何至于此.mp3 15.95M
- ├──01|CISC&RISC:从何而来,何至于此.pdf 3.29M
- ├──02|RISC特性与发展:RISC-V凭什么成为“半导体行业的Linux”?.md 13.46kb
- ├──02|RISC特性与发展:RISC-V凭什么成为“半导体行业的Linux”?.mp3 13.19M
- ├──02|RISC特性与发展:RISC-V凭什么成为“半导体行业的Linux”?.pdf 3.30M
- ├──03|硬件语言筑基(一):从硬件语言开启手写CPU之旅.md 17.27kb
- ├──03|硬件语言筑基(一):从硬件语言开启手写CPU之旅.mp3 14.02M
- ├──03|硬件语言筑基(一):从硬件语言开启手写CPU之旅.pdf 3.63M
- ├──04|硬件语言筑基(二)-代码是怎么生成具体电路的?.md 14.48kb
- ├──04|硬件语言筑基(二)-代码是怎么生成具体电路的?.mp3 10.25M
- ├──04|硬件语言筑基(二)-代码是怎么生成具体电路的?.pdf 4.38M
- ├──05|指令架构:RISC-V在CPU设计上到底有哪些优势?.md 17.02kb
- ├──05|指令架构:RISC-V在CPU设计上到底有哪些优势?.mp3 15.84M
- ├──05|指令架构:RISC-V在CPU设计上到底有哪些优势?.pdf 7.56M
- ├──06|手写CPU(一):迷你CPU架构设计与取指令实现.md 16.84kb
- ├──06|手写CPU(一):迷你CPU架构设计与取指令实现.mp3 13.47M
- ├──06|手写CPU(一):迷你CPU架构设计与取指令实现.pdf 5.14M
- ├──07|手写CPU(二):如何实现指令译码模块?.md 18.88kb
- ├──07|手写CPU(二):如何实现指令译码模块?.mp3 8.96M
- ├──07|手写CPU(二):如何实现指令译码模块?.pdf 3.99M
- ├──08|手写CPU(三):如何实现指令执行模块?.md 15.77kb
- ├──08|手写CPU(三):如何实现指令执行模块?.mp3 12.27M
- ├──08|手写CPU(三):如何实现指令执行模块?.pdf 4.06M
- ├──09|手写CPU(四):如何实现CPU流水线的访存阶段?.md 17.39kb
- ├──09|手写CPU(四):如何实现CPU流水线的访存阶段?.mp3 10.26M
- ├──09|手写CPU(四):如何实现CPU流水线的访存阶段?.pdf 2.90M
- ├──10|手写CPU(五):CPU流水线的写回模块如何实现?.md 15.44kb
- ├──10|手写CPU(五):CPU流水线的写回模块如何实现?.mp3 9.37M
- ├──10|手写CPU(五):CPU流水线的写回模块如何实现?.pdf 2.40M
- ├──11|手写CPU(六):如何让我们的CPU跑起来?.md 18.02kb
- ├──11|手写CPU(六):如何让我们的CPU跑起来?.mp3 12.07M
- ├──11|手写CPU(六):如何让我们的CPU跑起来?.pdf 3.97M
- ├──12|QEMU:支持RISC-V的QEMU如何构建?.md 13.78kb
- ├──12|QEMU:支持RISC-V的QEMU如何构建?.mp3 11.25M
- ├──12|QEMU:支持RISC-V的QEMU如何构建?.pdf 5.97M
- ├──13|小试牛刀:跑通RISC-V平台的HelloWorld程序.md 13.87kb
- ├──13|小试牛刀:跑通RISC-V平台的HelloWorld程序.mp3 12.48M
- ├──13|小试牛刀:跑通RISC-V平台的HelloWorld程序.pdf 8.09M
- ├──14|走进C语言:高级语言怎样抽象执行逻辑?.md 14.44kb
- ├──14|走进C语言:高级语言怎样抽象执行逻辑?.mp3 12.94M
- ├──14|走进C语言:高级语言怎样抽象执行逻辑?.pdf 6.34M
- ├──15|C与汇编:揭秘C语言编译器的“搬砖”日常.md 22.36kb
- ├──15|C与汇编:揭秘C语言编译器的“搬砖”日常.mp3 15.67M
- ├──15|C与汇编:揭秘C语言编译器的“搬砖”日常.pdf 3.27M
- ├──16|RISC-V指令精讲(一):算术指令实现与调试.md 19.16kb
- ├──16|RISC-V指令精讲(一):算术指令实现与调试.mp3 15.62M
- ├──16|RISC-V指令精讲(一):算术指令实现与调试.pdf 12.95M
- ├──17|RISC-V指令精讲(二):算术指令实现与调试.md 23.74kb
- ├──17|RISC-V指令精讲(二):算术指令实现与调试.mp3 19.66M
- ├──17|RISC-V指令精讲(二):算术指令实现与调试.pdf 21.11M
- ├──18|RISC-V指令精讲(三):跳转指令实现与调试.md 13.66kb
- ├──18|RISC-V指令精讲(三):跳转指令实现与调试.mp3 12.82M
- ├──18|RISC-V指令精讲(三):跳转指令实现与调试.pdf 6.75M
- ├──19|RISC-V指令精讲(四):跳转指令实现与调试.md 15.48kb
- ├──19|RISC-V指令精讲(四):跳转指令实现与调试.mp3 13.65M
- ├──19|RISC-V指令精讲(四):跳转指令实现与调试.pdf 10.70M
- ├──20|RISC-V指令精讲(五):原子指令实现与调试.md 22.90kb
- ├──20|RISC-V指令精讲(五):原子指令实现与调试.mp3 18.61M
- ├──20|RISC-V指令精讲(五):原子指令实现与调试.pdf 6.51M
- ├──21|RISC-V指令精讲(六):加载指令实现与调试.md 16.09kb
- ├──21|RISC-V指令精讲(六):加载指令实现与调试.mp3 15.01M
- ├──21|RISC-V指令精讲(六):加载指令实现与调试.pdf 9.81M
- ├──22|RISC-V指令精讲(七):访存指令实现与调试.md 10.54kb
- ├──22|RISC-V指令精讲(七):访存指令实现与调试.mp3 9.60M
- ├──22|RISC-V指令精讲(七):访存指令实现与调试.pdf 7.81M
- ├──23|内存地址空间:程序中地址的三种产生方式.md 14.91kb
- ├──23|内存地址空间:程序中地址的三种产生方式.mp3 14.27M
- ├──23|内存地址空间:程序中地址的三种产生方式.pdf 4.03M
- ├──24|虚实结合:虚拟内存和物理内存.md 16.64kb
- ├──24|虚实结合:虚拟内存和物理内存.mp3 15.36M
- ├──24|虚实结合:虚拟内存和物理内存.pdf 9.22M
- ├──25|堆&栈:堆与栈的区别和应用.md 15.02kb
- ├──25|堆&栈:堆与栈的区别和应用.mp3 13.27M
- ├──25|堆&栈:堆与栈的区别和应用.pdf 5.33M
- ├──26|延迟分配:提高内存利用率的三种机制.md 20.01kb
- ├──26|延迟分配:提高内存利用率的三种机制.mp3 16.72M
- ├──26|延迟分配:提高内存利用率的三种机制.pdf 7.43M
- ├──27|应用内存管理:Linux的应用与内存管理.md 28.80kb
- ├──27|应用内存管理:Linux的应用与内存管理.mp3 18.52M
- ├──27|应用内存管理:Linux的应用与内存管理.pdf 7.72M
- ├──28|进程调度:应用为什么能并行执行?.md 23.04kb
- ├──28|进程调度:应用为什么能并行执行?.mp3 17.21M
- ├──28|进程调度:应用为什么能并行执行?.pdf 4.46M
- ├──29|应用间通信(一):详解Linux进程IPC.md 14.83kb
- ├──29|应用间通信(一):详解Linux进程IPC.mp3 11.28M
- ├──29|应用间通信(一):详解Linux进程IPC.pdf 5.38M
- ├──30|应用间通信(二):详解Linux进程IPC.md 14.75kb
- ├──30|应用间通信(二):详解Linux进程IPC.mp3 10.34M
- ├──30|应用间通信(二):详解Linux进程IPC.pdf 3.41M
- ├──31|外设通信:IOCache与IO调度.md 12.68kb
- ├──31|外设通信:IOCache与IO调度.mp3 12.50M
- ├──31|外设通信:IOCache与IO调度.pdf 4.42M
- ├──32|IO管理:Linux如何管理多个外设?.md 18.49kb
- ├──32|IO管理:Linux如何管理多个外设?.mp3 14.26M
- ├──32|IO管理:Linux如何管理多个外设?.pdf 5.09M
- ├──33|lotop与lostat命令:聊聊命令背后的故事与工作原理.md 17.94kb
- ├──33|lotop与lostat命令:聊聊命令背后的故事与工作原理.mp3 11.57M
- ├──33|lotop与lostat命令:聊聊命令背后的故事与工作原理.pdf 8.26M
- ├──34|文件仓库:初识文件与文件系统.md 15.52kb
- ├──34|文件仓库:初识文件与文件系统.mp3 13.15M
- ├──34|文件仓库:初识文件与文件系统.pdf 4.37M
- ├──35|Linux文件系统(一):Linux如何存放文件?.md 15.54kb
- ├──35|Linux文件系统(一):Linux如何存放文件?.mp3 10.75M
- ├──35|Linux文件系统(一):Linux如何存放文件?.pdf 3.02M
- ├──36|Linux文件系统(二):Linux如何存放文件?.md 12.79kb
- ├──36|Linux文件系统(二):Linux如何存放文件?.mp3 7.70M
- ├──36|Linux文件系统(二):Linux如何存放文件?.pdf 3.59M
- ├──37|浏览器原理(一):浏览器为什么要用多进程模型?.md 12.00kb
- ├──37|浏览器原理(一):浏览器为什么要用多进程模型?.mp3 11.08M
- ├──37|浏览器原理(一):浏览器为什么要用多进程模型?.pdf 3.82M
- ├──38|浏览器原理(二):浏览器进程通信与网络渲染详解.md 20.05kb
- ├──38|浏览器原理(二):浏览器进程通信与网络渲染详解.mp3 13.70M
- ├──38|浏览器原理(二):浏览器进程通信与网络渲染详解.pdf 3.40M
- ├──39|源码解读:V8执行JS代码的全过程.md 17.61kb
- ├──39|源码解读:V8执行JS代码的全过程.mp3 13.18M
- ├──39|源码解读:V8执行JS代码的全过程.pdf 4.31M
- ├──40|内功心法(一):内核和后端通用的设计思想有哪些?.md 12.18kb
- ├──40|内功心法(一):内核和后端通用的设计思想有哪些?.mp3 10.73M
- ├──40|内功心法(一):内核和后端通用的设计思想有哪些?.pdf 3.64M
- ├──41|内功心法(二):内核和后端通用的设计思想有哪些?.md 13.32kb
- ├──41|内功心法(二):内核和后端通用的设计思想有哪些?.mp3 12.26M
- ├──41|内功心法(二):内核和后端通用的设计思想有哪些?.pdf 3.81M
- ├──42|性能调优:性能调优工具eBPF和调优方法.md 12.95kb
- ├──42|性能调优:性能调优工具eBPF和调优方法.mp3 12.32M
- ├──42|性能调优:性能调优工具eBPF和调优方法.pdf 4.54M
- ├──国庆策划01|知识挑战赛:检验一下学习成果吧!.md 2.06kb
- ├──国庆策划01|知识挑战赛:检验一下学习成果吧!.mp3 1.97M
- ├──国庆策划01|知识挑战赛:检验一下学习成果吧!.pdf 1.53M
- ├──国庆策划02|来自课代表的学习锦囊.md 11.18kb
- ├──国庆策划02|来自课代表的学习锦囊.mp3 9.82M
- ├──国庆策划02|来自课代表的学习锦囊.pdf 4.11M
- ├──国庆策划03|揭秘代码优化操作和栈保护机制.md 5.22kb
- ├──国庆策划03|揭秘代码优化操作和栈保护机制.mp3 4.95M
- ├──国庆策划03|揭秘代码优化操作和栈保护机制.pdf 2.09M
- ├──结束语|心若有所向往,何惧道阻且长.md 6.08kb
- ├──结束语|心若有所向往,何惧道阻且长.mp3 5.57M
- ├──结束语|心若有所向往,何惧道阻且长.pdf 3.26M
- ├──开篇词|练好基本功,优秀工程师成长第一步.md 12.10kb
- ├──开篇词|练好基本功,优秀工程师成长第一步.mp3 11.29M
- ├──开篇词|练好基本功,优秀工程师成长第一步.pdf 2.92M
- ├──期末测试|来赴一场100分之约!.md 0.83kb
- ├──期末测试|来赴一场100分之约!.pdf 766.87kb
- ├──先睹为快:迷你CPU项目效果演示.md 0.59kb
- ├──先睹为快:迷你CPU项目效果演示.pdf 255.15kb
- ├──用户故事|我是怎样学习Verilog的?.md 12.09kb
- ├──用户故事|我是怎样学习Verilog的?.mp3 10.65M
- └──用户故事|我是怎样学习Verilog的?.pdf 1017.20kb