Codewar 体验

先膜拜个大佬: 在Codewars上做JavaScript算法题是一种怎样的体验? - 千里冰封二瓣之的回答 - 知乎 https://www.zhihu.com/question/53766913/answer/212285498 背景 之前阅读《The Little Schemer》和《The Seasoned Schemer》这两本书,感觉需要找一...

阅读全文

6.S081 Lab 3 page tables

kernel/memlayout.h 这段代码是一个RISC-V处理器上的内存布局和地址映射相关的配置。RISC-V是一种开放的指令集架构(ISA),在很多领域得到了广泛应用。以下是这段代码的解释: 这段代码首先定义了一些硬件寄存器的物理地址: UART0(0x10000000L):串行通信接口UART的基地址。 VIRTIO0(0x10001000):...

阅读全文

6.S081-Lab 2: System Calls

官方材料:https://pdos.csail.mit.edu/6.S081/2021/labs/syscall.html 参考材料: https://th0ar.gitbooks.io/xv6-chinese/content/ https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/ ...

阅读全文

6.S081-Lab 1: Xv6 and Unix utilities

官方材料:https://pdos.csail.mit.edu/6.S081/2021/labs/util.html 参考资料: https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/ https://th0ar.gitbooks.io/xv6-chinese/conten...

阅读全文

6.S081环境配置及参考资料

参考资料 官方文档:https://pdos.csail.mit.edu/6.828/2020/schedule.html 官方指导:https://pdos.csail.mit.edu/6.S081/2021/labs/guidance.html 中文文档:https://mit-public-courses-cn-translatio.git...

阅读全文

CS144-Lab7

概述 到此为止,您已经实现了Internet基础设施的很大一部分。从Lab0(一个可靠的字节流),到Labs 1-4(传输控制协议),Lab 5(一个IP /以太网网络接口)和 Lab 6(一个IP路由器),你已经做了大量的编码工作! 在这个实验室中,您不需要做任何编码(假设您之前的实验室处于合理的工作状态)。相反,为了结束你的成就,你将使用你之前的所有实验...

阅读全文

CS144-Lab6

概述 在本周的实验中,你将在现有的NetworkInterface基础上实现一个IP路由器,从而结束本课程。路由器有几个网络接口,可以在其中任何一个接口上接收互联网数据报。路由器的工作是根据路由表转发它得到的数据报:一个规则列表,它告诉路由器,对于任何给定的数据报: 发送到哪个接口; 下一跳的IP地址 ; 你的工作是实现一个路由器,它可以为任何给定的数据...

阅读全文

CS144-Lab5

概述 在本周的实验中,你将深入研究并实现一个网络接口:世界各地的互联网数据报和一跳一跳的链路层以太网帧之间的桥梁。该组件可以“隐藏”在早期实验的TCP/IP实现之下,但它也将用于不同的设置:当你在实验6中建立一个路由器时,它将在网络接口之间路由数据报。图1显示了网络接口如何适应这两种设置。 你对网络接口的实现将使用与你在实验0-4中使用的相同的Sponge库...

阅读全文

Makefile 和 CMake

Makefile Reference Makefile 20分钟入门,简简单单,展示如何使用Makefile管理和编译C++代码 简介 Makefile 是一个用于构建(Build)软件的文件,它包含了一组规则和命令,用于自动化构建和编译源代码,生成目标文件或可执行程序等。Makefile 是一个文本文件,它的格式通常是: 12target: depende...

阅读全文

CS144-Lab4

概述 在实验0中,你实现了流量控制的字节流(ByteStream)的抽象概念。 在实验1、2和3中,你实现了该抽象概念与互联网提供的抽象概念之间的转换工具:不可靠的数据报(IP或UDP)。 现在,你已经接近顶峰:一个可以工作的TCPConnection,它结合了你的TCPSender和TCPReceiver,并能以至少100Mbit/s的速度与其他TCP实现...

阅读全文

CS144-Lab3

概述 在实验0中,你实现了流控制字节流(ByteStream)的抽象。 在实验1和2中,你实现了将不可靠数据报中的段转换为传入字节流的工具:StreamReassembler和TCPReceiver。 现在,在实验3中,你将实现连接的另一端:一个将出站字节流转换为不可靠数据报中发送段的工具。 最后,在第4个实验中,你将结合前几个实验的工作,创建一个工作的TC...

阅读全文

CS144-Lab2

实验架构 除了写入传入流之外,TCPReceiver 还负责通知 sender 两件事: “First unassembled” 字节的索引,称为“acknowledgment”或 “ackno”。这是接收方需要来自发送方的第一个字节。 “first unassembled ” 索引和“first unacceptable ”索引之间的距离。这称为“wi...

阅读全文

CS144-Lab1

实验架构 TCP实施中模块和数据流的排列 : 字节流是Lab0。TCP的工作是通过不可靠的数据报网络传输两个字节流(每个方向一个),以便写入连接一侧套接字的字节显示为可在对等端读取的字节,反之亦然。Lab1是StreamReAssemer,在Lab2、3和4中,您将实施TCPReceiver、TCPSender,然后实施 TCPConnection 将它们...

阅读全文

CS144-Lab0

2 Networking by hand 2.1 Fetch a Web page 2.1.1 访问http://cs144.keithw.org/hello,并观察结果 2.1.2 在命令行中输入 1234telnet cs144.keithw.org httpTrying 104.196.238.229...Connected to cs144.kei...

阅读全文

CS144 环境配置

课程介绍 CS144: 什么,你学不会TCP?那就来自己写一个吧! - 胡津铭的文章 - 知乎 https://zhuanlan.zhihu.com/p/175998415 CS144 is an introductory course about computer networks. You will learn about the basic pri...

阅读全文