E1000网卡用户开发手册(节选)
发布于
数据包接收 在一般情况下,数据包接收包括识别线路上是否存在数据包、执行地址过滤、将数据包存储到接收数据 FIFO 中、将数据传输到主机内存中的接收缓冲区,以及更新接收描述符的状态。 数据包地址过滤 硬...
继续阅读 →Next Door 0.5x Engineer
发布于
数据包接收 在一般情况下,数据包接收包括识别线路上是否存在数据包、执行地址过滤、将数据包存储到接收数据 FIFO 中、将数据传输到主机内存中的接收缓冲区,以及更新接收描述符的状态。 数据包地址过滤 硬...
继续阅读 →发布于
一、智能指针的定义与设计动机 底层事实(First Principles) 程序在运行过程中必然需要访问内存 内存生命周期包含:分配、读写、释放 任何阶段的失误都可能导致: 悬垂指针(Dangling...
继续阅读 →发布于
操作系统设计 操作系统与内核的关系 操作系统(Operating System)是一个更宽泛的概念,通常包含两类内容: 内核(kernel):运行在硬件之上、拥有最高特权的一段软件,负责管理 CPU、...
继续阅读 →发布于
背景 在编写代码之前,您可能会发现复习《xv6 书籍》中的“第 6 章:中断和设备驱动程序”很有帮助。 你将使用一个名为 E1000 的网络设备来处理网络通信。对于 xv6(以及你编写的驱动程序)来说...
继续阅读 →发布于
The problem 问题 xv6 中的 fork()系统调用会将父进程的用户空间内存全部复制到子进程。如果父进程较大,复制过程可能需要很长时间。更糟糕的是,这项工作往往大部分是浪费的:fork(...
继续阅读 →发布于
第五章 页面错误 当使用的虚拟地址在页表中没有映射、或映射的 标志被清除、或映射的权限位(、、、)禁止当前尝试的操作时,RISC-V CPU 会触发一个页面错误异常。 RISC-V 区分三种页面错误...
继续阅读 →发布于
第六章:中断与设备驱动程序 驱动程序(driver) 是操作系统中用于管理特定设备的代码:它配置设备硬件,指示设备执行操作,处理由此产生的中断(interrupts),并与使用该设备的进程进行交互。驱...
继续阅读 →发布于
介绍 本文是 Efficient Large-Scale Language Model Training on GPU ClustersUsing Megatron-LM的简要阅读翻译 摘要 大型语言...
继续阅读 →发布于
Growing the language: adding let 扩展语言:添加 let Every time we enhance our source language, we need to ...
继续阅读 →发布于
阅读 AST和解释器 Let 绑定和简单栈分配 手写编译器项目规范 直线代码 手写编译器项目实现 //TODO...
继续阅读 →