第71章 培训
  一九九六年九月初,硅谷,网景通讯公司。
  当吉姆·克拉克亲自下达指令,要求组建一个专项团队,与一家名不见经传的icecloud投资公司合作,开发一个所谓“瀏览器即作业系统外壳”的顛覆性项目时,公司內部充满了怀疑和不解。尤其是当得知对方的核心人物,一个名叫凌云的年轻人,將要来给网景的顶尖工程师们进行“培训”时,这种情绪达到了顶点。
  “让我们去听一个外行讲作业系统?克拉克是怎么想的?”
  “瀏览器外壳?开机直接进入瀏览器?这违背了gui设计的基本原则!”
  “大概是又一个来硅谷兜售概念的骗子吧。”
  第一天培训,被安排在办公楼里一个不算大的会议室。前来听讲的,主要是被强制要求参与此项目的核心瀏览器开发组成员,大约二十余人。他们抱著审视、怀疑,甚至些许牴触的情绪,稀稀拉拉地坐在座位上,交头接耳,气氛並不热烈。
  凌云准时出现。他没有携带厚厚的讲稿,只有几张写有核心要点的卡片和一个可携式白板。他穿著简单,神情平静,走到会议室前方,目光扫过台下那些充满质疑的面孔。
  “各位好,我是凌云。”他的开场白简单直接,“我知道你们在疑惑什么。让我们跳过不必要的寒暄和概念爭论,直接进入正题——如何构建一个以网络和瀏览器为核心的全新计算体验。”
  他没有从宏大的愿景开始,而是直接拿起记號笔,在白板上画下了一个简化的作业系统架构图,然后在传统“桌面shell”的位置画了一个大大的叉。
  “我们首先要做的,是解构『桌面』这个概念施加给我们的思维枷锁……”
  他从最基础,也是最核心的內核调度器开始讲起。他没有空谈理论,而是直接切入“星辰內核”实现的o(1)调度器的具体数据结构设计——多优先级队列、活跃/过期队列的切换机制、常数时间复杂度的实现原理。他详细解释了为什么这种设计能够確保即使在瀏览器作为前台“shell”需要极高响应速度的同时,后台眾多本地服务进程也能得到公平且高效的处理。
  起初,台下还有些许躁动和不以为然。但隨著凌云讲解的深入,那些原本抱著胳膊、身体后仰的工程师们,不知不觉地坐直了身体,眼神中的轻蔑逐渐被专注和惊讶所取代。
  这个年轻人,不是来空谈概念的!他对作业系统內核的理解之深,提出的设计思路之精妙、之前瞻,完全超出了他们的预期!他讲的不是纸上谈兵,而是有著清晰实现路径和扎实理论支撑的硬核技术!
  接著,凌云讲解了为了支撑这种新型“shell”所必须的內核抢占(kernel preemption)机制。他深入剖析了如何实现更细粒度的抢占,如何设置抢占点,以確保瀏览器“shell”的ui线程能够及时响应用户输入,避免出现传统系统在系统调用较深时出现的界面卡顿。他甚至提到了如何优化中断处理,以更好地服务网络数据包的实时接收。
  然后是內存管理。他阐述了基於“反向映射”理念优化的內存管理模块,如何更高效地处理瀏览器环境下常见的大量进程间共享內存(如图形缓衝区、网络数据缓存)的回收与交换,减少內存抖动对前端体验的影响。