软件如何在硬件上运行?

时间:2015-07-02 00:25:58

标签: architecture

注意:在给出答案之前,请理解我的问题。

简单来说,我的问题是:软件如何在硬件上运行?软件满足硬件的地方?什么是软件???我知道软件是一套指令告诉计算机硬件如何工作。但是,如果我无法触摸软件......这意味着软件只是硬件的一部分。

例如,如果我有一个电子芯片..它上面的软件在哪里????这是电吗?

如果芯片没电,这是否意味着它没有软件? 什么是软件???????????????我已经写了超过4年的程序,但我无法想象......这是一个难题......

我真的很困惑..

任何人都可以详细解释我的工作原理吗?会很感激

1 个答案:

答案 0 :(得分:0)

软件确实存在于几个层面。其中一个是人类可以理解的,它只是人类告诉硬件做什么的一种方便方式。它通常处于比计算机运行时更高的抽象级别。所以你可以有像

这样的东西
if x = 5 then print "hello"

这对于我们基于碳的生命形式来说很容易理解,但对计算机来说非常困难。

为了使计算机变得简单,它通过翻译器运行;编译器或解释器。在没有深入细节的情况下,其中任何一个都执行一组转换,将这种人类可读的形式转换为计算机理解执行相同操作的极低级指令。这些基本上是一组数字。

当这些被复制到计算机中并且运行它们并且它们是正确顺序的正确数字时,它们将执行x和5之间的比较,如果它们是相同的,它将在某处输出“hello”。对我们来说,这条简单的行可以在计算机中转换为数百或数千个数字的序列。

至于存储,这取决于硬件的种类。有些硬件可以存储数据,即使它们处于关闭状态。例如,想想相机中的SD卡:当电池电量耗尽时,你不希望你的照片消失,所以它们是一种即使在电源消失时仍然存在的记忆形式。另一方面,RAM通常在断电时会丢失数据。这就是为什么我们有磁盘驱动器以磁化形式将数据保存在旋转磁盘上 - 它们可以在一个电源循环中保持它,以便为下一次加电做好准备。