摘录 操作系统

这个是《30天自制操作系统》一书的内容,粘贴到这里。写的不错

电脑的处理中心是CPU ,即“central process unit ”的缩写,翻译成中文就是“中央处理单元”,顾名思义,它就是处理中心。如果我们把别的元件当作中心来使用的话,那它就叫做CPU 了,所以无论什么时候CPU 都总是处理中心。不过这个CPU 除了与别的电路进行电信号交换以外什么都不会,而且对于电信号,它也只能理解开(ON)和关(OFF )这两种状态,真是个没用的人呀(虽然它不是人吧,大家领会精神)。

我们平时会用电脑写文章、听音乐、修照片以及做其他各种各样的事情,我们用电脑所做的这些,其实本质上都不过是在与CPU 交换电信号而已,而且电信号只有开(ON)和关(OFF )这两种状态。再说直白一点,CPU 根本无法理解文章的内容,更不会鉴赏音乐、照片,它只会机械地进行电信号的转换。CPU 有计算指令,所以它能够进行整数的加减乘除运算,也可以处理负数、计算小数以及10 的100次方这样庞大的数值,它甚至能够处理我们初中才学到的平方根和高中才学到的对数、三角函数,而且所有这些计算仅通过一条指令就能简单实现。虽然CPU 功能如此强大,但它其实根本不理解数的概念。CPU 就是个集成电路板,它只是忠实地执行电信号给它的指令,输出相应的电信号。

这些概念可能不太容易理解,还是让我们来看个的具体例子吧。比如说,让我们用1 来表示开(ON),用0来表示关(OFF ),这样比较容易理解。我们可以用 32×16=512 个开(ON)和关(OFF )的集合(=电信号的集合),来显示出下面这个不甚好看的人头像。

image

我们也可以用0000 0000 0000 0000 0000 0100 1010 0010  这32 个电信号的集合来表示1186 这个整数。(注:用二进制表示1186 的话,就是100 1010 0010 )。我们还可以用0100 1011 0100 1111 0100 1111 0100 0010 这32 个电信号的集合来表示“BOOK ”这个单词(注:这实际上就是电脑内部保存这个单词时的电信号集合)。

CPU 能看见的就只有这些开(ON)和关(OFF )的电信号。换句话说,假如我们给CPU 发送这么一串电信号:

0000 0100 0011 1000 0000 1110 0001 0000

这信号可能是一幅画的部分数据,可能是个二进制整数,可能是一段音乐旋律,可能是文章中的一段文字,也可能是保存了的游戏的一部分数据,或者是程序中的一行代码,不管它是什么,CPU 都一窍不通。CPU 不懂这些,也不在乎这些,它只是默默地、任劳任怨地按照程序的指令进行相应的处理。

看到这里,或许有人会认为是先有了这么多要做的事情,所以人类才发明了CPU ,而实际上并不是这样。最早人们发明CPU 只是为了处理电信号,那个时候没有人能想到它后来会成为这么有用的机器。不过后来人们发现,一旦把电信号的开(ON)/关(OFF )与数字0 和1 对应起来,就能将二进制数转换为电信号,同时电信号也可以转换回二进制数。所以,虽然CPU 依然只能处理电信号,但它从此摇身一变,成了神奇的二进制数计算机。

因为我们可以把十进制数转换成二进制数,也能把二进制数还原成十进制数,所以人们又发明了普通的计算机。后来,我们发现只要给每个文字都编上号(即文字编码),就可以建立一个文字与数字的对应关系,从而就可以把文字也转换成电信号,让CPU 来处理文章(比如进行文字输入或者字词检索等)。依此类推,人们接着又找到了将图像、音乐等等转换成电信号的方法,使CPU 的应用范围越来越广。不过CPU 还是一如既往,只能处理电信号。

而且我们能用CPU 来处理的并不仅仅只有数据,我们还可以用电信号向CPU 发出指令。其实我们所编写的程序最终都要转换成所谓的机器语言,这些机器语言就是以电信号的形式发送给CPU 的。这些机器语言不过就是一连串的指令代码,实际上也就是一串0和1的组合而已。

软盘的原理也有异曲同工之妙,简单说来,就是把二进制的0 和1 转换为磁极的N 极和S 极而已,所以我们只用0和1就可以写出映像文件来。不仅是映像文件,计算机所能处理的各种文件最终都是用0和1写成的。因此可以说,不能仅用0和1来表达的内容,都不能以电信号的形式传递给CPU ,所以这种内容是计算机所无法处理的。

原文地址:https://www.cnblogs.com/fengbing/p/3082940.html