0%

事情的起源是这样的:舍友想通过计算大矩阵的乘法对比多核和单核的性能差异,结果某个程序总是在运行后不久被SIGKILL掉。进一步了解后发现该程序中矩阵大小为100000*100000,数据类型为double,直接使用malloc申请。经过简单估算,malloc要申请的内存约为 80GB,明显消耗资源过大。 进行推测:服务器中对于资源消耗超过阈值的程序发送SIGKILL信号。 遂想到一解决方案:先测量出服务器上通过malloc最大可以申请的内存,然后设定矩阵大小小于这个值,程序就可以正常运行了。 遂想到CSAPP中死循环使用malloc测量最大可用内存的方法。 在本地虚拟机上使用如下代码进
阅读全文 »

停了好久Orz。。。本来Lab2在半个月前就完成了,结果Part2的某个地方出了问题,查了半天还没查出来错在哪里QAQ。前两天趁着假期又重写了一遍,终于过了检查。另外考虑把实验报告都换成中文。 Lab2的主要任务是完成JOS的基本内存管理。内存管理分为两个部分,一是对于物理内存的管理,二是虚拟内存到物理内存的映射。 Part1: Physical Page Management 为什么说是物理页管理呢?因为在JOS中,对物理内存是以“页”这个粒度进行管理的。操作系统要想做到对物理内存的管理和使用,就要了解每一块物理内存的使用情况:内存是否可用?如果不可用,那么它现在被映射了几次?JOS通过
阅读全文 »

建站 安装NodeJS 安装Hexo 1 $ npm install -g hexo 建站 1 2 3 $ hexo init $ cd $ npm install 基本配置 打开folder/_config.yml 配置基本信息。 设置主题 将Hexo主题文件夹放置于/themes 下。我的博客使用的是next主题。 部署至 GitHub 1 $ npm install hexo-deployer-git --save 1 2 3 4 deploy: type: git repo: https://github.co
阅读全文 »

忙里偷闲第三次更换了博客地址。从GitHub到VPS再到GitHub,不知道为什么就又开始折腾了。。。也许是因为WP对于Latex公式和代码块的渲染老是出现问题,让我无法专心写东西。不管怎么样,搬到GitHub还是省事一些,而且Hexo各方面都做得很成熟了。 还是需要对博客进行进一步的自定义修改,研究一下自动部署的问题,这部分的工作留着慢慢来。 希望自己多写东西吧,高质量的技术总结、学习笔记,以及生活中的点点滴滴。
阅读全文 »

现在是2020年12月31号,23:33,还有不到半小时就要结束了。我坐在寝室的电脑前,听着《遥望2020》,时不时地暖暖手,想着在12点之前写点什么东西。 写点什么呢?遥望2020,对于我自己而言,好像也没什么值得写下来的。似乎和去年一样,又似乎潜移默化地发生了什么变化。不过,我倒是愈发认清了自己是个普通人的事实,认清了自己不成熟的事实,而不是像之前一样洋洋自得地活在自己创造的假象中。 2020是魔幻的一年,发生了太多事情。年初的疫情改变了很多,让我有了史上最长假期,让我有了另一个能长时间陪伴家人的机会。 希望在明年的这个时候,回望2021,我会骄傲地说出我真正做了什么有意思,有意义的
阅读全文 »

0x00 关于公钥密码学 公钥密码体制 VS 对称密码体制 之前学到的加密方案(如AES、DES)均属于对称密码体制,也就是说加密过程与解密过程使用的是同一个密钥\(K\)。这样的特性使得对称密码体制在使用中存在一定的不便与漏洞:Alice(加密者)与Bob(解密者)必须在使用密钥前通过一种保险的手段就密钥\(K\)达成共识。如果共识协商的过程不够安全,就可能会导致密钥\(K\)泄露,进而导致后续的加密信息泄露。而且这里存在一个悖论:如果我们可以找到一种绝对安全的传递密钥\(K\)的方法,为什么不可以仅通过这种方法来传递所有要加密的消息呢? 对于对称密码体制中存在的安全问题,公钥密码体制的想
阅读全文 »

Exercise 7 1 2 3 Exercise 7. Use QEMU and GDB to trace into the JOS kernel and stop at the movl %eax, %cr0. Examine memory at 0x00100000 and at 0xf0100000. Now, single step over that instruction using the stepi GDB command. Again, examine memory at 0x00100000 and at 0xf0100000. Make sure you under
阅读全文 »

0x00 前言 借着移动网络安全这门公选课的契机开始学习网络安全(我一个网络安全专业的学生竟然从公选课才能学习到专业知识QAQ),先从最基本的ARP欺骗学起吧。 0x01 ARP协议是干什么的 Address Resolution Protocol(地址解析协议),用来将IP地址转换为MAC地址,使网络适配器可以根据数据报报头的IP地址填入MAC地址,从而完成帧的封装与发送。 那么ARP是如何得知某个IP地址对应的MAC地址呢?当然是询问了。当一台主机想要与另一台主机通信却发现不知道对方的MAC地址时,就要发送一个ARP REQUEST的广播帧,向整个局域网中的主机询问。 image-2
阅读全文 »

今天写一点与技术无关的东西。虽然技术相关的东西也没写什么。 今晚看完了林沛满的《Wireshark网络分析就这么简单》一书。这是我第一次发现一本技术书可以写得如此行云流水,把枯燥难懂的技术讲得好像探案过程一般。作者对工具自如的运用与理解让我惊叹不已。 我最近常常在想,以后的路怎么走?要向哪个方向去发展?搞研究还是当工程师?技能树应该怎么点?作者的话给我了一些启示与指点。 在这个内卷程度极高的大学学习环境中,我卷得并不算成功。一方面归因于自己太着急,在强压环境中想掌握所有别人涉及的方面,以此来获得优势,又没有与野心匹配的智慧,结果最后样样不精;另一方面则是性格原因。成功的内卷者需要有与之匹
阅读全文 »

前言 这学期在上操作系统的课程,在进程相关的部分接触到了context-switch这个概念。context-switch很好理解,但是这个过程是由谁来执行的呢?当我暗自得意自以为得知正确答案(TSS)的时候,被老师光速打脸(PCB)。当我去Intel开发者手册再次确认之后与dalao讨论,结果再次被打脸决定好好搞清楚这个问题(还是tclOrz)。 TSS是什么 我最早接触到相关的概念是在Linux 内核完全剖析这本书中,书中内核的运行环境是Intel 8086处理器,因此存在大量的相关硬件知识,其中就有TSS,Task Register,Task-gate Descriptor等等。其实就
阅读全文 »