对操作系统的理解

         前几天读了《走出软件作坊》中“沙尘暴-令人焦虑的技术时代”一章,作者对于技术的深刻理解和掌握,让我收获颇丰。

         在大学学习《操作系统原理》后,对操作系统的理解是一个提供屏蔽硬件细节的软件层面,让其他软件可以在这个软件层面基础上更好地工作,而不需要让每个应用都直接控制硬件,否则软件开发就太困难了。

         所以,操作系统给他们提供了非常多的API,让我们通过这些API来间接访问硬件资源。而且现在操作系统把API包装的越来越高级,过去需要几个API配合才能完成的功能,现在一个API就可以搞定。尤其现在的API更偏向应用,而不是仅仅把硬件功能包装一下。现在的.NET平台提供了丰富的如网络、文件、搜索、安全、数据访问等各种API包,让我们开发起简直可以说有飞速的变化。不由感叹现在的程序员太幸福了,现在有高级的API,有功能强大的IDE,可以可视化开发,还能自动完成代码,代码检查。

        但是,现在我对操作系统的认识有了不同,这些认识的改变,最主要还是来自于我对COM,对JAVA JVM以及 .NET VM的理解。    

        过去没有接触过组件、中间件的时候,是一个开发语言打天下,眼中只有windows。但是现在组件、中间件、跨平台虚拟机使之发生了改变。

        现在的硬件有很多,大的有服务器,小的有PC和笔记本电脑,再小的还有智能手机和PDA,再往小的说就是数码设备,家电、医疗设备、交通设备、汽车、数控机床。这些都需要软件来驱动硬件,当然这些基础软件都可称作是操作系统。

         我们不需要关心是针对什么硬件开发,我们有统一的开发工具,统一的编码工具,统一的API、统一的数据存取技术、统一的数据交换技术,而且我们的用户也不关心我们使用了什么技术,也不关心我们是把他想要的功能分割成怎么样的系统,他只想完成他的工作而已,功能对他来说是重要的,对于属于哪个系统,他是不关心的。

          这样,操作系统和应用就出现了一个情况:一个硬件(可能是PC,可能是手机,也可能是PSP)被一个软件控制(不是硬件驱动程序),然后其上就可以开发应用。而这个软件,就是一般意义上的操作系统,但可能不具备操作系统的形。

           我们目前看到的JAVA和.NET的虚拟机都是这样的原理。而Vista这个大家都普遍认为的操作系统,其实质就是建立在.NET的引擎之上。大家这样看,Vista居然成为了.NET的一个应用软件。

            未来会如何?未来可能不需要Vista这样庞大的什么都包含的操作系统,而会走向微内核(听说windows正在研发采用这种方式) 假如成为微内核,对着.NET和JAVA开发,我们的应用其实就是一个个的功能,一个个的功能运行在.NET这个容器中,.NET控制功能的内存分配、回收、线程调度、异常保护、持久化。

           

           为了和其他远程的功能交互,我们把自己的用的功能用webservice包装一下,远程的功能也用webservice包装一下,这样,这两个功能都采取了HTTP、XML、Web Service这些中立的通用技术来进行数据存取和功能访问。我们无须知道对方的功能在哪个IP,也无须知道对方的功能是用什么语言开发的,运行在什么设备上,什么操作系统,什么中间件,我们都不需要了解,我们只需要一个URL地址来访问这些Web Service即可。

           这不就是Open API,这不就是SOA吗?

           这就是这些新技术的原理和初衷。一个操作系统只是应用的宿主,而一个虚拟机也是一个应用的宿主,也是一个应用而已。我们的功能就是一个个的功能,可以被任何一个外部应用所调用,就类似Windows API一样。千万个功能来回组合,就组成了各种各样变化万千的应用和解决方案。这就是未来。我们无须制造这系统那系统,我们只需制造一个个功能,一个个可以被独立访问的功能,提供给别人使用,就类似我们在博客上挂一个Google的广告和自己城市的天气预报,这些都是一个个的功能,Yahoo和Facebook称它们为Widget或小应用。Facebook之所以如此被追捧,因为他在上面有很多应用。

             我们需要操作系统吗?我们能感受到操作系统吗?我们打开浏览器,登上Facebook,然后使用功能,这些功能都在互联网上,我们完全感觉不到是我们本地的操作系统在渲染我们的网页元素,在缓冲页面,在调度资源。

操作系统回走向何方,会“消失”的让我们感觉不到吗?

 

            这就是我关注的操作系统的两个方向,一个是越来越小的操作系统,甚至消失在JAVA和.NET平台之中,一个是越来越大,甚至盖过操作系统,通过互联网把全球的计算设备都连在一起的云计算。它们看起来好像是再世界的两极,却有如此的融合。

        不要被五彩缤纷,更新飞速的技术所迷惑,每个技术都是自己的背后,要看透技术的背后~!

你可能感兴趣的:(走出软件作坊)