计算机的“层”概念

“计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决”

“Any problem in computer science can be solved by another layer of indirection.”

这句话原本是描述计算机系统软件体系结构采用的一种层结构,那我把这种层结构理解为两个方面,

一个是它的本意方面:计算机系统软件结构;

另外一个方面:其他领域的计算机应用对于计算机来讲的层概念。

1.首先解释下计算机系统软件,系统软件一般分成两个方面,一块是平台性的,比如操作系统、内核、驱动程序、运行库和数以千计的系统工具;另一块是用于程序开发的,比如编译器、汇编器、连接器等开发工具和开发库,提到开发库举个例子:比如linux下的Glibc(gnu 发布的libc库, 即C运行库)。

整个计算机体系结构都是按照严格的层次结构设计的。每个层次之间都需要相互通信,那么这个通信协议又被我们成为接口(Interface)。我们可以这样认为: 硬件 --> 中间层 --> 应用程序。

正是这个 中间层 的存在,使得硬件和应用程序之间保持相对的独立性。比如虚拟机技术,就是在硬件和操作系统之间增加了一个虚拟层,使得一个计算机上可以运行多个操作系统,这就是层结构带来的好处。

2.对于我所理解的层概念,不仅仅是包含计算机自身的系统软件,还能泛化到其他领域应用对于计算机而言的层思想。

现在是一个计算的时代,任何领域都可以利用计算机技术而得到更好的服务。那么计算机就像一个封装好的底层工具,无论什么样的数据只要处理成它能识别的形式,计算机都可以进行计算和处理。那么这种大概念上的层思想也使得计算机应用几乎无处不在。就像一个X光医生不用管底层的设备如何计算运作的,只要会设备使用方法并得到想要的结果就可以。这就是分层的好处,整个社会的分层制度使各个领域层的人都能享受到全社会各阶层的劳动成果。

对于程序员来讲,会编程、懂编程是必修课,那么了解一些计算机系统结构的硬件知识往往会起到锦上添花的作用。知其然且知其所以然,往往会有意外的收获!

你可能感兴趣的:(计算机的“层”概念)