Spring recruitment interview
- 内存模型,栈和堆
栈,我们很好理解,因为函数调用的过程,先进后出,就是一个栈的结构;
堆,一直不明白,或者说很多资料上为什么在大块内存管理上没有说堆这个结构,很迷糊,”为什么用堆管理动态内存,怎么组织的,怎么成堆的“,国内的资料都不谈堆,直到在外网查到,堆,就看成一堆内存就行,它和数据结构中的堆没有关系。参考
It is just “co-incidental” that the stack is implemented “exactly” as the “data structured named stack”, but heap has no real relationship with the “data structure named heap.” In this case, I feel we need to look at the “heap” as just that: a heap of memory … meaning a large, unorganized region of memory where we can put things (as in data, of any size) and remove things from.
至于在内存模型中,栈、堆,怎么用,看国内的博客就行了。国内博客只是谈的用,为什么,怎么回事?谈的很少,或许因为大家只是程序员吧,还是应用型的,不是计算机研究员。
- docker 隔离不了哪些资源
docker对utc、pid、network、mount、user、ipc六个namespace进行了隔离,但并没有完全隔离linux资源,比如selinux、cgroup以及/sys,/pro/sys,/dev/sd* 等目录下的资源
docker还存在较大的安全问题,比如容器逃逸,主要是docker使用操作系统虚拟化,即共享内核,通过之前没有禁止open_by_handle_at的能力,归根到底,是原来才用黑名单的方法限制容器能力,1.0之后才用白名单的方式限制容器能力。
通过open_by_handle_at打开宿主机挂载到容器的一个文件,获取宿主机的文件描述符的引用,然后构造file_handle类型数据,一般根目录节点编号是2,通过open_by_handle_at返回次目录的文件描述符,然后匹配要找的目录,之后,递归操作下去。…
-
docker add 和 copy的区别
add功能复杂,添加本地压缩文件时,会自动解压;支持从远程url中获取文件,但从url中获取的压缩包,不会自动解压。
而copy是简化的add,不支持url,不自动解压,推荐使用copy。
如需进行解压,可通过run命令,使用curl下载压缩包,并进行解压。 -
go语言相关