主题:【原创】进程的反击 -- zllwy
有点像minix这样的OS,核心很小,重要的系统功能以服务的形式跑在用户态。可能内存管理在cpu某个核上,进程调度在cpu另一个核上;也可能内存管理在某个cpu上,进程调度在另一个cpu上;这些cpu可能在一个设备中,也可能通过互联,在多个设备中。与此同时,编译器也会根据这些分布式特点而进化,在并行、并发方面应该有新的模型出现。
mach,minix等等,好像都不太成功。可能硬件还不够强大。你的描述很像plan 9,跟我要说的Go有很大关系。哈哈。
硬件是否强大是一方面,但理论的缺失(或者说没有实用化的技术)可能是更大的原因。cpu没有为os提供并行、并发的模型和指令接口;os没有内建的支持并行、并发的机制;编译器虽然有很多模型,效果好门槛低的还不多。所以这个生态系统要完善估计得三五十年吧,mach/minix/L4这些microkernel的春天还得再等等。:-)
函数式语言,go、scala等新兴语言在这今后的十几年内可能会更受关注。但未来c或者改造后的c依然会作为“汇编语言”发挥他的基础作用。
另外有空多讲些网络服务端的一些技术啊,什么成熟的框架、新兴的技术、经验感悟都要,哈哈
不过发现把感受写下来有助于整理自己的思路,另外,和大家讨论也对自己是个帮助。边学边写吧。也希望更多的人一起写。
借水果神教御用内核之名,卖遍全球了的说
mach的性能问题,解决的办法只有把它变成混合内核.也就不再是mach了
不过也算mach发扬光大了。
当然CPU会接过一些现在OS干的活,比如增加指令对多线程和虚拟机的特别支持。但OS到CPU在去,那是不现实的。软件实现不比硬件实现慢多少的,而且硬件实现的代价太大了。读读CPU指令集就知道,每条指令都超简单的,呵呵,可没有web service这样的东西。即使这样,硬件工程师也累死了。
而且,硬件做出来就不能改了。你就满足从不升级你的OS了?
window server2008 已经内建hyper v了,VMware的 esx也买的风生水起,amazon的ec2全部是搭在xen上面的。
我们lab里面所有的server都装esx先,非常方便。
OS是啥,OS是一个抽象层而已,能把硬件抽象出来,提供一套API,让外围能有效地使用硬件。 所以,OS的核心代码其实很小很少。现在的OS之所以这么大,是因为附送了一大堆添头。 不过对于最终用户来说,他们在意是那堆添头好不好用 :)
IPV6作为要作为计算机系统基础结构的一部分,所有的硬件,比如cpu啊GPU啊,内存啊,显存啊啥之类的,统统有一个IPV6地址,反正够用。 然后也不分local/remote了,反正ipv6管够。
这样的话,可以大大简化开发人员的编程模型,然后系统有可能能把所有的计算资源一并统一管理。
这些Overhead,都是Energy。
CPU怎么管理文件,怎么管理外设,怎么LOAD设备驱动,怎么管理用户。。。CPU压根就不知道也不在乎这些东西。
CPU还是一个硬件设备,和OS不一会事儿。如果你非说OS要进驻CPU,那我还说OS要进驻GPU呢?不行吗。
一女子结了三次婚但依然保持处女之身。有人问她其中缘由。她说:“我第一次嫁给了一个老头,而他在我们行房之前就死了。第二次,我嫁给了一个海军军官,但战争在我们婚礼的当天爆发了。第三次,我嫁给了一个微软Windows程序员。他只是坐在床边,不断地跟我描述接下去将会多么美好。”