虽然这幅画还没有画出主角十分之一的神态,但是不得不承认,这已经是我能力的极限了。
- 结构永远是重中之重,也就是人没有办法画出超过自己意识的画面
- 光真的好迷人啊
- 不要怕修改哪怕重构
- 要保持昂扬的状态坚持住
- 完成的原因是因为她本来就在那里
- 奉献出最为非普世化的东西,才是真正的“闲心思”
虽然这幅画还没有画出主角十分之一的神态,但是不得不承认,这已经是我能力的极限了。
在我进入大学的新同学介绍会上,有个同学说她来自贵州,我想了想,贵州是广西的省会啊,原来是广西人啊!让我尝试为自己辩解一下,这种事情并不能全部怪我,贵州以“州”结尾,除了贵州以外,没有任何一个省份是以“州”结尾的,相反,“广州、潮州、雷州、惠州”都是以“州”结尾的城市。
我一个学过初中地理的人,居然还能把一个省份当成一个城市,多么愚蠢可乐的事情。在我的认知中,贵州是完全缺位的,我不是对它有一个好印象或者一个坏印象,我是完全没有印象。
而实际上贵州是真实存在的,从某个我记不住名字的版块运动开始,随着喜马拉雅山破海而出,贵州就存在了。我在贵阳的博物馆里看到了保存完好的化石,看到了各个民族的文化,我看到的东西并不比我熟悉的东西少了分毫。这种真实的,冒着热气的,在我眼前的庞然大物,居然默许了一个仅有二十多年渺小灵长类的忽视。
项目开源地址:https://github.com/nephele-vm
本文在 hypervisor 上为 unikernel 提供了 clone 能力。
在我一开始接触内联汇编的时候,我已经略懂编译的原理了,而这更让我困惑,比如说像这样的内联汇编:
asm volatile("lw a0, 0(%0)"
:
: "r"(addr));
会改写寄存器 a0
的值,那如果 a0
原先就被程序中的某个变量占用了呢?那岂不是会造成原来那个变量所参与的行为发生错误?同时 addr
需要被放到一个寄存器中(我们称之为 rx
),而 rx
如果之前也被占用了呢?,为了把原来在内存中的变量搬运到 rx
寄存器中,是不是也会
其实内联汇编并不是生硬地将 lw a0, 0(rx)
直接插入到代码里,因为这样确实会因为上述的原因导致程序错误。在实际情况中,内联汇编在编译角度应该被理解成一个类似于函数调用的处理逻辑。也就是说,如果内联汇编中用到了 a0
,那么在内联汇编前就会有一个机制保存 a0
,而在内联汇编后则有一个机制恢复原本的 a0
。也就是和“调用者保存寄存器”的逻辑是一样的。