首先计算机为什么可以工作:因为我们可以和计算机交互,并且计算机可以执行我们的对它的发号施令。
Q:那我们是怎么和计算机交互的呢?它又是怎么工作的呢?
答:是由软件(系统软件等)+这种计算机的指令系统+硬件协同配合的。(是不是很抽象,那就向下看吧。)
裸机:只有硬件的计算机称之为裸机。什么都干不了,机器是死的,人是活的,需要人来指挥机器。那人和计算机就要进行交互,告诉计算机我要你做什么,那怎么告诉计算机呢?就是通过写软件,那写软件肯定需要一种语言吧。比如写东西就需要用一种语言吧,我现在就是在用汉语写文章,你能看懂,那我们之间就是在交互,只是你可以给我留言,也可以看完就走,反正我传达的文字,你能看懂,我并没有要你去执行什么操作,或者返回什么结果给我。那我和计算机交互的语言名称就是机器语言,我让计算机去给我计算,取数据,就是我在跟计算机交互,计算机能识别的是机器语言,机器语言指令是由0和1编码的,我们的汉字是由偏旁部首编码的是同样的含义,不同的偏旁部首的组合,构成了不同的汉字,那不同的0和1构成的序列就构成了不同的指令。
聊聊计算机指令系统:
- 指令系统不是唯一的,不同的操作系统,系统使用的系统指令是不一样的。所以在不同的平台可执行的文件也是不同的。比如linux系统上的软件装在windows上是运行不了的,因为编译链接形成的.exe文件,Windows根本不认识是什么,当然无法执行什么操作。linux有自己的指令集系统,Windows也有自己的指令集系统。
- 机器硬件可以识别的语言(机器语言)的集合。
- 它是软件和硬件的主要界面。(硬件要能识别这些指令,并协同起来工作,计算机软件最终都被转换成这种(仔细理解一下)指令系统里面的指令序列)
Q:但是现在特别流行的java语言为什么就可以跨平台呢,也就是java可以一次编译到处运行?
原因是:你编写的程序通过编译形成会形成一种中间的二进制代码,这种二进制代码java虚拟机可以认识,每个宿主机上面都有一个java虚拟机(java虚拟机就是:用软件模拟的机器),java虚拟机就是用来解释的,它把这种二进制的代码翻译成为本地系统可以识别的一种二进制代码,所以说java是跨平台的。
通俗的理解就是,比如你要到很多国家旅游,你不想学习那么多门语言,你就雇佣一个java翻译,这个java翻译会很多国家的语言,你带上她无论在哪个国家都畅通无阻。c++翻译呢,她会的语言只有一种,比如就是西班牙语,你只能到西班牙旅游带上c++翻译才有用,你把c++翻译带到美国就没有用,你用中文跟c++翻译说话,她是可以理解你说的话,但是无法把你的意思转成英语输出来,她无法从西班牙跨到美国,就是无法跨平台。
系统软件:是计算机系统的大管家,它要管理计算机里面所有的资源,要管理计算机执行的各种任务。
应用软件:就是你经常安装的QQ,网易云之类的软件。
中间件:位于系统软件和应用软件之间的东西。具体是什么我还不知道,哈哈哈。