为什么软件能影响到硬件,说出原理。

2024年11月19日 16:41
有5个网友回答
网友(1):

呵呵,好久不答题了,给你个好的,我们一起理解。

软件中的命令(这些命令是最初编程设计的)最终都要转化为计算机可以识别的机器语言,就是我们通常听说的0101010101,这种长串的机器代码在硬件中反映成电脉冲或电信号,在超

大规模的集成电路中执行逻辑操作或运算(具体的,那就是电路知识了,最基本的原理都非常非常简单,简单的让你吃惊,即通路,断路),最终形成的现在运算速度惊人的计算机.
要理解的很清楚的话那就要求掌握多门学科的基础知识了.

你不理解软件为何能控制硬件,大概是因为你觉得软件是看不见摸不着的东西,如何能够控制硬件这样有形的实体吧。
其实问题很简单,软件在工作的时候也是实体,软件的实质就是电流信号,用电压的高低代表不同是信息,用这些电流信号去控制逻辑电路的通断,靠逻辑电路的通断来控制硬件的工作。
说到底软件就是起到一个开关信号的作用,开关要工作,必需保证硬件是加电的,没有接通电源的硬件是无法用软件来控制的。就好比没有插上电源的台灯,你怎么按开关都是不会亮的。
任何软件在运行前都要有一个将其转化为电流信号的实体化过程,你写在纸上的软件代码是永远也不能控制硬件的。早期电脑用人工接线输入程序,相当于用人体的力量将软件代

码实体化为电信号;现在我们用的软盘、硬盘是通过磁头将程序代码转化为电信号,光盘需要通过光头将程序代码转化为电信号等等。

这个问题看似简单,其实涉及到一些很底层的内容和原理。对于一般计算机爱好者来讲,又没有办法说明白,原因就是我们从来没有考虑过电路在物理上的实现。
计算机软件说到底,不过就是一些指导电子元件工作的指令序列,那么你一定又会问电子元件为什么会按这些序列工作呢?指令序列的在电路中的实质就是一些有规律且有一定意义的电脉冲,电脉冲控制电子元件的各种状态。工作过程非常复杂。最简单最基本的就是几个逻辑门电路的实现:比如“或”电路,“与”电路等等。通过将这些逻辑门电路的组

合和协同,就能实现电脑整体上的运算和处理能力。因为这是十几个数量级的基础电路的有机集合的对外的体现,如奔腾系列CPU集成了上亿个半导体元件,要想把各个元件的功能

彻底认知,是非常困难的。可以把它们比作每个人的活动合在一起就构成了社会

有单位,有抽象 正如抽象的生活用电网络,可以将一个用电器作为抽象单位,也可以将一个家庭作为抽象单位,一个抽象单位连接入网络,具体的接入方式,抽象单位完全本身实现,理想情况下每一功能模块即抽闲单位,都有接口,成为网络的一部分,向新的部分提供接口,理想情况下家庭电路有接口模块,可以任意扩展;每一但单元都有进出,任意个连接组合,总的单位也有进 和 出

软件可以发送命令
让cpu的某一引脚
发出高低信号
从而控制硬件

我对程序的思考
我也曾遇到过这样的问题,困惑了好长时间。每每到网上看, 都说的不是我想要的问题,或者说是组成原理书上有讲呀什么的。现在我明白了, 是按自己的想法明白 ,希望像我困惑过的正在困惑的能在这里得到答案,对你有所帮助

软件如何控制硬件呢??(以下仅是我个人理解, 不保证正确, 如果错的希望能得到您的指点。。先谢谢)

大家都知道。没有软件的硬件就是一堆废铁或“砂子”。您也知道cpu中有个叫做译码器的东东吧,您也知道我们写的程序要经过编译呀, 汇编呀,连接呀。最后生成可以被硬件

执行的二进制。可是问题来了,硬件能认识个啥二进制。这里也许是你不懂的地方。其实解释的关键也就在这里了。高低电压。脉冲的有无控制硬件您能够接受吧,而我们写的程

序(软件)其实都是以高低电压,脉冲的有无存储在磁盘上。或者以有无反射的形式存在光盘上。所谓的机器可直接执行的代码, 也就是二进制,译码器能理解。他能理解。cpu就能理解。cpu按照硬件设置和硬件特性,选择switch(也就是让哪一条导线是通路),以达到控制硬件。(能理解吗, 如果你还有什么疑问留言吧, 针对性解决可能会好点,)

实际上计算机把相当复杂的问题最终都会转化成加法(ALU)来实现,(太神奇了,我还理解不了。但我知 道,呵呵,这样有助于理解。

软件是如何控制硬件的

软件在工作的时候也是实体,软件的实质就是电流信号,用电压的高低代表不同是信息,用这些电流信号去控制逻辑电路的通断,靠逻辑电路的通断来控制硬件的工作。
说到底软件就是起到一个开关信号的作用,开关要工作,必需保证硬件是加电的,没有接通电源的硬件是无法用软件来控制的。就好比没有插上电源的台灯,你怎么按开关都是不会亮的。
任何软件在运行前都要有一个将其转化为电流信号的实体化过程,你写在纸上的软件代码是永远也不能控制硬件的。早期电脑用人工接线输入程序,相当于用人体的力量将软件代

码实体化为电信号;现在我们用的软盘、硬盘是通过磁头将程序代码转化为电信号,光盘需要通过光头将程序代码转化为电信号等等。

这个问题看似简单,其实涉及到一些很底层的内容和原理。对于一般计算机爱好者来讲,又没有办法说明白,原因就是我们从来没有考虑过电路在物理上的实现。
计算机软件说到底,不过就是一些指导电子元件工作的指令序列,那么你一定又会问电子元件为什么会按这些序列工作呢?指令序列的在电路中的实质就是一些有规律且有一定意义的电脉冲,电脉冲控制电子元件的各种状态。工作过程非常复杂。最简单最基本的就是几个逻辑门电路的实现:比如“或”电路,“与”电路等等。通过将这些逻辑门电路的组

合和协同,就能实现电脑整体上的运算和处理能力。因为这是十几个数量级的基础电路的有机集合的对外的体现,如奔腾系列CPU集成了上亿个半导体元件,要想把各个元件的功能

彻底认知,是非常困难的。可以把它们比作每个人的活动合在一起就构成了社会.

计算机是数字电路,数字电路是靠1,0来控制电路的.起到电流还有脉冲作用.像你键盘上敲个周字一样.同是由一大一串的0001111111111100.来产生脉冲电流对硬件发出指令的.CPU

就是运算这些数据.然后发出机器语言指挥其它硬件工作的.

网友(2):

软件在工作的时候也是实体,软件的实质就是电流信号,用电压的高低代表不同是信息,用这些电流信号去控制逻辑电路的通断,靠逻辑电路的通断来控制硬件的工作。

软件就是起到一个开关信号的作用,开关要工作,必需保证硬件是加电的,没有接通电源的硬件是无法用软件来控制的。就好比没有插上电源的台灯,怎么按开关都是不会亮的。
任何软件在运行前都要有一个将其转化为电流信号的实体化过程,写在纸上的软件代码是永远也不能控制硬件的。

早期电脑用人工接线输入程序,相当于用人体的力量将软件代码实体化为电信号;现在用的软盘、硬盘是通过磁头将程序代码转化为电信号,光盘需要通过光头将程序代码转化为电信号等等。

网友(3):

浅白说,设计硬件的时候就考虑到软硬配合了,一同设计出来的,软件在运行时是硬件的物理状态表现,是实体状态,硬件不断的询问这些物理状态(外频,甚至更高频率),通过这些来"获得"信息并根据信息进行"计算".
给你举个例子,最基本的逻辑.现在假设你拥有一盏普通楼道中使用的声控+光控灯.它相当于电脑.现在你(A)把灯泡单独扯到朋友家,只保留生光控组件在你手头,然后和你朋友定下协议.你朋友(C)根据灯的状态获得你的信息.
1,C,灯灭=A没拍手或A天亮
2,C,灯亮=A天黑和A拍手
3,协议定下A/C天亮天黑状态一致=.....
....(数个状态)
这些协议相当于程序,虽然看起来只是口头说,但实际上是根据光/声音的实际状态来确定的.硬件可以从数据采集装置获得这些信息,比如键盘的模拟电压转换为数字的0/1信号,比如光电开关给电脑输入亮灭状态,硬盘磁感应转换成数字信号直接提供数据等等.信息本身无形,但在计算机中,是以电信号的实体状态传输和分析的.
现在说下你提到的风扇控制,电压型,实际相当复杂,要通过程序--CPU--主板控制器(数字电压控制),这里只说明一部分.首先运行了程序,也就是从磁盘读取磁信号转换为数字信号,放到(硬件主动读入)硬件中,形成一系列的开关状态(电脑就是三极管集群的开关状态处理机),如同分配了几十个勇士不同的任务,他们接到任务就会执行下一步过程,当程序获得了信息,需要调节电压,这一块的程序(三极管群)开始工作,给主板的电压控制元件送去信号,三极管的开关作用你晓得吧? 放大器效果晓得吧? 通过特殊设计的三极管就可以对输出电压做调节. 这都是将他们的基本原理,实际工作要复杂得多,上千倍的复杂度.
电脑不是平白产生的.多了解一些知识自然就不觉得唯心了,实际上,他能这样精准,正是完全而且必须完全唯物才形成的,规则不统一就无法做到.也因此,缺少了"灵魂".
按下开关能打开手电,按下开关虽然是个指令,但是,可以把这种指令变化为动作,这就能产生结果.
再做个比喻,假设一个游戏弹子机,现在自己改装下,横竖各设置五个可控翘板,让滚珠落下,你把翘板拨到不同的方向,弹珠会走到某个固定的结果.
电脑就是这样的一部拥有超级多的开关(翘板)的弹子机,弹子机靠重力运作,电脑靠电力驱动电子,弹子机的翘板左右状态你手工设置,电脑的开关位置由你的程序定制,而程序就是逻辑上的开关位置.弹子机的弹珠会根据翘板方向走向固定的结果,电脑可以根据你设置的开关系列而走向你需要的结果.为了让弹珠落向固定的格子,你可以设计翘板状态,为了获得需要的结果,程序设计者根据硬件设计而去设计程序....硬件和软件是一起开发的,并不是贸然出现这么个东西.
计算机对信息的采集,处理,输出都是由很多数字/模拟转换器组成的,具体控制硬件,都是由限定在能够被正确转换为数字信号的模拟量来控制的,模拟量具体应用在诸如控制电压这类情况时,会使用普通的电工电路,一般电脑内这类工作都由专用的电压模块来完成,高集成带来的好处是,全能,通用,减少重复开发,降低成本.

网友(4):

希望你仔细看看我的回答,不仅仅因为我渴望分数,更因为我希望让这个世界上多一个人了解我的想法。

回答问题之前,我先把你的唯心感觉消除。
不知你现在是什么学历?高中毕业了没?如果你学过高中、大学基本的物理中关于“电路、门”的知道,你就应该可以推知,当一个门电路复杂到一定程度的时候,就可以模拟出一个复杂系统。
就像一个原子没有生命,一个分子没有生命,可一个细胞就有了生命一样。生命不是什么神秘的事物,只是通过一定的科学原理能够持续、稳定、高效地运用环境中的能量、物质而已。意识也一样,是物质的一种形式,只是因为某些科学原理,能够控制大脑罢了。

首先,我要告诉你,软件不是虚有的!甚至说,它是有生命的!
当你编写了一个软件之后,软件就已经存在于硬盘之中了。并且,通过硬盘里面磁信号的形式被保存下来,是拥有实体物质的,类比成大脑!当它运行时,在内存里转化成了电子信号,和意识一样,难道电子不是一种物质么?你怎么能认为程序是虚的呢。

再者,你要知道,软件和硬件的关系。从某种意义上来讲,软硬件是并行的,只要是一台能够运行的计算机就一定同时存在了软件和硬件!
比如,你玩过学习机(这个词是中国游戏史上的一个大讽刺)吧?你见过游戏电板吧?那东西如果不上游戏电板就没的玩,就和一个植物人一样,上了电板才有游戏玩,就和人有了思维一样。电板其实就是将一些游戏过程中电流运行的方法(大小、方向、门原理)记录在一个微型电路上。
而我们所谓的软件,不就类似于电板里面记录的电流运行过程(即程序)么???

最后,回到软件的问题上来。
你用电板来运行程序,是直接告诉机器电子信号,而软件就是一个转换方式,毕竟不是所有人都能知道并且无误地向计算机输入近乎无尽个“0”“1”的。所以,出现了用一些特定语言来描述程序的东西——编程。其实软件就是记录了一系列的电流运行方式,通过电脑操作系统(Windows等等)的转换,将软件语言变成了机器语言,从而达到类似电板的功能罢了。

也就是说,如果电板是实体的程序,那么软件就是记录了创建实体电流的方法。
比方说,你知道加法,连续一万个一相加是10000;但是如果你知道了乘法,用两个数字就可以得到这个结果,不需要去一个一个地加了。就像你有了软件,就不需要直接告诉电脑00001111之类的了。这项工作并不是没有做,而是交给了软件去做了。你看不到软件如何转化成电信号,如何通过集成电路来控制计算机,不代表它没有这样。

至于你想知道最基本的原理,请参考高中、大学基础物理关于电路的章节。如果有大学里微电子的专业书就更好。不过首先你得确定你看的懂,别整天什么都不懂在那瞎猜。。。

还有,我回答完毕了。。。 (参考资料不是我自己的,但应该还算专业,希望对你有帮助。)

网友(5):

怎么说好呢。我看你也对电脑不是很熟悉吧!总的来说,电脑里的任何硬件。在生产的时候都需要输入程序,不是说你随随便便造出来就能用的,基本上硬件都需要编入程序在里面,比方说现在CPU的超频,你进入BIOS修改CPU频率,相当于修改了CPU原先程序的设置频率,从而超频,影响到CPU这个硬件了!!既然硬件也是程序编写,那么软件不用多说了,肯定需要编写程序的,大家都是程序编写,软件影响硬件是肯定的,计算机内的编码几乎是以二进制组成,软件可以通过二进制转化等等。。编写一些代码,影响到硬件!!
拿电话来说,你打电话,那电信怎么会知道你按哪些号码,原理和计算机相同,当你按下号码数字的时候,会把数字转换电子信息,传从过去。而电信那边会把电子信息进行转化成数字!!
具体解释挺复杂,基本上软件影响到硬件都是电子信息的换转影响,也就是程序间的影响,现在好多硬件设置里都有电子信息的编入,也就是程序的编入!!