@
aa45942 我觉得你想的过于复杂了,这些都是基础题,不太可能会要求面试者说出实现背后的每一个细节,如果要求,那就不是一个 entry level 的 position 。面试官想确认的是面试者有这方面的基础,所以你要说出大概的理解,对整体有个概念即可。
比如地址空间这题,根本不用涉及到 CPU 架构什么的,这个绝大多数人是不可能知道的。但是类似地址转换( MMU )、页表、 TLB 、逻辑地址、物理地址、段地址、偏移地址这些东西,任何一本操作系统的入门书里都会讲得很清楚。即使说不上名字,其大概的含义也差不多有个小小的印象。即使都说不上来,也可以简单说说例如“地址空间大概是为了保护每个进程私有的内存地址不受其他进程所影响,他们并不对应于真实的物理地址,两者之间的转换会由操作系统协同 cpu 进行完成。内存是以页为单位大小进行组织,还有个什么页表之类的数据结构用于维护和管理,但是具体细节我记不得了 云云”。一般情况下,这样也够了,面试官往往也只是希望有基本的概念而已。
又如“浏览器中输入网址到得到网页的过程中发生了什么”,我觉得面试官更想知道的是关于计算机网络方面的基础知识,而不是具体前后端实现的方法,比如 HTTP 协议、 DNS 转换、 OSI 模型、 TCP 、 UDP 区别、怎样路由的之类。其实就那一本大家最看不上的最入门的教材《计算机网络》只用了一两百页,就把这个讲得清清楚楚。对于一般搞上层的人准备面试了解到这个程度就够了,有不懂的到时候在工作中现查现学就是了。