6.s081通关小结

6.s081通关小结

终于是完成6.s081的所有lab了,感慨万千。已经忘了第一次听说这个lab是在什么时候了,只是模模糊糊地感觉是大三。那时的我第一次找到了刷题之外的新方向。但囿于小镇做题家对计算机认识的滞后性,什么Linux、Ubuntu之类的新系统如同一座大山横亘在我于s081之间。又或是在刷题这种片段性的学习中沉浸了太久,偏工程型的lab也令我望而却步。正巧彼时我又发现了一本名为《30天自制操作系统》的书籍,这仿佛成了另一缕穿透迷雾的光。对于任何一个在黑暗中独自摸索前行的来旅人来说,即便是一丝几乎微不可见的光线,也应当被牢牢抓住。就这样,我跟随着这一缕曙光开启了操作系统的学习之路。

大四那一整个暑假我都在折腾这本书,顺便学习Linux。书上所有的代码我都会自己手敲一遍,即便是当时在我看来晦涩难懂的汇编也不例外。但是《30天》这本书本身就有个致命的缺点——难以debug,并且难以兼容现在的键盘。导致调试的时候只能肉眼来核对与书上思路不一致的地方,堪称折磨。最终在day23我倒在了bug上,并且核对了几遍也没发现出错的地方。由于前面进行了太多自己的修改,bug可能出在之前看似正确的代码中。终于,这个bug成为了压死骆驼的最后一根稻草。

我放弃了。

仔细想来我从这本书上学到的真正知识就是把整个大文件拆分成小文件的必要性,以及学会坚持。有了这次的经历,我眼中的s081慢慢褪去了神秘的面纱。

“是时候攀登上这座高峰了”,我对自己如是说。

还记得在完成lab1的时候,什么文件描述符、管道等概念总是让我百思不得其解。那个时候感觉每一步前进都是沉重的——困难的不是解决问题的过程,而是寻找着手点。就像在捋顺一团混乱的丝线,准确拆开每个绳结固然困难重重,但准确找到线头才是一切的根本。彼时的我就处于找线头的阶段,不得不说四处碰壁真的很打击自信心,没有同路者则让这个阶段更加难熬。

所幸这次我坚持了下去,跌跌撞撞地叩开了lab2的大门。其实这次的内容也相当于找线头的过程。但有了lab1的拷打,我慢慢找到了那种可意会不可言传的解题感觉,理清思路然后完成lab变成了一个自然而然的过程。虽然可能进度缓慢,但至少有了着手之处。

再然后就到了pgtbl。说实话这个lab给我带来的感觉是全系列最难,要考虑的点实在太多了,重重陷阱让我一次又一次地跌倒。在网上借鉴其他博客成了唯一的解决之道,然而纵使如此还是没能改变不断 “踩坑—掉坑”的主旋律。东拼西凑搞了好几天之后终于思路变得明了起来,pagetable的概念不说了如指掌至少也是烂熟于心。终于,踩完了无数坑之后我和“All tests passed”相遇了。过程虽然充满坎坷,结局还算是可以接受。

再后来啊,路依旧难走,但有了“坚持”与“信心”加持下的我还是一步一个脚印走踏过来。从挑战cow,到尝试locks,再到攻克fs,直至完成mmap。每个lab都带走了我数不清的脑细胞,又不断巩固着我的道心。当networking最后出现“Score 100/100”的时候,这两个多月的历程终于圆满画上了一个句号。也算是给大三的自己递过去一个差强人意的答复。

为了在周三这天晚上写一篇总结我可是等了五天哈哈哈,终于总结也到了尾声。如今,是时候给这阶段s081的学习历程画上具号了。

不过属于s081的故事还没结束,还有少数遗留的challenge等着我去完成。属于操作系统的学习诗篇也还未完结,6.845将是我下一段征途,虽难必克。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/20268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】解决Python报错:IndexError: queue index out of range

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

【Unity Shader入门精要 第12章】屏幕后处理效果(二)

1. 卷积 在图像处理中,卷积操作就是使用一个卷积核对一张图像中的每个像素做一系列的操作。 卷积核通常是一个四方形网格结构,如2x2、3x3的方形区域,该区域内每个方格都有一个权重值。 当对图像中的某个像素进行卷积操作时,将卷…

Linux域名解析不了/网络不可达/虚拟机连接不了的问题

记录域名解析不了/网络不可达/虚拟机连接不了的问题问题 目录 文章目录 记录域名解析不了/网络不可达/虚拟机连接不了的问题问题1.首先确定已经连接上路由器(我的就是在这嗝屁了....)1.1 查看路由表1.2查看当前的网络连接状态,包括网关1.3查看网络接口的状态&…

如何解决研发数据传输层面安全可控、可追溯的共性需求?

研发数据在企业内部跨网文件交换,是相对较为普遍而频繁的文件流转需求,基于国家法律法规要求及自身安全管理需要,许多企业进行内部网络隔离。不同企业隔离方案各不相同,比如银行内部将网络隔离为生产网、办公网、DMZ区&#xff0c…

十四天学会Vue——Vue核心下篇(理论+实战)(第三天)

一、Vue核心下篇 1.15 常用的内置指令 1. v-text <!--准备好一个容器 --><div id"root"><!-- 1.v-text中的字符替换掉div整个字符 --><div v-text"name">你好,{{name}}</div><!-- 2.将标签当做字符串解析 --><di…

Vue Router (创建 挂载)

创建路由模块 在src目录下创建router.js文件作为模块&#xff0c;该文件中按照如下步骤进行操作 1.导入路由相关函数&#xff0c;具体代码如下&#xff1a; import{ createRouter&#xff0c;createWebHashHistory } from Vue-router在上述代码中&#xff0c;从Vue-router中…

网络原理-TCP/IP --应用层

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 今天你敲代码了吗 目录 3.网络原理 -TCP/IP3.1 应用层 3.网络原理 -TCP/IP 3.1 应用层 应用层是程序员打交道最多的一层,与应用程序直接相关 而应用层的协议,实际上就规定了你写的程序,通过网络传输的时候,按…

2928. 给小朋友们分糖果 I

给你两个正整数 n 和 limit 。 请你将 n 颗糖果分给 3 位小朋友&#xff0c;确保没有任何小朋友得到超过 limit 颗糖果&#xff0c;请你返回满足此条件下的 总方案数 。 示例 1&#xff1a; 输入&#xff1a;n 5, limit 2 输出&#xff1a;3 解释&#xff1a;总共有 3 种方…

FX2N用什么编程软件:深入解析与选择指南

FX2N用什么编程软件&#xff1a;深入解析与选择指南 在工业自动化领域&#xff0c;FX2N系列PLC因其卓越的性能和广泛的应用而备受瞩目。然而&#xff0c;对于许多初学者和工程师来说&#xff0c;如何选择合适的编程软件来开发FX2N系列PLC却是一个令人困惑的问题。本文将从四个…

【LINUX】LINUX基础(目录结构、基本权限、基本命令)

文章目录 LINUX的目录结构LINUX的基本权限LINUX基本命令 LINUX的目录结构 /&#xff1a;表示根目录bin&#xff1a;存放二进制可执行文件(命令ls、cat、mkdir等)boot&#xff1a;存放系统引导文件dev&#xff1a;存放设备文件etc&#xff1a;存放系统配置文件home&#xff1a;…

LeeCode热题100(爬楼梯)

爬楼梯这个题我断断续续看了不下5遍&#xff0c;哪次看都是懵逼的&#xff0c;就会说是满足动态规划&#xff0c;满足斐波那契数列&#xff0c;也不说为什么。 本文一定让你明白怎么分析这个题的规律&#xff08;利用数学的递推思想来分析&#xff09;&#xff0c;看不懂来打我…

Ubuntu 22.04 .NET8 程序 环境安装和运行

前言 我们需要将.NET8编写的console控制台程序&#xff0c;部署在Ubuntu服务器上运行。 安装.NET运行时 1.增加微软包安装源 wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages…

JAVA学习-练习试用Java实现“Z字形变换”

问题&#xff1a; 将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R 之后&#xff0c;你…

1114 全素日

你好哇&#xff0c;新的一天开始啦&#xff01; solution 取数值的不同部分&#xff0c;联想到借助string #include<iostream> #include<string> using namespace std; bool judge(string s){int n atoi(s.c_str());if(n 1 || n 0) return false;for(int i 2…

FT编程语言:探索其深度、广度与未来潜力

FT编程语言&#xff1a;探索其深度、广度与未来潜力 FT编程语言&#xff0c;作为一个新兴且充满潜力的编程领域&#xff0c;正逐渐引起开发者和研究者的广泛关注。其独特的设计理念和强大的功能使得它在多个方面展现出独特的魅力。本文将从四个方面、五个方面、六个方面和七个…

“浔川AI翻译”正式上线!——浔川AI社

1前言&#xff1a; 浔川AI翻译机是一种基于人工智能技术开发的翻译设备。它能够实时将一种语言的文本或口语翻译成另一种语言&#xff0c;使得不同语言之间的交流更加便捷。浔川AI翻译机利用深度学习算法和大数据训练模型&#xff0c;能够自动识别和理解输入的语言&#xff0c…

618大促买什么数码最划算?数码好物清单整理,买到就是赚到!

618年中大促数码产品爱好者们纷纷摩拳擦掌&#xff0c;准备在这个购物狂欢节里抢购心仪已久的数码好物&#xff0c;在繁多的品牌和型号中挑选出最划算的产品&#xff0c;并不是一件容易的事情&#xff0c;为了帮助大家更好地把握这次购物机会&#xff0c;我们精心整理了一份数码…

基于java的CRM客户关系管理系统(一)

目录 第一章 绪论 1.1 研究背景和意义 1.1.1 企业管理信息化 1.1.2 CRM的概念 1.1.3 CRM客户管理系统的意义 1.2 国内外研究 1.3 论文结构 1.4 本章小结 资源毕业设计毕业论文源代码请移步 CRM客户关系管理系统毕业论文毕业设计源代码 第一章 绪论 1.1 研究背景…

【qt】多窗口开发

多窗口开发 一.应用场景二.嵌入的窗口1.设计Widget窗口2.创建窗口3.添加窗口4.总代码 三.独立的窗口1.创建窗口2.显示窗口 四.总结 一.应用场景 多窗口,顾名思义,有多个窗口可以供我们进行操作! 截个小图,你应该就知道了 OK,话不多说,直接开干,先来设计我们的主窗口 需要蔬菜…

《异常检测——从经典算法到深度学习》29 EasyTSAD: 用于时间序列异常检测模型的工业级基准

《异常检测——从经典算法到深度学习》 0 概论1 基于隔离森林的异常检测算法 2 基于LOF的异常检测算法3 基于One-Class SVM的异常检测算法4 基于高斯概率密度异常检测算法5 Opprentice——异常检测经典算法最终篇6 基于重构概率的 VAE 异常检测7 基于条件VAE异常检测8 Donut: …