从Unix操作系统设计看分布式系统设计

学习一下(类)Unix操作系统的设计,可以推导出各种系统设计的哲学,软件系统的设计也应该参考操作系统的设计理念,参考不是指照抄。

首先聚焦一个,目标。没错,操作系统被设计出来是有目标的,很多人在做系统的时候,往往不知道目标是啥,为了做而做,为了酷炫而用了某些组件、技术,这是非常危险的,容易导致一堆的坑。操作系统的目标,主要有几个:1 是对底层计算机资源的抽象,包括CPU、内存、硬盘、网络以及其他各种各样的IO设备,为上层的应用程序提供简单的接口以方便、安全的使用这些资源。2 是能够对多个任务进行分时调度(Unix是一种分时操作系统),让应用程序不用担心程序会不会被执行,怎么执行。3 是做好进程间的隔离性,以保证每个进程有自己独立使用的资源,而不会互相干扰(入侵)。4 就是安全性,这里的安全性不是我们字面上了解的漏洞攻击之类的安全性,而是保证系统内核自己的安全,不会因为运行了某些应用程序之后,把系统本身弄死(死的只能是应用进程,而不是系统内核)。还有其他的许多小目标,但以上4点是(分时)操作系统的主要目标。