rcore学习笔记
这是我这几天学习rcore-Tutorial第三版时的笔记, 汇总到了一起. lab1 学习了不少RISC-V的中断相关的基础知识, 之后补的中断相关的知识也补在这里了 lab3, lab4 对实现细节写得详细一些, 稍微看懂一点代码就写上去了, 很多函数的实现细节都写下来了.
有的地方还留下了一些疑问没有解决, 自己也查了资料但没有找到答案, 如果去掉感觉有可能产生误导, 所以就留着了.
这篇文章是我买了Widora AIRV R3
这个K210
芯片的开发板。这时候刚好看了一些Python内部实现的书,并且Maixpy(一个移植Micropython到K210开发板上的项目)对这块开发版支持还不完善,于是就克隆下来,试图修改移植。
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类型。
目标:需要有只读的公共访问和可读可写的非公共访问
注意的地方是, 第一次访问可能会询问用户名密码, 不代表guest配置失败, 乱输用户名即可通过map to guest = bad user
作为guest。坑惨我了
上来先看看Intel 80386 Programmer's Reference Manual, 1987 (HTML)吧。 http://www.logix.cz/michal/doc/i386/