- 主题:问个小白问题, 软件是如何让硬件执行,行动的
本小白有个疑问,软件究竟是怎么驱动硬件执行程序的
正常的解释知道,软件编程语言-编译-汇编到计算机硬件懂的语言,0,1去执行
我的疑问是 最终软件是怎么驱动硬件去执行呢?如何驱动硬件的高低电平的变换,从而完成计算
软件语言与硬件的最终交互接口是什么?
如果最原始的,比如, 有人协助硬件电压变化。
实际硬件中的充当人的手是什么?
--
修改:sunwyb FROM 101.229.216.*
FROM 101.229.216.*
谁告诉你0和1代表晶体管导通和截止的?
【 在 sunwyb 的大作中提到: 】
: 本小白有个疑问,软件究竟是怎么驱动硬件执行程序的
: 大体上知道,软件语言-编译-汇编到计算机硬件懂的语言,0,1去执行
: 问题是,机器懂的语言,怎么就能驱动晶体管导通或截止呢
: ...................
--
FROM 27.91.71.*
只是举个例子,到底多少伏电压表示1,0没有查,目前也不关心。
我的疑惑点最终的机器语言如何驱动硬件电路的?
反过来硬件电路状态用0,1来表示,这个理解。
【 在 xiaoju 的大作中提到: 】
: 谁告诉你0和1代表晶体管导通和截止的?
:
--
FROM 101.229.216.*
你可以看一下门电路,这是个有状态的装置,状态即0,1
【 在 sunwyb 的大作中提到: 】
: 只是举个例子,到底多少伏电压表示1,0没有查,目前也不关心。
: 我的疑惑点最终的机器语言如何驱动硬件电路的?
: 反过来硬件电路状态用0,1来表示,这个理解。
: ...................
--
FROM 27.91.71.*
你可以了解一下最早先的纸带命令计算机。
机器语言表现为纸带上的孔,随着纸带的运行,孔变成光电信号,驱动计算机底层硬件电路的运行。
【 在 sunwyb (bingoking) 的大作中提到: 】
: 只是举个例子,到底多少伏电压表示1,0没有查,目前也不关心。
: 我的疑惑点最终的机器语言如何驱动硬件电路的?
: 反过来硬件电路状态用0,1来表示,这个理解。
--
FROM 123.123.79.*
0,1粒度太小了。
CPU取指,译码,执行
看一下数字电路的状态机
【 在 sunwyb (bingoking) 的大作中提到: 】
: 本小白有个疑问,软件究竟是怎么驱动硬件执行程序的
: 大体上知道,软件语言-编译-汇编到计算机硬件懂的语言,0,1去执行
: 问题是,机器懂的语言,怎么就能驱动晶体管导通或截止呢
: ...................
--
FROM 120.204.191.*
你按家里的开关灯会亮/灭这个能理解吧,编程就是几十亿个按键,这些按键状态被你拿东西绑起来(存储),下次只要按一次就行(再次运行),一运行就亮特定的灯(对应显示器或者机械臂什么的)。说到底,你的输入转成电信号又转成了物质不同状态,这个不同状态又通过电信号经过不同的控制电路变成了显示/网络传输/保存等等
【 在 sunwyb 的大作中提到: 】
:
: 本小白有个疑问,软件究竟是怎么驱动硬件执行程序的
: 正常的解释知道,软件编程语言-编译-汇编到计算机硬件懂的语言,0,1去执行
: 我的疑问是 最终软件是怎么驱动硬件去执行呢?如何驱动硬件的高低电平的变换,从而完成计算
: 软件语言与硬件的最终交互接口是什么?
#发自zSMTH@80586
--
FROM 183.8.196.*
软件没有“让”
是硬件自己愿意的
【 在 sunwyb (bingoking) 的大作中提到: 】
: 本小白有个疑问,软件究竟是怎么驱动硬件执行程序的
: 正常的解释知道,软件编程语言-编译-汇编到计算机硬件懂的语言,0,1去执行
: 我的疑问是 最终软件是怎么驱动硬件去执行呢?如何驱动硬件的高低电平的变换,从而完成计算
: ...................
--
FROM 113.89.9.*
有本书 计算机是怎样跑起来的
【 在 sunwyb 的大作中提到: 】
: 本小白有个疑问,软件究竟是怎么驱动硬件执行程序的
: 正常的解释知道,软件编程语言-编译-汇编到计算机硬件懂的语言,0,1去执行
: 我的疑问是 最终软件是怎么驱动硬件去执行呢?如何驱动硬件的高低电平的变换,从而完成计算
: ...................
--来自微水木3.5.2
--
FROM 61.48.213.218
以前有个朋友问过同样的问题,我试着回答一下你
计算机世界里就没有“软件”,也不存在所谓的二进制的“0,1”,这些都是为了让人能明白发明出来的一套表达方式,计算机的世界里,驱动硬件的工作的,主要是电信号(电压,电流,电子),这是电路/电子器件能工作的基础。 其他的物理信号,后通过某种设备转换成电信号,供电子器件工作。 比如光电转换,电磁感应,电子或者空穴形成电流等等。
回到你说的软件,也就是一堆的00000111110000二级制串。那到底是哪个组件或者元器件把这对二进制串转化成电压或者电流的呢,其实根本就不存在元器件,或者说元器件不是把这堆二进制串转化成电压或者电流,而是把别的物理形态的物制转化为电压或者电流
可能还是比较抽象,下面说具体的。
软件具体存在哪呢? 机械硬盘里(又叫磁盘),内存里,光盘里,以前的软盘里,现在的SSD固态盘里,或者通过键盘输入进去,通过鼠标点击进去。
先说机械硬盘,也就是磁盘,它存储数据的原理是通过盘面上的磁性材料的有序排列实现的。 写数据的时候,在读写头上通电,通过电磁感应,影响磁盘表面磁性材料的排列,从而实现数据的长久物理存储。看这里,都是实打实的硬件材料,没啥0,1 代码。 读数据的时候,读写头本身不加电,通过磁场形成感应电流并向外输入数据。电流强,电压大被认为是1, 电流弱,电压小被认为是0, 这里也是实打实的硬件物理原理,没啥0,1 代码
再说内存,用的是巧妙的门电路,门电路里可以存储一批自由电子,构成二进制的一个bit信息,姑且认为有电子是0, 没电子是1, 8个这样的门电路连接在一起,形成一个Byte, 更多们门电路连接在一起,形成存储空间更大的内存。 所以,这里起作用的还是物理的电子,继而形成电压和电流,都是物理量,没有啥 0, 1 转换, 固态盘的原理和这个类似,反正要么是通过空穴(缺少电子)形成电流,要么是通过多一个电子形成电流
再说光盘,别看光盘光滑的很,在显微镜下看有很多的小痕,往光盘上写数据的过程就是在光盘上烧出这一个个小痕的过程,这是实打实的物理的东西。读数据的时候,通过激光发射器打在告诉旋转的盘片表面,然后通过广电转换再转换为电流,这里也没有0,1, 只是光电转换罢了。
所有上面产生的这些电流,电压,最开始都比较微弱,中间可能会经过一些放大电路什么的。三极管的其中一个作用不就是做放大电路么。
所以,驱动硬件的,本来就是硬件本身。 驱动现代的数字电路的,就是实打实的电压或者电流,其他的物理材料通过电磁感应,光电感应,电子,空穴等等形式,转化为电压或者电流。
我们所说的0,1 只不过是方便人们理解抽象出来的表述,现实世界都是纯硬件的,实打实的东东
希望能帮到你。
--
FROM 114.241.8.*