计算机系统到底是个什么东东
所谓系统,肯定不是简单的一个个独立存在的个体,而是很多独立的个体之间通过互相的联系有机的组合在一起。
计算机系统同样也遵从上述概念。如果我们单单看一台计算机,其实它也是一套系统。里面的内部结构是通过硬件的相互组装,然后按照软件里面编写的程序(一套套指令),对计算机硬件按照有序的运行。如果从硬件的角度去分析,一台计算机大体上是由外部的I/O设备、存储设备、运算设备,大体这三大块构成。从这三大块中又可以继续往下面去延伸,运算设备可以分为CPU、GPU;存储设备可以分为内部存储(内存——电流方式来进行存储)、外部存储(硬盘——磁性物质来进行存储);I/O设备可以分为输入设备(键盘、U盘、传感器等)、输出设备(打印机、音箱、显示器等)。如果从软件的视角去分析计算机,则可以大致划分为CPU底层的架构设计(ARM、X86);OS操作系统(windows、linux);应用程序(app)。综上将所有的东西整合组装在一起,就构成了一台可以运行的计算机了。
同样的概念在扩展一下运行到计算机网络,同样也可以这样进行分析理解。从硬件这个层面,计算机网络可以大致划分为客户机、服务器、路由器、交换机、集线器等。从软件的层面可以划分为各种协议规范,IP协议、TCP协议、MAC协议等。通过上述这些组合,最终呈现出我们当今的网络系统。
所以说系统这个概念可以理解为每个个体都是一个类似于黑盒的结构,然后当每个个体都有机的组合在一起,它们之间就可以进行信息之间的交流传递。话说至此,可以稍微提带一些如今广泛应用的面向对象的编程思维。面向对象其实就是把每个个体独立出来,然后有机的进行组装,最终实现我们的功能需求。而与面向对象的另一种编程思维同时存在的另外一种则是面向过程。这种编程方式更适合计算机思维,是一种流程化的思维方式。其实二者之间并不矛盾,对象化编程中的每个对象里面的程序设计靠的是面向过程,毕竟是要靠计算机去实现功能。但如果从大的框架去看,将一个个对象有机的组合在一起,其实也是在运行一种面向过程的思维方式。所以说两者是一种你中有我,我中有你的存在。其实这就有点像哲学上面常说的辩证思维方式。所有事物都不是绝对的存在,而是相对的存在。