软件是怎样控制硬件的?
关于这个问题,已经写成一篇文章,内容如下,要想深入了解计算机,先学一下操作系统和微机原理吧!
软件怎么控制硬件的,不是一言半语就能说的清楚的,其过程是很复杂的,这里就简单说一下原理吧,没有看过微机原理和操作系统相关的介绍听起来应该会比较吃力。我们所说的软件,其实就是一套操作计算机运行的机制,里面的所有功能,不论大小,都是需要硬件配合才会展示出来的。在软件中,需要编程语言,这些编程语言都是高级语言,这些高级语言是为了我们更容易编译操作而编写的,硬件是看不懂的,是需要经过翻译,翻译成为机器语言,然后计算机才看的懂,进而执行简单的操作。无数简单的操作就成了软件所需要的功能,然后通过机器展示出来。
机器语言是非常简单的,因为机器的每个部件的功能都是固定的,所以要完成一个复杂的动作,需要把相关的部件按一定的规律有序完成才行,这其中有多复杂想想也应该知道。机器能接受的指令就只有有2个,固定一个动作,做或不做,在计算机中是以2进制标记的,也就是1和0,指令为1,就做该动作一次,指令为0,就不做该动作。大量固定的动作根据一定的规律有序的成功做完,就组成软件中所需要完成的一个功能。这就和弹钢琴是一样的,每一个音符需要你按一个键,每按一次就是一次动作,大量有序的按键就展示出了一首曲子,计算机的动作和钢琴的琴键是一样的道理。
最早的时候,软件编程就是大量的机器指令堆砌,工作量非常庞大,且内容复杂无比,维护起来非常麻烦,所以才有机器语言的诞生,就是计算机出厂前计术人员已经把固定的指令操作打包了组成了一个又一个的相对复杂功能,只要计算机软件调用触发这些功能就可以展示相应的功能了,这一层的语言就是计算机语言了,汇编语言就是这一层面的,汇编编程是非常麻烦的,代码量大,工作量也吓人,但是,功能和运行速度也强悍的吓人,任何高级语言都无法比拟,算是软件开发真正的核心技术所在。
我们现在所说的软件编程,用的就是比计算机语言高一层的语言,也就是高级语言,像如今流行的语言C/C++、Java、PHP、js等都是高级语言。用这些高级语言几行代码展示的功能,在计算机执行的时候仍然是非常复杂的行为,所以不要认为会编程就认识了计算机,真正深究,核心技术的复杂程度绝对超乎你的想象。
看到这里,心理是不是已经有了答案,硬件是不可能完成你所有想要的功能的,软件可以展示的功能都是计算机固有的功能,功能有多强大主要取决于计算机的硬件。简单来说,软件就像是人的思想,硬件就是人的身体,身体的所有动作都是思想赋予的。但不合实际的想法身体是不可能完成的。