编译原理学习与编译系统赛

暑假参加了编译系统设计赛,受益匪浅。在比赛初期,拖延症严重,同时经常感觉学习资源匮乏,而且也还在摸黑阶段,心理压力下经常就会高估学习的困难,觉得是不可逾越的大山。尤其是编译器后端,这方面相关的学习资源感觉非常匮乏。现在看来,前期确实没能重视一些重要的学习资源,后面走弯路学会了已经晚了。

Read More

换电脑-2021

换电脑-2021

电脑终于换上5800u了,这里记录一些换电脑系统重装与迁移的过程。

早就意识到QQ使用了驱动进行自我保护,这几天又出现了读取浏览记录的事件,我就感到我的电脑如果腾讯想干什么我是拦不住的。从此就计划新电脑一定要24小时跑一个虚拟机,用来装这些流氓软件。

具体的方案是家庭版安装hyper-v,然后外部通过windows远程桌面连进去。现在用了快一个多月,还挺不错的,CPU占用也不高。唯一的缺点是内部启动腾讯会议,会使用CPU而不是显卡处理视频,CPU占用较高。所以腾讯会议还是装在外面。

Read More

rcore学习笔记

rcore学习笔记

这是我这几天学习rcore-Tutorial第三版时的笔记, 汇总到了一起. lab1 学习了不少RISC-V的中断相关的基础知识, 之后补的中断相关的知识也补在这里了 lab3, lab4 对实现细节写得详细一些, 稍微看懂一点代码就写上去了, 很多函数的实现细节都写下来了.

有的地方还留下了一些疑问没有解决, 自己也查了资料但没有找到答案, 如果去掉感觉有可能产生误导, 所以就留着了.

Read More

堆复习

堆复习

64位时, 默认开启的fastbin范围(chunk总大小)是0x20 - 0x80 32位TODO

tcache是64个单向链表,最多7个节点(chunk),chunk的大小在32bit上是8到512(8byte递增);在64bits上是16到1024(16bytes递增)。 fastbin只有10个链表, 范围肯定很小, 而和smallbins有62个, 大小基本重合.

当某一个tcache链表满了7个,再有对应的chunk(不属于fastbin的)被free,就直接进入了unsortedbin中。 tcache_perthread_struct结构,一般是在heapbase+0x10(0x8)的位置。对应tcache的数目是char类型。

Read More