|
发表于 2004-6-2 23:48:30
|
显示全部楼层
楼上的兄弟现在的兴趣回升了否?:)
我是个linux菜鸟,不过对操作系统的知识很感兴趣。
我觉得内存管理的相关技术(主要是思想)可以应用到更广泛的领域——即除了嵌入式系统这样的靠近底层、面向硬件的领域之外——比如在纯软件系统里,现在的系统越做越大,面向对象的极限也差不多发挥贻尽,系统的数据结构和代码结构越来越复杂,以至于混乱难以维护。反观Linux这样的操作系统(一定程度上也可以把它视做一个复杂的软件系统)却始终能保持一贯的清晰、高效、稳定,岂非印证了更简单、更原始(相对于面向对象等“高级”软件结构技术)的内存数据结构的威力?
问题是我们的普通的软件系统是否能自然有效地借鉴操作系统的结构体系呢?试拿WEB信息应用(OA之类)的例子做一类比,从技术的角度把它的主要组成部分列出(界面等非核心部分不考虑):
1.B/S交互——相当于命令行(URL请求)解释系统 == bash。
2.请求处理——各种用户对象方法 == /bin/*,/sbin/*等等。
3.数据库操作——程序直接操作的还是表的内存对象 == 内存结构。
4.系统数据操作——配置、日志文件(XML、TXT等) == 文件系统。
5.局部数据空间——中间结果、状态信息等 == 多用户系统环境。
事实上后三部分已经包含了内存管理、进程管理等操作系统类似的工作,只不过这部分工作由数据库产品或是Web Server代劳了而已,在程序员来说归根结底都是内存数据的处理工作。
正是由于这些不同来源、不同作用的数据的内存结构差异太大而造成程序结构的相应复杂进而影响到代码结构和整个系统结构的设计。所以一个很自然的想法就是在内存结构的层次上对这些数据结构做统一。但是可以肯定这样的方案一定是非常巧妙而富有挑战的。很希望能从Linux的内存管理机制中得出一些启发,可惜自己功力不够。想听听大家的想法。 |
|