虚拟化:初识IOMMU(TODO)初识IOMMU 最近在尝试给朋友的小主机安装ZStack作为虚拟化管理平台的时候,遇到了一个需求:通过HDMI直接将Windows虚拟机的画面输出到外界显示器。需要解决这个问题自然而然的就需要使用直通的方法将显卡直通给虚拟机。不过之前直通都是直接找别人的博客一步一步傻瓜式执行下去,对于每个指令发生了什么,以及iommu是如何工作的都不清楚。刚好趁着这个机会了解并记录下自己的学习历程 问题来源 2023-11-28 知识记录 #iommu
知识复盘:操作系统的作用操作系统的作用 该部分博客为自己在学习《程序员的自我修养:链接、装载与库》的时候对于过去零碎知识点的一个整理和复盘,并非照搬原文,其中会加入一些自己的联想与理解,如有错误还请指出。 操作系统在计算机中主要有两个功能: 对硬件资源进行管理,让硬件尽可能高效的解决问题或执行操作 提供抽象的接口,以便于程序对计算机的硬件资源进行调用 CPU的调度 在计算机的使用过程中,需要消耗时间的 2023-10-21 知识记录 #OS
DNS问题排查思路参考文章 这篇博客主要是在推特中无意翻到了这篇博客,尝试以翻译的形式做一套笔记,分享的同时加强自己的记忆。 Why is DNS still hard to learn? (jvns.ca) 系统背后做的事情 当我们发起一个DNS请求的时候,基本上发生的就是下面两件事 电脑向一个被标记为resolver的服务器发送一个DNS请求。 resolver服务器首先会检查缓存,并且在必要的时候再 2023-07-30 知识记录 #DNS
网络抓包记录学习记录 这个博客主要记录了自己尝试通过抓包分析并解决一些问题的心路历程,从结果上来说很可能问题并没有解决,但是尝试解决这个问题的过程中遇到的一些问题以及自己的思考想通过写博客的方式先记录下来,在以后自己知识储备扩充的时候也许就可以回过头来看看解决下。 第一次抓包 遇到的问题 今天在尝试部署zerotier的zeronsd私有DNS服务的时候遇到了一个问题:无论是在我之前国内的服务器A上还是 2023-07-27 小技巧 #Wireshark
基础算法(一)基础算法(一) 快速排序 快排 题目链接:785. 快速排序 - AcWing题库 快排的主要思想是基于分治 找到分界点 对于一整串数组,首先找到一个值作为分界点。分界点的取值有三种取值方法: 取区间的左边界 取区间的中间位置的值 随机取一个位置 调整区间 让分界点(设为x)前面的区间部分全都是小于等于x的值,数组后面的部分则都是大于等于x的部分。 递归处理左右两段 再对区间的 2023-06-20 知识记录 #算法
使用clink优化cmd参考链接 chrisant996/clink: Bash’s powerful command line editing in cmd.exe (github.com) chrisant996/clink-flex-prompt: Flex prompt for Clink (github.com) 预先准备 苦于powershell每次都要一秒多的启动速度,偶然这两天发现了clink这个 2023-06-17 安装引导 #Windows #cmd
CS144-Lab6 计算机网络:路由转发路由转发 这个实验就是最后一个需要写代码的实验了。主要需要解决的问题是一个IP数据包传入之后,如何通过已有的路由表确定下一跳的IP地址 这个实验中主要的问题点就是CIDR的匹配。解决这个问题,我们只需要先将CIDR转为子网掩码,也就是以0为基数,左移(32 - 前缀)位,最后得到的也是子网掩码的值。但是这里有一个问题就是,当mask是uint32_t的时候,如果前缀的长度为0,那么子网掩码会变成 2023-04-24 知识记录 #cs144 #network
CS144-Lab5 计算机网络:Network Interface的功能Network Interface 在通过TCP协议将数据包进行封装准备好以后,就需要“快递公司”来对这些数据包进行分发了。这个过程可以划分为两个部分,一个是数据包在中转转发的过程中需要经过的“中转”设备有哪些,其次就是如何选择“中转”的线路。 在网络接口的部分,主要实现的逻辑是作为发送的某一个节点,在知道了下一个中转站的IP地址以后,如何将数据包进行交付。 需要实现的逻辑 首先对目前的知识进 2023-04-24 知识记录 #cs144 #network
CS144-Lab4 计算机网络:TCP Connection的实现TCP Connection TCP Connection的部分本身并不难,这个实验的主要核心是学习使用tshark或wireshark一类的工具对TCP的网络状况进行分析,找出正确或错误的数据包。 需要实现的逻辑 在这个实验中我们需要将前面写的TCP Sender和TCP Receiver两个部分的逻辑进行合并,使得两者之间可以进行数据的传输。 除了几个可以直接调用前面实验函数的函数以外,我 2023-04-10 知识记录 #cs144 #network
使用Yadm管理Linux配置文件今年暑假看Missing-course的时候开始意识到备份Linux配置文件的重要性,以后即使切换机器也可以很容易的恢复自己喜欢的编程环境。在简单搜索了几个方式以后,决定使用yadm作为管理工具,并且写了一个模板,便于分享和使用。 Yadm Dotfiles 使用说明 该仓库的主要用途为使用yadm作为管理工具,通过Github来同步自己的Dotfiles 先在自己当前环境下安装yadm 2022-12-12 小技巧 #Linux #Yadm