linda1729
Lesson 22:安全(隔离、身份与访问控制) Lesson 22:安全(隔离、身份与访问控制)
Lesson 22 安全(隔离、身份与访问控制)在上一节中,我们利用 TLS 协议构建了安全的通信管道,解决了数据在外部传输时的安全问题。现在,假设数据已经安全到达了服务器内部。 系统安全的核心矛盾在于:为了安全,我们需要隔离;为了有用,我
Lesson 21:安全(数据安全与协议) Lesson 21:安全(数据安全与协议)
Lesson 21 安全(数据安全与协议)在之前的课程中,我们讨论了“可靠性”。可靠性处理的是概率性的故障(如硬盘坏道、宇宙射线翻转内存),其对手是“自然规律”。 而“安全”处理的是恶意的攻击。攻击者是智能的,他们会主动寻找系统的弱点,制造
Lesson 19-20:分布式原子性与一致性 Lesson 19-20:分布式原子性与一致性
Lesson 19-20 分布式原子性与一致性 这一章有很多算法,还是很感慨于人类的创造力…..能在混乱的分布式环境下想出这么多出路。哈哈当然还有最经典的拜占庭将军问题,但是拜占庭的问题变种有点多,所以这里就只在最后简单概括,需要完整阅读分
Lesson 17-18:原子性与隔离(事务处理) Lesson 17-18:原子性与隔离(事务处理)
Lesson 17-18 原子性与隔离(事务处理)在上一节中,我们讨论了如何利用“可靠性工程”防止系统彻底失效。然而,仅仅“不崩溃”是不够的。在多用户并发、硬件随时可能断电的现实环境中,我们还需要保证数据的一致性。 想象一个简单的银行转账场
Lesson 16:容错与可靠性 Lesson 16:容错与可靠性
Lesson 16 容错与可靠性如果说性能决定了系统能跑多快,那么可靠性则决定了系统能跑多远。 1. 核心概念在讨论如何“容错”之前,必须厘清三个经常被混淆的概念,它们代表了问题在不同层级的表现: 故障 (Fault): 定义:底层的缺陷
Lesson 14-15:性能工程 Lesson 14-15:性能工程
Lesson 14-15 性能工程性能 是计算机系统的“货币”。我们通过牺牲性能(花费货币)来换取功能的便利性、抽象的简洁性或系统的安全性。 而在摩尔定律逐渐失效的今天,单纯等待硬件变快已经行不通了,我们需要主动进行性能工程。其核心目标只有
Lesson 13:作为总体的网络系统 Lesson 13:作为总体的网络系统
Lesson 13 作为总体的网络系统网络的核心挑战在于共享。在单机内部,操作系统内核可以强制调度 CPU 和内存。但在分布式的互联网中,没有一个上帝来指挥谁该发多少数据。这种缺乏全局协调的共享,必然导致拥塞。 其实这章就是计算机网络著名
Lesson 12:网络分层设计 Lesson 12:网络分层设计
Lesson 12 网络分层设计在上一讲中,我们确立了互联网的公理:底层网络是不可靠的(Best-Effort)。这一讲,我们将通过分层的方法,从物理线路开始,一步步向上构建出可靠的应用体验。每一层都有其特定的职责、原语和挑战。 说白了就
Lesson 11:网络设计思想 Lesson 11:网络设计思想
Lesson 11 网络设计思想在之前的课程中,系统通过虚拟内存和线程在单台物理机上构建了抽象,而这一讲跨越了单机系统的边界。 将数以亿计、异构的设备连接在一起不仅仅是连线的问题,而是一场关于确定性与效率的博弈,其核心在于**“尽力而为(B
Lesson 10:虚拟处理 Lesson 10:虚拟处理
Lesson 10 虚拟处理这一讲将探讨硬件抽象的第三个支柱虚拟处理器(线程)。我们将了解系统如何打破“一个任务独占一个处理器”的假设,通过分时复用让成百上千个线程在有限的 CPU 上并发执行。 1. 从函数调用到线程抽象要理解线程,首先要
Lesson 09:虚拟内存 Lesson 09:虚拟内存
Lesson 09 虚拟内存在上一讲中,我们讨论了如何虚拟化处理器(线程)。这一讲,我们将讨论硬件抽象的内存虚拟化。 老师原本的思路是先讲分段的功能再介绍分页,但是从操作系统的角度上来看,我们先讲分页再讲分段会更好一些。 1. 虚拟内存
Lesson 08:虚拟链路(并发与锁) Lesson 08:虚拟链路(并发与锁)
Lesson 08 虚拟链路(并发与锁)在并发的世界里,唯一可以确定的就是不确定性。我们将链路抽象为虚拟链路,但在实现多任务通信(如本地 RPC)时存在一个棘手的问题:如果多个线程同时读写同一块内存区域(缓冲区),数据就会乱套。 这一讲的核
1 / 2
评论