独立封装硬件操作核心是不可缺少的,杜克新开发的手机操作系统就是这么做的,只是手机操作系统是针对一个有限硬件平台的封闭式系统,大幅度减少了兼容性的考虑,所以效率很高。
但是这个新系统却不能这么搞,这样以后还得针对特定的硬件平台,这样的系统称为通用操作系统,杜克都不好意思说是自己参与研制的。所以独立封装硬件操作核心同新设备驱动之家的关系比较难处理。
开放第三方对于核心部分的读写,会产生比较严重的安全隐患,很多病毒都会模拟新设备驱动来对操作系统进行核心层面的操作。所以这个问题现在基本上是很难取舍的,windows为了兼容性不得不打开一道缺口,杜克原本也不知道该如何才能够避开这个问题。
直到克里虚拟成功泰坦ii,杜克才受到启发:将整个基本硬件看着一个完整封装好的内核,而外设都必须通过调用内核的sdk来开发驱动,实现外设同内核之间的数据交换和运算调用。这样,杜克就可以确保内核的安全。
相对于层出不穷的外设来说,内核需要针对的环境就非常有限了,cpu,主流的就俩三家,加起来虽然总数看起来也不少,可是真正有指令集变化的型号,总数超不过20种指令集!
但是毕竟都有限,如intel的通用桌面级cpu的指令集,截止到2014年,其中扩展指令集部分也不过是mmx,sse,sse2,sse3,ssse3,sse4.1,sse4.2,sse4.3,em64t等区区九种。
所以有了高端cpu模拟经验,克里要模拟相对低端的cpu,简直就没有多少难度,无非是消减性能和指令集支持。
杜克可以针对一款较高端的cpu开发出一中核心的处理应用,剩下的兼容性就将在这个核心应用上进行修订,根据不同的cpu进行指令集兼容性设计。
由于有了超级计算机操作系统作为基础,未来这款操作系统杜克初步考虑区分为桌面和服务器俩种型号。
服务器型号将支持现有超级计算机架构的海量内存和超多cpu集群,实现大型机同中型工作站的统一,对于很多应用来说,如数据库、web服务器、视频服务器等资源消耗应用可以在不改变程序的情况下就得到最大的兼容性。
而桌面型仍然将支持多逻辑cpu,只是数量将被控制在8路物理cpu,按照2014年主力cpu最多32核计算,就是256个逻辑cpu,这样就算是8路的小型工作站,也可以在这个系统上发挥得淋漓尽致。
整理了一下思路,杜克慢慢有了一个大概的结构划分。将这个思路传递给克里后,克里就在craylinux基础上精简出一款针对2路20核平台的新操作系统,开始验证杜克的想法。