最近准备开始研读KVM的代码实现,先从KVM用户层接口开始看起。
git clone linux是一个漫长的过程,所以建议采用reference的方式clone,如下:
|
|
reference可以是之前clone好的一个本地目录。
今天学会一招,tar命令的参数--exclude-vcs
,这个很好用,可以方便的排除常见的版本库目录!
比如:
|
|
|
|
利用 bundle安装:
然后在vim中运行命令
|
|
.vimrc
中增加:
|
|
|
|
在上面任意位置按下 ,,c
即可出现:
|
|
默认情况下,Linux操作系统是按照页面来管理内存使用的。当用户申请内存时,并不会真正的分配内存,而是根据“Page Fault”来触发异常,进而按照情况分配内存。用户的虚地址连续,而真实使用的物理地址不一定连续,通过“TLB”来进行虚实地址的映射。但在某些情况下,为了一些设备或特殊的计算部件需要,这些部件需要使用大块的连续物理内存,如果动辄数GB,默认的内存管理就不能满足需要了。一般情况下,在系统运行一段时间后,均不能保证可以正常申请到连续的大块物理内存。针对这类应用场景,最常见的做法是在开机阶段预留内存。但预留的内存没有灵活性,成为了专用内存,不能给普通的用户程序使用,即便能够使用,也不能通过标准的接口申请,而是通过自定义的特殊接口申请。所以,在这种场景下,需要一种更加灵活的内存管理策略,将段式内存管理和页式内存管理结合起来。