计算机软件如何控制硬件工作,5.计算机发展我的理解-电路终究是电路 软件如何控制硬件 代码如何操做硬件 硬件是怎么执行代码 代码如何执行 软件与硬件如何交互 计算机思惟 抽象 封装 规范 屏蔽 协议分…

计算机只是逻辑电路

除了电路仍是电路编程

计算机就是一堆逻辑电路编程语言

他并不知道你到底想要干什么,他也不会理解什么是文件,什么是进程spa

通电的瞬间,就好像你打开开关,灯泡发光同样操作系统

全部的一切都是经过通电来启动的  start the world翻译

计算机某些部件,具体到好比某个门电路,有电流经过设计

这个电流就是0或者1 进而会触发一系列内置的电路致使更大的模块进行电路的通断对象

他不知道你到底要干什么接口

只要电源不断开,那么就会有心跳,有心跳就会持续的读取指令进程

指令也不过就是一块固定格式的电路链接(或者是读取ROM)资源

将一堆输入线路的电压转换成另外一种形式的输出

输出有可能链接着其余的电路模块的输入

因此他会永远的运行下去

只是刚好有了二进制数学,二进制数学又与逻辑创建起来数理逻辑

数理逻辑又跟逻辑电路是相通的

那么咱们就能够理解为这堆逻辑电路能够表明着咱们想要实现的二进制计算

其实电路仍旧是电路

试想一个问题

软件究竟是如何控制硬件的/p>

你可能会想到,软件是用高级语言编写的,高级语言被翻译成汇编语言,汇编语言会翻译成机器能够是别的机器语言

这样计算机就能够执行了

可是究竟是如何控制的/p>

之因此说软件控制硬件

是否是由于计算机程序做为计算机硬件的输入,而后计算机硬件看似能够理解为通过计算以后,能够获得输出/p>

看似是这样子的

其实跟上一个图是同样的,可是思惟方式不同

此处把计算机硬件做为中心,不是说你把程序输入,而是计算机硬件 读取了计算机程序  而后通过处理,产生了输出

看似同样的不都是计算机程序做为输入    通过计算机硬件产生输出吗

其实差异很是大

上面的图,你可能会理解为软件控制硬件,可是软件如何控制硬件本就没有办法控制

下面的图是硬件控制硬件,经过你告诉的方式(计算机程序)  我通过一系列的电路的通断,我产生了指定的结果,由于我自己就是一直在操做电路,硬件天然会产生变化

想一下计算机的启动过程,通电以后,是否是有了心跳以后,就不断地在执行运算,读取指令译码执行等等

最初启动的还不是硬件么

因此,我的理解

对于计算机来讲,不存在软件控制硬件

而是硬件 读取了你给出来的指令  控制硬件

软件不过是存储起来的指令,整个计算机只是逻辑电路和等待执行的指令

电路上电以后,跟随频率不断地执行指令,软件就好像是一个无限的纸带,纸带上布满了指令

计算机就这么一条条的不嫌累的执行着,软件只不过是人机交互的方式而已,计算机永远是那个计算机,你操做不了她

计算机重要的思惟方式

这几个思惟方式看似简单,可是却融入到无数的编写规范设计思惟里面了

抽象 封装 接口 规范 解耦

抽象将复杂物体的一个或者几个特性去掉,抽取他们共性的部分,这就是抽象

好比操做系统管理硬件资源,IO设备抽象为文件

好比下图,他们都是形状

8ba0e9fb67e842b0bea15d84.html

抽象的形式是统一

抽象的目的是简化

既然是去掉个性,保留抽取共性,全部的共性组合在一块儿也就是统一了形式

这种统一后的形式就是一种由各个共性的点组成的一类意识形态上的新事物

这个新事物就共性来讲,与原有的事物放到一块儿进行抽象获得的抽象结果仍是这个抽象后的事物自己,对吧

提及来绕口,其实就好像再说杯子和玻璃杯 瓷杯都是杯子同样,虽然这么说有点别扭

因此抽象的形式是统一,获得一种意识形态上的新事物

这些共性的点,对于抽象后的新事物是他的特性

可是这些特性不是具体的

在计算机的世界里面,抽象事后,还必要要实现,计算机不懂得天然语言也没有任何思想

负责抽象的人必需要提供具体的实现

好比操做系统把IO设备抽象为文件,那他就把共性的读写访问方法提供出来,假设是 read 和 write

无论究竟是磁盘仍是磁带,read就是读取内容,write就是写出内容,究竟是怎么实现的,调用者不须要关注

因此抽象最终的目的就是简化

简化后你不用再关注IO设备具体是什么,哪一个厂家生产的,使用了什么技术(去掉的特性)

也能够说是屏蔽了底层的实现细节

屏蔽的近义词能够说是封装,把底层的实现细节封装起来,提供统一的访问形式

封装后提供统一访问形式,也就是提供统一的接口 就像上面提到的read write方法

接口能够理解为对接的端口 就好像电脑上预留给投影仪使用的十五针VGA插口同样

既然形式上完成了统一

访问形式上也完成了统一

那么这就至关于一种规范化的形式

因此规范和接口 又有近似的意思

均可以理解为一种约定好的协议,约定好的形式,一种规矩,规矩就能够作到彻底的解耦

接口提供访问的具体形式,可是不提供细节

规范指导实现的最终目的与要求,可是不提供细节

有了封装,规范,接口的概念,也就很大程度的完成了解耦

完成了解耦不少时候就能够把问题分层的处理对待

TCP/IP的分层概念就是如此,每一层封装上一层的信息

层与层之间按照约定的规范协议进行对接,各司其职,各层作各层的事情

这样既能够再也不一条道走到黑,就好像你回家可能走几分钟坐公交而后坐地铁同样

这些概念

抽象/封装/接口/规范/协议/屏蔽/分层

贯穿了计算机整个的发展

抽象->统一形式->提供统一接口,进而隐藏底细节实现,从而简化了访问

抽象->统一形式->提供统一规范,进而能够解耦独立发展,并且还可以无缝对接

这两种模式最为常见

其实提供统一接口通常是指个体

若是是一个生态链(技术链)上全部的个体,都设定好了指定形式的接口

这就是规范了,有了规范,就很容易出现技术体系

编程语言的发展是不断地屏蔽底层,不断地进行封装

面向对象的程序设计语言中大多数时候你都在作抽象,事物抽象成类

面向接口的编程就是调用者与实现者进行解耦,经过接口进行对接

虚拟机规范只提供要求设计思路,可是不提供具体的实现要求,厂家能够自行定制

虚拟机规范提供了字节码规范,和虚拟机规范,至关于规定了输入和输出

只要按照规范的字节码均可以运行在虚拟机上正确运行,一样的字节码也必然有一致性的结果

servlet规范让servlet和servlet容器各自独立发展,纵然它们相互依存

相关资源:Veneer:文件屏蔽软件-开源-其它代码类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月6日
下一篇 2021年6月6日

相关推荐