计算机软件设计中的抽象分层思想:操作系统,网络协议等

计算机中最重要的思想就是抽象,或者说是封装.

抽象和分层是我们的强力武器,我们可以利用它们让我们的计算机系统更加强大,完成各种”不可能“。

操作系统,应用软件设计,网络协议栈等等,都体现了分层思想。分层中,每个层次负责不同的功能。一般来讲,下层为上层提供服务,上层不要知道下层的具体实现细节,只需使用下层提供的服务。而层与层之间联系的桥梁就是“接口”(Interface)。

OS调用硬件提供的api,软件调用OS提供的api,而用户调用软件提供的api。

举个例子,在计算机网络中,处于应用层的协议,如http,ftp等,可以”享受"传输层提供给他们的服务,他们无需考虑底层链路细节,无需考虑报文是如何到达接收方,这就是分层带来的好处!

我们有了分层之后,所带来的可复用性,亦是独立性等,都有助于我们更好的管理计算机这一庞大的系统。

比如,对于物理硬盘的抽象,可以把它看成一个存储各种数据的对象,有read和write方法。

在设计操作系统时,就体现了主要的分层思想. os管理计算机硬件, app 通过os提供的接口调用使用硬件, 在os的设计中, 广泛使用了分层设计的思想:

计算机网络分层架构